🏗️ 系统架构说明
本系统基于 Solana 区块链开发,结合去中心化合约与链下服务构建,旨在为用户提供快速、稳定且可信的彩票体验。以下是系统的整体架构描述:
🧑💻 客户端(Client)
用户通过浏览器(如 Chrome)或 Phantom 钱包访问我们的 DApp,进行以下操作:
- 通过 DApp UI 快速查看链上信息(由缓存支持)
- 使用钱包进行登录、授权与交互
- 通过 Web3.js 与智能合约进行交互(如购票、开奖等)
🌐 Web API 服务
- 前端 DApp 会请求我们的 Web API 服务获取链上缓存数据(如奖池状态、票务信息等)
- Web API 提供高性能的查询能力,减少用户访问链上的延迟
- 数据源来自后端同步服务,保证信息实时性和可靠性
🔄 链下定时服务(Scheduled Service)
为了保障链上数据的完整性与自动流程的执行,我们构建了链下定时任务系统:
- 监听服务:定时监听 Solana 链上的事件,如购票、开奖、NFT 变化等
- 数据同步:将链上关键数据拉取并解析,写入本地数据库,用于用户界面展示和数据分析
🎲 开奖逻辑架构
我们的开奖流程在链下触发,并保障安全性与可验证性:
- Scheduled Service 到点触发开奖逻辑
- 调用智能合约 MythPool 合约,并请求 Switchboard VRF 合约生成随机数
- VRF 合约返回链上可验证的随机数,确保开奖公平
- 开奖结果回写到链上,并同步至数据库
🧱 核心组件一览
组件 | 描述 |
---|---|
🖥️ DApp | 用户操作入口,展示和调用合约功能 |
🔌 Web API | 中间层,提供高效的链上信息查询 |
⏱️ Scheduled Service | 链下任务系统,负责监听、同步与开奖 |
📦 Database | 存储链上数据的快照与用户状态 |
⛓️ MythPool Contract | 彩票业务核心合约 |
🎰 Switchboard VRF | 随机数生成服务,确保开奖公平透明 |
🔐 安全与性能优化
- 数据通过链下缓存优化读取速度,确保 DApp 响应流畅
- 合约交互严格依赖用户签名,保证安全性
- 开奖使用链上 VRF,防止人为操控