观察节点是什么
观察节点只读:它不出块、不投票、不转发交易,对链没有任何影响,掉线也没关系。它做的只有一件事:一直回答“这条链的历史有没有被改过”。
| 验证节点 | 观察节点 | |
|---|---|---|
| 作用 | 参与 QBFT 投票,负责出块 | 同步全部区块,核对并公开数据 |
| 对链的影响 | 掉线太多链会停 | 不影响出块 |
| 需要的信任 | 要信任对方 | 不需要 |
| 加入方式 | 现有验证节点链上投票 | 下载套件即可 |
| 网络要求 | 固定公网 IP,7×24 在线 | 能主动连出即可,断了重连自动补齐 |
| 推荐配置 | 2–4 核 / 8GB / 100GB NVMe | 2 核 / 4GB / 50GB SSD |
| 私钥 | 出块私钥,必须保管好 | 只有网络身份密钥,泄露也没有资金风险 |
| 适合谁 | 长期合作方 | 任何人 |
它能发现什么
观察面板记录节点拿到的每个区块,并持续做下面这些检查。严重异常会把面板标红,记录只增不改。
| 检查 | 怎么做 | 发现问题时 |
|---|---|---|
| 改写检测 | 每分钟重读最近 1000 个区块,并轮流扫描全部历史;区块哈希一旦变化,新旧两份区块头都保留 | 严重 rewritten |
| 连续性 | 第 N 块的父哈希必须等于记录里第 N−1 块的哈希 | 严重 chain_break |
| 参考源比对 | 同一高度的区块和每个参考 RPC 比对,参考源事后改口也会被发现 | 严重 mismatch |
| 健康状况 | 节点连不上、不再前进、落后太多、没有对等节点、参考源连不上。停滞时会区分是“本节点同步出了问题”还是“整条链暂停了” | 警告 恢复后自动关闭 |
三类严重异常和主要警告都已在演练中实际触发过。可以导出任意区间的区块哈希清单,和其他观察者离线比对:diff <(sort mine.csv) <(sort theirs.csv)。
在线面板
一个按同样方式部署在独立服务器上的观察节点,面板公开只读:
WarmUp Observer
绿色“全部一致”、黄色“有警告”、红色“发现异常”。可以查看区块账本、异常记录并导出证据。
http://192.227.167.144:18080运行一个观察节点
套件即将开源。开源前,请联系 WarmUp 团队获取观察节点套件并接入网络。开源后会提供公开接入节点,下载即可运行,不需要任何人批准。
需要什么
- 2 核 CPU、4GB 内存;SSD,
full模式 50GB 以上,recent模式 20GB 以上 - 只需要能主动连出,不需要公网 IP
- Docker 24+(带
docker compose)
两种同步模式
| full(默认) | recent | |
|---|---|---|
| 从哪里开始 | 创世块 | 你选的检查点 |
| 首次同步 | 较慢,随链长度增长;在本机重新执行每一个区块 | 很快;仍下载全部区块头 |
| 验证强度 | 最强 | 检查点之后最强;之前只校验哈希链的连续性 |
用 recent 模式时,检查点最好来自你信任的来源:另一个独立观察者,或者你自己先用 full 模式同步一次。
启动
shell
cp .env.example .env
# 填好 BOOTNODES,选择 SYNC_MODE=full 或 recent
mkdir -p data watch-data control
docker compose up -d
# 打开 http://127.0.0.1:8080 查看观察面板
节点的 JSON-RPC 只监听本机,只开放只读接口。镜像按 digest 固定;面板以只读文件系统运行,没有任何 npm 依赖。
其他验证方式
它做不到什么
- 能发现,不能阻止:观察节点发现篡改后可以公开示警,但没法阻止验证节点出块。要让任何一方都无法单独改写历史,需要把验证节点分给不同的运营方,这在主网前的路线图里。
- 接入节点可以扣着不发,但伪造不了:给你转发区块的节点没法伪造区块(QBFT 签名会被重新验证),最多只能不转发,在面板上表现为落后于参考源。
- 时钟偏差监控还在建设:比对新区块到达时间和区块时间戳,偏差超过 5 秒告警。