NODE OPERATORS Overview Running a Chainlink Node Fulfilling Requests Run an Ethereum Client Performing System Maintenance Connecting to a Remote Database Configuration Variables Enabling HTTPS Connections Best Security and Operating Practices Best Practices for Nodes on AWS Miscellaneous
ORACLE JOBS Migrating to v2 Jobs Jobs Cron Direct Request Flux Monitor Keeper Off-chain Reporting Webhook Tasks HTTP Bridge JSON Parse CBOR Parse ETH ABI Decode ETH ABI Decode Log ETH ABI Encode ETH Call ETH Tx Multiply Divide Any Mean Median Mode Sum
v2 Jobs
What is a Job?
NOTE
This section refers to the latest version of Chainlink jobs (v2 jobs, or as seen in the Operator UI interface, TOML jobs). For documentation on the legacy job format, see v1 job specs. Note that v1 jobs are deprecated.
Chainlink nodes require jobs to be added to do anything useful, for example, posting asset price data on-chain. The supported job types are:
Jobs are represented by TOML specifications.
Example v2 job spec
The following is an example cron
job spec, one of the simplest specs that can be added to the node:
type = "cron"
schemaVersion = 1
schedule = "CRON_TZ=UTC 0 0 1 1 *"
externalJobID = "0EEC7E1D-D0D2-476C-A1A8-72DFB6633F46"
observationSource = """
ds [type=http method=GET url="https://chain.link/ETH-USD"];
ds_parse [type=jsonparse path="data,price"];
ds_multiply [type=multiply times=100];
ds -> ds_parse -> ds_multiply;
"""
Shared fields
The following TOML fields are shared by every job type supported by the node.
name
: the name of the job in the Operator UI.type
: specifies the v2 job type. Can be one of the following:cron
webhook
directrequest
fluxmonitor
keeper
offchainreporting
schemaVersion
: not currently used, but must be present and set to a value of1
. Will allow us to handle progressive iterations of the job spec format gracefully with backwards-compatibility.observationSource
: the v2 pipeline task DAG. Specified in DOT syntax. See below for information on writing pipeline DAGs.maxTaskDuration
: the default maximum duration that any given task is allowed to run. If the duration is exceeded, the task is errored. This value can be overridden per-task (see subsequent sections).externalJobID
: The externalJobID is an optionally user-specified way to deterministically provide an ID of a job. If provided, it must be unique. Say for example you want to run the same directrequest job on two different chainlink nodes which have different bridge names. Although the actually spec contents differ slightly, you can use the same externalJobID on both, specify that in your on-chain requests and both nodes will pick it up.- If you do not provide one, one will be generated by the node.