Expand description
evorule verify-chain —— 验证 fact log 完整性(哈希链 + 结构不变量)
§三层验证
- 哈希链(新格式 WAL):验证 content_hash + prev_hash 链接 + chain_hash
- FactId 单调递增:每个 Fact 的 id 必须严格大于前一个
- cause 引用有效性:
StateTransition.cause和IoRequest.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 子命令