RollGame源码MEAN全栈架构拆解 海外包网运营版本

包网源码2026-08-25569 阅读
约 2,391 字 · 大约 8 分钟

工程结构与技术栈总览

拿到源码后第一个特征就很明显——不是一个大仓库,而是四个独立的代码库拼在一起,总计983个文件:

代码库

角色

技术栈

文件数

服务端口

apeluck_bckend

游戏主后端

Node.js + Express

64

13578

apeluck_admn_bckend

管理后端

Node.js + Express

58

29188

apeluck_frnend

玩家前端

Angular 14

535

4200

apeluck_admn_frnend

管理前端

Angular 10

326

—

四库之间通过HTTP API和Socket.io通信,数据层统一使用MongoDB(通过Mongoose ODM),缓存和实时通信依赖Redis。管理前端基于Purple Angular Admin模板二次开发,包含46个组件页面,覆盖用户管理、财务审计、游戏配置等功能。

RollGame 首页大厅

玩家端首页大厅 — 顶部英雄Banner、四大分类入口(Casino/Sports/Racing/Trading)和左侧导航栏

前端技术选型值得注意的是,玩家端用的Angular 14,管理端用的Angular 10,两个前端并没有统一升级,说明是不同时间段独立开发的。玩家端还引入了Highcharts做数据图表、Matter.js做Plinko弹珠物理引擎、Owl Carousel做轮播组件,依赖比较丰富。

12款游戏与可证公平算法

这套包网的核心资产是12款原创游戏,全部跑在游戏主后端上,每款游戏一个独立的路由模块:

游戏

类型

技术特点

Bustabit / Crash

多人崩盘

Socket.io实时广播,倍率曲线实时推送

Dice

骰子

经典Roll Under/Over,滑块控制胜率

Mines

扫雷

5x5网格翻格,地雷数1-24可调

Coinflip

硬币翻转

正反二选一

Roulette

轮盘

欧式轮盘

Keno

基诺彩

选号开奖

Wheel

转盘

倍率转盘

Limbo

目标倍率

设定目标倍率,结果高于即中奖

Plinko

弹珠

Matter.js物理引擎模拟弹珠下落

Ring of Fortune

幸运转盘

分段奖品转盘

Cave of Plunder

寻宝

逐层选择,越深奖金越高

Sword(Slots)

老虎机

传统转轴

RollGame 游戏分类区

Top Rated Games展示区 — 7款游戏卡片、Play Now入口,下方是支付方式Banner(Paytm/PhonePe/UPI/Visa/Mastercard)

所有游戏共用同一套可证公平(Provably Fair)系统,核心代码集中在helpers/game.js(666行)。算法流程:

  1. 生成种子:服务端生成Server Seed,玩家可自定义Client Seed,每局维护一个递增的Nonce

  2. 计算结果:将三者拼接后做HMAC-SHA256哈希,从哈希值中提取游戏结果

  3. 加密存储:未公开的Server Seed使用AES加密保存(encrypt.js中有多组密钥),避免提前泄露

  4. 验证机制:局结束后公开Server Seed,玩家可用公开信息重新计算验证结果

以Crash游戏为例,哈希值先转为整数,再映射到1.00x到无穷大的倍率区间,代码中还预留了1%的庄家边际(house edge),通过if (h % 33 === 0) return 1实现。

RollGame Crash崩盘游戏

Bustabit崩盘游戏界面 — Highcharts倍率曲线、下注面板(金额/自动兑现/胜率)、右侧玩家列表

Crash(Bustabit)是唯一的多人实时游戏,使用Socket.io做实时状态同步,后端维护一个完整的游戏状态机(等待 -> 进行中 -> 已崩盘),所有在线玩家看到的倍率曲线完全同步。

多币种钱包与区块链集成

RollGame支持四种货币体系:

  • RGC:平台自有代币

  • BNB:币安链原生代币

  • BUSD:币安稳定币

  • JB:站内试玩币,注册即送10,000

区块链集成通过ethers.js、web3.js和tronweb三个库实现。主后端的routes/basic.js(90KB,是整个项目最大的单文件)里包含了BNB/BSC地址生成、余额查询和Binance API对接的完整逻辑。管理后端仓库中还有一份TRC20智能合约(message.sol),定义了一个名为"TokenA"的代币,初始供应量100万亿,具备mint/burn功能。

RollGame Dice骰子游戏

Dice骰子游戏 — Roll Under滑块(0-100可调)、实时显示Payout倍率和Win Chance概率

安全体系

管理后台的安全设计相当谨慎,采用了四层防护叠加的策略:

  1. JWT Token认证:标准的Bearer Token机制,common.js中封装了中间件

  2. 图案锁:管理员登录后需额外通过手势图案验证

  3. IP白名单:后台接口绑定特定IP,非白名单IP直接拒绝

  4. 双因素认证(2FA):集成Speakeasy库,支持Google Authenticator等TOTP应用

密码存储使用bcrypt,敏感数据(如未公开的服务端种子)使用AES对称加密,密钥硬编码在encrypt.js中。前端到后端的通信还做了Origin校验(common.js中的allowedOrigins数组),防止跨域请求伪造。

