
switchboardlabs/nodeSwitchboard预言机是一个Node.js容器,位于和互联网之间,用于等待来自预言机队列的更新请求。预言机队列以轮询方式向预言机分配更新任务。所有支持链上的Switchboard预言机都需要主网 RPC才能运行任务执行器,以支持获取链上***数据的传统任务类型。
适用于作为Switchboard网络的预言机节点,为***应用提供可靠的链下数据喂价服务。特别适合需要实时或定期更新链上数据的DeFi协议、NFT项目、智能合约应用等场景,确保链上数据的准确性和及时性。
该镜像处于积极开发阶段,并非所有发布标签都保证稳定可用。可通过Switchboard网络统计了解最新版本信息,稳定标签即将推出。
预言机需要密钥对用于支付链上交易费用,可通过以下方式配置:
/home/node/sbv2-oracle/payer_secrets.jsonFS_PAYER_SECRET_PATH环境变量指定自定义密钥路径PAYER_SECRETS或DOCKER_PAYER_SECRET| 环境变量 | 定义 |
|---|---|
| CHAIN | 必填 类型 - 枚举 [aptos / evm / near / *** / *** / sui] 描述 - 指定监听链上事件的***类型 |
| ORACLE_KEY | 必填 类型 - 字符串 描述 - Switchboard预言机的地址 |
| HEARTBEAT_INTERVAL | 类型 - 整数 默认值 - 30 描述 - 预言机心跳间隔(秒),不同队列有不同要求,推荐值为30 |
| RPC_URL | 必填 类型 - 字符串 描述 - 用于链上网络请求的RPC服务器URL |
| NETWORK_ID | 类型 - 枚举 [mainnet / mainnet-beta / devnet / testnet / localnet] 描述 - 连接的***网络ID,大多数链无需配置 |
| PROGRAM_ID | 类型 - 字符串 描述 - 对应***和网络的Switchboard程序ID |
| TASK_RUNNER_***_RPC | 必填(当$CHAIN非且$NETWORK_ID非mainnet-beta时) 类型 - 字符串 描述 - 用于处理数据任务的***主网RPC URL |
| VERBOSE | 类型 - 布尔值 默认值 - 禁用 描述 - 启用额外日志输出 |
| DEBUG | 类型 - 布尔值 默认值 - 禁用 描述 - 启用调试级日志输出 |
| 环境变量 | 定义 |
|---|---|
| FS_PAYER_SECRET_PATH | 类型 - 文件系统路径 默认值 - /home/node/sbv2-oracle/payer_secrets.json 描述 - 本地密钥文件路径,用于支付链上交易并作为预言机授权 |
| PAYER_SECRETS 或 DOCKER_PAYER_SECRET | 类型 - Docker Secret 描述 - Docker Secret路径,存储用于交易支付和授权的密钥 |
| GOOGLE_PAYER_SECRET_PATH | 类型 - GCP资源路径 描述 - Google Cloud密钥资源路径,用于安全管理密钥 |
| AMAZON_PAYER_SECRET_PATH | 类型 - AWS ARN路径 描述 - Amazon Web Services密钥的ARN路径 |
| 环境变量 | 定义 |
|---|---|
| PAGERDUTY_EVENT_KEY | 类型 - 字符串 描述 - PagerDuty事件密钥,用于发送告警,未配置则禁用告警功能 |
| HEALTH_CHECK_PORT | 类型 - 整数 默认值 - 8080 描述 - 健康检查服务端口,Docker健康检查将定期访问http://localhost:${HEALTH_CHECK_PORT}/healthz |
| METRICS_EXPORTER | 类型 - 枚举 [prometheus / opentelemetry-collector] 默认值 - prometheus 描述 - OpenTelemetry指标提供程序类型 |
| METRICS_EXPORTER_PORT | 类型 - 整数 默认值 - 9090 描述 - 指标收集服务端口 |
bashdocker run -d \ --name switchboard-oracle \ -e CHAIN=*** \ -e ORACLE_KEY=your_oracle_address \ -e RPC_URL=[***] \ -e HEARTBEAT_INTERVAL=30 \ -v /local/path/to/payer_secrets.json:/home/node/sbv2-oracle/payer_secrets.json \ switchboardlabs/node:latest
yamlversion: '3' services: switchboard-oracle: image: switchboardlabs/node:latest container_name: switchboard-oracle environment: - CHAIN=*** - ORACLE_KEY=your_oracle_address - RPC_URL=[***] - HEARTBEAT_INTERVAL=30 - VERBOSE=true - METRICS_EXPORTER=prometheus volumes: - /local/path/to/payer_secrets.json:/home/node/sbv2-oracle/payer_secrets.json ports: - "8080:8080" # 健康检查端口 - "9090:9090" # 指标导出端口 restart: unless-stopped


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务