目录

MoonReplayKit

面向 MoonBit 的确定性状态机回放、差异诊断与可验证证据基础库。

MoonReplayKit 将事件历史变成可执行、可校验、可比较的工程证据。应用提供纯 reducer、负载指纹和状态指纹,库负责日志链校验、逐步回放、检查点续播、 分支比较、规则迁移验证、失败前缀定位和回放证据证明。

核心能力

  • 泛型哈希链事件日志,检测删除、插入、换序和负载篡改;
  • 完整回放与状态边界指纹;
  • 状态与日志双锚检查点;
  • 替代历史分支和 reducer 新旧版本逐步比较;
  • 不变量首错定位与最短可复现前缀;
  • 事件哈希与逐步状态哈希组成的 Merkle 风格证据树;
  • 无需完整状态历史的对数级包含证明;
  • 同长度证据树的首个分歧定位;
  • 无时钟、随机数、网络、文件系统和第三方运行时依赖。

回放证据

let report = @moonreplaykit.replay(
  journal,
  initial_state,
  payload_fingerprint,
  state_fingerprint,
  reducer,
)

let tree = @moonreplaykit.build_replay_evidence(
  journal,
  report,
  payload_fingerprint,
).unwrap()

let proof = @moonreplaykit.replay_inclusion_proof(
  journal,
  report,
  tree,
  sequence,
).unwrap()

assert_true(@moonreplaykit.verify_replay_inclusion(proof))

证明只携带目标转换及每层兄弟摘要,路径长度随事件数按对数增长。内置指纹用于 确定性完整性比较,不是密码学签名;高安全场景应在适配器层使用密码学摘要和 签名封装根摘要。

验证

moon fmt --check
moon check --target all
moon test --target js
moon test --target wasm
moon test --target wasm-gc
moon run cmd/main --target js
moon run bench/main --target js

License

Apache-2.0

关于
102.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号