Skip to content

Initiators

Steve Ellis edited this page Feb 18, 2018 · 11 revisions

Initiators are the entry points for ChainLink’s job pipeline. When a job is created its initiators are explicitly declared. ChainLink initially supports five initiator types: RunLog, Web, Cron, EthLog, and RunAt. When specifying an initiator, the type value is case insensitive.

All initiators can be bounded in time by specifying the optional top level startAt and endAt fields. No new job runs will be created before the startAt, or after the endAt if they are specified.

Cron

Cron is a simple way to schedule recurring job runs, using standard cron syntax with an extra field for specifying second level granularity.

Cron Parameters

The Cron initiator takes one parameter, schedule which is a cron like schedule string. The Cron‘s schedule is follows standard cron syntax but prepends an additional first field to specify second level granularity of time. For example: 1 2 3 4 5 * would run on second 1 of the 2nd minute of the 3rd hour, on the 4th of May(4th day of the 5th month), regardless what day of the week it is(*).

To translate any traditional cron schedule to this cron schedule, simply prepend a 0 as the first parameter: * * * * * to 0 * * * * *.

RunLog

RunLog is the easiest initiator to use when integrating ChainLink with on-chain contracts. It works similarly to EthLog, but adds some helpful glue in to stitch together the off-chain job with the on-chain contracts.

When a RunLog job is created, ChainLink begins watching the blockchain for any log events that include that job’s ID. If any of the events that come back match the log event signature of the ChainLink oracle contract, then the ChainLink node parses the data out of that log and passes it into a new log run.

RunLog Parameters

RunLog initiators take an optional address parameter. The address parameter is optional, and takes an Ethereum address. By adding the address parameter, you make the event filter of the RunLog initiator more restrictive, only listening for events from that address, instead of any address.

Web

The Web initiator enables jobs to be triggered via web requests, specifically POSTs to /jobs/:jobID/runs. Requests coming in to create new job runs must be authenticated.

Web Parameters

The Web initiator currently takes no parameters.