跳到主要内容

架构概览

本文档概述了 OtcHub 平台的架构,详细介绍了其各个层及其关键集成点。

智能合约层

  • OtcHub.sol:主要的 OTC 交易合约,实现双重抵押机制以确保交易安全。
  • MockERC20.sol:用于开发和测试目的的测试 ERC20 代币合约。
  • 交易状态:交易通过明确定义的状态进行:开放 → 已注资 → 已结算/已取消/争议中。
  • 交易方向:支持 MakerSells(卖家发起)和 MakerBuys(买家发起)两种交易方向。

后端 API 层

  • Express.js 服务器:在端口 3001 上运行,提供核心 API 服务。
  • Prisma ORM:用于无缝的 PostgreSQL 数据库操作,抽象了原始 SQL 查询。
  • 区块链集成:通过 Viem 实现强大的 Web3 交互,包括交易广播和事件监控。
  • 事件监听器:专门的服务监听智能合约事件,以确保后端数据与区块链状态保持一致。
  • JWT 身份验证:使用 JSON Web Tokens (JWT) 和 bcrypt 进行密码哈希处理,实现安全的用户身份验证。
  • 安全中间件:包括速率限制、Helmet 用于 HTTP 头部安全,以及 CORS 用于跨域资源共享控制。

前端层

  • React 18、TypeScript 和 Vite:用于构建响应式和类型安全用户界面的现代前端技术栈。
  • Wagmi + RainbowKit:用于 Web3 钱包连接的关键库,支持与区块链网络的无缝交互。
  • React Query:管理服务器状态、缓存和数据同步,提升性能和用户体验。
  • React Router:处理客户端导航,提供流畅的单页应用程序体验。
  • Tailwind CSS:一种实用优先的 CSS 框架,用于快速一致的样式设计。
  • React Hook Form 与 Zod 验证:通过基于模式的验证简化表单管理并确保数据完整性。

关键集成点

  • 后端 - 智能合约:后端的 BlockchainService 主动监听智能合约事件,确保链下数据反映链上状态。
  • 前端 - 后端 API:前端组件通过 REST API 与后端通信,利用 /api/auth/api/offers/api/trades 等端点进行数据交换。
  • 前端 - 智能合约:前端使用 Wagmi 钩子直接与智能合约交互,执行创建交易、注资和确认等操作。
  • 数据库 - 交易元数据:由 Prisma 管理的 PostgreSQL 数据库存储重要的交易元数据和用户信息,作为平台的中央数据存储库。