//! # NAC Unified Definition Module (UDM) //! //! NAC统一定义模块(UDM)是NewAssetChain区块链生态系统的单一真理来源(Single Source of Truth), //! 统一管理所有类型定义、函数签名、常量、版本信息和协议规范。 //! //! ## 核心特性 //! //! - ❌ **不使用任何ERC标准**(ERC-20、ERC-721、ERC-1155等) //! - ❌ **不继承以太坊或其他链的实现** //! - ❌ **不是P2P网络** - 使用CSNP宪政结构化网络协议 //! - ✅ **100% NAC原生设计** //! - ✅ **专注于RWA(真实世界资产)应用场景** //! - ✅ **基于CBPP宪政共识,不需要投票治理** //! //! ## NAC 5层架构体系 //! //! NAC采用5层架构(L0-L5),从底层基础设施到顶层应用,层层递进: //! //! ### L5: 应用层 (Application Layer) //! //! 最高层级,提供用户交互和业务应用: //! - **DApps**: 去中心化应用(资产交易、资产管理、资产估值等) //! - **钱包**: 用户资产管理工具 //! - **浏览器**: 区块链数据查询和可视化 //! - **Charter合约**: 智能合约执行环境 //! //! ### L4: AI层 (AI Layer) //! //! AI服务层,统一管理所有AI功能(NAC是AI公链): //! - **宪法执行引擎(CEE)**: AI驱动的宪法规则执行 //! - **AI合规审批**: KYC/AML自动审核、欺诈检测 //! - **AI估值**: 资产估值、风险评估、市场预测 //! - **XTZH AI**: 宏观感知AI、汇率预测 //! - **AI预言机**: 多节点AI共识、zkML证明 //! - **AI治理**: 提案分析、投票建议、审计AI //! //! ### L3: 存储层 (Storage Layer) //! //! 独立的存储层,负责所有持久化数据的存储与证明: //! - **状态数据库**: 账户状态、资产状态、合约状态 //! - **Merkle树**: 状态证明、交易证明 //! - **归档存储**: 历史区块、历史交易 //! - **证据存证**: 法典、合规证据、审计日志 //! //! ### L2: 宪法规则层 (Constitutional Governance Layer) //! //! 宪法治理层,定义整个系统的治理规则(**不是投票治理,而是规则定义层**): //! - **CNNL宪法语言**: 宪法条款的定义语言 //! - **宪法状态机**: 宪法规则的执行引擎 //! - **辖区协商接口**: 多司法辖区的协商机制 //! - **法典管理**: 宪法法典、条款法典、主权法典、AI治理法典等 //! //! ### L1: 协议层 (Protocol Layer) //! //! 核心协议层,实现"宪法即共识": //! - **CBPP**: 宪政区块生产协议(宪法收据CR、OPN、FBM、RVGP) //! - **CSNP**: 宪政结构化网络协议(GIDS、MA-RCM、AA-PE、FTAN、UCA) //! - **NVM**: 虚拟机层(225个基础操作码 + 125个RWA专属指令) //! - **ACC**: 13个原生资产协议(ACC-20, ACC-721, ACC-1155, ACC-RWA等) //! - **XTZH**: 资产稳定币系统(SDR锚定 + 黄金储备) //! //! ### L0: 基础设施层 (Foundation Layer) //! //! 最底层,提供所有上层依赖的基础设施(包含4个子层): //! - **密码学子层**: Hash(SHA3-384)、签名(Ed25519)、随机数、加密 //! - **网络子层**: P2P通信、Gossip协议、节点发现 //! - **序列化子层**: nac_serde(NAC专用序列化) //! - **存储子层**: 持久化接口(为L3存储层提供底层接口) //! //! ## 设计哲学 //! //! "宪法治下,节点产生区块,参与即是共识,交易扩张区块的大小和高度。" //! //! ## 快速开始 //! //! ```rust //! use nac_udm::primitives::{Hash, Timestamp, Signature}; //! use nac_udm::l1_protocol::cbpp::ConstitutionalReceipt; //! use nac_udm::l1_protocol::gnacs::{GNACSCode, AssetCategory, Jurisdiction, ComplianceLevel, RiskLevel}; //! //! // 创建宪法收据 //! let transaction_hash = Hash::sha3_384(b"tx"); //! let constitutional_hash = Hash::sha3_384(b"constitution"); //! let execution_result_hash = Hash::sha3_384(b"result"); //! let issuer_pubkey = vec![1u8; 33]; //! //! let mut receipt = ConstitutionalReceipt::new( //! transaction_hash, //! constitutional_hash, //! execution_result_hash, //! issuer_pubkey, //! 3600, // validity_window //! ); //! //! // 签名收据 //! receipt.sign(Signature::new(vec![0u8; 64])); //! //! // 验证收据 //! let current_time = Timestamp::now(); //! assert!(receipt.verify(current_time, &constitutional_hash)); //! //! // 创建GNACS资产编码(实物资产,中国司法辖区,高合规,低风险) //! let gnacs = GNACSCode::new( //! AssetCategory::Physical, //! 0x01, // 子类别 //! Jurisdiction::CN, //! ComplianceLevel::High, //! RiskLevel::Low, //! ); //! //! // 验证GNACS编码 //! assert!(gnacs.verify_checksum()); //! assert_eq!(gnacs.category(), AssetCategory::Physical); //! assert_eq!(gnacs.jurisdiction(), Jurisdiction::CN); //! println!("GNACS: {}", gnacs.format_readable()); //! ``` #![cfg_attr(not(feature = "std"), no_std)] #![warn(missing_docs)] #![warn(rustdoc::missing_crate_level_docs)] /// 核心注册表系统 pub mod registry; /// 基础原语类型 pub mod primitives; /// 工具函数 pub mod utils; /// L5: 应用层 (Application Layer) - DApps、钱包、浏览器、Charter合约 pub mod l5_application; /// L4: AI层 (AI Layer) - CEE、AI合规、AI估值、XTZH AI、AI预言机 pub mod l4_ai; /// L3: 存储层 (Storage Layer) - 状态数据库、Merkle树、归档存储、证据存证 pub mod l3_storage; /// L2: 宪法规则层 (Constitutional Governance Layer) - CNNL、宪法状态机、法典管理 pub mod l2_governance; /// L1: 协议层 (Protocol Layer) - CBPP、CSNP、NVM、ACC、XTZH pub mod l1_protocol; /// L0: 基础设施层 (Foundation Layer) - 密码学、网络、序列化、存储接口 pub mod l0_native; /// 资产加密DNA管理系统模块 pub mod asset_dna; /// 预导入模块,包含最常用的类型和trait pub mod prelude { pub use crate::registry::{UID, Version, DefinitionRegistry}; pub use crate::primitives::prelude::*; #[allow(unused_imports)] pub use crate::utils::*; pub use crate::l2_governance::*; pub use crate::l1_protocol::*; pub use crate::l0_native::*; } /// UDM版本信息 pub const VERSION: &str = env!("CARGO_PKG_VERSION"); /// UDM名称 pub const NAME: &str = env!("CARGO_PKG_NAME"); /// UDM描述 pub const DESCRIPTION: &str = env!("CARGO_PKG_DESCRIPTION"); /// NAC区块链架构层级(5层架构) #[derive(Debug, Clone, Copy, PartialEq, Eq)] /// ArchitectureLayer pub enum ArchitectureLayer { /// L5: 应用层(DApps、钱包、浏览器、Charter合约) L5Application, /// L4: AI层(CEE、AI合规、AI估值、XTZH AI、AI预言机) L4AI, /// L3: 存储层(状态数据库、Merkle树、归档存储、证据存证) L3Storage, /// L2: 宪法规则层(CNNL、宪法状态机、法典管理) L2Governance, /// L1: 协议层(CBPP、CSNP、NVM、ACC、XTZH) L1Protocol, /// L0: 基础设施层(密码学、网络、序列化、存储接口) L0CSNP, } impl std::fmt::Display for ArchitectureLayer { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { Self::L5Application => write!(f, "L5: Application Layer (DApps, Wallet, Explorer, Charter)"), Self::L4AI => write!(f, "L4: AI Layer (CEE, AI Compliance, AI Valuation)"), Self::L3Storage => write!(f, "L3: Storage Layer (State DB, Merkle Tree, Archive)"), Self::L2Governance => write!(f, "L2: Constitutional Governance Layer (Rule Definition)"), Self::L1Protocol => write!(f, "L1: Multi-Chain Protocol Layer (CBPP Consensus)"), Self::L0CSNP => write!(f, "L0: CSNP Structured Network Layer (Not P2P)"), } } } /// 网络类型 #[derive(Debug, Clone, Copy, PartialEq, Eq)] /// NetworkType pub enum NetworkType { /// CSNP宪政结构化网络(NAC使用) CSNP, /// P2P对等网络(NAC不使用) #[deprecated(note = "NAC does not use P2P network, use CSNP instead")] /// P2P P2P, } impl std::fmt::Display for NetworkType { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { Self::CSNP => write!(f, "CSNP (Constitutional Structured Network Protocol)"), #[allow(deprecated)] Self::P2P => write!(f, "P2P (Peer-to-Peer) - NOT USED IN NAC"), } } } /// 共识类型 #[derive(Debug, Clone, Copy, PartialEq, Eq)] /// ConsensusType pub enum ConsensusType { /// CBPP宪政区块生产协议(NAC使用) CBPP, /// PoS权益证明(NAC不使用) #[deprecated(note = "NAC does not use PoS, use CBPP instead")] /// PoS PoS, /// PoW工作量证明(NAC不使用) #[deprecated(note = "NAC does not use PoW, use CBPP instead")] /// PoW PoW, } impl std::fmt::Display for ConsensusType { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { Self::CBPP => write!(f, "CBPP (Constitutional Block Production Protocol)"), #[allow(deprecated)] Self::PoS => write!(f, "PoS (Proof of Stake) - NOT USED IN NAC"), #[allow(deprecated)] Self::PoW => write!(f, "PoW (Proof of Work) - NOT USED IN NAC"), } } } #[cfg(test)] mod tests { use super::*; #[test] fn test_version() { assert!(!VERSION.is_empty()); assert_eq!(VERSION, "1.0.0"); } #[test] fn test_name() { assert_eq!(NAME, "nac-udm"); } #[test] fn test_architecture_layers() { assert_eq!( ArchitectureLayer::L2Governance.to_string(), "L2: Constitutional Governance Layer (Rule Definition)" ); assert_eq!( ArchitectureLayer::L1Protocol.to_string(), "L1: Multi-Chain Protocol Layer (CBPP Consensus)" ); assert_eq!( ArchitectureLayer::L0CSNP.to_string(), "L0: CSNP Structured Network Layer (Not P2P)" ); } #[test] fn test_network_type() { assert_eq!( NetworkType::CSNP.to_string(), "CSNP (Constitutional Structured Network Protocol)" ); } #[test] fn test_consensus_type() { assert_eq!( ConsensusType::CBPP.to_string(), "CBPP (Constitutional Block Production Protocol)" ); } }