//! 常量定义 //! //! 本模块定义XTZH AI系统中所有常量,包括模型参数、数据工程参数、 //! 预言机网络参数等。 // ============================================================================ // 模型架构常量 // ============================================================================ /// 输入特征维度(50维宏观状态向量) pub const INPUT_DIM: usize = 50; /// Transformer编码器层数 pub const TRANSFORMER_LAYERS: usize = 4; /// 注意力头数 pub const ATTENTION_HEADS: usize = 8; /// 嵌入维度 pub const EMBED_DIM: usize = 256; /// 宏观上下文向量维度 pub const CONTEXT_DIM: usize = 128; /// 商品偏离系数维度 pub const COMMODITY_DELTA_DIM: usize = 18; /// 模型总参数量 pub const MODEL_PARAMETERS: usize = 2_100_000; /// 最大约束数量(zkML编译) pub const MAX_CONSTRAINTS: usize = 25_000_000; // ============================================================================ // 特征工程常量 // ============================================================================ /// 全球增长因子维度 pub const GROWTH_FACTOR_DIM: usize = 10; /// 通胀压力因子维度 pub const INFLATION_FACTOR_DIM: usize = 8; /// 货币政策立场维度 pub const MONETARY_POLICY_DIM: usize = 6; /// 风险与不确定性维度 pub const RISK_FACTOR_DIM: usize = 8; /// 实体活动高频代理维度 pub const ACTIVITY_PROXY_DIM: usize = 10; /// 商品市场内部结构维度 pub const COMMODITY_STRUCTURE_DIM: usize = 8; /// 数据更新时间(UTC小时) pub const DATA_UPDATE_HOUR: u32 = 12; /// 数据延迟容忍度(分钟) pub const DATA_DELAY_TOLERANCE_MINUTES: u32 = 5; /// z-score标准化基准期开始年份 pub const NORMALIZATION_START_YEAR: i32 = 2015; /// z-score标准化基准期结束年份 pub const NORMALIZATION_END_YEAR: i32 = 2025; /// 历史数据回溯开始年份 pub const HISTORICAL_DATA_START_YEAR: i32 = 2000; // ============================================================================ // 量化常量 // ============================================================================ /// INT8量化缩放因子 pub const QUANTIZATION_SCALE: f32 = 0.023529; /// INT8量化零点 pub const QUANTIZATION_ZERO_POINT: i8 = 0; /// INT8最小值 pub const INT8_MIN: i8 = -128; /// INT8最大值 pub const INT8_MAX: i8 = 127; // ============================================================================ // 权重约束常量(宪法层) // ============================================================================ /// 货币层权重基准(基点) pub const W_FX_BASE: u32 = 4000; // 40.00% /// 黄金层权重基准(基点) pub const W_AU_BASE: u32 = 1000; // 10.00% /// 商品层权重基准(基点) pub const W_COM_BASE: u32 = 5000; // 50.00% /// 黄金层权重最小值(基点) pub const W_AU_MIN: u32 = 500; // 5.00% /// 黄金层权重最大值(基点) pub const W_AU_MAX: u32 = 2000; // 20.00% /// 权重和(基点) pub const WEIGHT_SUM: u32 = 10000; // 100.00% /// 黄金永续合约信任锚覆盖率(基点) pub const GOLD_TRUST_ANCHOR_COVERAGE: u32 = 12500; // 125.00% // ============================================================================ // 性能指标常量 // ============================================================================ /// 宏观预测R²最小值 pub const MIN_R_SQUARED: f64 = 0.65; /// 单一指数R²最小值 pub const MIN_SINGLE_R_SQUARED: f64 = 0.5; /// XTZH汇率预测RMSE最大值(SDR) pub const MAX_RATE_RMSE: f64 = 0.02; /// 极端情景波动率倍数 pub const EXTREME_VOLATILITY_MULTIPLIER: f64 = 2.0; /// 2008金融危机最大回撤(百分比) pub const MAX_DRAWDOWN_2008: f64 = 15.0; /// 模型推理最大时间(毫秒) pub const MAX_INFERENCE_TIME_MS: u64 = 100; /// ZK证明生成最大时间(秒) pub const MAX_ZK_PROOF_TIME_SECS: u64 = 10; /// TEE推理最大时间(毫秒) pub const MAX_TEE_INFERENCE_TIME_MS: u64 = 500; /// 单元测试覆盖率最小值(百分比) pub const MIN_TEST_COVERAGE: f64 = 80.0; // ============================================================================ // 预言机网络常量 // ============================================================================ /// ZK节点数量 pub const ZK_NODE_COUNT: usize = 3; /// TEE节点数量 pub const TEE_NODE_COUNT: usize = 2; /// 乐观节点数量 pub const OPTIMISTIC_NODE_COUNT: usize = 2; /// 总节点数量 pub const TOTAL_NODE_COUNT: usize = ZK_NODE_COUNT + TEE_NODE_COUNT + OPTIMISTIC_NODE_COUNT; /// 最小有效响应数量 pub const MIN_VALID_RESPONSES: usize = 5; /// 汇率偏差容忍度(基点) pub const RATE_DEVIATION_TOLERANCE_BPS: u32 = 30; // 0.3% /// BLS签名最小节点数 pub const MIN_BLS_SIGNERS: usize = 5; /// Leader选举周期(小时) pub const LEADER_ELECTION_PERIOD_HOURS: u64 = 24; /// Leader超时时间(秒) pub const LEADER_TIMEOUT_SECS: u64 = 30; /// 节点质押金额(XIC) pub const NODE_STAKE_AMOUNT: u64 = 100_000; /// Leader额外质押金额(XIC) pub const LEADER_EXTRA_STAKE_AMOUNT: u64 = 500_000; /// 罚没比例(百分比) pub const SLASHING_PERCENTAGE: f64 = 50.0; // ============================================================================ // 证明系统常量 // ============================================================================ /// Groth16证明大小(字节) pub const GROTH16_PROOF_SIZE: usize = 1216; /// 验证密钥大小(字节) pub const VERIFICATION_KEY_SIZE: usize = 51200; // ~50KB /// 证明密钥大小(字节) pub const PROVING_KEY_SIZE: usize = 1_258_291_200; // ~1.2GB /// 链上验证Gas成本 pub const VERIFICATION_GAS_COST: u64 = 20_000; /// TEE认证报告大小(字节) pub const TEE_ATTESTATION_SIZE: usize = 4096; // ~4KB /// Ed25519签名大小(字节) pub const ED25519_SIGNATURE_SIZE: usize = 64; // ============================================================================ // 数据格式常量 // ============================================================================ /// 汇率定点数精度 pub const RATE_PRECISION: u64 = 1_000_000; // 1e6 /// 权重基点精度 pub const WEIGHT_BASIS_POINTS: u32 = 10_000; // 1e4 /// 商品偏离系数最小值 pub const DELTA_MIN: i8 = -30; /// 商品偏离系数最大值 pub const DELTA_MAX: i8 = 30; // ============================================================================ // API常量 // ============================================================================ /// gRPC默认端口 pub const GRPC_DEFAULT_PORT: u16 = 50051; /// JSON-RPC默认端口 pub const JSON_RPC_DEFAULT_PORT: u16 = 8545; /// Prometheus指标端口 pub const METRICS_PORT: u16 = 9090; /// 健康检查端点 pub const HEALTH_CHECK_ENDPOINT: &str = "/healthz"; /// API请求速率限制(每秒) pub const API_RATE_LIMIT_PER_SEC: u32 = 100; /// API超时时间(秒) pub const API_TIMEOUT_SECS: u64 = 30; // ============================================================================ // 文件路径常量 // ============================================================================ /// 模型文件名 pub const MODEL_FILE_NAME: &str = "xtzh_model_v1.0.onnx"; /// INT8量化模型文件名 pub const MODEL_INT8_FILE_NAME: &str = "xtzh_model_v1.0.int8.onnx"; /// FP16模型文件名 pub const MODEL_FP16_FILE_NAME: &str = "xtzh_model_v1.0.fp16.onnx"; /// 证明密钥文件名 pub const PROVING_KEY_FILE_NAME: &str = "circuit.zkey"; /// 验证密钥文件名 pub const VERIFICATION_KEY_FILE_NAME: &str = "verification_key.json"; /// 配置文件名 pub const CONFIG_FILE_NAME: &str = "xtzh_config.toml"; // ============================================================================ // 测试 // ============================================================================ #[cfg(test)] mod tests { use super::*; #[test] fn test_feature_dimensions() { assert_eq!( GROWTH_FACTOR_DIM + INFLATION_FACTOR_DIM + MONETARY_POLICY_DIM + RISK_FACTOR_DIM + ACTIVITY_PROXY_DIM + COMMODITY_STRUCTURE_DIM, INPUT_DIM ); } #[test] fn test_weight_sum() { assert_eq!(W_FX_BASE + W_AU_BASE + W_COM_BASE, WEIGHT_SUM); } #[test] fn test_node_count() { assert_eq!( ZK_NODE_COUNT + TEE_NODE_COUNT + OPTIMISTIC_NODE_COUNT, TOTAL_NODE_COUNT ); } #[test] fn test_gold_weight_constraints() { assert!(W_AU_MIN >= 500); assert!(W_AU_MAX <= 2000); assert!(W_AU_BASE >= W_AU_MIN); assert!(W_AU_BASE <= W_AU_MAX); } #[test] fn test_quantization_constants() { assert_eq!(QUANTIZATION_ZERO_POINT, 0); assert!(QUANTIZATION_SCALE > 0.0); } }