chainlink-tools
is a command line utility designed to make life easier for Chainlink node operators.
Authentication with the node is managed by the same .api
file as outlined in the official Chainlink documentation.
$ pip install chainlink-tools
The bootstrap-jobs
subcommand allows for easy bootstrapping when setting up a node for the first time.
$ chainlink-tools \
bootstrap-jobs \
--oracle-address "YOUR_ORACLE_CONTRACT_ADDRESS" \
--credentials "/path/to/.api/file" \
--node-url "http://localhost:6688"
This will add the five default jobs to the node, as outlined in the Chainlink docs:
- EthBytes32 (GET)
- EthBytes32 (POST)
- EthInt256
- EthUint256
- EthBool
The address you pass in for --oracle-address
will be set as the address for the RunLog
initiator.
chainlink-tools
provides two different mechanisms for adding new jobs to a node.
The sync-jobs
subcommand allows for syncing a directory of job specs to a running node.
$ chainlink-tools \
sync-jobs \
--jobs_dir "/path/to/jobs/dir" \
--credentials "/path/to/.api/file" \
--node-url "http://localhost:6688"
--jobs-dir
should be the path to a directory of .json
files of job specs:
chainlink-jobs
| ethusd.json
| btcusd.json
| linkusd.json
sync-jobs
will first check to see if the job already exists in the node. This is done by doing a comparison of all initators, tasks, and other top level fields. For any jobs in the specified directory not already found on the node, sync-jobs
will add them to the node.
This allows you to keep a single running directory of all your jobs and run sync-jobs
on the whole directory every time you add a new one.
Note: For comparison purposes, all ETH addresses that appear in a job spec should be lowercase.
Alternatively, if you would like to manually create each individual job, the create-job
subcommand allows for specifying a single job to add to a node.
$ chainlink-tools \
create-job \
--job "/path/to/job1.json" \
--credentials "/path/to/.api/file" \
--node-url "http://localhost:6688"