摘要
TON 端点是 HTTP 和 JSON-RPC 桥接端点,允许链下应用程序读取区块链数据、查询智能合约并在 The Open Network (TON) 上提交交易。由于 TON 节点使用 ADNL 而非 HTTP 通信,因此 TON Center 的 API 或托管 RPC 提供商等端点是钱包、机器人和后端与网络交互的标准方式。
选择合适的 TON 端点意味着检查您需要主网还是测试网访问权限,在 TON Center API v2(基于 liteserver)和 v3(索引)之间做出决定,验证速率限制,并在生产环境之前测试端点。本指南涵盖了端点选项、示例请求和开发人员决策清单。
TON 端点是钱包、机器人和后端服务与 The Open Network 交互的标准方式。它们是读取区块链数据、查询智能合约和提交签名消息的 HTTP 或 JSON-RPC 桥接端点。由于 TON 节点使用 ADNL 而非 HTTP,端点层通常基于参考实现 ton-http-api 构建。
本页解释了什么是 TON 端点,它与 EVM RPC 端点有何不同,常见的主网和测试网端点选项有哪些,以及如何在依赖端点之前对其进行测试。
TON 端点决策清单
在您承诺使用 TON 端点之前,请完成此清单。只需几分钟,即可避免大多数集成问题。
- 主网还是测试网? 使用测试网进行开发和暂存;将生产环境指向主网。
- API 版本? 选择 v2 以直接访问 liteserver,或选择 v3 以满足对追踪、jettons 和 NFT 的索引查询需求。
- 方法覆盖? 确认端点支持您的钱包或机器人所需的方法。
- 身份验证? 了解您是否需要 API 密钥以及速率限制如何应用。
- 流式传输? 如果您实时响应交易,请检查是否支持 SSE 或 WebSocket。
- 冗余? 为提供商中断做好计划,并测试备用端点。
- 成本模型? 将共享公共端点与 RPC 定价 和专用节点进行比较。
TON RPC 与 EVM RPC:为什么端点形状不同
许多开发人员带着以太坊的心智模型而来。他们期望 eth_blockNumber、eth_call 和 eth_getLogs 等方法。TON 与 EVM 不兼容。
TON 的核心组件是 TVM(TON 虚拟机),节点使用 ADNL 二进制协议进行通信。HTTP 端点是中间服务。它接收 HTTP 请求,使用 tonlib 与 liteserver 通信,并返回 JSON。您可以使用 TON Center 的公共服务,运行自己的 ton-http-api,或使用已部署 TON 基础设施的托管 RPC 提供商。
这种架构也解释了方法名称。最常见的方法是 getAddressInformation、getTransactions、runGetMethod、estimateFee 和 sendBoc。没有 eth_ 方法,也没有 web3_clientVersion 调用。当有人说“TON 端点”时,他们通常指的是 HTTP API 地址,而不是以太坊意义上的 JSON-RPC 节点。
主网和测试网端点选项
对于快速入门,TON Center 是参考 API。其公共 v2 端点为:
| 网络 | 基础 URL | JSON-RPC 路径 |
|---|---|---|
| 主网 | https://toncenter.com/api/v2 | https://toncenter.com/api/v2/jsonRPC |
| 测试网 | https://testnet.toncenter.com/api/v2 | https://testnet.toncenter.com/api/v2/jsonRPC |
两者都是公共的且有限速。TON Center 还提供带有索引器的 v3 API,以及通过 SSE 和 WebSocket 的 Streaming API v2。
像 OnFinality 这样的托管提供商为您提供托管端点,因此您无需运行 TON 节点。查看 TON 网络页面 了解主网详细信息,查看 TON 测试网页面 了解暂存环境。您还可以查看完整的 支持的网络 列表。
如何测试 TON 端点
验证端点最快的方法是使用简单的 curl 请求。将 EQD... 替换为真实地址。
curl 'https://toncenter.com/api/v2/getAddressInformation?address=EQD...' -H 'Accept: application/json'
成功的响应如下所示:
{
"ok": true,
"result": {
"@type": "raw.fullAccountState",
"balance": "123456789",
"state": "active"
}
}
请求成功后,使用 runGetMethod 测试只读智能合约调用,然后在尝试广播交易之前测试 estimateFee。
您最常使用的 TON API 方法
以下是您在钱包或机器人中最可能需要的方法:
getAddressInformation– 返回余额、状态、代码哈希和其他账户详细信息。getTransactions– 返回地址的近期交易历史。runGetMethod– 在智能合约上调用 get-method(只读,无费用)。estimateFee– 估算外部消息的费用。sendBoc– 向网络提交签名的外部消息(Bag of Cells)。detectAddress– 在原始格式和用户友好格式之间规范化地址。getTokenData– 读取 jetton(代币)元数据和余额。
如果您的用例需要丰富的历史查询,TON Center API v3 增加了对追踪、jettons 和 NFT 的索引访问。然而,典型的钱包可以使用 v2 和上述方法构建。
在公共、托管和专用 TON 端点之间选择
公共端点对原型很有吸引力。对于任何持续运行的内容,请检查超出速率限制时会发生什么。许多公共端点返回 429 响应,没有重试指导,这对于本地演示可能没问题,但对于服务来说有风险。
使用下表评估任何 TON 端点,包括您自己的自托管实例。
| 标准 | 检查内容 | 重要性 |
|---|---|---|
| 网络覆盖 | 主网和测试网 URL | 避免将暂存代码指向生产数据。 |
| API 版本 | v2 与 v3 | v2 直接查询 liteserver;v3 添加索引以支持更丰富的查询。 |
| 速率限制 | 每秒请求数,基于 IP 或密钥 | 公共端点可能在高峰期间限制您。 |
| 身份验证 | 需要 API 密钥或令牌 | 密钥允许按项目跟踪使用情况,并更安全地用于生产。 |
| 方法覆盖 | sendBoc、estimateFee、runGetMethod 等 | 缺少方法会破坏钱包或机器人功能。 |
| 流式支持 | SSE 或 WebSocket 可用性 | 实时更新和事件驱动服务需要。 |
| 历史数据 | 归档和索引深度 | 追踪、jettons 和旧交易可能需要索引器。 |
| 部署模型 | 公共、托管共享或专用节点 | 公共方便;专用基础设施提供更多控制。 |
常见的 TON 端点陷阱
即使您有了端点,TON 集成也会在几个方面让开发人员犯错。
- 假设 EVM JSON-RPC。 不要向 TON 端点发送
eth_方法。请改用 TON 特定的方法。 - 使用错误的地址格式。 TON 支持 base64 用户友好地址和原始
workchain:hex地址。在查询之前使用detectAddress进行规范化。 - 遇到速率限制。 429 响应意味着端点正在限制您。添加带退避的重试,并尽可能使用 API 密钥。
- 混淆主网和测试网。 在主网上查询测试网地址将返回未初始化的账户状态或空数据。在配置中验证网络。
- 忘记
sendBoc需要签名的外部消息。 您必须构造并签名一个 Bag of Cells;不能简单地发送私钥或原始十六进制交易。 - 使用 v2 进行深度历史查询。
getTransactions只返回 liteserver 拥有的内容。对于交易历史、追踪或 NFT,请使用索引 API,例如 TON Center v3。 - 忽略证明要求。 如果您需要无需信任的验证,HTTP API 可能不会返回证明包。在这种情况下,请使用
tonlib连接到 liteserver,或使用提供证明的服务。
使用 OnFinality 的后续步骤
一旦您了解了端点形状,请在应用程序的开发环境中进行测试。对于生产环境,请决定共享公共端点是否足够,或者您是否需要更多控制。
OnFinality 提供 TON RPC API 访问,作为其 网络覆盖 和 专用节点基础设施 的一部分,适用于需要私有端点的团队。在部署之前,请查看 TON 网络页面 获取当前端点信息,以及 TON 测试网页面 了解暂存环境。您还可以查看 RPC 定价 以了解共享和专用设置之间的权衡。
无论您选择哪个端点,请记住决策清单:在编写生产代码之前,验证网络、方法覆盖、速率限制和流式支持。
关键要点
- TON 端点是到 TON liteserver 的 HTTP/JSON-RPC 桥。它使用 TON 特定的方法,而不是 EVM 方法。
- TON Center API v2 是参考实现;v3 添加了索引查询以支持丰富的历史记录。
- 在集成之前使用 curl 测试端点,并检查速率限制和身份验证。
- 有意使用主网和测试网端点;混淆它们会导致令人困惑的错误。
- 对于生产环境,请考虑使用 OnFinality 提供的托管或专用 TON 端点,而不是依赖公共免费端点。
常见问题解答
什么是 TON 端点?
TON 端点是 HTTP API 地址,允许应用程序读取 TON 数据、查询智能合约和发送交易,而无需直接使用 ADNL。
TON 与以太坊 JSON-RPC 兼容吗?
不。TON 使用 TVM 和 ADNL 协议。诸如 TON Center 之类的 HTTP API 公开了 getAddressInformation 和 sendBoc 等方法,而不是 eth_ 方法。
TON API v2 和 v3 有什么区别?
v2 通过 ton-http-api 直接查询 liteserver。v3 使用索引数据库来支持对交易、追踪、jettons 和 NFT 的更丰富查询。
如何选择 TON 端点提供商?
检查主网/测试网覆盖范围、方法支持、速率限制、身份验证、流式传输能力,以及您是否需要索引历史或专用节点。在 RPC 定价 上比较计划。