NAC_Blockchain/nac-cee
NAC Admin fe8f935bab Issue #75/76/77: Tier3辖区(225测试)+跨版本兼容检测(6测试)+NAC_Lens路由层(8测试)
Issue #75: 实现10个Tier3新兴市场辖区(BR/IN/TH/ID/NG/MX/ZA/TR/SA/RU)
- 每辖区独立TxContext数据结构和ConstitutionalValidator
- 225个测试全部通过(Tier1:55+Tier2:100+Tier3:70)
- in模块重命名为in_jurisdiction避免Rust关键字冲突

Issue #76: 实现辖区规则跨版本兼容性检测(nac-jurisdiction-compat)
- CompatibilityChecker支持4种兼容性级别
- 检测AML阈值/KYC等级/资产类型/监管机构变更
- 6个测试全部通过

Issue #77: NAC_Lens辖区路由层集成(nac-lens-jurisdiction-router)
- 支持单辖区/跨辖区/规则更新广播/CR广播/节点注册5种消息类型
- 跨辖区各自独立出具CR(参与即是共识,非多签)
- 规则更新须CA签名立即生效(约法即是治法)
- 8个测试全部通过

NRPC->NAC_Lens: 更新nac-api-server/nac-sdk/nac-asset-onboarding/nac-udm注释
修复Issue#74测试隔离问题(并发测试目录污染)

总测试: 252个全部通过
CBPP合规: 约法即是治法|宪法即是规则|参与即是共识|节点产生区块交易决定区块大小
2026-03-07 15:28:13 +08:00
..
docs 同步所有模块更新 2026-02-18 23:28:26 -05:00
src Issue #75/76/77: Tier3辖区(225测试)+跨版本兼容检测(6测试)+NAC_Lens路由层(8测试) 2026-03-07 15:28:13 +08:00
.gitignore Initial commit: NAC公链核心模块 - 生产级别代码 2026-02-16 19:19:43 -05:00
Cargo.lock Issue #75/76/77: Tier3辖区(225测试)+跨版本兼容检测(6测试)+NAC_Lens路由层(8测试) 2026-03-07 15:28:13 +08:00
Cargo.toml feat: Issue #25 - 为所有模块增加统一的升级机制 2026-02-19 01:45:46 -05:00
README.md 同步所有模块更新 2026-02-18 23:28:26 -05:00

README.md

NAC宪法执行引擎 (CEE)

Constitutional Execution Engine for NAC Blockchain

概述

宪法执行引擎Constitutional Execution Engine, CEE是NAC公链宪法系统的核心组件负责执行宪法规则、验证交易和区块的合宪性并生成执行收据。

核心功能

1. 规则引擎

  • 规则解析器 (RuleParser): 解析宪法条款为可执行规则
  • 规则执行器 (RuleExecutor): 执行规则并返回结果
  • 规则缓存 (RuleCache): LRU缓存提高性能

2. 验证系统

  • 交易验证器 (TransactionValidator): 验证交易合宪性
  • 区块验证器 (BlockValidator): 验证区块合宪性
  • 状态验证器 (StateValidator): 验证状态变更合宪性
  • 升级验证器 (UpgradeValidator): 验证升级提案合宪性

3. 收据系统

  • 收据生成器 (ReceiptGenerator): 生成执行收据
  • 收据存储 (ReceiptStorage): 存储和查询收据

4. 集成模块

  • nac-constitution-state 集成
  • nac-constitution-clauses 集成
  • nac-constitution-macros 集成
  • 与 CBPP 共识引擎集成

使用示例

验证交易

use nac_cee::{ConstitutionalExecutionEngine, Transaction, Rule};

let mut engine = ConstitutionalExecutionEngine::new();

let tx = Transaction {
    hash: Hash::zero(),
    from: Address::new([1u8; 32]),
    to: Address::new([2u8; 32]),
    amount: 1000,
    nonce: 1,
    timestamp: 1000000,
    data: vec![],
};

let rules = vec![]; // 加载宪法规则
let receipt = engine.validate_transaction(&tx, &rules)?;

if receipt.validation_result.passed {
    println!("交易验证通过");
} else {
    println!("交易验证失败: {:?}", receipt.validation_result.violated_clauses);
}

验证区块

use nac_cee::{ConstitutionalExecutionEngine, Block};

let mut engine = ConstitutionalExecutionEngine::new();

let block = Block {
    hash: Hash::zero(),
    parent_hash: Hash::zero(),
    number: 1,
    timestamp: 1000000,
    proposer: Address::zero(),
    transactions: vec![],
    state_root: Hash::zero(),
};

let rules = vec![]; // 加载宪法规则
let receipt = engine.validate_block(&block, &rules)?;

创建和执行规则

use nac_cee::{Rule, RuleType, Condition, Operator, Value, Action, RuleExecutor};
use std::collections::HashMap;

// 创建规则
let mut rule = Rule::new(
    1,
    100,
    RuleType::Transaction,
    "金额限制规则".to_string(),
    "限制单笔交易金额不超过10000".to_string(),
);

rule.add_condition(Condition::new(
    "amount".to_string(),
    Operator::LessThanOrEqual,
    Value::UnsignedInteger(10000),
));

rule.add_action(Action::Allow);

// 执行规则
let mut executor = RuleExecutor::new();
let mut context = HashMap::new();
context.insert("amount".to_string(), Value::UnsignedInteger(5000));

let result = executor.execute(&rule, &context)?;
println!("规则执行结果: {:?}", result);

使用规则缓存

use nac_cee::{RuleCache, Rule};

let mut cache = RuleCache::new(1000, 3600); // 最大1000条TTL 1小时

// 插入规则
cache.insert(rule);

// 获取规则
if let Some(cached_rule) = cache.get(rule_id) {
    println!("缓存命中");
}

// 查看缓存统计
let stats = cache.stats();
println!("缓存命中率: {:.2}%", stats.hit_rate * 100.0);

架构设计

详见 docs/ARCHITECTURE.md

性能指标

  • 单笔交易验证延迟: < 10ms
  • 批量验证TPS: > 1000
  • 规则缓存命中率: > 90%
  • 并行验证支持: 是

配置

[cee]
rule_cache_size = 1000
rule_cache_ttl = 3600
max_parallel_validations = 8
batch_size = 100
execution_timeout = 1000
max_recursion_depth = 100
max_memory_usage = 104857600

测试

运行所有测试:

cargo test

运行特定模块测试:

cargo test engine::
cargo test validator::
cargo test receipt::

测试覆盖率

  • 规则引擎: 38个测试
  • 验证系统: 20个测试
  • 收据系统: 8个测试
  • 主引擎: 3个测试
  • 总计: 64个测试100%通过

依赖

  • nac-udm: NAC统一数据模型
  • serde: 序列化/反序列化
  • serde_json: JSON支持
  • thiserror: 错误处理

错误处理

pub enum CeeError {
    ClauseNotFound(u64),
    ValidationFailed(String),
    RuleParseError(String),
    ExecutionError(String),
    StorageError(String),
    IntegrationError(String),
}

安全考虑

  • 规则执行超时保护1秒
  • 递归深度限制100层
  • 内存使用限制100MB
  • 权限控制和签名验证
  • 收据不可篡改

未来扩展

  • 智能合约集成
  • 跨链验证支持
  • AI辅助验证
  • 性能优化

许可证

Copyright © 2024 NAC Foundation