# Quickstart 测试指南:多平台账户凭据管理与签名服务 ## 前置条件 1. 已安装 Node.js 18.12+ 和必要的依赖包 2. 准备测试用的配置文件 `credentials.test.json` 3. 已配置测试环境的API密钥和私钥 4. 服务运行在测试模式,不影响生产数据 --- ## 场景 1:配置文件加载与账户注入 ### 1.1 配置文件准备 创建测试配置文件 `credentials.test.json`: ```json { "pacifica": [ { "accountId": "pac-test-001", "alias": "Pacifica测试账户", "privateKey": "test_base58_private_key_here", "environment": "development" } ], "aster": [ { "accountId": "ast-test-001", "alias": "Aster测试账户", "ethPrivateKey": "0xtest_ethereum_private_key", "signerAddress": "0xtest_signer_address", "environment": "development" } ], "binance": [ { "accountId": "bn-test-001", "alias": "Binance测试账户", "apiKey": "test_api_key", "secretKey": "test_secret_key", "environment": "development" } ] } ``` ### 1.2 启动服务并加载配置 ```bash # 启动签名服务 npm run start:credential-service -- --config ./credentials.test.json # 验证服务状态 curl -X GET "http://localhost:3000/api/v1/status" ``` ### 验证 - 日志显示 `配置加载成功: 3个平台, 3个账户` - API响应中显示正确的账户数量 - 所有平台状态为 `active` --- ## 场景 2:Pacifica Ed25519 签名测试 ### 2.1 执行Pacifica签名请求 ```bash curl -X POST "http://localhost:3000/api/v1/sign" \ -H "Content-Type: application/json" \ -d '{ "platformId": "pacifica", "accountId": "pac-test-001", "data": { "instruction": { "type": "place_order", "market": "BTC-USD", "side": "bid", "amount": "0.001", "price": "65000" }, "nonce": 1735390800000 } }' ``` ### 验证 - 响应包含 `signature` 字段,base58编码 - `algorithm` 字段为 "ed25519" - `publicKey` 字段正确派生 - 签名时间 < 50ms --- ## 场景 3:Aster EIP-191 签名测试 ### 3.1 执行Aster签名请求 ```bash curl -X POST "http://localhost:3000/api/v1/sign" \ -H "Content-Type: application/json" \ -d '{ "platformId": "aster", "accountId": "ast-test-001", "data": { "message": { "action": "place_order", "symbol": "BTCUSDT", "price": "65000", "quantity": "0.001", "side": "buy", "timestamp": 1735390800000 } } }' ``` ### 验证 - 响应包含 `signature` 字段,0x开头的十六进制 - `algorithm` 字段为 "eip191" - 可通过ethers.js验证签名者地址 --- ## 场景 4:Binance HMAC 签名测试 ### 4.1 执行Binance签名请求 ```bash curl -X POST "http://localhost:3000/api/v1/sign" \ -H "Content-Type: application/json" \ -d '{ "platformId": "binance", "accountId": "bn-test-001", "data": { "method": "POST", "endpoint": "/api/v3/order", "params": { "symbol": "BTCUSDT", "side": "BUY", "type": "LIMIT", "quantity": "0.001", "price": "65000", "timestamp": 1735390800000 } } }' ``` ### 验证 - 响应包含 `signature` 字段,HMAC-SHA256哈希 - `algorithm` 字段为 "hmac-sha256" - 签名可用于Binance API认证 --- ## 场景 5:配置热重载测试 ### 5.1 修改配置文件 在 `credentials.test.json` 中添加新账户: ```json { "okx": [ { "accountId": "okx-test-001", "alias": "OKX测试账户", "apiKey": "test_okx_api_key", "secretKey": "test_okx_secret", "passphrase": "test_passphrase", "environment": "development" } ] } ``` ### 5.2 触发热重载 ```bash curl -X POST "http://localhost:3000/api/v1/config/reload" ``` ### 验证 - 响应显示 `changes.added = 1` - 新增的OKX账户可查询到 - 重载时间 < 5秒 - 服务无中断 --- ## 场景 6:批量签名测试 ### 6.1 执行批量签名请求 ```bash curl -X POST "http://localhost:3000/api/v1/sign/batch" \ -H "Content-Type: application/json" \ -d '{ "requests": [ { "requestId": "req_001", "platformId": "pacifica", "accountId": "pac-test-001", "data": {"instruction": {"type": "place_order"}} }, { "requestId": "req_002", "platformId": "aster", "accountId": "ast-test-001", "data": {"message": {"action": "cancel_order"}} } ] }' ``` ### 验证 - 响应包含 `results` 数组,每个请求一个结果 - `summary` 显示成功/失败统计 - 批量处理时间 < 200ms --- ## 场景 7:故障恢复测试 ### 7.1 模拟配置损坏 ```bash # 备份原配置 cp credentials.test.json credentials.backup.json # 创建无效配置 echo "invalid json" > credentials.test.json # 尝试重载 curl -X POST "http://localhost:3000/api/v1/config/reload" ``` ### 7.2 验证错误处理 ```bash # 检查服务状态 curl -X GET "http://localhost:3000/api/v1/status" # 尝试签名(应该仍可用,使用旧配置) curl -X POST "http://localhost:3000/api/v1/sign" \ -H "Content-Type: application/json" \ -d '{ "platformId": "pacifica", "accountId": "pac-test-001", "data": {"test": "data"} }' ``` ### 7.3 恢复配置 ```bash # 恢复有效配置 cp credentials.backup.json credentials.test.json # 重新加载 curl -X POST "http://localhost:3000/api/v1/config/reload" ``` ### 验证 - 配置损坏时返回错误 `CONFIG_LOAD_FAILED` - 服务保持运行,使用最后有效配置 - 恢复后正常工作 ## 清理步骤 ### 1. 停止服务 ```bash # 停止签名服务 pkill -f credential-service # 或使用npm脚本 npm run stop ``` ### 2. 清理测试数据 ```bash # 删除测试配置文件 rm credentials.test.json credentials.backup.json # 清理日志文件 rm -rf logs/test_* ``` --- ## 预期结果汇总 | 测试场景 | 成功标准 | 性能要求 | |---------|---------|---------| | 配置加载 | 4个平台账户成功加载 | < 1秒 | | Pacifica签名 | Ed25519签名成功 | < 50ms | | Aster签名 | EIP-191签名成功 | < 50ms | | Binance签名 | HMAC-SHA256签名成功 | < 50ms | | 配置热重载 | 新配置生效,服务无中断 | < 5秒 | | 批量签名 | 并发处理正确 | < 200ms | | 故障恢复 | 错误处理正确,服务稳定 | 降级运行 | **总体验收标准**: - 所有测试场景通过率 100% - 单次签名延迟 < 50ms - 配置热重载无服务中断 - 错误处理机制完善 - 支持4个平台的签名算法