本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

Switchboard On Demand Oracle - Gateway Docker镜像是Switchboard去中心化预言机网络的核心组件,用于实现链下数据源与链上智能合约的双向通信。该镜像封装了按需数据请求处理、数据源集成、数据验证及区块链交互逻辑,提供标准化接口供智能合约调用,支持外部数据的按需获取、验证与上链,是连接Web2数据源与Web3智能合约的关键中间件。
# 拉取最新稳定版镜像 docker pull switchboardlabs/on-demand-oracle-gateway:latest # 拉取指定版本(推荐生产环境使用固定版本) docker pull switchboardlabs/on-demand-oracle-gateway:v1.2.0
docker run -d \ --name oracle-gateway \ -p 8080:8080 \ -e ORACLE_PRIVATE_KEY="0x1234567890abcdef..." \ # 预言机节点私钥(用于数据签名) -e ***_NETWORK="***-mainnet" \ # 目标区块链网络 -e DATA_SOURCE_WHITELIST="[***]" \ # 数据源白名单 -e LOG_LEVEL="INFO" \ # 日志级别 -v /host/path/config:/app/config \ # 挂载自定义配置文件(可选) switchboardlabs/on-demand-oracle-gateway:latest
version: '3.8' services: oracle-gateway: image: switchboardlabs/on-demand-oracle-gateway:v1.2.0 container_name: oracle-gateway restart: always ports: - "8080:8080" # 数据请求接口端口 - "9090:9090" # Prometheus监控端口 environment: - ORACLE_PRIVATE_KEY=${ORACLE_PRIVATE_KEY} # 从宿主机环境变量注入,避免硬编码 - ***_NETWORK="***-mainnet" - DATA_SOURCE_CONFIG_PATH="/app/config/datasources.yaml" - REQUEST_QUEUE_SIZE=1000 - LOG_LEVEL="INFO" - CACHE_TTL=30 # 重复请求缓存时间(秒) volumes: - ./config:/app/config # 挂载本地配置目录(包含数据源定义、验证规则) - ./logs:/app/logs # 挂载日志目录(持久化存储) networks: - oracle-network networks: oracle-network: driver: bridge
| 环境变量名 | 必选 | 默认值 | 说明 |
|---|---|---|---|
ORACLE_PRIVATE_KEY | 是 | - | 预言机节点私钥(用于数据签名,需对应区块链网络地址格式) |
***_NETWORK | 是 | - | 目标区块链网络,支持值:***-mainnet/***-devnet/***-fuji |
DATA_SOURCE_CONFIG_PATH | 否 | /app/default-config.yaml | 数据源配置文件路径(若挂载自定义配置需指定) |
PORT | 否 | 8080 | 数据请求接口端口 |
METRICS_PORT | 否 | 9090 | Prometheus监控指标暴露端口 |
LOG_LEVEL | 否 | INFO | 日志级别,支持:DEBUG/INFO/WARN/ERROR |
REQUEST_QUEUE_SIZE | 否 | 500 | 请求队列最大容量,超过则拒绝新请求 |
CACHE_TTL | 否 | 0 | 重复请求缓存时间(秒),0表示不缓存 |
MAX_CONCURRENT_REQUESTS | 否 | 100 | 最大并发请求数,防止数据源过载 |
数据源及验证规则需通过YAML配置文件定义(默认路径/app/default-config.yaml,可通过DATA_SOURCE_CONFIG_PATH自定义)。示例配置如下:
# datasources.yaml示例 datasources: - name: "coingecko-price" # 数据源名称(唯一标识) type: "http" # 类型:http/websocket/postgres url: "[***]" method: "GET" timeout: 3000 # 超时时间(毫秒) headers: # 自定义请求头 - key: "Accept" value: "application/json" params: # 默认请求参数 ids: "***,***" vs_currencies: "usd" validation: # 数据验证规则 type: "json_schema" # 支持json_schema/script(自定义脚本) schema: # JSON Schema验证规则 type: "object" properties: ***: type: "object" properties: usd: {type: "number", minimum: 0} required: ["***"] ***: rpc_url: "[***]" # 区块链节点RPC地址(优先于默认网络) confirmations: 2 # 数据上链所需确认数
| 端口 | 用途 | 说明 |
|---|---|---|
| 8080 | 数据请求接口 | 接收智能合约/客户端的数据请求 |
| 9090 | Prometheus监控指标 | 暴露监控指标(如请求成功率、响应时间) |
| 8443 | HTTPS接口(可选) | 启用TLS时的加密通信端口(需挂载证书) |
网络要求:容器需访问以下外部服务:
# 实时查看日志 docker logs -f oracle-gateway # 查看ERROR级别日志 docker logs oracle-gateway | grep "ERROR"
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 数据签名失败 | 私钥格式错误或与网络不匹配 | 检查ORACLE_PRIVATE_KEY是否对应目标链格式 |
| 数据源请求超时 | 数据源不可用或网络隔离 | 验证数据源URL可访问性,检查容器网络连接 |
| 智能合约未收到数据 | 区块链节点RPC连接失败 | 检查***.rpc_url配置,测试RPC连通性 |
| 高并发下请求被拒绝 | 队列容量不足 | 调大REQUEST_QUEUE_SIZE环境变量 |
v1.2.0),避免直接使用latest

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429