NAC_Blockchain/docs_center/STORAGE_LAYER_001.md

86 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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