tasks.md 9.2 KB

实施任务清单:多平台账户凭据管理与签名服务

功能: 多平台账户凭据管理与签名服务 分支: 002-credential-manager 预计工期: 3周(简化版) 任务总数: 16个


Phase A:核心功能实现 [2周]

📦 A1: 项目基础设置

任务: 设置项目基础结构和依赖 优先级: P0 (阻塞) 预计时间: 0.5天

交付物:

  • 安装核心依赖:bs58, tweetnacl, ethers, winston, dotenv
  • 创建项目目录结构 (src/core/, src/api/, tests/)
  • 配置TypeScript 5.1和Jest 29.7测试环境
  • 设置ESLint和Prettier代码规范

验收标准:

  • yarn install 成功执行
  • yarn test 运行通过(空测试套件)
  • yarn build 编译成功

依赖: 无


🏗️ A2: 类型定义和常量

任务: 实现核心类型定义和常量 优先级: P0 (阻塞) 预计时间: 0.5天

交付物:

  • src/shared/types.ts - PlatformAccount、SignatureAdapter、ConfigManager接口
  • src/shared/constants.ts - 平台常量、错误代码、配置默认值
  • src/shared/utils.ts - 通用工具函数

验收标准:

  • 所有接口符合data-model.md规范
  • 支持4个平台类型:pacifica、aster、binance、okx
  • TypeScript类型检查通过

依赖: A1


🔧 A3: 配置管理器实现

任务: 实现ConfigManager配置加载和热重载 优先级: P0 (阻塞) 预计时间: 1天

交付物:

  • src/core/config-loader.ts - 配置文件加载、验证、热重载
  • 支持JSON格式配置文件解析
  • 文件监控和变化检测(fs.watch)
  • 配置验证和错误处理

验收标准:

  • 配置文件加载成功率100%
  • 热重载响应时间 <5秒
  • 无效配置文件正确拒绝并保持旧配置
  • 配置变化触发相应事件

依赖: A2

契约测试:

yarn test:config-loader
# 验证:配置加载、热重载、错误处理

🔐 A4: Pacifica签名适配器

任务: 实现Pacifica平台Ed25519签名适配器 优先级: P1 预计时间: 1天

交付物:

  • src/core/signature-adapters/pacifica.ts - Ed25519签名实现
  • 使用tweetnacl库进行签名
  • base58私钥解码和公钥派生
  • 签名结果base58编码

验收标准:

  • Ed25519签名算法正确实现
  • 签名时间 <50ms
  • 支持标准Pacifica订单数据格式
  • 单元测试覆盖率 >90%

依赖: A2

契约测试:

curl -X POST "http://localhost:3000/api/v1/sign" \
  -d '{"platformId":"pacifica","accountId":"pac-test-001","data":{"instruction":{"type":"place_order"}}}'
# 预期:base58签名,algorithm="ed25519"

🌐 A5: Aster签名适配器

任务: 实现Aster平台EIP-191签名适配器 优先级: P1 预计时间: 1天

交付物:

  • src/core/signature-adapters/aster.ts - EIP-191签名实现
  • 使用ethers库进行以太坊签名
  • 支持个人消息签名(\x19Ethereum Signed Message前缀)
  • 签名结果十六进制编码

验收标准:

  • EIP-191签名算法正确实现
  • 签名时间 <50ms
  • 支持标准Aster消息数据格式
  • 可通过ethers.js验证签名者地址

依赖: A2

契约测试:

curl -X POST "http://localhost:3000/api/v1/sign" \
  -d '{"platformId":"aster","accountId":"ast-test-001","data":{"message":{"action":"place_order"}}}'
# 预期:0x开头的十六进制签名,algorithm="eip191"

🏦 A6: Binance签名适配器

任务: 实现Binance平台HMAC-SHA256签名适配器 优先级: P1 预计时间: 0.5天

交付物:

  • src/core/signature-adapters/binance.ts - HMAC-SHA256签名实现
  • 使用Node.js内置crypto模块
  • 支持标准Binance API签名流程
  • 查询字符串参数排序和编码

验收标准:

  • HMAC-SHA256签名算法正确实现
  • 签名时间 <50ms
  • 支持Binance REST API参数格式
  • 签名可用于实际Binance API认证

依赖: A2

契约测试:

curl -X POST "http://localhost:3000/api/v1/sign" \
  -d '{"platformId":"binance","accountId":"bn-test-001","data":{"method":"POST","endpoint":"/api/v3/order","params":{"symbol":"BTCUSDT"}}}'
# 预期:HMAC-SHA256哈希,algorithm="hmac-sha256"

🔄 A7: OKX签名适配器

任务: 实现OKX平台签名适配器 优先级: P2 预计时间: 0.5天

交付物:

  • src/core/signature-adapters/okx.ts - OKX特有签名实现
  • 支持三元组认证(API Key + Secret + Passphrase)
  • 特定的请求头格式和时间戳处理
  • Base64编码签名结果

验收标准:

  • OKX签名算法正确实现
  • 签名时间 <50ms
  • 支持OKX API v5格式
  • 三元组认证信息正确处理

依赖: A2

契约测试:

curl -X POST "http://localhost:3000/api/v1/sign" \
  -d '{"platformId":"okx","accountId":"okx-test-001","data":{"method":"POST","path":"/api/v5/trade/order","body":{"instId":"BTC-USDT"}}}'
# 预期:Base64签名,algorithm="hmac-sha256"

🎯 A8: 主服务实现

任务: 实现CredentialManager主服务 优先级: P0 (阻塞) 预计时间: 1.5天

交付物:

  • src/core/credential-manager.ts - 主凭据管理服务
  • 集成ConfigManager和所有SignatureAdapter
  • 统一签名接口实现
  • 账户查询和状态管理
  • 错误处理和日志记录

验收标准:

  • 支持所有4个平台的签名操作
  • 统一的错误处理和响应格式
  • 完整的审计日志记录
  • 服务初始化和优雅关闭

依赖: A3, A4, A5, A6, A7


🌐 A9: HTTP API接口

任务: 实现REST API接口层 优先级: P1 预计时间: 1天

交付物:

  • src/api/routes.ts - API路由定义
  • src/api/handlers.ts - 请求处理器
  • src/app/main.ts - HTTP服务器和中间件
  • 符合contracts/signature-service.md规范的所有端点

验收标准:

  • 实现所有契约定义的API端点
  • 统一的错误响应格式
  • 请求参数验证和sanitization
  • API文档和OpenAPI规范

依赖: A8

契约测试:

# 核心签名接口
POST /api/v1/sign
POST /api/v1/sign/batch

# 账户管理
GET /api/v1/accounts
GET /api/v1/accounts/{platformId}/{accountId}

# 配置管理
POST /api/v1/config/reload
GET /api/v1/status

Phase B:集成测试和验证 [1周]

🧪 B1: 单元测试实现

任务: 实现所有核心模块的单元测试 优先级: P1 预计时间: 2天

交付物:

  • __tests__/unit/ - 各模块单元测试
  • ConfigManager测试套件
  • 4个SignatureAdapter测试套件
  • CredentialManager核心功能测试
  • Mock和fixture数据

验收标准:

  • 单元测试覆盖率 >90%
  • 所有测试用例通过
  • 测试执行时间 <30秒
  • 包含错误场景和边界条件测试

依赖: A1-A9

执行命令:

yarn test:unit
yarn test:coverage

🔗 B2: 集成测试实现

任务: 实现端到端集成测试 优先级: P1 预计时间: 1.5天

交付物:

  • __tests__/integration/ - 集成测试套件
  • 基于quickstart.md的7个测试场景
  • 测试数据和配置文件
  • 自动化测试脚本

验收标准:

  • 7个quickstart场景100%通过
  • 配置热重载无服务中断
  • 批量签名处理正确
  • 故障恢复机制有效

依赖: A9, B1

执行命令:

yarn test:integration
yarn test:quickstart

测试场景:

  1. 配置文件加载与账户注入
  2. Pacifica Ed25519签名测试
  3. Aster EIP-191签名测试
  4. Binance HMAC签名测试
  5. 配置热重载测试
  6. 批量签名测试
  7. 故障恢复测试

⚡ B3: 性能优化和验证

任务: 性能测试和优化 优先级: P2 预计时间: 1天

交付物:

  • 性能基准测试脚本
  • 签名操作性能优化
  • 并发处理能力验证
  • 性能监控和报告

验收标准:

  • 单次签名 <50ms
  • 批量签名 <200ms (10个请求)
  • 支持100 QPS并发请求
  • 内存使用稳定,无泄露

依赖: B2

执行命令:

yarn test:performance
yarn test:load

📋 B4: 文档和部署准备

任务: 完善文档和部署配置 优先级: P2 预计时间: 0.5天

交付物:

  • API使用文档
  • 部署配置和脚本
  • 运维监控配置
  • 故障排除指南

验收标准:

  • 完整的API文档
  • Docker化部署配置
  • 生产环境配置模板
  • 监控和告警配置

依赖: B3


📊 任务依赖关系

A1 → A2 → A3 → A8 → A9
       ↓     ↗
     A4,A5,A6,A7

B1 ← A1-A9
B2 ← A9, B1
B3 ← B2
B4 ← B3

🎯 关键里程碑

Week 1 完成: A1-A4 (项目基础+Pacifica/Aster适配器) Week 2 完成: A5-A9 (Binance/OKX适配器+主服务+API) Week 3 完成: B1-B4 (完整测试+性能优化+文档)

✅ 质量门控

Phase A 完成标准

  • 所有4个平台签名适配器实现完成
  • 配置热重载功能正常工作
  • 主服务和API接口响应正确
  • 基础单元测试通过

Phase B 完成标准

  • quickstart.md中7个场景100%通过
  • 单元测试覆盖率 >90%
  • 性能指标满足要求(<50ms签名)
  • 完整的API文档和部署配置

最终验收标准

  • 支持4个平台的完整签名功能
  • 配置热重载 <5秒,无服务中断
  • 签名性能 <50ms,支持100 QPS
  • 完整的测试覆盖和文档

生成时间: 2025-09-28 基于设计: plan.md v1.0.0 (简化版) 预计完成: 2025-10-19 (3周工期)