RollGame Mines扫雷游戏

Mines扫雷游戏 — 5x5网格、地雷数滑块(1-24)、Manual/Auto模式切换

VIP与运营体系

平台内置五级VIP体系——Bronze、Silver、Gold、Platinum、Diamond,每个等级设有升级奖金和专属权益。玩家端侧边栏还提供了Quest(任务)、Spin(转盘)、Promotions(促销活动)、Forum(论坛)、Blog(博客)等运营模块的入口,虽然在没有后端数据的离线状态下无法完整体验,但路由和组件代码都是完整的。

RollGame 投注记录与VIP

Recommended Games区域和底部内容 — "Crypto Online Casino"介绍文案、用户反馈表单

管理后台(46个组件页面)覆盖的功能点包括:用户列表与详情、KYC审核、充提审计、游戏盈亏报表、系统设置、VIP配置、活动管理等。管理后端还集成了Socket.io,支持实时推送通知到管理面板。

移动端适配

前端做了完整的响应式适配,手机端有独立的底部导航栏(Menu / Casino / Wallet / Sports / Chat),替代了PC端的左侧边栏。分类卡片从单行横排变为两列瀑布流,游戏界面自动适配竖屏比例。

RollGame 手机端首页RollGame 手机端游戏列表RollGame 手机端Crash游戏

手机端界面 — 首页英雄Banner与分类入口 / Top Rated Games游戏卡片 / Bustabit崩盘游戏竖屏适配

RollGame 手机端Mines游戏

Mines扫雷游戏手机端 — 5x5网格全屏显示,下注面板折叠在下方

部署流程

源码随附了一份554行的部署指南,目标环境是Ubuntu 20.04/22.04 LTS。需要注意的是,这份指南是面向平台的Laravel版本编写的(涉及PHP 8.1、Composer、Laravel artisan命令),而实际拿到的源码是纯MEAN栈,部署方式有所不同。

基础环境准备:

组件

版本要求

操作系统

Ubuntu 20.04 / 22.04 LTS

Node.js

18.x LTS

MongoDB

6.x 或 7.x

Redis

最新稳定版

Nginx

最新稳定版

硬件

2GB RAM / 50GB+ 磁盘

MEAN版本部署步骤(基于源码实际结构):

  1. 安装Node.js 18、MongoDB、Redis、Nginx、PM2

  2. 配置MongoDB用户认证,创建数据库

  3. 游戏主后端:进入apeluck_bckend目录,npm install安装依赖,配置环境变量(MongoDB连接串、JWT密钥、加密密钥、Binance API等),用PM2启动监听13578端口

  4. 管理后端:同样npm install后PM2启动,监听29188端口

  5. 玩家前端:npm install --legacy-peer-deps(Angular 14与部分依赖有版本冲突需要此参数),ng build编译到dist目录,Nginx配置静态文件服务

  6. 管理前端:npm install后ng build,同样通过Nginx提供静态服务

  7. Nginx配置反向代理,将API请求转发到对应后端端口,配置WebSocket升级头

  8. Certbot申请SSL证书

  9. 配置Coinbase Commerce或本地加密节点处理充值

预计部署耗时:3-5小时(含环境配置、四个服务的依赖安装与调试、Nginx和SSL配置)。如果需要对接真实的区块链节点而非Coinbase Commerce,磁盘要求提升到500GB以上,部署周期也会更长。

二开评估

源码完整度:高。 四个仓库全部是未混淆的原始源码,TypeScript/JavaScript可直接阅读和修改。Angular前端的组件、路由、服务层分离清晰,Express后端的路由模块按功能拆分,改动某个游戏或新增游戏不需要动其他模块。

可二开方向:

  • 换皮/品牌定制:Angular模板化程度高,改Logo、配色、布局在组件和SCSS层面操作,不涉及后端

  • 新增游戏:参照现有的12个路由模块,新建路由文件 + 前端组件即可,可证公平算法在helpers/game.js中集中管理,新游戏只需调用生成函数

  • 支付通道扩展:当前对接Coinbase Commerce和Binance API,新增其他交易所或支付网关需要在basic.js中增加路由

  • 多语言:前端目前全英文,Angular的i18n方案可以加入,但需要改造所有模板文件

二开注意事项:

  • encrypt.js中的AES密钥是硬编码的,上线前必须更换

  • 管理后端的allowedOrigins写死了rollgame.io域名,需要改成自己的域名

  • 前端的backendurl.js中API地址也需要替换

  • Angular 14的生态已经偏旧(当前最新为Angular 18),长期维护需考虑框架升级

  • 部署指南是Laravel版本的,MEAN版本需要自行编写PM2和Nginx配置

整体来看,这套源码的工程化程度在包网类项目中算中上水平。四库分离的结构虽然增加了部署复杂度,但给二开和团队协作留出了空间。12款游戏的可证公平算法实现规范,区块链对接真实可用,是一套拿到手就能读懂、改得动的加密博彩包网方案。

下载地址

本资源为付费内容,登录后可下载