架构概览
本文档概述了 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 数据库存储重要的交易元数据和用户信息,作为平台的中央数据存储 库。