# 实施任务清单:多平台账户凭据管理与签名服务 **功能**: 多平台账户凭据管理与签名服务 **分支**: `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 **契约测试**: ```bash 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 **契约测试**: ```bash 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 **契约测试**: ```bash 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 **契约测试**: ```bash 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 **契约测试**: ```bash 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 **契约测试**: ```bash # 核心签名接口 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 **执行命令**: ```bash yarn test:unit yarn test:coverage ``` --- ### 🔗 B2: 集成测试实现 **任务**: 实现端到端集成测试 **优先级**: P1 **预计时间**: 1.5天 **交付物**: - `__tests__/integration/` - 集成测试套件 - 基于quickstart.md的7个测试场景 - 测试数据和配置文件 - 自动化测试脚本 **验收标准**: - 7个quickstart场景100%通过 - 配置热重载无服务中断 - 批量签名处理正确 - 故障恢复机制有效 **依赖**: A9, B1 **执行命令**: ```bash 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 **执行命令**: ```bash 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周工期)