Sign inSign up

switchboardlabs/node

By switchboardlabs

Updated about 2 years ago

Switchboard Fulfillment Node

Image
0

100K+

switchboardlabs/node repository overview

switchboardlabs/node

A NodeJS container that facilitates on-chain update requests from an oracle's assigned queue.

Discord Twitter

Documentation: docs.switchboard.xyz/operator/oracle

Switchboard Oracle

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.

Image

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.

Keypair

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.

Environment

Base Environment Variables
Env VariableDefinition
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.
Keypair Environment Variables
Env VariableDefinition
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.
Monitoring Environment Variables
Env VariableDefinition
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.

Tag summary

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