摘要
TON节点是存储The Open Network区块链完整状态、验证交易并为应用程序提供数据的软件客户端。运行自己的节点可以让你直接、不受限制地访问网络,但也需要大量的运维开销。对于大多数开发者来说,使用托管RPC端点或来自OnFinality等提供商的专用节点,是一种更快、更可靠且无需维护负担的替代方案。
TON节点决策清单
在决定运行自己的TON节点之前,请考虑以下因素:
- 你需要完整的历史数据吗? 归档节点存储所有区块链历史,而全节点会修剪旧数据。托管提供商通常提供归档端点,无需存储成本。
- 你正在构建区块浏览器或分析工具吗? 你可能需要一个归档节点或一个索引历史数据的托管API。
- 你需要验证并赚取奖励吗? 只有当你拥有足够的TON质押和运维专业知识时,才运行验证节点。
- 你能处理维护工作吗? 自托管节点需要定期更新、监控和备份。托管服务会为你处理这些。
- 你的流量模式是怎样的? 如果你的dApp流量波动较大,具有自动扩展功能的托管RPC可能比按峰值负载配置更经济。
什么是TON节点?
TON节点是一种软件客户端,它维护TON区块链状态的副本并参与网络。节点验证交易、传播区块,并向轻客户端(钱包、dApp)提供数据。TON节点使用ADNL(抽象数据报网络层)协议进行点对点通信,并可以为外部应用程序暴露JSON-RPC接口。
有几种类型的TON节点,每种角色不同:
- 全节点(轻服务器): 存储最新的分片和主链状态,修剪旧数据,并为轻客户端提供服务。适用于自定义基础设施或支持你自己的API。
- 归档节点(归档轻服务器): 保留所有历史区块和状态。区块浏览器、分析工具以及需要完整历史记录的服务需要它。
- 验证节点: 通过签署区块和赚取奖励参与共识。需要质押TON和可靠的设置。
- 收集节点: 为验证节点生成区块,以减轻验证机器的负载。
- 提名池: 接受多方质押,并代表他们运行验证节点。
何时应该运行自己的TON节点?
运行自己的节点可以完全控制数据访问、延迟和可靠性。在以下情况下,这是正确的选择:
- 你需要不受过滤、直接访问区块链,而不依赖第三方。
- 你运行验证节点或收集节点以保护网络并赚取奖励。
- 你运行需要归档节点的区块浏览器或数据服务。
- 你有DevOps资源来全天候维护和监控节点。
然而,自托管也有成本:专用硬件(或云实例)、存储(归档节点可能达到数百GB)、带宽和持续维护。对于许多团队来说,运维负担超过了收益。
何时使用托管TON RPC提供商
大多数dApp开发者和基础设施购买者选择托管RPC提供商,因为它简化了操作并提高了可靠性。托管服务提供:
- 托管基础设施: 无需同步、更新或监控节点。
- 地理分布式端点: 为全球用户降低延迟。
- 自动扩展: 处理流量高峰,无需按峰值负载配置。
- 归档访问: 查询历史数据,无需自己存储。
- 多网络支持: 使用单个API密钥访问主网和测试网。
OnFinality为TON主网和测试网提供TON RPC端点,并为高吞吐量工作负载提供专用节点选项。你可以快速开始,无需管理任何基础设施。
TON节点设置:快速概览
如果你决定运行自己的节点,以下是步骤的概要。详细说明请参阅TAN文档。
前提条件
- 一台Linux服务器(推荐Ubuntu 20.04+),至少8个CPU核心、32 GB RAM和500 GB SSD(全节点;归档节点需要更多)。
- 开放ADNL(TCP 30303,UDP 30303)和轻服务器(TCP 8080)端口。
- 基本命令行和系统管理知识。
安装(C++节点)
- 克隆TON仓库:
git clone https://github.com/ton-blockchain/ton.git cd ton - 构建节点:
mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release make -j$(nproc) - 通过编辑
config.json配置节点。 - 启动节点:
./validator-engine -C config.json
与节点交互
节点运行后,你可以使用lite-client工具查询区块链:
./lite-client -C lite-client-config.json -a 127.0.0.1:8080
或者向轻服务器端点发送JSON-RPC请求:
curl -X POST http://127.0.0.1:8080/jsonRPC -H "Content-Type: application/json" -d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getMasterchainInfo",
"params": []
}'
TON节点类型对比
| 标准 | 检查内容 | 重要性 |
|---|---|---|
| 数据保留 | 全节点修剪旧区块;归档节点保留所有数据 | 历史查询需要归档节点;全节点更便宜 |
| 硬件要求 | 全节点:8 CPU、32 GB RAM、500 GB SSD;归档节点:更多存储 | 配置不足会导致同步失败或性能不佳 |
| 网络参与 | 验证节点签署区块;轻服务器仅提供数据 | 验证节点需要质押和高可用性;轻服务器更简单 |
| 维护工作量 | 更新、监控、备份 | 自托管需要持续DevOps;托管则无需 |
| 成本 | 自托管:服务器+带宽+时间;托管:订阅 | 对于低到中等流量,托管可能更便宜 |
运行TON节点时的常见陷阱
- 存储不足: 归档节点可能超过1 TB。监控磁盘使用并规划增长。
- 网络配置: 防火墙必须允许ADNL和轻服务器端口。配置错误会导致同步失败。
- 同步时间: 初始同步可能需要数天。使用快照或可信提供商来加速。
- 版本更新: TON协议不断演进。保持节点软件更新,以免被分叉。
如何在自托管和托管TON节点之间选择
评估你团队的能力和应用程序需求:
- 团队规模: 小团队受益于减少运维负担的托管服务。
- 流量模式: 如果你的应用有不可预测的峰值,托管自动扩展更可靠。
- 数据需求: 使用提供开箱即用归档访问的提供商更轻松。
- 预算: 自托管初期可能看起来更便宜,但需考虑工程时间和事件响应。
对于大多数生产级dApp,像OnFinality这样的托管RPC提供商在性能、可靠性和成本之间提供了最佳平衡。查看我们的RPC定价和支持的网络,了解TON是否适合你的技术栈。
关键要点
- TON节点有几种类型:全节点、归档节点、验证节点、收集节点和提名池。
- 自托管提供完全控制,但需要大量运维投入。
- 托管RPC提供商简化了基础设施管理,并提供地理分布、可扩展的端点。
- OnFinality为生产工作负载提供托管TON RPC端点和专用节点。
- 在选择路径之前,始终评估你的数据保留、流量和团队能力。
常见问题
问:构建dApp需要TON节点吗? 答:不需要。你可以使用托管RPC提供商与区块链交互,而无需运行自己的节点。
问:全节点和归档节点有什么区别? 答:全节点修剪旧区块链数据以节省存储,而归档节点保留所有历史数据。区块浏览器和分析工具需要归档节点。
问:运行一个TON节点需要多少成本? 答:自托管成本因云提供商和存储而异。全节点预计每月50-200美元,归档节点更高。托管计划从免费层开始。
问:我可以在OnFinality上使用TON测试网吗? 答:是的,OnFinality支持TON主网和TON测试网。
问:什么是ADNL? 答:ADNL(抽象数据报网络层)是TON用于节点间通信的低级网络协议。大多数开发者通过JSON-RPC进行交互。