摘要

新节点仍然验证工作量证明,也仍然下载当前 State;它不再需要下载全部历史交易体并从创世区块重放整条链。本文记录经过认证的快照边界、基于磁盘临时区的安装流程、保留后缀,以及常数级证明验证与必然随区块头数量或 Live State 大小增长的成本之间的区别。

移除重放,而不是移除验证

历史重放把几项不同任务混在一起,统称为“同步”。节点读取区块头以比较工作量证明;下载交易体以重建 State,即由当前未花费输出与共识计数器组成的认证集合;再执行历来的每条规则,判断重建出的 State 是否有效。随着链龄增长,即使当前 State 大小不变,第三项任务仍会不断变重。

Parano1d 用递归 HistoryStep 取代历史执行重放。每个已接受区块都证明从认证父 State 到子 State 的精确转换。因此,当前边界携带了产生它的整条转换链证明。

最终性边界是已经处在协议允许的重组窗口之外的区块。近期后缀则是从该边界到当前链尖之间不超过十八个完整区块的序列。

消失的工作

新加入的节点不必下载并执行每一笔历史交易体。它在最终性边界验证一个递归终端证明,重建被精确承诺的当前 State,再应用一段有界的近期后缀。

仍然存在的成本

只有边界证明的验证成本不随链龄变化。区块头验证与当前 State 传输仍会随完整节点必须持有的数据量扩展。

阶段扩展依据为何仍然需要
区块头验证链高必须比较工作量证明与累计工作量
HistoryStep 终端证明常量级证明验证验证所选边界的递归有效性
State 传输当前 State节点必须取得自己将要服务的数据
近期后缀最多 18 个完整区块把最终性边界连接到当前链尖

该架构移除了随链龄增长的执行日志。它并不声称可以不读取区块头就比较工作量证明,也不声称可以在不传输数 GB 数据的情况下安装一个数 GB 的当前 State。

两条同步路径

短距离落后

每个完整节点保留最近十八个已经完整接纳的区块。仍处于该窗口内的落后对等节点会请求由语义区块与对应 HistoryStep 终端证明组成的原子对象。写入 State 前,节点会检查区块头连续性、精确难度与时间戳规则、基于 Poseidon2b 的工作量证明哈希、交易与 State 承诺、递归有效性、分叉选择以及最终性。

深度落后

落后更远的对等节点会选择一个已达最终性的快照边界:

  1. 下载并验证永久区块头;
  2. 选择规范的最终性边界;
  3. 取得并验证匹配的 HistoryStep 终端;
  4. 下载 State 清单及其引用的分段;
  5. 重建精确的全局 State 根与计数器;
  6. 以事务方式安装暂存 State;
  7. 验证并应用保留的完整后缀。

将每个对象绑定到同一边界

高度 h 的有效证明,不能认证来自 h − 1 的清单,也不能认证来自另一分支的分段集。因此,快照清单绑定边界高度、State 根、槽位几何、活动数量、分配计数器、分段标识、分段根及长度。递归终端证明、规范区块头与清单必须指向同一个边界。

实现为区块头暂存、选定的证明会话、持久化证明任务和精确边界绑定使用不同类型。这些类型防止对等节点把各自有效的对象拼接成不一致的快照。

以磁盘暂存形成共识边界

分段进入隔离的临时环境。活动数据库不会逐页更新。只有在每个分段、计数器、根、边界区块头与终端证明全部一致之后,节点才会原子替换已安装的 State。

如果进程退出,下一次启动会删除未完成的暂存环境,并从最后一份规范数据库继续。这样便不会出现一种恢复模式:共识代码需要判断对等节点提供的快照中究竟哪一部分已经具有权威性。

有界内存

区块头暂存与 State 安装均以磁盘为后盾,并限制内存分配。对等节点可以控制载荷字节,却不能操纵解码器进行无界分配,也不能强迫待安装的完整 State 全部驻留内存。

对等节点只是数据源

种子节点或提供快照的对等节点不会为 State 签名,也不会成为检查点权威。它只提供区块头、终端证明、清单与分段字节。新加入节点依据工作量证明自行确定规范链,并自行验证递归承诺与 State 承诺。

这正是普通快照与无需信任的快照之间的核心区别。更换数据提供方不会改变节点所接受的 State。

近期重组与最终性

最终性边界不可重组。分叉选择只考虑保留该边界的候选分支,可接受的回滚深度小于十八个区块。近期完整区块与撤销数据覆盖这段后缀。更深的竞争分支会被拒绝,而不是通过安装另一个快照来“修复”。

这条规则让快照的认证依据与递归有效性保持一致。若没有硬边界,节点可能先认证一个当前 State,随后又被要求重建一条深层替代历史,而它本来就有意不保留那些交易体。

四项检查,不引入快照权威

引导同步把证据分成四类:

  • 区块头确立累计工作量最大的合格链;
  • HistoryStep 确立边界处的有效性;
  • 清单与分段根确立精确的当前 State;
  • 保留后缀确立从边界到当前链尖的时效性。

对等节点为四个阶段提供字节,却不控制任何验收规则。传输与暂存机制可以改变,而不会把缓存、种子节点或快照镜像变成检查点权威。