## 概述 为榴莲生态2.0添加完整的挖矿系统,包含3个后端微服务、1个管理后台和1个用户端App。 --- ## 后端微服务 ### 1. mining-service (挖矿服务) - Port 3021 **核心功能:** - 积分股每日分配(基于算力快照) - 每分钟定时销毁(进入黑洞) - 价格计算:价格 = 积分股池 ÷ (100.02亿 - 黑洞 - 流通池) - 全局状态管理(黑洞量、流通池、价格) **关键文件:** - src/application/services/mining-distribution.service.ts - 挖矿分配核心逻辑 - src/application/schedulers/mining.scheduler.ts - 定时任务调度 - src/domain/services/mining-calculator.service.ts - 分配计算 - src/infrastructure/persistence/repositories/black-hole.repository.ts - 黑洞管理 ### 2. trading-service (交易服务) - Port 3022 **核心功能:** - 积分股买卖撮合 - K线数据生成 - 手续费处理(10%买入/卖出) - 流通池管理 - 卖出倍数计算:倍数 = (100亿 - 销毁量) ÷ (200万 - 流通池量) **关键文件:** - src/domain/services/matching-engine.service.ts - 撮合引擎 - src/application/services/order.service.ts - 订单处理 - src/application/services/transfer.service.ts - 划转服务 - src/domain/aggregates/order.aggregate.ts - 订单聚合根 ### 3. mining-admin-service (挖矿管理服务) - Port 3023 **核心功能:** - 系统配置管理(分配参数、手续费率等) - 老用户数据初始化 - 系统监控仪表盘 - 审计日志 **关键文件:** - src/application/services/config.service.ts - 配置管理 - src/application/services/initialization.service.ts - 数据初始化 - src/application/services/dashboard.service.ts - 仪表盘数据 --- ## 前端应用 ### 1. mining-admin-web (管理后台) - Next.js 14 **技术栈:** - Next.js 14 + React 18 - TailwindCSS + Radix UI - React Query + Zustand - ECharts 图表 **功能模块:** - 登录认证 - 仪表盘(实时数据、价格走势) - 用户查询(算力详情、挖矿记录、交易订单) - 系统配置管理 - 数据初始化任务 - 审计日志查看 ### 2. mining-app (用户端App) - Flutter 3.x **技术栈:** - Flutter 3.x + Dart - Riverpod 状态管理 - GoRouter 路由 - Clean Architecture (3层) **功能模块:** - 首页资产总览 - 实时收益显示(每秒更新) - 贡献值展示(个人/团队) - 积分股买卖交易 - K线图与价格显示 - 个人中心 --- ## 架构文档 - docs/mining-ecosystem-architecture.md - 系统架构总览 - 服务职责与端口分配 - 数据流向图 - Kafka Topics 定义 - 跨服务关联(account_sequence) - 配置参数说明 - 开发顺序建议 --- ## .gitignore 更新 - 添加 Flutter/Dart 构建文件忽略 - 添加 iOS/Android 构建产物忽略 - 添加 Next.js 构建目录忽略 - 添加 TypeScript 缓存文件忽略 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| .claude | ||
| admin-service | ||
| authorization-service | ||
| backup-service | ||
| blockchain-service | ||
| contribution-service | ||
| docs | ||
| identity-service | ||
| leaderboard-service | ||
| mining-admin-service | ||
| mining-service | ||
| mpc-service | ||
| planting-service | ||
| presence-service | ||
| referral-service | ||
| reporting-service | ||
| reward-service | ||
| scripts | ||
| trading-service | ||
| wallet-service | ||
| .env.example | ||
| .gitignore | ||
| README.md | ||
| deploy.sh | ||
| docker-compose.infra.yml | ||
| docker-compose.yml | ||
| init-multiple-dbs.sh | ||
README.md
RWA Backend Services
统一部署管理 RWA 后端微服务。
架构概览
┌─────────────────────────────────────────────────────────────────┐
│ 192.168.1.100 (Gateway) │
│ ┌─────────────┐ ┌─────────────────────────────────────────┐ │
│ │ Nginx │ │ MPC-System (Go) │ │
│ │ (Reverse │ │ - session-coordinator (:8081) │ │
│ │ Proxy) │ │ - message-router (:8082) │ │
│ │ │ │ - server-party-1/2/3 (:8083-8085) │ │
│ └─────────────┘ │ - account-service (:8080) │ │
│ └─────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
│ Internal Network
▼
┌─────────────────────────────────────────────────────────────────┐
│ 192.168.1.111 (Backend) │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Docker Compose Services │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ PostgreSQL │ │ Redis │ │ Kafka │ │ │
│ │ │ (:5432) │ │ (:6379) │ │ (:9092) │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ identity │ │ wallet │ │ backup │ │ │
│ │ │ (:3000) │ │ (:3001) │ │ (:3002) │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ planting │ │ referral │ │ reward │ │ │
│ │ │ (:3003) │ │ (:3004) │ │ (:3005) │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │ mpc │ │ leaderboard │ │ reporting │ │ │
│ │ │ (:3006) │ │ (:3007) │ │ (:3008) │ │ │
│ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │
│ │ │ │
│ │ ┌─────────────┐ ┌─────────────┐ │ │
│ │ │authorization│ │ admin │ │ │
│ │ │ (:3009) │ │ (:3010) │ │ │
│ │ └─────────────┘ └─────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
快速开始
1. 首次安装
# 进入服务目录
cd ~/rwadurian/backend/services
# 运行安装(自动生成安全密钥)
./deploy.sh install
2. 构建镜像
./deploy.sh build
3. 启动服务
./deploy.sh up
4. 检查状态
./deploy.sh status
./deploy.sh health
常用命令
| 命令 | 说明 |
|---|---|
./deploy.sh install |
首次安装,生成配置 |
./deploy.sh build |
构建所有 Docker 镜像 |
./deploy.sh up |
启动所有服务 |
./deploy.sh down |
停止所有服务 |
./deploy.sh restart |
重启所有服务 |
./deploy.sh status |
查看服务状态 |
./deploy.sh health |
检查服务健康 |
./deploy.sh logs |
查看所有日志 |
./deploy.sh logs <service> |
查看指定服务日志 |
./deploy.sh migrate |
运行数据库迁移 |
./deploy.sh rebuild-svc <name> |
重建指定服务 |
服务列表
| 服务 | 端口 | 说明 |
|---|---|---|
| identity-service | 3000 | 身份认证服务 |
| wallet-service | 3001 | 钱包账本服务 |
| backup-service | 3002 | MPC 备份服务 |
| planting-service | 3003 | 认种服务 |
| referral-service | 3004 | 推荐系统服务 |
| reward-service | 3005 | 奖励服务 |
| mpc-service | 3006 | MPC 中间层服务 |
| leaderboard-service | 3007 | 排行榜服务 |
| reporting-service | 3008 | 报表服务 |
| authorization-service | 3009 | 授权服务 |
| admin-service | 3010 | 管理后台服务 |
基础设施
| 服务 | 端口 | 说明 |
|---|---|---|
| PostgreSQL | 5432 | 主数据库 |
| Redis | 6379 | 缓存/会话 |
| Kafka | 9092 | 消息队列 |
| Zookeeper | 2181 | Kafka 协调 |
环境配置
配置文件 .env 由 ./deploy.sh install 自动生成,包含:
- 数据库密码
- JWT 密钥
- 加密密钥
- MPC 系统地址
重要: .env 文件包含敏感信息,请勿提交到 Git!
与 MPC-System 集成
mpc-service 需要连接到运行在 192.168.1.100 上的 MPC-System:
- Session Coordinator:
http://192.168.1.100:8081 - Message Router:
ws://192.168.1.100:8082
确保 192.168.1.111 能够访问 192.168.1.100 的这些端口。
故障排除
查看服务日志
./deploy.sh logs identity-service
重建单个服务
./deploy.sh rebuild-svc mpc-service
数据库连接问题
# 进入 postgres 容器
docker exec -it rwa-postgres psql -U rwa_user -d rwa_identity
清理重新开始
./deploy.sh clean # 删除所有容器和数据
./deploy.sh install
./deploy.sh build
./deploy.sh up