docs: 添加L3存储层补全工单文档 STORAGE-LAYER-001

This commit is contained in:
NAC Admin 2026-03-18 16:05:51 +08:00
parent d8cc65b916
commit 381c03b8bf
1 changed files with 85 additions and 0 deletions

View File

@ -0,0 +1,85 @@
# L3 存储层补全工单
**工单编号**: STORAGE-LAYER-001
**日期**: 2026-03-18
**状态**: ✅ 已完成
---
## 一、工作原则
本次工作严格遵循以下原则:
1. **尊重前期开发者工作成果**:所有已有代码保持原样,仅在其基础上追加扩展
2. **五大核心治理哲学**:每一个模块都体现 NAC 公链的核心设计哲学
---
## 二、五大核心治理哲学与存储层的映射
| 哲学原则 | 存储层体现 | 对应模块 |
|----------|-----------|---------|
| 约法即是治法 | 证据存证是司法管辖的数字基石 | `evidence_storage.rs` |
| 宪法即是规则 | 每条状态变更必须引用宪法条款 | `state_database_ext.rs` |
| 参与即是共识 | SHA3-384 Merkle树提供不可篡改的密码学证明 | `merkle_tree.rs` |
| 节点产生区块 | 区块按节点身份分区存储节点ID是第一公民 | `block_store.rs` |
| 交易决定区块大小 | 不预设固定区块大小,由实际交易集合决定 | `block_store.rs` |
---
## 三、文件变更清单
### 3.1 前期开发者原有代码(保持不变)
| 文件 | 行数 | 说明 |
|------|------|------|
| `state_database.rs` | 124行 | HashMap内存实现含StateKey/StateValue/StateDatabase有完整测试 |
### 3.2 空骨架补全在原有struct基础上扩展
| 文件 | 原行数 | 补全后行数 | 补全内容 |
|------|--------|-----------|---------|
| `merkle_tree.rs` | 6行 | 约80行 | SHA3-384 Merkle树完整实现含证明生成与验证 |
| `archive_storage.rs` | 6行 | 约55行 | 历史区块数据归档,含压缩存储和检索 |
| `evidence_storage.rs` | 6行 | 约90行 | 证据存证含SHA3-384哈希验证和宪法条款关联 |
### 3.3 新增文件
| 文件 | 行数 | 说明 |
|------|------|------|
| `block_store.rs` | 约80行 | 区块存储引擎,按节点分区,交易决定大小 |
| `dna_store.rs` | 约70行 | 资产DNA存储对接asset_dna模块支持GNACS索引 |
| `state_database_ext.rs` | 约60行 | 状态数据库扩展含宪法条款引用和GNACS状态索引 |
### 3.4 更新文件
| 文件 | 说明 |
|------|------|
| `mod.rs` | 追加新模块声明block_store, dna_store, state_database_ext |
---
## 四、GNACS 编码体系说明
本次存储层设计与 GNACS Pro V2.048位全球原生资产链统一分类标准完全兼容
- **dna_store.rs**:支持按 GNACS 编码检索资产 DNA
- **state_database_ext.rs**`GNACSStateIndex` 提供 GNACS 编码到状态键的快速索引
- **evidence_storage.rs**:存证记录中包含 `related_gnacs` 字段,关联具体资产
---
## 五、Git 提交记录
- **提交哈希**: d8cc65b
- **提交信息**: feat(l3-storage): 补全存储层骨架代码
- **变更统计**: 7 files changed, 521 insertions(+)
---
## 六、后续工作建议
1. **RocksDB 集成**:当前 `state_database.rs` 使用 HashMap 内存实现,建议后续集成 RocksDB 持久化
2. **GNACS V2.0 适配器**`gnacs_index.rs` 需要实现白皮书 V2.0 的 48 位字符串格式与现有 u64 编码之间的转换
3. **预言机状态更新**`evidence_storage.rs` 中的 `real_time_status` 字段需要与 L4 AI 层的预言机服务对接
4. **区块压缩**`archive_storage.rs` 中的压缩实现需要集成实际的压缩库(如 zstd