Skip to main content

Module verify_chain

Module verify_chain 

Source
Expand description

evorule verify-chain —— 验证 fact log 完整性(哈希链 + 结构不变量)

§三层验证

  1. 哈希链(新格式 WAL):验证 content_hash + prev_hash 链接 + chain_hash
  2. FactId 单调递增:每个 Fact 的 id 必须严格大于前一个
  3. cause 引用有效性StateTransition.causeIoRequest.cause 必须指向已存在的 FactId

§支持的 WAL 格式(两套 WAL 合并后统一)

  • tier1 WAL 新格式(含 content_hash/prev_hash/chain_hash):完整哈希链验证
  • tier1 WAL 旧格式(含 version_before/fact,无哈希字段):仅结构校验
  • CLI 原始格式(每行一个 Fact JSON,无 version_before 包装):仅结构校验

§为什么需要结构校验

哈希链验证检测 Fact 内容篡改和链断裂。 结构校验补充检测 fact log 内部的结构篡改(如改 id、改 cause), 即使在无哈希字段的旧格式下也能提供基本完整性保证。

Functions§

run
执行 verify-chain 子命令