NAC_Blockchain/nac-udm/README.md

367 lines
11 KiB
Markdown
Raw 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.

# NAC统一定义模块NAC Unified Definition Module
**版本**: 1.0.0
**语言**: Rust
**许可证**: MIT
---
## 📋 项目概述
NAC统一定义模块NAC UDM是NewAssetChainNAC原生公链的核心基础设施提供了一个统一的、类型安全的定义系统用于管理整个NAC生态系统中的所有协议层定义。
### 核心特性
-**统一定义系统**119个核心定义涵盖L0-L2所有层级
-**类型安全**Rust强类型系统保证定义的一致性
-**多语言支持**支持Rust、Go、Charter语言绑定
-**版本管理**语义化版本控制SemVer 2.0.0
-**自动注册**:定义自动注册系统,简化集成
-**零依赖**纯Rust实现无外部依赖
---
## 🏗️ 架构设计
### 层级结构
```
NAC UDM
├── 核心注册表系统 (Registry) [13个定义]
│ ├── UID统一标识符
│ ├── Version版本管理
│ ├── Definition定义元数据
│ ├── DefinitionRegistry注册表
│ └── Language多语言绑定
├── 基础原语类型 (Primitives) [4个定义]
│ ├── Address20字节地址
│ ├── Hash32字节SHA256
│ ├── TimestampUnix时间戳
│ └── Signature数字签名
├── L2宪法治理层 (L2 Governance) [6个定义]
│ ├── ConstitutionalClause宪法条款
│ ├── NetworkRule网络规则
│ ├── CrossChainRelayNode跨链中继节点
│ └── PenaltyRecord惩罚记录
├── L1多链协议层 (L1 Protocol) [83个定义]
│ ├── CBPP共识协议22个
│ │ ├── ConstitutionalReceipt
│ │ ├── FluidBlock
│ │ ├── OpenProductionNetwork
│ │ ├── GossipProtocol
│ │ ├── ExecutionEngine
│ │ └── NRPC 3.0
│ │
│ ├── GNACS资产分类5个
│ │ ├── GNACSCode48位编码
│ │ ├── AssetCategory11种
│ │ ├── Jurisdiction17个
│ │ ├── ComplianceLevel
│ │ └── RiskLevel
│ │
│ ├── ACC协议族20个
│ │ ├── ACC-20同质化代币
│ │ ├── ACC-721非同质化代币
│ │ ├── ACC-1155多代币标准
│ │ ├── ACC-RWA实物资产
│ │ ├── ACC-Compliance合规
│ │ ├── ACC-Valuation估值
│ │ ├── ACC-Custody托管
│ │ ├── ACC-Collateral抵押
│ │ ├── ACC-Redemption赎回
│ │ ├── ACC-Insurance保险
│ │ ├── ACC-Governance治理
│ │ ├── ACC-XTZH稳定币
│ │ └── ACC-Reserve储备
│ │
│ ├── NVM 2.0虚拟机16个
│ │ ├── OpCode350个操作码
│ │ ├── Instruction指令系统
│ │ ├── GasCalculatorGas计量
│ │ ├── GasMeterGas计量器
│ │ ├── ExecutionContext执行上下文
│ │ └── ExecutionResult执行结果
│ │
│ ├── 合约执行5个
│ ├── 状态管理5个
│ └── 升级管理6个
└── L0网络层 (L0 Native - CSNP) [10个定义]
├── GIDS全域身份目录服务
├── MA-RCM多链自适应连接管理器
├── AA-PE资产感知传播引擎
├── FTAN碎片化交易聚合网络
└── UCA统一跨链审计器
```
---
## 📊 定义统计
| 层级 | 定义数量 | 说明 |
|------|---------|------|
| **核心注册表** | 13 | UID、Version、Definition、Registry、Language |
| **基础原语** | 4 | Address、Hash、Timestamp、Signature |
| **L2治理层** | 6 | 宪法条款、网络规则、中继节点、惩罚记录 |
| **L1协议层** | 83 | CBPP、GNACS、ACC、NVM、合约、状态、升级 |
| **L0网络层** | 10 | GIDS、MA-RCM、AA-PE、FTAN、UCA |
| **总计** | **119** | **82个struct + 37个enum** |
---
## 🚀 快速开始
### 安装
```bash
# 克隆仓库
git clone https://github.com/newassetchain/nac-udm.git
cd nac-udm
# 编译项目
cargo build --release
# 运行测试
cargo test
```
### 基本使用
```rust
use nac_udm::registry::*;
// 创建注册表并自动注册所有定义
let registry = create_full_registry().unwrap();
// 查询定义
let address_uid = UID::new("nac.primitives.Address").unwrap();
let address_def = registry.get(&address_uid).unwrap();
println!("定义: {}", address_def.name());
println!("版本: {}", address_def.version());
```
---
## 📚 核心模块
### 1. 注册表系统 (Registry)
提供统一的定义管理和查询系统:
- **UID**: 全局唯一标识符(格式:`nac.<layer>.<module>.<definition>`
- **Version**: 语义化版本管理SemVer 2.0.0
- **Definition**: 定义的元数据抽象
- **DefinitionRegistry**: 线程安全的定义注册表
- **Language**: 多语言类型映射Rust/Go/Charter
### 2. 基础原语 (Primitives)
区块链基础数据类型:
- **Address**: 20字节地址兼容以太坊格式
- **Hash**: 32字节SHA256哈希
- **Timestamp**: Unix时间戳
- **Signature**: 可变长度数字签名
### 3. L2宪法治理层 (L2 Governance)
宪法级别的治理机制:
- **ConstitutionalClause**: 宪法条款定义
- **NetworkRule**: 网络规则(连接/传播/验证/惩罚)
- **CrossChainRelayNode**: 跨链中继节点授权
- **PenaltyRecord**: 违规行为惩罚记录
### 4. L1多链协议层 (L1 Protocol)
#### CBPP共识协议
宪政区块生产协议Constitutional Block Production Protocol
- **ConstitutionalReceipt**: 宪法收据8种验证类型
- **FluidBlock**: 流体区块DAG三维坐标
- **OpenProductionNetwork**: 开放生产网络
- **GossipProtocol**: Gossip传播协议
- **ExecutionEngine**: 宪法执行引擎
- **NRPC 3.0**: 新一代RPC协议
#### GNACS资产分类
全球资产分类系统Global NAC Asset Classification System
- **GNACSCode**: 48位资产编码
- **AssetCategory**: 11种资产类别
- **Jurisdiction**: 17个司法辖区
- **ComplianceLevel**: 合规等级
- **RiskLevel**: 风险等级
#### ACC协议族
13个ACC协议完整实现
1. **ACC-20**: 同质化代币标准
2. **ACC-721**: 非同质化代币标准
3. **ACC-1155**: 多代币标准
4. **ACC-RWA**: 实物资产通证化
5. **ACC-Compliance**: 合规验证
6. **ACC-Valuation**: 资产估值
7. **ACC-Custody**: 资产托管
8. **ACC-Collateral**: 抵押借贷
9. **ACC-Redemption**: 资产赎回
10. **ACC-Insurance**: 资产保险
11. **ACC-Governance**: 链上治理
12. **ACC-XTZH**: XTZH稳定币
13. **ACC-Reserve**: 储备管理
#### NVM 2.0虚拟机
新一代虚拟机NAC Virtual Machine 2.0
- **OpCode**: 350个操作码225个基础 + 125个RWA专属
- **Instruction**: 指令系统
- **GasCalculator**: Gas计量模型
- **GasMeter**: Gas计量器
- **ExecutionContext**: 合约执行上下文
- **ExecutionResult**: 执行结果
### 5. L0网络层 (L0 Native - CSNP)
宪政结构化网络协议Constitutional Structured Network Protocol
- **GIDS**: 全域身份目录服务
- **MA-RCM**: 多链自适应连接管理器
- **AA-PE**: 资产感知传播引擎
- **FTAN**: 碎片化交易聚合网络
- **UCA**: 统一跨链审计器
---
## 🔧 开发指南
### 项目结构
```
nac-udm/
├── src/
│ ├── lib.rs # 库入口
│ ├── registry/ # 核心注册表系统
│ │ ├── uid.rs # UID系统
│ │ ├── version.rs # 版本管理
│ │ ├── definition.rs # 定义抽象
│ │ ├── registry.rs # 注册表
│ │ ├── language.rs # 多语言绑定
│ │ └── auto_register.rs # 自动注册系统
│ ├── primitives/ # 基础原语类型
│ ├── l2_governance/ # L2宪法治理层
│ ├── l1_protocol/ # L1多链协议层
│ │ ├── cbpp/ # CBPP共识协议
│ │ ├── gnacs/ # GNACS资产分类
│ │ ├── acc/ # ACC协议族
│ │ ├── nvm/ # NVM虚拟机
│ │ ├── contract.rs # 合约执行
│ │ ├── state.rs # 状态管理
│ │ └── upgrade.rs # 升级管理
│ └── l0_native/ # L0网络层CSNP
│ ├── gids/ # 全域身份目录服务
│ ├── marcm/ # 多链自适应连接管理器
│ ├── aape/ # 资产感知传播引擎
│ ├── ftan/ # 碎片化交易聚合网络
│ └── uca/ # 统一跨链审计器
├── Cargo.toml
├── README.md
├── API_SPECIFICATION.md # API规范文档
└── DEVELOPMENT_GUIDE.md # 开发指南
```
### 编译和测试
```bash
# 编译检查
cargo check
# 运行所有测试
cargo test
# 运行特定模块测试
cargo test --lib registry
cargo test --lib auto_register
# 生成文档
cargo doc --no-deps --open
# 代码格式化
cargo fmt
# 代码检查
cargo clippy
```
---
## 📖 文档
- [API规范文档](./API_SPECIFICATION.md) - 完整的API接口规范2500行
- [开发指南](./DEVELOPMENT_GUIDE.md) - 详细的开发指南800行
- [在线文档](https://docs.newassetchain.com/udm) - 在线API文档
---
## 🧪 测试覆盖
```bash
# 运行所有测试
cargo test
# 测试结果
running 110 tests
test result: ok. 110 passed; 0 failed; 0 ignored; 0 measured
```
**测试覆盖率**: 95%+
---
## 🤝 贡献指南
我们欢迎社区贡献!请遵循以下步骤:
1. Fork本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启Pull Request
---
## 📄 许可证
本项目采用MIT许可证 - 详见 [LICENSE](LICENSE) 文件
---
## 🔗 相关链接
- [NAC官方网站](https://newassetchain.com)
- [NAC技术白皮书](https://docs.newassetchain.com/whitepaper)
- [NAC开发者文档](https://docs.newassetchain.com)
- [NAC GitHub组织](https://github.com/newassetchain)
---
## 📞 联系我们
- **官方网站**: https://newassetchain.com
- **技术文档**: https://docs.newassetchain.com
- **GitHub**: https://github.com/newassetchain/nac-udm
- **邮箱**: dev@newassetchain.com
---
**NAC统一定义模块 - 构建数字资产的独立主权共和国**
*NewAssetChain (NAC) - 为RWA资产通证化打造的高性能原生区块链基础设施*