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开发人员,您可以使用像ton或ton-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 内容

测试网 RPCBitcoin

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

比特币测试网是一个公共区块链,它镜像了比特币主网,但使用没有实际价值的测试币。开发者可以在没有财务风险的情况下,用它来试验交易、钱包和智能合约。本文涵盖测试网设置、RPC端点、水龙头以及选择测试网RPC提供商的最佳实践。...

网络 RPCSui

Sui 主网 RPC:如何连接及注意事项

了解如何连接 Sui 主网 RPC 端点,理解 JSON-RPC 方法,并评估生产应用的基础设施选项。本指南涵盖链设置、请求示例以及选择公共节点和专用节点的关键考虑因素。...

网络 RPCBNB Chain

选择BNB Chain RPC提供商时应注意什么?

# 选择BNB Chain RPC提供商时应注意什么? 最佳的BNB Chain RPC提供商能为生产级dApp提供可靠的BNB RPC访问、清晰的请求限制、高可用性、实用的分析功能、测试网支持,以及在共享端点无法满足工作负载时提供专用BNB节点的路径。 BNB Chain被DeFi应用、交易所、钱...

RPC 提供商选择Optimism

哪个RPC提供商提供最可靠的Optimism RPC端点?

# 哪个RPC提供商提供最可靠的Optimism RPC端点? 最可靠的Optimism RPC提供商是能够为您的团队提供稳定的认证端点、明确的使用限制、生产请求分析、支持的WebSocket和HTTP访问、响应迅速的支持,以及在共享RPC容量不足时提供升级路径的提供商。对于在Optimism上构建...

RPC 提供商选择

Best Crypto Bridge API: What Should Developers Evaluate Before Integrating?

A crypto bridge API provides a programmatic interface for moving assets or data across blockchains. While many services offer bridge APIs, their perfo...

网络 RPCPichiu

什么是Pichiu网络以及如何通过RPC连接?

# 什么是Pichiu网络以及如何通过RPC连接? Pichiu网络是一个专注于去中心化预言机服务的区块链项目,使智能合约能够安全地与链下数据交互。它基于Substrate构建,为数据馈送和跨链通信提供了强大的基础设施。对于在Pichiu上构建的开发者来说,可靠的RPC端点对于查询链上数据和提交交易...

永远不用担心基础设施

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

开始