架构总览

Zanbara 采用混合架构设计,结合了链下高性能撮合和链上安全结算的优势,为用户提供中心化交易所级别的体验和去中心化的安全保障。

架构设计原则

1. 性能优先

  • 目标 TPS: 10,000+ 订单/秒

  • 订单延迟: < 50ms (p99)

  • WebSocket 延迟: < 50ms

2. 安全至上

  • 资金托管: 100% 链上智能合约托管

  • 结算透明: 所有结算可链上验证

  • 去中心化预言机: Pyth Network 价格源

3. 可扩展性

  • 水平扩展: 支持多实例部署

  • 模块化设计: 服务间松耦合

  • 云原生: Kubernetes 部署就绪

系统架构图

┌─────────────────────────────────────────────────────────────────────┐
│                          Frontend Layer                              │
│  ┌────────────────────┐  ┌─────────────────┐  ┌─────────────────┐  │
│  │ Trading Interface  │  │ Order Entry UI  │  │ Portfolio View  │  │
│  │  (React + Vite)    │  │  (Orderly UI)   │  │   (Charts)      │  │
│  └────────────────────┘  └─────────────────┘  └─────────────────┘  │
│             ↕ WebSocket (ws://localhost:8081) + REST API            │
└─────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────┐
│                         API Gateway Layer                            │
│  ┌──────────────────────────────────────────────────────────────┐  │
│  │  Axum Web Framework (Port 8080)                              │  │
│  │  - REST API Endpoints (/api/v1/*)                            │  │
│  │  - WebSocket Server (Port 8081)                              │  │
│  │  - 3-Layer Risk Control (User/System/Market)                 │  │
│  │  - JWT Authentication & Authorization                        │  │
│  │  - Rate Limiting (100 req/min/user)                          │  │
│  │  - Request Validation & Error Handling                       │  │
│  └──────────────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────┐
│                         Core Services Layer                          │
│                                                                      │
│  ┌───────────────────────────────────────────────────────────────┐ │
│  │  Matching Engine (peak-pilot) - Lock-free OrderBook          │ │
│  │  - Price-Time Priority Matching                              │ │
│  │  - SIMD Price Search (5.79x speedup)                         │ │
│  │  - Memory Pool (337K orders/sec)                             │ │
│  │  - Batch Processing (7.16M TPS)                              │ │
│  │  - Rayon Parallel (396K TPS)                                 │ │
│  │  - Advanced Order Types (Iceberg, PostOnly, TrailingStop)    │ │
│  └───────────────────────────────────────────────────────────────┘ │
│                                                                      │
│  ┌────────────────┐  ┌────────────────┐  ┌─────────────────────┐  │
│  │  Settlement    │  │  Liquidation   │  │  Oracle Adapter     │  │
│  │  Engine        │  │  Keeper        │  │  (Pyth Network)     │  │
│  │  - Batch       │  │  - 150% Warn   │  │  - Price Feeds      │  │
│  │  - Retry+DLQ   │  │  - 110% Liq    │  │  - 1s Update        │  │
│  │  - Rollback    │  │  - Concurrent  │  │  - Multi-source     │  │
│  └────────────────┘  └────────────────┘  └─────────────────────┘  │
│                                                                      │
│  ┌────────────────────────────────────────────────────────────────┐│
│  │  Event Listener (Chain Event Monitor)                         ││
│  │  - Deposit/Withdrawal Events                                  ││
│  │  - Settlement Confirmations                                   ││
│  │  - Redis Pub/Sub Broadcasting                                ││
│  └────────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────┐
│                         Data Layer                                   │
│                                                                      │
│  ┌──────────────────┐  ┌──────────────────┐  ┌─────────────────┐  │
│  │  PostgreSQL 16   │  │  Redis 7         │  │  TimescaleDB    │  │
│  │  ───────────────│  │  ───────────────│  │  ───────────────│  │
│  │  - Users         │  │  - OrderBook     │  │  - OHLCV        │  │
│  │  - Orders        │  │  - Cache (TTL)   │  │  - Trades       │  │
│  │  - Positions     │  │  - Sessions      │  │  - Funding      │  │
│  │  - Balances      │  │  - Pub/Sub       │  │  - Analytics    │  │
│  │  - Trades        │  │  - Leaderboard   │  │                 │  │
│  │  - Settlements   │  │                  │  │                 │  │
│  └──────────────────┘  └──────────────────┘  └─────────────────┘  │
└─────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────┐
│                     Blockchain Layer (Solana)                        │
│                                                                      │
│  ┌──────────────────────────────────────────────────────────────┐  │
│  │  Smart Contracts (Anchor Framework)                          │  │
│  │  - Program ID: [deployed on Devnet]                          │  │
│  │  ─────────────────────────────────────────────────────────── │  │
│  │  Instructions:                                                │  │
│  │    • initialize          - 初始化交易所                       │  │
│  │    • deposit             - 存入资金 (SOL/USDC)                │  │
│  │    • withdraw            - 提取资金                           │  │
│  │    • open_position       - 开仓                               │  │
│  │    • close_position      - 平仓                               │  │
│  │    • liquidate           - 清算                               │  │
│  │    • batch_settlement    - 批量结算                           │  │
│  │                                                                │  │
│  │  Accounts:                                                    │  │
│  │    • Exchange            - 全局配置                           │  │
│  │    • UserAccount         - 用户账户                           │  │
│  │    • Position            - 仓位信息                           │  │
│  │    • MarketAccount       - 市场配置                           │  │
│  └──────────────────────────────────────────────────────────────┘  │
│                                                                      │
│  ┌──────────────────────────────────────────────────────────────┐  │
│  │  Event Logs (Program Events)                                 │  │
│  │  - DepositEvent, WithdrawEvent                               │  │
│  │  - PositionOpenedEvent, PositionClosedEvent                  │  │
│  │  - LiquidationEvent, SettlementEvent                         │  │
│  └──────────────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────┐
│                     External Services                                │
│  ┌──────────────────┐  ┌──────────────────┐  ┌─────────────────┐  │
│  │  Pyth Network    │  │  Solana RPC      │  │  Helius RPC     │  │
│  │  - Price Feeds   │  │  - devnet/main   │  │  (Enhanced RPC) │  │
│  └──────────────────┘  └──────────────────┘  └─────────────────┘  │
└─────────────────────────────────────────────────────────────────────┘

技术栈

前端技术栈

组件
技术选型
版本

框架

React 19

19.0.0

构建工具

Vite 7

7.0.0

路由

React Router 7

7.0.2

状态管理

Zustand

5.0.2

UI 组件

Orderly Network UI

Latest

图表

TradingView

Lightweight

样式

TailwindCSS

3.4.17

钱包

Solana Wallet Adapter

Latest

后端技术栈

组件
技术选型
版本

语言

Rust

1.86.0

Web 框架

Axum

0.7

异步运行时

Tokio

1.42

撮合引擎

pricelevel

0.4.2

数据库 ORM

SQLx

0.8

缓存

Redis

7.4

序列化

Serde

1.0

并行处理

Rayon

1.10

智能合约技术栈

组件
技术选型
版本

语言

Rust

1.86.0

框架

Anchor

0.31.1

区块链

Solana

2.3.11

预言机

Pyth Network

Latest

Token 标准

SPL Token

Latest

基础设施技术栈

组件
技术选型
版本

容器化

Docker

20+

编排

Kubernetes

1.27+

监控

Prometheus

2.45

可视化

Grafana

10.0

日志

Loki

2.8

追踪

Jaeger

1.47

核心组件

1. API Gateway

职责:

  • HTTP REST API 服务

  • WebSocket 实时推送

  • 3 层风控系统

  • 认证和授权

  • 速率限制

端口:

  • REST API: 8080

  • WebSocket: 8081

关键特性:

  • Axum 异步框架

  • JWT Token 认证

  • Redis Session 管理

  • 100 req/min/user 限流

2. Matching Engine

职责:

  • 订单撮合

  • 订单簿管理

  • 交易生成

性能:

  • SIMD 优化: 5.79x 加速

  • 批处理 TPS: 7.16M

  • 内存池吞吐: 337K orders/sec

  • Rayon 并行: 396K TPS

订单类型:

  • Standard (限价单)

  • Market (市价单)

  • Iceberg (冰山单)

  • PostOnly

  • TrailingStop (追踪止损)

3. Settlement Engine

职责:

  • 批量链上结算

  • 交易确认

  • 状态同步

机制:

  • 100 交易/批次

  • 3 次重试 + 指数退避

  • DLQ 死信队列

  • 快照回滚

4. Liquidation Keeper

职责:

  • 实时监控保证金率

  • 自动触发清算

  • 发送预警通知

阈值:

  • 150% - 发送警告

  • 110% - 触发清算

  • 100% - 破产价格

特性:

  • 10秒监控周期

  • 并发控制

  • Redis 通知

5. Oracle Adapter

职责:

  • 价格数据获取

  • 多源聚合

  • 缓存管理

数据源:

  • Pyth Network (主要)

  • Switchboard (备用)

更新频率: 1 秒

6. Event Listener

职责:

  • 监听链上事件

  • 更新本地状态

  • 广播通知

监听事件:

  • Deposit

  • Withdraw

  • Settlement

  • Liquidation

数据流

订单提交流程

1. 用户提交订单

2. API Gateway 接收

3. 3层风控验证
   ├─ User Layer: 杠杆/仓位限制
   ├─ System Layer: OI/资金限制
   └─ Market Layer: 价格/流动性检查

4. 写入 PostgreSQL (持久化)

5. 发送到 Matching Engine

6. 撮合引擎处理
   ├─ 匹配对手单
   ├─ 生成成交
   └─ 更新订单簿

7. 成交写入数据库

8. 发送到 Settlement Engine

9. 批量上链结算

10. Event Listener 监听确认

11. 更新用户仓位

12. WebSocket 推送通知

清算流程

1. Liquidation Keeper 定时检查 (10s)

2. 查询所有持仓用户

3. 计算保证金率
   保证金率 = 账户权益 / 仓位价值

4. 判断阈值
   ├─ >= 150%: 正常
   ├─ 110-150%: 发送警告 (WebSocket)
   └─ < 110%: 触发清算

5. 获取清算许可 (防止重复清算)

6. 创建清算订单

7. 提交到 Matching Engine

8. 撮合引擎执行

9. 更新仓位状态为 Liquidated

10. 计算剩余保证金

11. 退回剩余保证金 (如果有)

12. WebSocket 通知用户

安全措施

1. 智能合约安全

  • ✅ 资金托管在链上

  • ✅ PDA (Program Derived Address) 账户管理

  • ✅ 权限检查

  • ⏸️ 安全审计 (Post-MVP)

2. API 安全

  • JWT Token 认证

  • 速率限制 (100 req/min/user)

  • HTTPS/WSS 加密传输

  • CORS 白名单

3. 业务安全

  • 3 层风控系统

  • 订单验证

  • 价格偏离检测

  • 自成交防护

4. 数据安全

  • PostgreSQL 数据加密

  • Redis 密码认证

  • 定期备份

  • 主从复制

监控体系

指标监控 (Prometheus)

  • 系统指标: CPU、内存、磁盘、网络

  • 业务指标: TPS、延迟、成功率、错误率

  • 自定义指标: 订单簿深度、持仓量、资金费率

可视化 (Grafana)

  • 系统监控面板: 服务健康状态

  • 业务监控面板: 交易量、用户活跃度

  • 性能监控面板: 延迟分布、吞吐量

告警 (Alertmanager)

  • Critical: 服务宕机、数据库故障

  • Warning: 延迟过高、错误率上升

  • Info: 部署完成、配置变更

扩展性设计

水平扩展

  • API Gateway: 多实例 + 负载均衡

  • Matching Engine: 按交易对分片

  • Settlement Engine: 多 Worker 并行

  • 数据库: 读写分离 + 分库分表

缓存策略

  • Redis 三级缓存:

    • L1: 订单簿 (TTL 1s)

    • L2: 用户数据 (TTL 5m)

    • L3: 市场数据 (TTL 10s)

下一步

了解更多架构细节:

  1. 📊 技术栈选型 - 为什么选择这些技术

  2. 🔄 数据流设计 - 详细的数据流程图

  3. 🔒 安全设计 - 全面的安全策略

  4. 性能优化 - SIMD、内存池、并行处理

或查看具体组件文档:


架构版本: v1.0.0 最后更新: 2025-10-07 状态: Production Ready (Phase 5 Week 2)

Last updated