At its core, the Infernet Node operates according to a set of runtime configurations. Parameterized in
config.json, these configurations enable node operators to flexibily configure the functionality of a node.
While some configurations have sane defaults and do not need modification, it is useful to understand the implications of each option to configure your node to your unique application and use case.
Out-of-the-box, we provide a default
config.sample.json (opens in a new tab) as an example starting point that you can copy and modify:
# Copy and modify sample config
cp config.sample.json config.json
Configuration parameters specific to on-chain event processing.
Whether listening and responding to on-chain events is enabled for this node. If set to
false, only the REST API will be active and the
ChainProcessor will not run.
Some Ethereum-compatible chains finalize (opens in a new tab) or are significantly less likely to have a chain reorganization (opens in a new tab) after a number of blocks. By configuring
trail_head_blocks, node operators can add a global delay to chain syncing, preventing failed transactions and unnecessary compute operations due to volatile state by trailing the head block, at the expense of increased latency.
HTTP(s) JSON-RPC url with support for the
eth_newFilter (opens in a new tab) method.
Infernet SDK Coordinator address that the node
ChainProcessor will track.
Configuration parameters specific to on-chain Ethereum wallets used by the node to send transactions.
Global maximum gas limit to use for each independent transaction sent from the node wallet.
0x-prefixed node wallet private key.
Optional Docker Hub (opens in a new tab) credentials to access private containers.
Docker Hub username.
Docker Hub Personal Access Token (PAT) (opens in a new tab).
Array of supported workflow container specifications.
Workflow container specification object.
Must be unique; user-configured ID of supported workflow service.
Docker Hub image of container workflow. Must be local, public, or accessible with the provided Docker Hub credentials in the
docker configuration parameter.
The command and flags to run the container with.
Key-value pairs of environment variables to expose to the container.
Whether this container can be the first container in a JobRequest (opens in a new tab). If set to
false, using this container as the entrypoint of a request will fail (container must be non-first, intermediary).
Local port to expose this container on.
Description of service provided by this workflow container.
Container-level firewall. Only specified IPs allowed to request execution of this container. Leave empty for no restrictions.
Container-level firewall. Only specified addresses are allowed to request execution of this container, with request originating from an on-chain contract. Leave empty for no restrictions.
Note: with contracts that consume Delegate Subscriptions with off-chain data,
it may be useful to set
"allowed_addresses": [""], restricting a container
from being executed from on-chain. This prevents race conditions where nodes
process the creation of on-chain subscriptions before receiving off-chain data
via a Delegate Subscription.
Container-level firewall. Only specified addresses allowed to request execution of this container, with request originating from on-chain contract but via off-chain Delegate Subscription (with this array corresponding to the delegate subscription
owner address). Leave empty for no restrictions.
Whether this should be a GPU-enabled container. The host must also be GPU-enabled.
The local file path for logging. Infernet Nodes use structlog (opens in a new tab) for JSON logging. Defaults to
Some Docker containers may have a startup lifecycle that takes a few moments. By configuring
startup_wait, you can optionally choose to pause any Infernet Node execution for a fixed duration of time, while you wait for all Docker containers to finish their startup lifecycles. Defaults to
HTTP web server configuration parameters.
Port to run web server on. Defaults to
Redis DB configuration parameters.
Redis host to connect to. Defaults to
"redis", assuming the node is running using Docker Compose.
Redis host port to connect to. Defaults to
Whether to send diagnostic system statistics to Ritual. Defaults to