# 测试网设置指南 ## 概述 本目录包含用于设置测试网环境的工具和合约。 ## 测试网信息 ### BSC Testnet - **Chain ID**: 97 - **RPC URL**: `https://data-seed-prebsc-1-s1.binance.org:8545` - **区块浏览器**: https://testnet.bscscan.com - **水龙头**: https://testnet.bnbchain.org/faucet-smart - **官方测试 USDT**: `0x337610d27c682E347C9cD60BD4b3b107C9d34dDd` ### KAVA Testnet - **Chain ID**: 2221 - **RPC URL**: `https://evm.testnet.kava.io` - **区块浏览器**: https://testnet.kavascan.com - **水龙头**: https://faucet.kava.io - **测试 USDT**: 需要自行部署 ## 快速开始 ### 1. 切换到测试网模式 编辑 `backend/services/.env`: ```bash NETWORK_MODE=testnet ``` 或在启动时设置环境变量: ```bash NETWORK_MODE=testnet docker compose up -d blockchain-service ``` ### 2. 获取测试代币 #### BSC Testnet 1. 访问 https://testnet.bnbchain.org/faucet-smart 2. 连接钱包,获取 tBNB 3. BSC Testnet 上有官方测试 USDT,地址: `0x337610d27c682E347C9cD60BD4b3b107C9d34dDd` #### KAVA Testnet 1. 访问 https://faucet.kava.io 2. 输入钱包地址,获取 KAVA 3. 需要部署自定义测试 USDT 合约 (使用 TestUSDT.sol) ### 3. 部署自定义测试 USDT (可选) 如果需要完全控制测试代币,可以部署自定义合约: 1. 打开 [Remix IDE](https://remix.ethereum.org) 2. 创建 `TestUSDT.sol`,粘贴合约代码 3. 编译 (Solidity 0.8.20, Optimizer: 200) 4. 连接 MetaMask,切换到目标测试网 5. 部署合约 6. 记录合约地址,更新 `.env` ### 4. 验证配置 启动服务后,检查日志确认网络配置: ```bash docker logs rwa-blockchain-service 2>&1 | grep "Network mode" ``` 应该看到: ``` [INIT] Network mode: testnet (testnet=true) [INIT] KAVA: chainId=2221, rpc=https://evm.testnet.kava.io [INIT] BSC: chainId=97, rpc=https://data-seed-prebsc-1-s1.binance.org:8545 ``` ## 测试充值流程 ### 1. 创建测试账户 ```bash curl -X POST http://localhost:3000/api/v1/user/auto-create \ -H "Content-Type: application/json" \ -d '{"deviceId": "test-device-001", "deviceName": {"model": "Test"}}' ``` ### 2. 获取充值地址 使用返回的 token: ```bash curl http://localhost:3000/api/deposit/addresses \ -H "Authorization: Bearer $TOKEN" ``` ### 3. 发送测试 USDT 在 MetaMask 中: 1. 切换到测试网 2. 向充值地址发送测试 USDT 3. 等待确认 ### 4. 检查充值状态 ```bash curl http://localhost:3000/api/deposit/balances \ -H "Authorization: Bearer $TOKEN" ``` ## 文件说明 - `TestUSDT.sol` - 测试 USDT 合约 (Solidity) - `deploy-test-usdt.ts` - 部署脚本 (参考) - `README.md` - 本文档 ## 注意事项 1. **永远不要在主网使用测试私钥** 2. 测试网代币没有价值,仅供开发测试 3. 测试网可能不稳定,出块速度可能变化 4. 建议先在 BSC Testnet 测试,因为文档更完善