NAC_Blockchain/nac-cee/docs/ARCHITECTURE.md

5.1 KiB
Raw Permalink Blame History

NAC宪法执行引擎(CEE)架构设计

1. 概述

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

2. 核心组件

2.1 规则引擎 (Rule Engine)

职责: 解析、执行和缓存宪法规则

核心模块:

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

关键数据结构:

pub struct Rule {
    pub id: u64,
    pub clause_id: u64,
    pub rule_type: RuleType,
    pub conditions: Vec<Condition>,
    pub actions: Vec<Action>,
}

pub enum RuleType {
    TransactionRule,
    BlockRule,
    StateRule,
    UpgradeRule,
}

pub struct Condition {
    pub field: String,
    pub operator: Operator,
    pub value: Value,
}

pub enum Operator {
    Equal,
    NotEqual,
    GreaterThan,
    LessThan,
    Contains,
    Matches,
}

2.2 验证系统 (Validation System)

职责: 验证交易、区块、状态和升级的合宪性

核心模块:

  • TransactionValidator: 验证交易是否符合宪法规则
  • BlockValidator: 验证区块是否符合宪法规则
  • StateValidator: 验证状态转换是否符合宪法规则
  • UpgradeValidator: 验证升级提案是否符合宪法规则

验证流程:

  1. 加载相关宪法条款
  2. 解析条款为规则
  3. 执行规则验证
  4. 生成验证结果
  5. 记录验证收据

2.3 收据系统 (Receipt System)

职责: 生成、存储和查询宪法执行收据

核心模块:

  • ReceiptGenerator: 生成执行收据
  • ReceiptStorage: 存储收据到持久化存储
  • ReceiptQuery: 查询历史收据

收据数据结构:

pub struct ConstitutionalReceipt {
    pub receipt_id: Hash,
    pub execution_type: ExecutionType,
    pub target_hash: Hash,
    pub clause_ids: Vec<u64>,
    pub validation_result: ValidationResult,
    pub timestamp: u64,
    pub executor: Address,
}

pub enum ExecutionType {
    Transaction,
    Block,
    State,
    Upgrade,
}

pub struct ValidationResult {
    pub passed: bool,
    pub violated_clauses: Vec<u64>,
    pub warnings: Vec<String>,
    pub details: String,
}

2.4 集成模块 (Integration)

职责: 与其他NAC宪法模块集成

集成模块:

  • StateIntegration: 与nac-constitution-state集成
  • ClauseIntegration: 与nac-constitution-clauses集成
  • MacroIntegration: 与nac-constitution-macros集成
  • CbppIntegration: 与CBPP共识集成

3. 执行流程

3.1 交易验证流程

1. 接收交易 → 2. 加载相关条款 → 3. 解析规则 → 4. 执行验证 → 5. 生成收据 → 6. 返回结果

3.2 区块验证流程

1. 接收区块 → 2. 验证区块头 → 3. 验证所有交易 → 4. 验证状态转换 → 5. 生成收据 → 6. 返回结果

3.3 状态验证流程

1. 接收状态变更 → 2. 加载状态规则 → 3. 验证变更合法性 → 4. 生成收据 → 5. 返回结果

3.4 升级验证流程

1. 接收升级提案 → 2. 加载升级条款 → 3. 验证提案合宪性 → 4. 验证投票过程 → 5. 生成收据 → 6. 返回结果

4. 性能优化

4.1 规则缓存

  • 使用LRU缓存存储已解析的规则
  • 缓存大小: 1000条规则
  • 缓存过期时间: 1小时

4.2 并行验证

  • 交易验证支持并行处理
  • 使用Rayon并行库
  • 最大并行度: CPU核心数

4.3 批量处理

  • 支持批量验证交易
  • 批量大小: 100笔交易
  • 批量生成收据

5. 错误处理

5.1 错误类型

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

5.2 错误恢复

  • 验证失败不影响其他交易
  • 规则解析失败使用默认规则
  • 存储失败记录日志并重试

6. 安全考虑

6.1 权限控制

  • 只有授权地址可以修改宪法规则
  • 验证执行需要签名
  • 收据不可篡改

6.2 防御措施

  • 规则执行超时保护1秒
  • 递归深度限制100层
  • 内存使用限制100MB

7. 测试策略

7.1 单元测试

  • 规则解析测试
  • 规则执行测试
  • 验证逻辑测试
  • 收据生成测试

7.2 集成测试

  • 与状态管理集成测试
  • 与条款管理集成测试
  • 与CBPP共识集成测试

7.3 性能测试

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

8. 部署考虑

8.1 配置项

[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

8.2 监控指标

  • 验证成功率
  • 验证延迟
  • 规则缓存命中率
  • 收据生成速度
  • 错误率

9. 未来扩展

9.1 智能合约集成

  • 支持Charter智能合约调用宪法规则
  • 提供宪法验证预编译合约

9.2 跨链验证

  • 支持跨链交易的宪法验证
  • 与桥接模块集成

9.3 AI辅助验证

  • 集成AI合规系统
  • 智能风险评估