摘要
TON 测试网是一个公共沙盒,用于构建和测试智能合约、钱包和 dApp,而不会冒主网资产的风险。本指南涵盖了关键端点、水龙头以及让测试网环境运行起来的实用步骤,还有如何为你的开发工作流选择可靠的 RPC 提供商。
快速建议:选择与你的工作负载匹配的端点
在编写任何代码之前,请决定如何与 TON 测试网交互。正确的选择取决于你是在构建一个简单的脚本、一个生产级 dApp,还是一个高吞吐量的索引器。
- 对于快速实验和一次性调用,公共端点或 TON Center HTTP API 就足够了。你可以从免费 API 密钥和每秒一个请求的速率限制开始。
- 对于预发布、QA 和负载测试,你需要一个专用的测试网 RPC 端点,能够处理持续流量而不会受到限制。公共端点通常会激进地限制速率,这可能会破坏你的测试套件。
- 对于生产规划,将测试网视为主网的预演。选择一个在两个网络上提供相同端点类型和可靠性的提供商,以便你可以以最小的代码更改进行迁移。
如果你不确定,可以从像 OnFinality 的 TON 测试网端点 这样的托管 RPC 服务开始,并查看 RPC 定价 以了解免费层是否满足你的需求。你以后可以随时切换。
什么是 TON 测试网?
TON 测试网是由 TON 基金会和社区验证者维护的独立区块链网络。它镜像了主网的功能,但使用没有实际价值的测试网 TON (tGRM)。开发者使用它来部署智能合约、测试钱包集成以及模拟交易,而无需承担财务风险。
测试网有自己的浏览器,例如 testnet.tonscan.org 和 testnet.tonviewer.com,以及自己的 HTTP API,位于 testnet.toncenter.com。请注意,test.ton.org 上的原始测试网资源已经过时且不再受支持;始终使用当前社区维护的端点。
链设置一览
| 设置 | 值 |
|---|---|
| 网络名称 | TON 测试网 |
| 全局 ID | -3 |
| 工作链 | 0(基础链)和 -1(主链) |
| 地址格式 | 与主网相同,但测试网地址是独立的 |
| 浏览器 | testnet.tonscan.org 或 testnet.tonviewer.com |
| HTTP API | testnet.toncenter.com |
| 水龙头 | Telegram 上的 @testgiver_ton_bot |
这些设置足以配置钱包或 dApp。有关受支持网络的完整列表,请参阅 支持的 RPC 网络。
获取测试网代币
要与测试网交互,你需要测试网 TON (tGRM)。官方水龙头是一个名为 @testgiver_ton_bot 的 Telegram 机器人。使用方法如下:
- 打开 Telegram 并搜索 @testgiver_ton_bot。
- 启动机器人并点击 Get 2 GRAM in testnet。
- 完成验证码并输入你的测试网钱包地址。
- 等待几秒钟让机器人处理请求。
- 使用测试网浏览器验证转账。
你每小时可以请求 2 tGRM。对于更大的金额,你可能需要运行自己的水龙头或使用社区水龙头。始终仔细检查你提供的地址是测试网地址,而不是主网地址。
通过 HTTP API 连接
与 TON 测试网交互的最简单方式是通过 TON Center HTTP API。你可以在没有 API 密钥的情况下使用它,但速率限制为每秒 1 个请求。要获得更高的限制,请通过 @toncenter 机器人注册 API 密钥。
以下是一个基本的 curl 示例,用于获取地址余额:
curl -X GET \
'https://testnet.toncenter.com/api/v2/getAddressBalance?address=EQD...' \
-H 'accept: application/json'
将 EQD... 替换为你的测试网地址。响应将包含以 nanoTON 为单位的余额。
使用专用 RPC 端点
对于开发和测试,托管 RPC 端点通常比公共端点更可靠。OnFinality 提供了一个 TON 测试网端点,你可以使用与主网相同的 JSON-RPC 接口。以下是发出请求的方法:
curl -X POST \
https://ton-testnet.onfinality.io/api/v3 \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"method": "ton_getAddressBalance",
"params": ["EQD..."],
"id": 1
}'
注意:确切的端点 URL 和方法名称可能会有所不同。查看 TON 测试网网络页面 以获取最新详细信息。
选择测试网 RPC 提供商
在评估测试网 RPC 提供商时,请考虑以下标准:
| 标准 | 检查内容 | 为什么重要 |
|---|---|---|
| 速率限制 | 每秒请求数、每日上限 | 公共端点通常会限制流量,破坏你的测试 |
| 正常运行时间 | 历史可用性、状态页面 | 测试网中断可能会阻塞你的 CI/CD 管道 |
| 方法支持 | 是否支持所有 TON API 方法? | 缺少方法会迫使你在项目中途更换提供商 |
| WebSocket 支持 | 实时事件订阅 | 钱包和 dApp 中的实时更新需要 |
| 主网一致性 | 测试网和主网使用同一提供商 | 简化迁移并减少代码更改 |
| 成本 | 免费层、按需付费或订阅 | 为长期运行的测试环境做预算 |
像 OnFinality 这样的托管服务在测试网和主网上提供一致的端点,这可以在你迁移到生产环境时节省时间。查看 RPC 定价 以了解免费层是否满足你的需求。
常见陷阱及如何避免
- 在测试网上使用主网地址:测试网和主网地址看起来相似,但不能互换。始终生成一个新的测试网钱包。
- 忽略速率限制:公共端点受到严格速率限制。如果你的测试套件发出大量请求,你会遇到 429 错误。使用专用端点或添加重试逻辑。
- 假设测试网始终可用:测试网可能会停机或重置。监控你的端点并制定备用计划。
- 忘记验证交易:请求测试网代币后,在浏览器上验证转账。水龙头不会发送确认消息。
调试你的测试网连接
如果连接遇到问题,请按照以下调试路径操作:
- 检查你的端点 URL:确保你使用的是正确的测试网 URL,而不是主网。
- 使用简单请求进行测试:使用 curl 调用
getMasterchainInfo,看看是否能得到响应。 - 检查你的 API 密钥:如果你使用密钥,请验证它是否有效且未过期。
- 查找速率限制错误:如果你看到 429 响应,请等待或切换到更高层级的端点。
- 验证你的地址:确保你使用的是测试网地址,并且格式正确。
以下是一个检查主链信息的 curl 命令:
curl -X POST \
https://ton-testnet.onfinality.io/api/v3 \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"method": "ton_getMasterchainInfo",
"id": 1
}'
如果你得到响应,说明你的连接正常。如果没有,请检查你的网络设置和防火墙。
关键要点
- TON 测试网是一个用于开发的公共沙盒,拥有自己的浏览器、API 和水龙头。
- 使用官方 Telegram 机器人 @testgiver_ton_bot 获取测试网代币。
- 为了可靠的开发,请选择专用 RPC 端点而不是公共端点,尤其是在预发布和 QA 阶段。
- 根据速率限制、正常运行时间、方法支持和主网一致性来评估提供商。
- 始终验证你的测试网地址和交易,以避免常见错误。
常见问题解答
TON 测试网和主网有什么区别?
测试网使用没有实际价值的测试网 TON (tGRM),而主网使用真实的 TON。测试网用于开发和测试,其状态可以随时重置。
如何获取测试网 TON?
使用 Telegram 机器人 @testgiver_ton_bot 每小时请求 2 tGRM。你需要一个测试网钱包地址来接收代币。
我可以对测试网和主网使用相同的 RPC 端点吗?
可以,如果你的提供商支持两个网络。OnFinality 为 TON 测试网和主网都提供端点,因此你可以以最小的代码更改进行切换。
TON 测试网 API 的速率限制是多少?
像 TON Center 这样的公共端点在没有 API 密钥的情况下将你限制为每秒 1 个请求。使用密钥后,限制会更高。托管提供商可能提供不同的限制;请查看他们的文档。
如何在测试网上验证交易?
使用像 testnet.tonscan.org 或 testnet.tonviewer.com 这样的测试网浏览器。输入你的钱包地址或交易哈希以查看详细信息。