目录

MoonBit Notary (moonbit-notary)

MoonBit 公证材料清单与校验工具
面向电子材料公证、证据提交、档案归集场景的一体化材料清单生成、哈希校验、数字防篡改与合规审查工具。
开源创新大赛 (OSC 2026) 参赛作品


📌 项目背景与核心价值

在电子证据提交、网络侵权取证、商业合同争议、企业档案归集等法律与合规场景中,电子材料具有易篡改、易伪造、数量庞大、格式多样的特点。传统手段缺乏标准化且高效的材料清单管理和哈希指纹防篡改校验。

moonbit-notary 专为 MoonBit 生态打造,提供从目录批量扫描、类型自动识别、算法哈希计算(FNV1a/CRC32/Murmur3/SHA256/MD5)、Merkle Tree 根哈希封存、规则审查、防篡改审计链、多格式导出(Markdown/JSON/CSV/HTML)到 CLI 命令行的完整技术支撑。


🌟 核心特性

  • 📦 核心数据模型 (src/core)
    支持 NotaryManifestEvidenceItemDigestSourceNoteCategory 等类型,提供 Fluent Builder API 与强类型索引与检索。

  • 🔒 纯 MoonBit 哈希指纹与 Merkle 树签名引擎 (src/digest)
    内置 FNV1a-32、CRC32、MurmurHash3、SHA256 算法及 Merkle Tree 树状根哈希计算,实现材料包全量哈希封存与篡改校验。

  • 📁 智能目录扫描与路径分类器 (src/scanner)
    自动扫描材料目录,识别扩展名(网页截图、聊天记录导出、合同扫描件、音视频、PDF、元数据),自动推导材料标题与生成元数据。

  • ⚖️ 法律证据合规审查规则引擎 (src/validator)
    自动审查空清单、重复序号、无效哈希、缺失来源说明、禁止可执行扩展名、封存状态及 Merkle Root 防篡改比对,输出 0-100 分的合规报告。

  • 📜 防篡改区块链式审计追踪链 (src/audit)
    记录材料全生命周期操作事件(InitAddScanVerifySealExport),基于 Hash Chain 链接保障日志不可伪造。

  • ✍️ 数字签名与时间戳戳记认证 (src/crypto)
    支持公钥证书 PublicKeyCert、数字签名 DigitalSignature 与时间戳服务机构 TimeStampToken (TSA) 验证。

  • 🔄 清单版本对比与 Diff 引擎 (src/report)
    对比不同版本的材料清单,直观标识新增(Added)、删除(Removed)、哈希变更(ModifiedHash)及未变项。

  • 📄 多格式导出器 (src/formatter)
    一键生成带样式印章的 Markdown 报告、API 兼容 JSON、Excel 兼容 CSV 以及独立 HTML 网页报告。

  • 💻 CLI 命令行终端 (src/cli & cmd/main)
    支持 initscanverifyexportsealaudit 等终端指令。


🛠️ 项目架构

moonbit-notary/
├── moon.mod               # MoonBit 模块配置文件
├── LICENSE                # Apache 2.0 开源协议
├── README.md              # 项目主文档
├── .github/
│   └── workflows/
│       ├── test.yml       # GitHub Actions 自动化构建与测试 CI
│       └── ci.yml         # 校验与代码规范 CI
├── src/
│   ├── core/              # 核心数据模型与查询引擎 (NotaryManifest, EvidenceItem, Digest)
│   ├── digest/            # 哈希算法与 Merkle Root 签名引擎 (FNV1a, CRC32, Murmur3, SHA256)
│   ├── scanner/           # 目录扫描与扩展名分类器 (Classifier & ScanEngine)
│   ├── formatter/         # Markdown / JSON / CSV / HTML 导出器
│   ├── validator/         # 证据合规审查规则引擎与报告生成
│   ├── audit/             # 防篡改防伪造 Hash-Chained 审计日志
│   ├── crypto/            # 数字签名与时间戳 (TSA) 验证引擎
│   ├── report/            # 清单版本 Diff 比对引擎
│   ├── config/            # 预设法律模板 (著作权/合同/电商/劳动争议)
│   └── cli/               # CLI 终端命令解析器与调度器
├── cmd/
│   └── main/              # CLI 可执行文件主入口
└── examples/              # 真实场景材料包 (网页截图、聊天记录、合同扫描件)

🚀 快速开始

1. 环境准备

使用最新版 MoonBit 工具链 (0.10.3 / 2026):

moon check
moon test

2. 命令行使用示例

# 查看帮助
moon run cmd/main -- help

# 初始化公证清单
moon run cmd/main -- init MAN-2026-001

# 扫描目录
moon run cmd/main -- scan ./evidence_folder

# 校验材料包合规性
moon run cmd/main -- verify manifest.json

# 导出为 Markdown / HTML / CSV
moon run cmd/main -- export manifest.json markdown
moon run cmd/main -- export manifest.json html

# 封存材料清单并生成 Merkle Root
moon run cmd/main -- seal manifest.json

# 查看防篡改审计日志
moon run cmd/main -- audit MAN-2026-001

3. 代码 API 使用示例 (MoonBit)

// 构造公证清单
let manifest = @core.ManifestBuilder::new()
  .set_id("MAN-2026-COPYRIGHT")
  .set_title("互联网著作权侵权材料清单")
  .set_org("北京市南方公证处")
  .set_applicant("张三")
  .add_evidence_simple(1, "侵权网页截图", "screenshots/page1.png", Screenshot, "sha256_hash...", "md5_hash...", 520000L, "Inspector-01")
  .build()

// 封存材料包
@digest.seal_manifest(manifest)

// 合规审查
let report = @validator.validate_manifest(manifest)

// 导出 Markdown 报告
let md_output = @formatter.export_markdown(manifest)

📊 MoonBit 源码规模与测试覆盖

  • 测试套件: 31 个单元测试与端到端集成测试,100% 通过。
  • 格式规范: 通过 moon fmt 规范校验。
  • 类型声明: 生成完整 pkg.generated.mbti 接口规格文件。
  • 警告检查: 通过 moon check 0 警告 0 错误。

📜 来源与原创声明

本仓库 hcjbat/moonbit-notary 属于 100% 独立原创作品,专门为 开源创新大赛 (OSC 2026) 研发设计。所有 MoonBit 源码、算法实现、规则引擎与测试用例均由提交者 hcjbat 原创编写,未使用、复制或重合 MoonBit 生态中已有的其他成熟库。


⚖️ 开源协议

本项目采用 Apache License 2.0 协议开源。

关于

面向电子材料公证、证据提交、档案归集场景,提供材料目录、编号、哈希、来源、时间戳、说明文本的一体化清单生成与校验。

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

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