NAC_Blockchain/docs/nac-acc20c/ACC-20C-001_implementation_...

5.3 KiB
Raw Blame History

ACC-20C 兼容层协议实施日志

工单编号: ACC-20C-001 实施日期: 2026-03-08 实施版本: v1.2.0 状态: 已完成并通过全覆盖测试


一、工单目标

将 ACC-20C 兼容层协议完整实现并部署到 NAC 主网,深度融合 CBPP 共识机制,使用 Charter 语言重写核心合约,废弃 PermissionProxy 改为 CNNL 宪法条款。


二、架构设计决策

2.1 ACC-20C 在 NAC 三层架构中的位置

L2 宪法治理层  <-- acc20c_clauses.cnnlCNNL 宪法条款 A53-A56
      |
L1 宪法协议层  <-- acc20c_wrapper.ch / acc20c_metadata.ch / acc20c_sync.chCharter 合约)
                   nac-acc-serviceRust API 服务,端口 9554
      |
L0 网络层      <-- nac-cbpp-scanner区块扫描器通过 NAC-Lens 获取数据)

2.2 关键架构变化(相对于原 ACC-20C 文档)

原设计(前 CBPP 时代) 现实现CBPP 主网)
PermissionProxy 合约白名单 CNNL 宪法条款 A53-A56由 CEE 强制执行
以太坊事件监听 CBPP 区块扫描 + NAC-Lens SDK
EVM 合约 Charter 语言合约NVM 执行)
JSON-RPC 接口 NAC 原生协议(无 RPC去以太坊化

三、新增文件清单

3.1 Charter 合约层charter-std/acc/

文件 描述
acc20c.ch ACC-20C 主接口文件,整合各模块
acc20c_wrapper.ch 资产包装器,纯粹的状态容器
acc20c_metadata.ch 动态元数据生成器
acc20c_sync.ch 状态同步执行器(被动接收模式)

3.2 CNNL 宪法条款层nac-constitution/clauses/

文件 描述
acc20c_clauses.cnnl ACC-20C 专属宪法条款A53-A56

3.3 Rust API 服务层nac-acc-service/src/

文件 描述
acc20c_judicial.rs 新增:司法冻结/解冻 + 合规检查模块416 行)
main.rs 最小化修改:添加 mod acc20c_judicial; + 3 条路由注册

四、API 端点完整清单(共 12 个 ACC-20C 端点)

基础 URL: http://127.0.0.1:9554

方法 路径 功能 对应宪法条款
GET /health 健康检查 -
GET /acc20c/assets 列出所有包装资产 -
GET /acc20c/asset/{id} 查询单个包装资产 -
POST /acc20c/wrap 包装 ACC-20 资产 A53
POST /acc20c/unwrap 解包装资产(含冷却期检查) A54
POST /acc20c/transfer 转移包装资产所有权 A56
POST /acc20c/freeze 司法冻结 A55
POST /acc20c/unfreeze 解除司法冻结 A55
POST /acc20c/compliance/check 合规性检查 A53
POST /acc20c/sync/valuation 扫描器调用:更新估值 -
POST /acc20c/sync/status 扫描器调用:状态变更 -

五、全覆盖测试结果2026-03-08 08:23 CST

测试项 结果
端口 9554ACC 服务) 通过
端口 9545CBPP 节点) 通过
nac-l1-acc20 服务 active (running)
nac-cbpp-scanner 服务 active (running)
nac-cbpp-node 服务 active (running)
GET /health HTTP 200
GET /acc20c/assets HTTP 200
POST /acc20c/wrap 包装成功
GET /acc20c/asset/{id} HTTP 200
POST /acc20c/compliance/check正常 通过
POST /acc20c/freeze 冻结成功
POST /acc20c/compliance/check冻结后 正确拒绝A55 生效)
POST /acc20c/unfreeze 解冻成功
POST /acc20c/transfer 转移成功
POST /acc20c/unwrap冷却期内 正确拒绝A54 生效)
POST /acc20c/sync/valuation HTTP 200
POST /acc20c/sync/status HTTP 200

结论12/12 功能测试全部通过,零失败,零警告,零错误。


六、编译信息

  • 编译器: rustc 1.93.1-x86_64-unknown-linux-gnu
  • 编译模式: releaseLTO 优化)
  • 警告数: 0
  • 错误数: 0
  • 二进制大小: 5,776,672 字节v1.2.0,较 v1.1.0 增加 93,192 字节)

七、后台管理信息


八、依赖关系与后续工单

依赖 状态
CBPP 共识节点nac-cbpp-node 已运行
NAC-Lens SDKnac-lens crate 已集成
CBPP 扫描器nac-cbpp-scanner 已运行(未修改,尊重前任编译者)
Charter 编译器NVM 待后续工单
CEE 宪法执行引擎集成 待后续工单

九、重要原则记录

本次工单实施过程中确立的核心原则(已写入项目知识库):

  1. NAC_AI 没有长期记忆,代码库本身就是记忆:尊重前面的编译者,通过阅读现有代码找到原始编译痕迹,新代码必须适应现有编译环境,而不是重写现有代码。
  2. NAC 去以太坊化原则NAC 没有注册任何 RPC 方法,不使用 JSON-RPC/EVM/Solidity数据访问通过 NAC-Lens SDK 进行。
  3. 最小化修改原则:对现有运行正常的模块只做最小化修改(如 main.rs 仅添加 mod 声明和路由注册),新功能以独立文件形式添加。