Logo
新用户订阅 RPC,首月享 6.5 折优惠查看优惠
RPC Assistant

什么是TON全节点,何时应该运行一个?

摘要

TON全节点存储完整的区块链状态并验证The Open Network的交易。运行一个全节点可以让您直接访问TON数据,无需中间人,但需要大量的硬件、存储和持续的维护。本文解释了TON全节点的功能、运行与租用基础设施的权衡,以及如何决定哪种方法适合您的项目。

快速决策指南:运行自己的TON节点还是使用托管基础设施?

在深入技术细节之前,了解运行TON全节点是否适合您的项目会有所帮助。答案取决于您的工作负载、团队资源和可靠性要求。

如果以下情况,请考虑运行自己的TON全节点:

  • 您需要低延迟访问TON数据,用于高频交易或实时分析。
  • 您希望完全控制节点的配置和数据保留。
  • 您拥有处理升级、监控和事件响应的DevOps专业知识。
  • 您的应用程序产生大量读取流量,可能超出共享RPC速率限制。

如果以下情况,请考虑使用像OnFinality这样的托管RPC服务:

  • 您希望专注于产品而不是节点操作。
  • 您需要高可用性,而无需运行冗余节点集群的开销。
  • 您的流量是尖峰或不可预测的,您希望无需配置硬件即可扩展。
  • 您更愿意按使用量付费,而不是承诺固定的基础设施成本。

如果您仍然不确定,请先使用托管的RPC端点验证您的应用程序,然后在了解实际负载后重新考虑决策。OnFinality提供TOn RPC端点专用节点,可以作为可靠的基线。

什么是TON全节点?

TON全节点是维护The Open Network区块链完整副本的服务器。它验证所有交易和区块,存储完整状态,并参与网络的gossip协议。与仅下载区块头并向全节点请求特定数据的轻客户端不同,全节点独立验证整个历史。

TON的架构是分片的,这意味着网络被分成多个分片链以并行处理交易。TON中的全节点通常跟踪主链和一个或多个分片链。主链协调验证者并存储网络配置,而分片链处理用户交易。这种设计使TON能够水平扩展,但也意味着运行全节点需要仔细配置以跟上您想要监控的所有链。

为什么运行TON全节点?

开发人员或基础设施团队可能选择运行TON全节点有几个原因:

  • 数据主权:您可以直接访问原始区块链数据,而无需依赖第三方API。
  • 自定义查询:您可以对完整状态运行复杂查询,这在公共RPC服务上可能受到限制或昂贵。
  • 性能:对于延迟敏感的应用程序,本地节点消除了到远程RPC提供商的网络往返。
  • 学习:运行节点是理解TON内部机制的绝佳方式,可以为智能合约开发和调试提供信息。

然而,这些好处伴随着实际成本。TON全节点需要大量的硬件、持续的维护和仔细的监控。对于许多团队来说,运营负担超过了优势,尤其是当托管服务可以提供相当的性能而开销更少时。

硬件和存储要求

运行TON全节点并非易事。根据社区指导和网络增长,您应该计划以下最低规格:

资源最低建议备注
CPU8核以上TON的验证和区块处理是CPU密集型的。
内存32 GB更多内存有助于缓存并减少磁盘I/O。
存储1 TB以上SSD区块链随时间增长;请规划扩展。
网络100 Mbps以上您需要同步区块并向对等方提供数据。

这些是粗略估计。实际要求取决于您跟踪的分片链数量以及查询模式。您应该监控磁盘使用情况,并在磁盘满之前升级存储。

设置TON全节点

TON提供官方节点软件,但设置过程很复杂。以下是步骤的高级概述:

  1. 安装依赖:您需要最新的Linux发行版、构建工具和TON源代码。
  2. 构建节点:从源代码编译ton二进制文件,或者如果可用,使用预构建的包。
  3. 配置节点:创建配置文件,指定要跟随的网络(主网、测试网)和分片链。
  4. 同步区块链:初始同步可能需要几天,具体取决于您的硬件和网络速度。
  5. 运行节点:使用像systemd这样的进程管理器来保持节点运行。
  6. 监控:设置日志和警报,以应对同步滞后或磁盘空间等常见问题。

以下是TON节点的基本systemd服务文件示例:

[Unit]
Description=TON Full Node
After=network.target

[Service]
User=ton
ExecStart=/usr/local/bin/ton-node --config /etc/ton/ton-global.config.json
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

这是一个简化的示例。实际命令和配置将取决于您使用的特定节点软件。请始终参考官方TON文档以获取最新说明。

常见陷阱及如何避免

运行TON全节点会带来几个挑战,即使是经验丰富的开发人员也可能遇到:

  • 同步问题:如果您的节点落后于网络,可能需要很长时间才能赶上。定期监控同步状态,并确保您的硬件能够跟上。
  • 存储耗尽:区块链持续增长。设置磁盘使用警报,并计划添加存储或尽可能修剪旧数据。
  • 网络连接:TON节点需要维护与对等方的连接。防火墙或NAT配置可能导致连接问题。
  • 软件更新:TON协议不断发展,您需要更新节点软件以保持兼容。订阅发布公告,并先在测试网上测试升级。

托管RPC与运行自己的节点

对于许多生产应用程序,使用托管RPC服务比运行自己的全节点更实用。以下比较可帮助您决定:

因素运行自己的节点托管RPC(例如OnFinality)
设置时间数天到数周几分钟
维护您处理升级、监控和修复提供商处理
成本硬件+电力+DevOps时间基于使用量的订阅
可扩展性手动容量规划按需扩展
可靠性取决于您的设置提供商的SLA和冗余
控制完全控制限于提供商的API

