# 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.cnnl(CNNL 宪法条款 A53-A56) | L1 宪法协议层 <-- acc20c_wrapper.ch / acc20c_metadata.ch / acc20c_sync.ch(Charter 合约) nac-acc-service(Rust 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) | 测试项 | 结果 | | :--- | :--- | | 端口 9554(ACC 服务) | 通过 | | 端口 9545(CBPP 节点) | 通过 | | 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 - **编译模式**: release(LTO 优化) - **警告数**: 0 - **错误数**: 0 - **二进制大小**: 5,776,672 字节(v1.2.0,较 v1.1.0 增加 93,192 字节) --- ## 七、后台管理信息 - **Gitea 代码库**: https://git.newassetchain.io/nacadmin/NAC_Blockchain - **Gitea 账号**: nacadmin / NACadmin2026! - **备份服务器**: 103.96.148.7:22000(root) - **宝塔面板**: http://103.96.148.7:12/btwest(cproot / vajngkvf) --- ## 八、依赖关系与后续工单 | 依赖 | 状态 | | :--- | :--- | | CBPP 共识节点(nac-cbpp-node) | 已运行 | | NAC-Lens SDK(nac-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 声明和路由注册),新功能以独立文件形式添加。