fix(mobile-app): update share link domain to rwaapi.szaiai.com
Changed invite share URLs from rwa-durian.app to rwaapi.szaiai.com 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
2e815cec6e
commit
39804aa981
|
|
@ -20,7 +20,9 @@
|
||||||
"Bash(git commit -m \"$(cat <<''EOF''\nrefactor(infra): 统一微服务基础设施为共享模式\n\n- 将 presence-service 添加到主 docker-compose.yml(端口 3011,Redis DB 10)\n- 更新 init-databases.sh 添加 rwa_admin 和 rwa_presence 数据库\n- 重构 admin-service/deploy.sh 使用共享基础设施\n- 重构 presence-service/deploy.sh 使用共享基础设施\n- 添加 authorization-service 开发指南文档\n\n解决多个微服务独立启动重复基础设施(PostgreSQL/Redis/Kafka)的问题\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude <noreply@anthropic.com>\nEOF\n)\")",
|
"Bash(git commit -m \"$(cat <<''EOF''\nrefactor(infra): 统一微服务基础设施为共享模式\n\n- 将 presence-service 添加到主 docker-compose.yml(端口 3011,Redis DB 10)\n- 更新 init-databases.sh 添加 rwa_admin 和 rwa_presence 数据库\n- 重构 admin-service/deploy.sh 使用共享基础设施\n- 重构 presence-service/deploy.sh 使用共享基础设施\n- 添加 authorization-service 开发指南文档\n\n解决多个微服务独立启动重复基础设施(PostgreSQL/Redis/Kafka)的问题\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude <noreply@anthropic.com>\nEOF\n)\")",
|
||||||
"Bash(git push)",
|
"Bash(git push)",
|
||||||
"Bash(git commit -m \"$(cat <<''EOF''\nfeat(admin-service): 增强移动端版本上传功能\n\n- 添加 APK/IPA 文件解析器自动提取版本信息\n- 支持从安装包自动读取 versionName 和 versionCode\n- 添加 adbkit-apkreader 依赖解析 APK 文件\n- 添加 plist 依赖解析 IPA 文件\n- 优化上传接口支持自动填充版本信息\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude <noreply@anthropic.com>\nEOF\n)\")",
|
"Bash(git commit -m \"$(cat <<''EOF''\nfeat(admin-service): 增强移动端版本上传功能\n\n- 添加 APK/IPA 文件解析器自动提取版本信息\n- 支持从安装包自动读取 versionName 和 versionCode\n- 添加 adbkit-apkreader 依赖解析 APK 文件\n- 添加 plist 依赖解析 IPA 文件\n- 优化上传接口支持自动填充版本信息\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude <noreply@anthropic.com>\nEOF\n)\")",
|
||||||
"Bash(git commit:*)"
|
"Bash(git commit:*)",
|
||||||
|
"Bash(grep:*)",
|
||||||
|
"Bash(ls:*)"
|
||||||
],
|
],
|
||||||
"deny": [],
|
"deny": [],
|
||||||
"ask": []
|
"ask": []
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,23 @@
|
||||||
"Bash(cat:*)",
|
"Bash(cat:*)",
|
||||||
"Bash(git add:*)",
|
"Bash(git add:*)",
|
||||||
"Bash(git commit:*)",
|
"Bash(git commit:*)",
|
||||||
"Bash(git push:*)"
|
"Bash(git push:*)",
|
||||||
|
"Bash(git pull:*)",
|
||||||
|
"Bash(services/identity-service/src/infrastructure/external/mpc/mpc-client.service.ts )",
|
||||||
|
"Bash(services/identity-service/src/infrastructure/external/mpc/mpc.module.ts )",
|
||||||
|
"Bash(services/identity-service/src/infrastructure/kafka/index.ts )",
|
||||||
|
"Bash(services/identity-service/src/infrastructure/kafka/kafka.module.ts )",
|
||||||
|
"Bash(services/identity-service/src/infrastructure/kafka/mpc-event-consumer.service.ts )",
|
||||||
|
"Bash(services/mpc-service/src/application/application.module.ts )",
|
||||||
|
"Bash(services/mpc-service/src/application/services/index.ts )",
|
||||||
|
"Bash(services/mpc-service/src/application/services/event-consumer-starter.service.ts )",
|
||||||
|
"Bash(services/mpc-service/src/application/event-handlers/ )",
|
||||||
|
"Bash(services/mpc-service/src/infrastructure/infrastructure.module.ts )",
|
||||||
|
"Bash(services/mpc-service/src/infrastructure/messaging/kafka/index.ts )",
|
||||||
|
"Bash(services/mpc-service/src/infrastructure/messaging/kafka/event-consumer.service.ts)",
|
||||||
|
"Bash(npm run build:*)",
|
||||||
|
"Bash(npx nest build)",
|
||||||
|
"Bash(npm install)"
|
||||||
],
|
],
|
||||||
"deny": [],
|
"deny": [],
|
||||||
"ask": []
|
"ask": []
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,9 @@
|
||||||
"Bash(docker compose:*)",
|
"Bash(docker compose:*)",
|
||||||
"Bash(powershell:*)",
|
"Bash(powershell:*)",
|
||||||
"Bash(npm run lint)",
|
"Bash(npm run lint)",
|
||||||
"Bash(git add:*)"
|
"Bash(git add:*)",
|
||||||
|
"Bash(git commit -m \"$(cat <<''EOF''\nfeat(blockchain-service): implement complete blockchain service with DDD + Hexagonal architecture\n\n- Domain layer: ChainType, EvmAddress, TxHash, TokenAmount, BlockNumber value objects\n- Domain events: DepositDetected, DepositConfirmed, WalletAddressCreated, TransactionBroadcasted\n- Aggregates: DepositTransaction, MonitoredAddress, TransactionRequest\n- Infrastructure: Prisma ORM, Redis cache, Kafka messaging, EVM blockchain adapters\n- Application services: AddressDerivation, DepositDetection, BalanceQuery\n- API: Health, Balance, Internal controllers with Swagger documentation\n- Deployment: Docker, docker-compose, deploy.sh, health-check scripts\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>\nEOF\n)\")",
|
||||||
|
"Bash(git push)"
|
||||||
],
|
],
|
||||||
"deny": [],
|
"deny": [],
|
||||||
"ask": []
|
"ask": []
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,12 @@
|
||||||
# Database
|
# =============================================================================
|
||||||
|
# Identity Service - Environment Variables
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
# Application
|
||||||
|
APP_PORT=3000
|
||||||
|
APP_ENV="development"
|
||||||
|
|
||||||
|
# Database (PostgreSQL)
|
||||||
DATABASE_URL="postgresql://postgres:password@localhost:5432/rwa_identity?schema=public"
|
DATABASE_URL="postgresql://postgres:password@localhost:5432/rwa_identity?schema=public"
|
||||||
|
|
||||||
# JWT
|
# JWT
|
||||||
|
|
@ -21,20 +29,34 @@ KAFKA_GROUP_ID="identity-service-group"
|
||||||
SMS_API_URL="https://sms-api.example.com"
|
SMS_API_URL="https://sms-api.example.com"
|
||||||
SMS_API_KEY="your-sms-api-key"
|
SMS_API_KEY="your-sms-api-key"
|
||||||
|
|
||||||
# App
|
# Wallet Encryption
|
||||||
APP_PORT=3000
|
|
||||||
APP_ENV="development"
|
|
||||||
|
|
||||||
# Blockchain Encryption
|
|
||||||
WALLET_ENCRYPTION_SALT="rwa-wallet-salt-change-in-production"
|
WALLET_ENCRYPTION_SALT="rwa-wallet-salt-change-in-production"
|
||||||
|
|
||||||
# MPC Service (NestJS 中间层)
|
# =============================================================================
|
||||||
# 调用路径: identity-service → mpc-service (NestJS) → mpc-system (Go)
|
# MPC Service Configuration
|
||||||
MPC_SERVICE_URL="http://localhost:3001"
|
# =============================================================================
|
||||||
MPC_MODE="local" # local 使用本地模拟,remote 调用 mpc-service
|
# 调用路径: identity-service -> mpc-service (NestJS) -> mpc-system (Go)
|
||||||
|
|
||||||
# Backup Service (MPC 备份分片存储)
|
# MPC Service URL (NestJS gateway)
|
||||||
|
MPC_SERVICE_URL="http://localhost:3001"
|
||||||
|
|
||||||
|
# MPC Mode: local (模拟) / remote (调用 mpc-service)
|
||||||
|
MPC_MODE="local"
|
||||||
|
|
||||||
|
# Use event-driven communication for MPC operations
|
||||||
|
MPC_USE_EVENT_DRIVEN="true"
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# Backup Service Configuration
|
||||||
|
# =============================================================================
|
||||||
# 安全要求: 必须部署在与 identity-service 不同的物理服务器上!
|
# 安全要求: 必须部署在与 identity-service 不同的物理服务器上!
|
||||||
|
|
||||||
BACKUP_SERVICE_URL="http://backup-server:3002"
|
BACKUP_SERVICE_URL="http://backup-server:3002"
|
||||||
BACKUP_SERVICE_ENABLED="true"
|
BACKUP_SERVICE_ENABLED="false"
|
||||||
SERVICE_JWT_SECRET="your-service-jwt-secret-change-in-production"
|
SERVICE_JWT_SECRET="your-service-jwt-secret-change-in-production"
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# Blockchain RPC URLs (for address verification)
|
||||||
|
# =============================================================================
|
||||||
|
KAVA_RPC_URL="https://evm.kava.io"
|
||||||
|
BSC_RPC_URL="https://bsc-dataseed.binance.org"
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,9 @@ services:
|
||||||
ports:
|
ports:
|
||||||
- "3000:3000"
|
- "3000:3000"
|
||||||
environment:
|
environment:
|
||||||
|
# Application
|
||||||
|
- APP_PORT=3000
|
||||||
|
- APP_ENV=production
|
||||||
# Database
|
# Database
|
||||||
- DATABASE_URL=postgresql://postgres:password@postgres:5432/rwa_identity?schema=public
|
- DATABASE_URL=postgresql://postgres:password@postgres:5432/rwa_identity?schema=public
|
||||||
# JWT
|
# JWT
|
||||||
|
|
@ -19,18 +22,19 @@ services:
|
||||||
- KAFKA_BROKERS=kafka:29092
|
- KAFKA_BROKERS=kafka:29092
|
||||||
- KAFKA_CLIENT_ID=identity-service
|
- KAFKA_CLIENT_ID=identity-service
|
||||||
- KAFKA_GROUP_ID=identity-service-group
|
- KAFKA_GROUP_ID=identity-service-group
|
||||||
# App
|
# Wallet Encryption
|
||||||
- APP_PORT=3000
|
|
||||||
- APP_ENV=production
|
|
||||||
# Blockchain
|
|
||||||
- WALLET_ENCRYPTION_SALT=rwa-wallet-salt-change-in-production
|
- WALLET_ENCRYPTION_SALT=rwa-wallet-salt-change-in-production
|
||||||
# MPC Service
|
# MPC Service
|
||||||
- MPC_SERVICE_URL=http://mpc-service:3001
|
- MPC_SERVICE_URL=http://mpc-service:3001
|
||||||
- MPC_MODE=local
|
- MPC_MODE=remote
|
||||||
|
- MPC_USE_EVENT_DRIVEN=true
|
||||||
# Backup Service
|
# Backup Service
|
||||||
- BACKUP_SERVICE_URL=http://backup-service:3002
|
- BACKUP_SERVICE_URL=http://backup-service:3002
|
||||||
- BACKUP_SERVICE_ENABLED=false
|
- BACKUP_SERVICE_ENABLED=false
|
||||||
- SERVICE_JWT_SECRET=your-service-jwt-secret-change-in-production
|
- SERVICE_JWT_SECRET=your-service-jwt-secret-change-in-production
|
||||||
|
# Blockchain RPC
|
||||||
|
- KAVA_RPC_URL=https://evm.kava.io
|
||||||
|
- BSC_RPC_URL=https://bsc-dataseed.binance.org
|
||||||
depends_on:
|
depends_on:
|
||||||
postgres:
|
postgres:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
-- AlterTable: Add hardware info fields to user_devices
|
||||||
|
ALTER TABLE "user_devices" ADD COLUMN "platform" VARCHAR(20);
|
||||||
|
ALTER TABLE "user_devices" ADD COLUMN "device_model" VARCHAR(100);
|
||||||
|
ALTER TABLE "user_devices" ADD COLUMN "os_version" VARCHAR(50);
|
||||||
|
ALTER TABLE "user_devices" ADD COLUMN "app_version" VARCHAR(20);
|
||||||
|
ALTER TABLE "user_devices" ADD COLUMN "screen_width" INTEGER;
|
||||||
|
ALTER TABLE "user_devices" ADD COLUMN "screen_height" INTEGER;
|
||||||
|
ALTER TABLE "user_devices" ADD COLUMN "locale" VARCHAR(10);
|
||||||
|
ALTER TABLE "user_devices" ADD COLUMN "timezone" VARCHAR(50);
|
||||||
|
|
||||||
|
-- CreateIndex
|
||||||
|
CREATE INDEX "idx_platform" ON "user_devices"("platform");
|
||||||
|
|
@ -54,6 +54,16 @@ model UserDevice {
|
||||||
deviceId String @map("device_id") @db.VarChar(100)
|
deviceId String @map("device_id") @db.VarChar(100)
|
||||||
deviceName String? @map("device_name") @db.VarChar(100)
|
deviceName String? @map("device_name") @db.VarChar(100)
|
||||||
|
|
||||||
|
// Hardware Info - 设备硬件信息
|
||||||
|
platform String? @db.VarChar(20) // ios, android, web
|
||||||
|
deviceModel String? @map("device_model") @db.VarChar(100) // iPhone 15 Pro, Pixel 8
|
||||||
|
osVersion String? @map("os_version") @db.VarChar(50) // iOS 17.2, Android 14
|
||||||
|
appVersion String? @map("app_version") @db.VarChar(20) // 1.0.0
|
||||||
|
screenWidth Int? @map("screen_width")
|
||||||
|
screenHeight Int? @map("screen_height")
|
||||||
|
locale String? @db.VarChar(10) // zh-CN, en-US
|
||||||
|
timezone String? @db.VarChar(50) // Asia/Shanghai
|
||||||
|
|
||||||
addedAt DateTime @default(now()) @map("added_at")
|
addedAt DateTime @default(now()) @map("added_at")
|
||||||
lastActiveAt DateTime @default(now()) @map("last_active_at")
|
lastActiveAt DateTime @default(now()) @map("last_active_at")
|
||||||
|
|
||||||
|
|
@ -63,6 +73,7 @@ model UserDevice {
|
||||||
@@index([deviceId], name: "idx_device")
|
@@index([deviceId], name: "idx_device")
|
||||||
@@index([userId], name: "idx_user")
|
@@index([userId], name: "idx_user")
|
||||||
@@index([lastActiveAt], name: "idx_last_active")
|
@@index([lastActiveAt], name: "idx_last_active")
|
||||||
|
@@index([platform], name: "idx_platform")
|
||||||
@@map("user_devices")
|
@@map("user_devices")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,49 +1,73 @@
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# MPC Party Service - Environment Variables
|
# MPC Service - Environment Variables
|
||||||
|
# =============================================================================
|
||||||
|
#
|
||||||
|
# mpc-service 作为 MPC 服务网关:
|
||||||
|
# 1. 缓存 username + publicKey 的映射关系
|
||||||
|
# 2. 存储 delegate share
|
||||||
|
# 3. 转发请求到 mpc-system (Go/TSS实现)
|
||||||
|
#
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
# Application
|
# Application
|
||||||
NODE_ENV=development
|
NODE_ENV="development"
|
||||||
APP_PORT=3006
|
APP_PORT=3001
|
||||||
API_PREFIX=api/v1
|
API_PREFIX="api/v1"
|
||||||
|
|
||||||
# Database (Prisma)
|
# Database (PostgreSQL)
|
||||||
DATABASE_URL="mysql://mpc_user:password@localhost:3306/rwa_mpc_party_db"
|
DATABASE_URL="postgresql://postgres:password@localhost:5432/rwa_mpc?schema=public"
|
||||||
|
|
||||||
# Redis
|
# Redis
|
||||||
REDIS_HOST=localhost
|
REDIS_HOST="localhost"
|
||||||
REDIS_PORT=6379
|
REDIS_PORT=6379
|
||||||
REDIS_PASSWORD=
|
REDIS_PASSWORD=""
|
||||||
REDIS_DB=5
|
REDIS_DB=5
|
||||||
|
|
||||||
# JWT
|
# JWT
|
||||||
JWT_SECRET=your-jwt-secret-change-in-production
|
JWT_SECRET="your-jwt-secret-change-in-production"
|
||||||
JWT_ACCESS_EXPIRES_IN=2h
|
JWT_ACCESS_EXPIRES_IN="2h"
|
||||||
JWT_REFRESH_EXPIRES_IN=30d
|
JWT_REFRESH_EXPIRES_IN="30d"
|
||||||
|
|
||||||
# Kafka
|
# Kafka
|
||||||
KAFKA_BROKERS=localhost:9092
|
KAFKA_BROKERS="localhost:9092"
|
||||||
KAFKA_CLIENT_ID=mpc-party-service
|
KAFKA_CLIENT_ID="mpc-service"
|
||||||
KAFKA_GROUP_ID=mpc-party-group
|
KAFKA_GROUP_ID="mpc-service-group"
|
||||||
|
|
||||||
# MPC System (deployed on 192.168.1.111)
|
# =============================================================================
|
||||||
# account-service: Creates keygen/signing sessions
|
# MPC System Configuration (Go/TSS Backend)
|
||||||
MPC_ACCOUNT_SERVICE_URL=http://192.168.1.111:4000
|
# =============================================================================
|
||||||
# session-coordinator: Coordinates TSS sessions (used by MPCCoordinatorClient)
|
|
||||||
MPC_COORDINATOR_URL=http://192.168.1.111:8081
|
|
||||||
MPC_SESSION_COORDINATOR_URL=http://192.168.1.111:8081
|
|
||||||
# message-router: WebSocket for TSS message routing
|
|
||||||
MPC_MESSAGE_ROUTER_WS_URL=ws://192.168.1.111:8082
|
|
||||||
# server-party-api: Generates user shares (synchronous)
|
|
||||||
MPC_SERVER_PARTY_API_URL=http://192.168.1.111:8083
|
|
||||||
# API key for authenticating with MPC system
|
|
||||||
MPC_API_KEY=your-mpc-api-key-change-in-production
|
|
||||||
|
|
||||||
|
# MPC System Account Service URL (creates keygen/signing sessions)
|
||||||
|
MPC_SYSTEM_URL="http://192.168.1.111:4000"
|
||||||
|
|
||||||
|
# API Key for authenticating with MPC system
|
||||||
|
MPC_API_KEY="your-mpc-api-key-change-in-production"
|
||||||
|
|
||||||
|
# Session Coordinator URL (coordinates TSS sessions)
|
||||||
|
MPC_COORDINATOR_URL="http://192.168.1.111:8081"
|
||||||
|
|
||||||
|
# Message Router WebSocket URL (TSS message routing)
|
||||||
|
MPC_MESSAGE_ROUTER_WS_URL="ws://192.168.1.111:8082"
|
||||||
|
|
||||||
|
# Coordinator timeout in milliseconds
|
||||||
|
MPC_COORDINATOR_TIMEOUT=30000
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
# Share Encryption
|
# Share Encryption
|
||||||
|
# =============================================================================
|
||||||
# IMPORTANT: Generate a secure 32-byte hex key for production
|
# IMPORTANT: Generate a secure 32-byte hex key for production
|
||||||
SHARE_MASTER_KEY=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
|
# Example: openssl rand -hex 32
|
||||||
|
SHARE_MASTER_KEY="0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
# MPC Protocol Timeouts (in milliseconds)
|
# MPC Protocol Timeouts (in milliseconds)
|
||||||
MPC_KEYGEN_TIMEOUT=600000
|
# =============================================================================
|
||||||
MPC_SIGNING_TIMEOUT=300000
|
MPC_KEYGEN_TIMEOUT=300000
|
||||||
MPC_REFRESH_TIMEOUT=600000
|
MPC_SIGNING_TIMEOUT=180000
|
||||||
|
MPC_REFRESH_TIMEOUT=300000
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# TSS Library (optional, for direct TSS operations)
|
||||||
|
# =============================================================================
|
||||||
|
TSS_LIB_PATH="/opt/tss-lib/tss"
|
||||||
|
TSS_TEMP_DIR="/tmp/tss"
|
||||||
|
|
|
||||||
|
|
@ -1,64 +1,85 @@
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# MPC Party Service - Docker Compose
|
# MPC Service - Docker Compose
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
version: '3.8'
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
# MPC Party Service
|
mpc-service:
|
||||||
mpc-party-service:
|
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
container_name: rwa-mpc-party
|
container_name: rwa-mpc-service
|
||||||
ports:
|
ports:
|
||||||
- "3006:3006"
|
- "3001:3001"
|
||||||
environment:
|
environment:
|
||||||
NODE_ENV: development
|
# Application
|
||||||
APP_PORT: 3006
|
NODE_ENV: production
|
||||||
DATABASE_URL: mysql://mpc_user:password@mysql:3306/rwa_mpc_party_db
|
APP_PORT: 3001
|
||||||
|
API_PREFIX: api/v1
|
||||||
|
# Database (PostgreSQL)
|
||||||
|
DATABASE_URL: postgresql://postgres:password@postgres:5432/rwa_mpc?schema=public
|
||||||
|
# Redis
|
||||||
REDIS_HOST: redis
|
REDIS_HOST: redis
|
||||||
REDIS_PORT: 6379
|
REDIS_PORT: 6379
|
||||||
|
REDIS_PASSWORD: ""
|
||||||
REDIS_DB: 5
|
REDIS_DB: 5
|
||||||
KAFKA_BROKERS: kafka:9092
|
# JWT
|
||||||
MPC_COORDINATOR_URL: http://mpc-session-coordinator:50051
|
JWT_SECRET: ${JWT_SECRET:-your-jwt-secret-change-in-production}
|
||||||
MPC_MESSAGE_ROUTER_WS_URL: ws://mpc-message-router:50052
|
JWT_ACCESS_EXPIRES_IN: 2h
|
||||||
|
JWT_REFRESH_EXPIRES_IN: 30d
|
||||||
|
# Kafka
|
||||||
|
KAFKA_BROKERS: kafka:29092
|
||||||
|
KAFKA_CLIENT_ID: mpc-service
|
||||||
|
KAFKA_GROUP_ID: mpc-service-group
|
||||||
|
# MPC System (Go/TSS Backend)
|
||||||
|
MPC_SYSTEM_URL: ${MPC_SYSTEM_URL:-http://mpc-system:4000}
|
||||||
|
MPC_API_KEY: ${MPC_API_KEY:-your-mpc-api-key}
|
||||||
|
MPC_COORDINATOR_URL: ${MPC_COORDINATOR_URL:-http://mpc-system:8081}
|
||||||
|
MPC_MESSAGE_ROUTER_WS_URL: ${MPC_MESSAGE_ROUTER_WS_URL:-ws://mpc-system:8082}
|
||||||
|
MPC_COORDINATOR_TIMEOUT: 30000
|
||||||
|
# Share Encryption
|
||||||
SHARE_MASTER_KEY: ${SHARE_MASTER_KEY:-0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef}
|
SHARE_MASTER_KEY: ${SHARE_MASTER_KEY:-0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef}
|
||||||
JWT_SECRET: ${JWT_SECRET:-your-jwt-secret-here}
|
# Timeouts
|
||||||
|
MPC_KEYGEN_TIMEOUT: 300000
|
||||||
|
MPC_SIGNING_TIMEOUT: 180000
|
||||||
|
MPC_REFRESH_TIMEOUT: 300000
|
||||||
depends_on:
|
depends_on:
|
||||||
mysql:
|
postgres:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
redis:
|
redis:
|
||||||
condition: service_started
|
condition: service_started
|
||||||
|
kafka:
|
||||||
|
condition: service_started
|
||||||
networks:
|
networks:
|
||||||
- mpc-network
|
- mpc-network
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
- ./logs:/app/logs
|
- ./logs:/app/logs
|
||||||
|
|
||||||
# MySQL Database
|
|
||||||
mysql:
|
|
||||||
image: mysql:8.0
|
|
||||||
container_name: rwa-mpc-mysql
|
|
||||||
ports:
|
|
||||||
- "3307:3306"
|
|
||||||
environment:
|
|
||||||
MYSQL_ROOT_PASSWORD: rootpassword
|
|
||||||
MYSQL_DATABASE: rwa_mpc_party_db
|
|
||||||
MYSQL_USER: mpc_user
|
|
||||||
MYSQL_PASSWORD: password
|
|
||||||
volumes:
|
|
||||||
- mysql_data:/var/lib/mysql
|
|
||||||
- ./database/migrations:/docker-entrypoint-initdb.d
|
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
|
test: ["CMD", "wget", "-q", "--spider", "http://localhost:3001/health"]
|
||||||
interval: 10s
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 40s
|
||||||
|
|
||||||
|
postgres:
|
||||||
|
image: postgres:16-alpine
|
||||||
|
container_name: rwa-mpc-postgres
|
||||||
|
ports:
|
||||||
|
- "5433:5432"
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: postgres
|
||||||
|
POSTGRES_PASSWORD: password
|
||||||
|
POSTGRES_DB: rwa_mpc
|
||||||
|
volumes:
|
||||||
|
- postgres_data:/var/lib/postgresql/data
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
||||||
|
interval: 5s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 10
|
||||||
networks:
|
networks:
|
||||||
- mpc-network
|
- mpc-network
|
||||||
|
|
||||||
# Redis
|
|
||||||
redis:
|
redis:
|
||||||
image: redis:7-alpine
|
image: redis:7-alpine
|
||||||
container_name: rwa-mpc-redis
|
container_name: rwa-mpc-redis
|
||||||
|
|
@ -69,7 +90,6 @@ services:
|
||||||
networks:
|
networks:
|
||||||
- mpc-network
|
- mpc-network
|
||||||
|
|
||||||
# Kafka (for event publishing)
|
|
||||||
zookeeper:
|
zookeeper:
|
||||||
image: confluentinc/cp-zookeeper:7.5.0
|
image: confluentinc/cp-zookeeper:7.5.0
|
||||||
container_name: rwa-mpc-zookeeper
|
container_name: rwa-mpc-zookeeper
|
||||||
|
|
@ -87,8 +107,12 @@ services:
|
||||||
environment:
|
environment:
|
||||||
KAFKA_BROKER_ID: 1
|
KAFKA_BROKER_ID: 1
|
||||||
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
|
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
|
||||||
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
|
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9093,PLAINTEXT_INTERNAL://kafka:29092
|
||||||
|
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_INTERNAL:PLAINTEXT
|
||||||
|
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,PLAINTEXT_INTERNAL://0.0.0.0:29092
|
||||||
|
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT_INTERNAL
|
||||||
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
|
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
|
||||||
|
KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true"
|
||||||
depends_on:
|
depends_on:
|
||||||
- zookeeper
|
- zookeeper
|
||||||
networks:
|
networks:
|
||||||
|
|
@ -99,5 +123,5 @@ networks:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
mysql_data:
|
postgres_data:
|
||||||
redis_data:
|
redis_data:
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,9 @@
|
||||||
"Bash(docker-compose:*)",
|
"Bash(docker-compose:*)",
|
||||||
"Bash(c:/Android/platform-tools/adb.exe shell ping:*)",
|
"Bash(c:/Android/platform-tools/adb.exe shell ping:*)",
|
||||||
"Bash(curl:*)",
|
"Bash(curl:*)",
|
||||||
"Bash(DATABASE_URL=\"postgresql://postgres:password@localhost:5432/rwa_identity?schema=public\" npx prisma migrate:*)"
|
"Bash(DATABASE_URL=\"postgresql://postgres:password@localhost:5432/rwa_identity?schema=public\" npx prisma migrate:*)",
|
||||||
|
"Bash(del \"c:\\Users\\dong\\Desktop\\rwadurian\\frontend\\mobile-app\\lib\\core\\services\\mpc_share_service.dart\")",
|
||||||
|
"Bash(dart compile exe:*)"
|
||||||
],
|
],
|
||||||
"deny": [],
|
"deny": [],
|
||||||
"ask": []
|
"ask": []
|
||||||
|
|
|
||||||
|
|
@ -49,8 +49,8 @@ class WalletCreatedPage extends ConsumerWidget {
|
||||||
void _shareToFriends(BuildContext context) {
|
void _shareToFriends(BuildContext context) {
|
||||||
// 构建分享链接 (带推荐码)
|
// 构建分享链接 (带推荐码)
|
||||||
final shareLink = referralCode != null
|
final shareLink = referralCode != null
|
||||||
? 'https://rwa-durian.app/invite?code=$referralCode'
|
? 'https://rwaapi.szaiai.com/invite?code=$referralCode'
|
||||||
: 'https://rwa-durian.app/invite?seq=$userSerialNum';
|
: 'https://rwaapi.szaiai.com/invite?seq=$userSerialNum';
|
||||||
|
|
||||||
context.push(
|
context.push(
|
||||||
RoutePaths.share,
|
RoutePaths.share,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue