Skip to content

System Architecture

🏗️ 系统架构说明

本系统基于 Solana 区块链开发,结合去中心化合约与链下服务构建,旨在为用户提供快速、稳定且可信的彩票体验。以下是系统的整体架构描述:

🧑‍💻 客户端(Client)

用户通过浏览器(如 Chrome)或 Phantom 钱包访问我们的 DApp,进行以下操作:

  • 通过 DApp UI 快速查看链上信息(由缓存支持)
  • 使用钱包进行登录、授权与交互
  • 通过 Web3.js 与智能合约进行交互(如购票、开奖等)

🌐 Web API 服务

  • 前端 DApp 会请求我们的 Web API 服务获取链上缓存数据(如奖池状态、票务信息等)
  • Web API 提供高性能的查询能力,减少用户访问链上的延迟
  • 数据源来自后端同步服务,保证信息实时性和可靠性

🔄 链下定时服务(Scheduled Service)

为了保障链上数据的完整性与自动流程的执行,我们构建了链下定时任务系统:

  • 监听服务:定时监听 Solana 链上的事件,如购票、开奖、NFT 变化等
  • 数据同步:将链上关键数据拉取并解析,写入本地数据库,用于用户界面展示和数据分析

🎲 开奖逻辑架构

我们的开奖流程在链下触发,并保障安全性与可验证性:

  1. Scheduled Service 到点触发开奖逻辑
  2. 调用智能合约 MythPool 合约,并请求 Switchboard VRF 合约生成随机数
  3. VRF 合约返回链上可验证的随机数,确保开奖公平
  4. 开奖结果回写到链上,并同步至数据库

🧱 核心组件一览

组件描述
🖥️ DApp用户操作入口,展示和调用合约功能
🔌 Web API中间层,提供高效的链上信息查询
⏱️ Scheduled Service链下任务系统,负责监听、同步与开奖
📦 Database存储链上数据的快照与用户状态
⛓️ MythPool Contract彩票业务核心合约
🎰 Switchboard VRF随机数生成服务,确保开奖公平透明

🔐 安全与性能优化

  • 数据通过链下缓存优化读取速度,确保 DApp 响应流畅
  • 合约交互严格依赖用户签名,保证安全性
  • 开奖使用链上 VRF,防止人为操控

Released under the MIT License.