交易所钱包系统,提供安全的钱包管理和地址生成服务。
系统设计和实现思路,参考以下文章:
- wallet: 主模块,提供钱包管理 API
- signer: 签名机,负责地址生成和密钥管理
- scan: 区块链扫描器,支持智能重组处理和存款检测, 每一个链有独立的扫描模块
- evm_scan: 扫描 EVM 链
- solana_scan: 扫描 Solana 链
- risk_control: 风控模块
- fund_rebalance: 资金调度模块
- API 使用说明
- Signer 模块文档
- Wallet 模块文档
- Scan 模块文档: EVM 链 、 Solana 链
- 风控 模块文档
- 数据库网关模块文档
- 配置环境变量(参考各模块文档)
- 启动数据库: cd db_gateway && npm run dev (自动创建数据库表)
- 生成密钥对: curl -X POST http://localhost:3003/generate-keypair
- 配置环境变量: 将公钥配置到数据库网关,私钥配置到 wallet/Scan/risk_control模块
- 启动 risk_control 服务 (cd risk_control && npm run dev)
- 启动 signer 服务(配置 .env 的助记词,
./start_signer.sh使用默认密码启动 ) - 启动 wallet 服务 (cd wallet && npm run dev)
- 模拟一些数据:
- 启动 以太坊 和 Solana 本地模拟网络:
./start_anvil.sh和./start_solana_localnet - 执行 wallet 模块下的 Token 部署脚本:
npm run deploy:erc20:tokens和npm run deploy:solana:tokens - 执行 wallet 模块下的
npm run mock:init填充一些测试的 ETH 及 Solana 用户地址。(注意本地测试,先部署 token )
- 启动 以太坊 和 Solana 本地模拟网络:
- 启动两个 scan 服务, 扫描存款入账
- EVM scan :
cd scan/evm_scan && npm run dev - Solana scan:
cd scan/solana_scan && npm run dev - 模拟 EVM 链转账
cd wallet && npm run mock:evm:transfer - 模拟 Solana 链转账
cd wallet && npm run mock:solana:transfer
- EVM scan :
- 提款测试
- 模拟在 EVM 取款:
cd wallet && npm run mock:withdraw:evm - 审核取款:
cd wallet && npm run mock:approveReview - 模拟在 Solana 取款:
cd wallet && npm run mock:withdraw:solana:sol
- 模拟在 EVM 取款:
服务推荐启动顺序:db_gateway -> risk_control -> signer -> wallet -> scan
欢迎你和我们一起完善代码,方便更多的人实现托管系统:
- Fork 项目
- 创建功能分支
- 提交更改
- 创建 Pull Request
MIT License