mining-blockchain-service 的所有共享资源全部加上 mining_ 前缀, 确保与 1.0 blockchain-service 完全隔离,互不干扰。 ## Kafka Topic 隔离 — 生产者 (event-publisher.service.ts) - source header: 'blockchain-service' → 'mining-blockchain-service' - topic 映射全部加 mining_ 前缀: - blockchain.deposits → mining_blockchain.deposits - blockchain.wallets → mining_blockchain.wallets - blockchain.transactions → mining_blockchain.transactions - mpc.SigningRequested → mining_mpc.SigningRequested - blockchain.market_maker.deposits → mining_blockchain.market_maker.deposits - 默认 fallback: blockchain.events → mining_blockchain.events ## Domain Event eventType 隔离 (5 个事件类) - deposit-detected.event.ts: mining_blockchain.deposit.detected - deposit-confirmed.event.ts: mining_blockchain.deposit.confirmed - wallet-address-created.event.ts: mining_blockchain.wallet.address.created - transaction-broadcasted.event.ts: mining_blockchain.transaction.broadcasted - market-maker-deposit-confirmed.event.ts: mining_blockchain.market_maker.deposit.confirmed ## Kafka Topic 隔离 — 消费者 (3 个 consumer) - mpc-event-consumer: mining_mpc.KeygenCompleted / SigningCompleted / SessionFailed - withdrawal-event-consumer: mining_wallet.withdrawals / mining_wallet.system-withdrawals - 事件类型检查: mining_wallet.withdrawal.requested / mining_wallet.system-withdrawal.requested - deposit-ack-consumer: mining_wallet.acks - 事件类型检查: mining_wallet.deposit.credited - outbox ACK 匹配: mining_blockchain.deposit.confirmed ## Kafka 事件类型 — Event Handlers - mpc-signing.client.ts: - MPC_SIGNING_TOPIC → mining_mpc.SigningRequested - eventType → mining_blockchain.mpc.signing.requested - withdrawal-requested.handler.ts: - mining_blockchain.withdrawal.confirmed / failed / status - system-withdrawal-requested.handler.ts: - mining_blockchain.system-withdrawal.confirmed / failed ## Redis Key 前缀隔离 - address-cache: blockchain:monitored_addresses: → mining_blockchain:monitored_addresses: - hot-wallet-balance: hot_wallet:dusdt_balance: → mining_hot_wallet:dusdt_balance: - hot-wallet-balance: hot_wallet:native_balance: → mining_hot_wallet:native_balance: ## 数据库名称隔离 - docker-compose.yml: rwa_blockchain → rwa_mining_blockchain - docker-compose.2.0.yml: rwa_blockchain → rwa_mining_blockchain - deploy-mining.sh: MINING_DATABASES + SERVICE_DB 映射 → rwa_mining_blockchain ## 下游服务需配套更新 (不在本次修改范围) - mpc-service: 消费 mining_mpc.SigningRequested, 发布 mining_mpc.* 结果 - mining-wallet-service: 发布 mining_wallet.*, 消费 mining_blockchain.* - trading-service: 消费 mining_blockchain.market_maker.deposits Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| .claude | ||
| admin-service | ||
| auth-service | ||
| authorization-service | ||
| backup-service | ||
| blockchain-service | ||
| contribution-service | ||
| docs | ||
| identity-service | ||
| leaderboard-service | ||
| mining-admin-service | ||
| mining-blockchain-service | ||
| mining-service | ||
| mining-wallet-service | ||
| mpc-service | ||
| planting-service | ||
| presence-service | ||
| referral-service | ||
| reporting-service | ||
| reward-service | ||
| scripts | ||
| trading-service | ||
| wallet-service | ||
| .env.example | ||
| .gitignore | ||
| README.md | ||
| deploy-mining.sh | ||
| deploy.sh | ||
| docker-compose.2.0.yml | ||
| 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