像OnFinality这样的托管服务提供TON RPC端点,支持HTTP和WebSocket,开箱即用。如果您需要私有、隔离的实例而无需运营开销,他们还提供专用节点

如何连接到TON全节点或RPC端点

一旦您运行了TON节点(或使用托管端点),您可以使用TON的HTTP API与之交互。以下是使用curl获取最新主链区块的简单示例:

curl -X POST https://ton.access.onfinality.io/api/v1/ton/mainnet -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"ton.getMasterchainInfo","params":[]}'

如果您运行自己的节点,请将URL替换为您自己的节点端点。响应将包括最新区块号、哈希和其他链信息。

对于JavaScript开发人员,您可以使用像tonton-core这样的库与节点交互。以下是使用ton npm包的简单示例:

import { TonClient } from "ton";

const client = new TonClient({
  endpoint: "https://ton.access.onfinality.io/api/v1/ton/mainnet",
});

async function getLatestBlock() {
  const masterchainInfo = await client.getMasterchainInfo();
  console.log(masterchainInfo);
}

getLatestBlock();

此代码连接到TON端点并获取最新的主链信息。然后您可以使用客户端查询账户、发送交易等。

监控和维护您的节点

如果您决定运行自己的节点,您需要设置监控以确保其保持健康。要跟踪的关键指标包括:

  • 同步状态:您的节点落后于网络多少?
  • CPU和内存使用情况:资源是否耗尽?
  • 磁盘空间:存储是否不足?
  • 网络流量:您是否有效地接收和发送区块?

您可以使用Prometheus和Grafana等工具来收集和可视化这些指标。设置警报以在出现问题时通知您,例如当同步滞后超过阈值或磁盘使用量超过警告级别时。

关键要点

  • TON全节点让您完全控制并直接访问区块链数据,但它需要大量的硬件和维护。
  • 对于许多应用程序,托管RPC服务更具成本效益和可靠性,尤其是在您缺乏DevOps资源的情况下。
  • 如果您运行自己的节点,请规划存储增长,监控同步状态,并保持软件更新。
  • OnFinality提供TON RPC端点专用节点以支持您的基础设施需求。

常见问题解答

TON全节点和验证者有什么区别?

全节点存储并验证区块链,但不产生新区块。验证者是参与共识并因提议和验证区块而获得奖励的全节点。运行验证者需要质押TON并承担额外责任。

同步TON全节点需要多长时间?

初始同步可能需要几个小时到几天,具体取决于您的硬件、网络速度以及您跟踪的分片链数量。使用快速的SSD和良好的互联网连接将加快该过程。

我可以在云服务器上运行TON全节点吗?

是的,您可以在云VPS上运行TON节点,但您需要确保实例具有足够的CPU、内存和存储。云提供商通常对高性能SSD收取额外费用,因此请将其计入成本分析。

运行TON全节点的成本是多少?

成本因硬件和托管而异。具有推荐规格的专用服务器每月可能花费100-300美元,如果自托管则加上电费。托管RPC服务提供基于使用量的可预测定价,对于较小的项目可能更经济。

如何在共享RPC端点和专用节点之间选择?

共享端点适用于开发和低流量应用程序。如果您需要一致的性能、更高的速率限制或自定义配置,专用节点是更好的选择。OnFinality提供这两种选项,因此您可以从共享端点开始,随着需求增长而升级。

有关定价和网络支持的更多详细信息,请参阅我们的RPC定价支持的网络页面。

RPC 知识库

相关 RPC 内容

区块链基础设施

什么是RWA节点基础设施,以及如何构建它?

RWA节点基础设施是支持代币化现实世界资产的区块链和数据层,包括RPC端点、索引器和节点操作。本文解释了核心组件、如何评估基础设施提供商,以及如何为生产级RWA应用设计弹性堆栈。...

网络 RPCGnosis

面向生产应用的最佳 Gnosis RPC 端点有哪些?

Gnosis Chain 是一个兼容 EVM 的网络,链 ID 为 100,原生货币为 xDAI。像 https://rpc.gnosischain.com 这样的公共 RPC 端点适合轻量测试,但生产应用需要可靠、可扩展的基础设施。本文列出了常见的 Gnosis RPC 端点,解释了如何评估它们,...

测试网 RPCBitcoin

什么是比特币测试网 RPC,如何使用它?

比特币测试网 RPC 端点允许开发者连接到比特币测试网络,在不冒真实资金风险的情况下进行开发和测试。本文解释了什么是比特币测试网 RPC,如何选择端点,以及如何发起你的第一个 JSON-RPC 调用。...

网络 RPCGnosis

Gnosis RPC:端点、提供商与最佳实践

# Gnosis RPC:端点、提供商与最佳实践 Gnosis Chain(原 xDai)是一个兼容 EVM 的 L1 区块链,以其稳定的 gas 代币(xDAI)和低交易成本而闻名。为了与 Gnosis Chain 交互,开发者和应用程序需要一个可靠的 RPC(远程过程调用)端点。本指南涵盖了您需...

网络 RPCOptimism

Optimism 端点:链设置、连接和调试

Optimism 端点是 JSON-RPC URL,可让您的 dApp 或后端在 OP Mainnet 或 OP Sepolia 上读写数据。本文涵盖确切的链设置、如何通过 curl 或 ethers.js 连接,以及如何调试常见的端点故障。...

RPC 提供商选择

Chainstack vs Other RPC Providers: What to Evaluate Before Choosing

A practical comparison guide for developers evaluating Chainstack against other RPC providers. Covers key criteria including pricing models, network s...

永远不用担心基础设施

OnFinality 消除了 DevOps 的繁重工作,让您能够更聪明、更快地构建。

开始