白皮书

技术实现

六、技术实现

6.1 区块链架构

Solana 选型理由:

维度SolanaEthereum选择 Solana 的原因
TPS65,000+15-30高频交易场景需求
确认时间400ms12s用户体验优先
交易费用~$0.00025$1-50微支付场景可行
智能合约Rust/AnchorSolidity性能更优

链上组件:

合约Program ID组件
MCC TokenFDRy2jpKqXD5pp8Xj2arEbEm78nCEcRnKCmGxBTiFWxrToken Mint, Mining Config PDA, Team Vault PDA, Station Vault PDA, Managers Pool PDA
MCD TokenJ9UwVmFEr7ujLcp19T8nqpDnpBLcDzpL4cpwh5TMSd36Token Mint, Vault PDAs

PDA(程序派生地址)设计:

PDASeed用途
Founder Vaultb"founder_vault"创始金库,初始 100% 代币
Team Vaultb"team_vault"团队金库,铸造 10%
Station Vaultb"station_vault"领地金库,铸造 30%(转 MCD)
Managers Poolb"managers_pool"政务官池,铸造 10%
Mining Configb"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_vaultwithdraw 已于 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 统一认证:

认证流程:

  1. 生态应用(如 Double Helix)重定向用户到 Microcosm OAuth 授权页面
  2. 用户在 Microcosm 完成登录授权
  3. Microcosm 返回 Access Token 给生态应用
  4. 生态应用使用 Token 调用 Microcosm API

API 端点:

端点方法说明
/login?oauth=trueGETOAuth 授权页面
/api/oauth/tokenPOSTToken 交换/刷新
/api/oauth/introspectPOSTToken 内省验证

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-SecretFirebase Admin SDK
生态项目OAuth Access Token不需要数据库查询

6.4 数据存储架构

PostgreSQL 数据库设计:

数据库用途主要表
microcosm_prodMicrocosm 核心数据users, organizations, mcc_mining_records
doublehelix_prodDouble 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()
);

数据库列命名规范:

类型规范数据类型说明
用户主键uidVARCHAR(100)Firebase UID
用户外键uidVARCHAR(100)引用 users.uid
语义化用户外键{role}_uidVARCHAR(100)winner_uid, bidder_uid
其他主键idSERIAL 或 UUID非用户表的主键

Redis 缓存策略:

Key 格式用途TTL
user:{uid}用户信息缓存1h
token:{access_token}Token 缓存按 exp
mining:rate当前产值比例1d
mcc:priceMCC 当前价格5m

6.5 安全架构

密钥管理:

所有敏感配置存储在 GCP Secret Manager:

Secret 名称说明
mcc-program-keypairMCC Program Authority 私钥
solana-genesis-keypair创世钱包私钥
helius-api-keyHelius 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 模式

返回目录 | 上一章:x402 支付协议 | 下一章:开发者生态

询问 AI
询问 AI