白皮书
技术实现
六、技术实现
6.1 区块链架构
Solana 选型理由:
| 维度 | Solana | Ethereum | 选择 Solana 的原因 |
|---|---|---|---|
| TPS | 65,000+ | 15-30 | 高频交易场景需求 |
| 确认时间 | 400ms | 12s | 用户体验优先 |
| 交易费用 | ~$0.00025 | $1-50 | 微支付场景可行 |
| 智能合约 | Rust/Anchor | Solidity | 性能更优 |
链上组件:
| 合约 | Program ID | 组件 |
|---|---|---|
| MCC Token | FDRy2jpKqXD5pp8Xj2arEbEm78nCEcRnKCmGxBTiFWxr | Token Mint, Mining Config PDA, Team Vault PDA, Station Vault PDA, Managers Pool PDA |
| MCD Token | J9UwVmFEr7ujLcp19T8nqpDnpBLcDzpL4cpwh5TMSd36 | Token Mint, Vault PDAs |
PDA(程序派生地址)设计:
| PDA | Seed | 用途 |
|---|---|---|
| Founder Vault | b"founder_vault" | 创始金库,初始 100% 代币 |
| Team Vault | b"team_vault" | 团队金库,铸造 10% |
| Station Vault | b"station_vault" | 领地金库,铸造 30%(转 MCD) |
| Managers Pool | b"managers_pool" | 政务官池,铸造 10% |
| Mining Config | b"mining_config" | 铸造配置(产值比例、总产出) |
2026-01-20 更新: 移除 User Vault PDA。用户 50% MCC 直接发送到用户外部钱包 (ATA)。
6.2 合约指令集
MCC Token 合约指令:
| 指令 | 功能 | 状态 |
|---|---|---|
initialize_token | 创建 Token Mint | ✅ 已执行 |
initialize_mining_config | 初始化铸造配置 | ✅ 已执行 |
initialize_vaults | 初始化各 Vault | ✅ 已执行 |
process_mining_payment | 处理铸造付款 | ✅ 可用 |
admin_mining_reward | 管理员铸造奖励 | ✅ 可用 |
update_mcc_price | 更新价格 | ✅ 可用 |
注:
initialize_user_vault和withdraw已于 2026-01-20 移除。用户 MCC 直接发送到外部钱包。
铸造流程链上实现:
rust
// 简化的铸造分配逻辑
pub fn process_mining(
ctx: Context<ProcessMining>,
usdc_amount: u64,
) -> Result<()> {
let mining_config = &ctx.accounts.mining_config;
let mcc_price = mining_config.current_price;
let multiplier = get_current_multiplier(mining_config.total_mined);
// 计算 MCC 产出
let mcc_amount = (usdc_amount / mcc_price) * multiplier;
// 分配到各 Vault (50-10-10-30)
let user_share = mcc_amount * 50 / 100;
let team_share = mcc_amount * 10 / 100;
let managers_share = mcc_amount * 10 / 100;
let station_share = mcc_amount * 30 / 100; // → MCD
// 执行转账...
Ok(())
}
6.3 统一认证系统
Microcosm 实现了完整的 OAuth 2.0 统一认证:
认证流程:
- 生态应用(如 Double Helix)重定向用户到 Microcosm OAuth 授权页面
- 用户在 Microcosm 完成登录授权
- Microcosm 返回 Access Token 给生态应用
- 生态应用使用 Token 调用 Microcosm API
API 端点:
| 端点 | 方法 | 说明 |
|---|---|---|
/login?oauth=true | GET | OAuth 授权页面 |
/api/oauth/token | POST | Token 交换/刷新 |
/api/oauth/introspect | POST | Token 内省验证 |
Token 格式:
json
{
"access_token": "eyJhbGciOiJSUzI1...",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "dGhpcyBpcyBhIHJl...",
"scope": "read write"
}
Introspect 响应:
json
{
"active": true,
"uid": "firebase_uid_xxx",
"email": "user@example.com",
"role": "miner",
"unit_id": "station_001",
"exp": 1704067200
}
Token 内省双重验证:
Microcosm Portal 使用 Firebase 直接认证,但生态项目使用 OAuth 认证。introspect 端点需要同时支持两种 Token 类型:
| 调用方 | Token 类型 | Header | 验证方式 |
|---|---|---|---|
| Portal 内部服务 | Firebase ID Token | 需要携带 Internal-Secret | Firebase Admin SDK |
| 生态项目 | OAuth Access Token | 不需要 | 数据库查询 |
6.4 数据存储架构
PostgreSQL 数据库设计:
| 数据库 | 用途 | 主要表 |
|---|---|---|
| microcosm_prod | Microcosm 核心数据 | users, organizations, mcc_mining_records |
| doublehelix_prod | Double Helix 交易数据 | strategies, trading_history, api_accounts |
核心数据表:
sql
-- 用户表
CREATE TABLE users (
uid VARCHAR(100) PRIMARY KEY, -- Firebase UID
email VARCHAR(255) UNIQUE,
role VARCHAR(50) DEFAULT 'recruit',
unit_id VARCHAR(100),
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);
-- 铸造记录表
CREATE TABLE mcc_mining_records (
id SERIAL PRIMARY KEY,
uid VARCHAR(100) REFERENCES users(uid),
contribution_usdt DECIMAL(18,6),
mcc_mined DECIMAL(18,9),
mining_date DATE,
status VARCHAR(20) DEFAULT 'pending'
);
-- 链上发放记录
CREATE TABLE mcc_minting_history (
id SERIAL PRIMARY KEY,
uid VARCHAR(100) REFERENCES users(uid),
amount DECIMAL(18,9), -- 总 MCC 数量
tx_signature VARCHAR(100),
onchain_status VARCHAR(20),
minted_at TIMESTAMP DEFAULT NOW()
);
数据库列命名规范:
| 类型 | 规范 | 数据类型 | 说明 |
|---|---|---|---|
| 用户主键 | uid | VARCHAR(100) | Firebase UID |
| 用户外键 | uid | VARCHAR(100) | 引用 users.uid |
| 语义化用户外键 | {role}_uid | VARCHAR(100) | 如 winner_uid, bidder_uid |
| 其他主键 | id | SERIAL 或 UUID | 非用户表的主键 |
Redis 缓存策略:
| Key 格式 | 用途 | TTL |
|---|---|---|
user:{uid} | 用户信息缓存 | 1h |
token:{access_token} | Token 缓存 | 按 exp |
mining:rate | 当前产值比例 | 1d |
mcc:price | MCC 当前价格 | 5m |
6.5 安全架构
密钥管理:
所有敏感配置存储在 GCP Secret Manager:
| Secret 名称 | 说明 |
|---|---|
mcc-program-keypair | MCC Program Authority 私钥 |
solana-genesis-keypair | 创世钱包私钥 |
helius-api-key | Helius RPC API Key |
firebase-* | Firebase 配置 |
访问控制:
GCP Secret Manager 通过 Workload Identity 连接 K8s Service Account,再通过 RBAC 授权 Pod(blockchain-service)访问。
网络安全:
| 层级 | 措施 |
|---|---|
| 入口 | Google Gateway API + Certificate Manager |
| 传输 | TLS 1.3 加密 |
| 集群内 | Network Policy 隔离 |
| 数据库 | Private IP + IAM 认证 |
6.6 系统健壮性 (100-JSON-Rule)
| 准则 | 说明 |
|---|---|
| 零 HTML 容忍 | 内部 API 服务严禁返回任何 HTML 格式的 500 错误页面 |
| 全局异常保险 | 所有服务必须具备全局 Exception Handler |
| 数据库熔断保护 | 接口层必须包含数据库连接可用性检查,超时返回 503 JSON |
| 前端防御解析 | 所有基于 Microcosm SDK 的前端应用需实现 safeJson 模式 |
询问 AI