自动化 — 设计
目标
架构
┌─────────────────────────┐
│ CoinGecko / Binance │
└────────────┬────────────┘
│ HTTP (每 12 秒)
┌────────────▼────────────┐
│ PriceAggregator │
│ (中位数 + 置信度) │
└────────────┬────────────┘
│
┌────────────▼────────────┐
│ SharedOracleService │
│ (Arc<Mutex>) │
└────────────┬────────────┘
│
┌─────────────────────────────▼──────────────────────┐
│ MempoolIO.get_oracle_calldata() │
│ → ABI encode batchUpdatePrices(symbols,prices,..)│
└─────────────────────────────┬──────────────────────┘
│
┌─────────────────────────────▼──────────────────────┐
│ keeper.rs: process_oracle_tx() │
│ → 作为每个 L1 Batch 的第一笔 tx 注入 │
│ → 失败时: warn + 继续 (永不阻塞 batch) │
└─────────────────────────────┬──────────────────────┘
│
┌─────────────────────────────▼──────────────────────┐
│ OracleHub (0x8016) — 链上系统合约 │
│ → batchUpdatePrices() 写入存储 │
│ → DApps 通过 getLatestPrice() 零 gas 查询 │
└────────────────────────────────────────────────────┘已实现组件(无需修改)
组件
文件
说明
需要修改的部分
1. Rust 节点启动集成(~30 行)
2. 链上配置调整
操作
调用
说明
3. 配置文件
执行顺序
失败处理
范围
Last updated