rwadurian/backend/services/mining-blockchain-service
hailin ec73541fe1 refactor(mining-blockchain): 移除 mpc-service 依赖,改为 HTTP 直调 mpc-system
将 mining-blockchain-service 的 MPC 签名通信从 Kafka 事件驱动(经由 mpc-service 中转)
改为 HTTP 直接调用 mpc-system 的 account-service (port 4000)。

## 核心变更

### mpc-signing.client.ts (重写)
- 移除 EventPublisherService、MpcEventConsumerService 依赖和 pendingRequests Map
- 移除 OnModuleInit 中的 Kafka 事件注册
- 新增 HttpService (@nestjs/axios) + JwtService (@nestjs/jwt) 依赖注入
- 签名流程改为:
  1. POST /api/v1/mpc/sign → 创建签名会话 (snake_case: username, message_hash)
  2. GET /api/v1/mpc/sessions/{session_id} → 轮询结果 (每 2s, 最多 5 分钟)
- JWT 认证: 使用 MPC_JWT_SECRET (HS256) 生成 Bearer token,匹配 mpc-system 格式
- 所有公共接口不变 (signMessage, signMessageAsXxxMarketMaker, isConfigured, getXxxAddress 等)

### 删除的文件
- mpc-event-consumer.service.ts: Kafka MPC 事件消费者 (SigningCompleted/SessionFailed/KeygenCompleted)
- mpc-keygen-completed.handler.ts: Keygen 地址派生处理器 (不再由此服务处理)

### 模块更新
- infrastructure.module.ts: 移除 MpcEventConsumerService,新增 JwtModule.register({})
- kafka/index.ts: 移除 mpc-event-consumer.service 导出
- event-handlers/index.ts: 移除 mpc-keygen-completed.handler 导出

### 部署配置
- docker-compose.2.0.yml: 新增 MPC_ACCOUNT_SERVICE_URL 和 MPC_JWT_SECRET 环境变量
- deploy-mining.sh: standalone 模式新增 export MPC_ACCOUNT_SERVICE_URL (默认 http://192.168.1.111:4000)

## 不受影响的部分
- Erc20TransferService / MpcTransferInitializerService 调用方式不变
- EventPublisherService (用于其他事件) 不变
- WithdrawalEventConsumerService 不变
- mpc-system 本身零修改

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 20:53:35 -08:00
..
contracts feat(c2c): 实现C2C Bot自动交易系统 2026-01-28 07:10:25 -08:00
prisma feat(market-maker): 实现做市商区块链充值监控功能 2026-01-28 17:13:41 -08:00
scripts feat(c2c): 实现C2C Bot自动交易系统 2026-01-28 07:10:25 -08:00
src refactor(mining-blockchain): 移除 mpc-service 依赖,改为 HTTP 直调 mpc-system 2026-02-01 20:53:35 -08:00
.dockerignore feat(c2c): 实现C2C Bot自动交易系统 2026-01-28 07:10:25 -08:00
.env.example feat(mining-blockchain): RPC端点自动故障转移,连续失败3分钟后切换备选节点 2026-02-01 07:06:31 -08:00
.eslintrc.js feat(c2c): 实现C2C Bot自动交易系统 2026-01-28 07:10:25 -08:00
.gitignore feat(c2c): 实现C2C Bot自动交易系统 2026-01-28 07:10:25 -08:00
.prettierrc feat(c2c): 实现C2C Bot自动交易系统 2026-01-28 07:10:25 -08:00
DEVELOPMENT_GUIDE.md feat(c2c): 实现C2C Bot自动交易系统 2026-01-28 07:10:25 -08:00
Dockerfile feat(c2c): 实现C2C Bot自动交易系统 2026-01-28 07:10:25 -08:00
deploy.sh feat(c2c): 实现C2C Bot自动交易系统 2026-01-28 07:10:25 -08:00
docker-compose.yml feat(mining-blockchain-service): mining_ 前缀隔离,与 blockchain-service 100% 资源分离 2026-01-30 01:58:45 -08:00
nest-cli.json feat(c2c): 实现C2C Bot自动交易系统 2026-01-28 07:10:25 -08:00
package-lock.json feat(c2c): 实现C2C Bot自动交易系统 2026-01-28 07:10:25 -08:00
package.json feat(c2c): 实现C2C Bot自动交易系统 2026-01-28 07:10:25 -08:00
tsconfig.json feat(c2c): 实现C2C Bot自动交易系统 2026-01-28 07:10:25 -08:00