Switchboard Fulfillment Node
100K+
A NodeJS container that facilitates on-chain update requests from an oracle's assigned queue.
A Switchboard oracle is a Node.js container that sits between a blockchain and the internet and waits for update requests from an oracle queue. An oracle queue assigns updates to oracles in a round robin fashion.
Switchboard oracles on all supported chains MUST have a mainnet Solana RPC in order to run the task runner. This is used to support legacy task types for fetching on-chain Solana data.
This image is still in active development and not all release tags are guaranteed to work. You can view the current Switchboard network stats to get an idea of the latest version.
Stable tags will be provided soon.
A Switchboard oracle requires a keypair in order to pay for on-chain updates.
You may mount the secret at /home/node/sbv2-oracle/payer_secrets.json or
provide your own path by updating the env variable $FS_PAYER_SECRET_PATH. You
can also provide the PAYER_SECRETS docker secret. Google and Amazon secrets
are also supported.
| Env Variable | Definition |
|---|---|
| CHAIN |
Required
Type - Enum [aptos / evm / near / solana / starknet / sui] Description - Dictates which chain to listen on for on-chain events |
| ORACLE_KEY |
Required
Type - String Description - The address of the Switchboard oracle |
| HEARTBEAT_INTERVAL |
Type - Integer
Default - 30 Description - Seconds between oracle heartbeats. Queues have different oracle heartbeat requirements. Recommended value is 30 |
| RPC_URL |
Required
Type - String Description - The URL of the RPC server to connect to for any on-chain network requests. |
| NETWORK_ID |
Type - Enum [mainnet / mainnet-beta / devnet / testnet / localnet]
Description - The network ID of the $CHAIN to connect to. Not required for most CHAINS. |
| PROGRAM_ID |
Type - String
Description - The Switchboard program ID for the given $CHAIN and $NETWORK_ID |
| TASK_RUNNER_SOLANA_RPC |
Required, if $CHAIN is not solana and $NETWORK_ID is not mainnet-beta
Type - String Description - Solana mainnet RPC URL used for fulfilling task types that require data on Solana. |
| VERBOSE |
Type - Boolean
Default - disabled Description - Enable additional logging. |
| DEBUG |
Type - Boolean
Default - disabled Description - Enable additional debug logging. |
| Env Variable | Definition |
|---|---|
| FS_PAYER_SECRET_PATH |
Type - Filesystem Path
Default - /home/node/sbv2-oracle/payer_secrets.json Description - Local filesystem path to keypair file that will pay for on-chain transactions and is the authority for the oracle |
| PAYER_SECRETS or DOCKER_PAYER_SECRET |
Type - Docker Secret
Description - Docker Secret path to keypair file that will pay for on-chain transactions and is the authority for the oracle |
| GOOGLE_PAYER_SECRET_PATH |
Type - GCP Resource Path
Description - Google cloud resource to manage your keypair securely. |
| AMAZON_PAYER_SECRET_PATH |
Type - AWS ARN path
Description - Amazon web services ARN path of secret. |
| Env Variable | Definition |
|---|---|
| PAGERDUTY_EVENT_KEY |
Type - String
Description - PagerDuty event key to send alerts. Paging disabled if not provided. |
| HEALTH_CHECK_PORT |
Type - Integer
Default - 8080 Description - The network port to serve healthcheck requests. The docker healthcheck will ping http://localhost:${HEALTH_CHECK_PORT}/healthz periodically to determine a containers health status. |
| METRICS_EXPORTER |
Type - Enum [prometheus / opentelemetry-collector]
Default - prometheus Description - The OpenTelemetry metrics provider. |
| METRICS_EXPORTER_PORT |
Type - Integer
Default - 9090 Description - The network port to collect metrics. |
Content type
Image
Digest
sha256:dfb2014ba…
Size
87.2 MB
Last updated
about 2 years ago
docker pull switchboardlabs/node:dev-RC_08_14_24_14_58