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