本指南介绍如何运行 Bittensor(TAO/Finney)Substrate 节点,涵盖硬件要求、轻节点与归档节点的选择、Docker 设置、通过 WSS RPC 连接 Finney 网络,以及使用 JSON-RPC 调用验证节点健康。还提供了决定何时运行自己的节点与使用托管 RPC 端点的决策框架。
直接回答:如何连接 Bittensor Finney RPC
要连接 Bittensor Finney 网络,您可以运行自己的 Substrate 节点,或使用托管的 RPC 端点。官方公共 WSS 端点是 wss://entrypoint-finney.opentensor.ai:443,但有限速,不建议用于生产环境。为了可靠访问,请考虑使用托管服务,如 OnFinality 的 Bittensor Finney 网络页面,或运行自己的节点。本指南将引导您完成这两种选项,重点介绍通过 Docker 运行节点并使用标准 JSON-RPC 调用验证其健康状态。
如果您是矿工或验证者,您必须运行自己的节点以参与共识并提交权重。对于简单查询(如检查余额或读取链状态),托管 RPC 端点就足够了。选择取决于您的用例,详见本文后面的决策指南。
理解 Bittensor 的架构:Substrate 和 Finney
Bittensor 是一个基于 Substrate 的去中心化机器学习网络,Substrate 是一个区块链框架,为许多 Polkadot 和 Kusama 平行链提供支持。主网称为 Finney,以 AI 先驱的名字命名。该网络使用一种名为 Yuma Consensus 的自定义共识机制,根据矿工和验证者机器学习贡献的质量来奖励他们。
Bittensor 上的节点通过 WebSocket(WSS)或 HTTP 上的 JSON-RPC 进行通信。RPC 接口暴露了标准的 Substrate 方法,如 system_health、system_syncState 和 chain_getBlock,以及 Bittensor 特定的 pallets,用于质押、注册和子网管理。有关可用方法的完整列表,请参阅 Bittensor 官方文档。
当您运行节点时,它会通过下载和验证区块与 Finney 网络同步。节点可以以两种模式运行:轻节点(也称为全节点)和归档节点。轻节点仅存储最新状态和最近的区块,而归档节点存储所有历史状态更改,从而支持历史查询。选择会影响磁盘空间和同步时间,详见下一节。
轻节点与归档节点:您需要哪一个?
轻节点和归档节点之间的主要区别在于存储的历史数据量。轻节点会修剪旧状态,仅保留最新状态,这对于大多数操作(如提交交易和读取当前余额)来说已经足够。归档节点保留所有历史状态,允许查询“这个账户在第 1,000,000 个区块时的余额是多少?”这对于分析、索引器以及需要历史数据的应用程序至关重要。
对于 Bittensor,大多数矿工和验证者运行轻节点,因为他们只需要当前状态即可参与共识。但是,如果您正在构建需要历史数据的 dApp,则应运行归档节点或使用托管的归档端点。OnFinality 提供这两种选项;请参阅我们的 归档节点与全节点差异 指南以进行更深入的比较。
磁盘空间要求各不相同:Finney 的轻节点目前大约需要 100-200 GB,而归档节点可能超过 1 TB。这些数字是近似值,会随时间增长。请始终查看 Bittensor 官方文档 中的最新要求。
运行 Bittensor 节点的硬件要求
运行 Bittensor 节点是资源密集型的。官方文档建议使用至少 8 个 CPU 核心、16 GB RAM 和 500 GB 可用空间的 SSD 的机器来运行轻节点。对于归档节点,您将需要更多 RAM(32 GB 或更多)和显著更多的磁盘空间(1 TB+)。快速且低延迟的互联网连接对于同步和参与共识也至关重要。
这些是最低建议;生产节点应具有冗余电源和网络连接。如果您运行验证者,您可能需要额外的资源来处理验证机器学习模型的计算负载。请始终参阅 Bittensor 官方文档 以获取最新的硬件指南。
通过 Docker 运行 Bittensor 节点
运行 Bittensor 节点最简单的方法是使用 Docker,因为它封装了所有依赖项。官方 Docker 镜像在 Docker Hub 上是 opentensorfdn/bittensor。以下是运行轻节点的分步指南。
首先,确保您的机器上安装了 Docker。然后,拉取最新镜像并运行一个容器,暴露适当的端口。默认 RPC 端口是 9944(WebSocket)和 9933(HTTP)。您还可以指定链(Finney)和节点名称。
docker pull opentensorfdn/bittensor:latest
docker run -d --name bittensor-node \
-p 9944:9944 \
-p 9933:9933 \
-v /path/to/data:/root/.local/share/node-subtensor \
opentensorfdn/bittensor:latest \
--chain finney \
--name my-bittensor-node \
--rpc-external \
--ws-external \
--rpc-cors all连接 Finney 网络 RPC(WSS)
节点运行后,它将暴露一个 WebSocket RPC 端点,地址为 ws://localhost:9944。您可以使用任何 WebSocket 客户端(如 wscat)或编程库(如 polkadot-js)连接到该端点。对于外部访问,您需要配置反向代理并使用 TLS 保护连接。
如果您不想运行自己的节点,可以使用公共 RPC 端点。官方公共端点是 wss://entrypoint-finney.opentensor.ai:443,但有限速。对于生产环境,请考虑使用托管服务,如 OnFinality 的 Bittensor RPC 助手,它提供具有更高吞吐量和可靠性的专用端点。
使用 JSON-RPC 调用验证节点健康
启动节点后,您应该验证它是否正在同步且健康。标准的 Substrate RPC 方法 system_health 和 system_syncState 提供此信息。system_health 返回一个布尔值,指示节点是否健康,system_syncState 显示当前区块高度和目标区块高度。
您可以使用 curl 和 JSON-RPC 负载来调用这些方法。下面是一个使用公共 WSS 端点的示例。请注意,curl 适用于 HTTP 端点;对于 WSS,您需要 WebSocket 客户端。但是,许多公共端点也在 9933 端口上暴露 HTTP。为了演示,我们使用 OnFinality 公共端点(如果在本地运行,请替换为您自己节点的 HTTP 端点)。
curl -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"system_health","params":[],"id":1}' \
https://bittensor-finney.api.onfinality.io/public
# 预期输出:
# {"jsonrpc":"2.0","result":{"peers":12,"isSyncing":false,"shouldHavePeers":true},"id":1}
curl -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"system_syncState","params":[],"id":2}' \
https://bittensor-finney.api.onfinality.io/public
# 预期输出:
# {"jsonrpc":"2.0","result":{"startingBlock":0,"currentBlock":1234567,"highestBlock":1234567},"id":2}常见故障及解决方法
运行 Bittensor 节点时,您可能会遇到几个常见问题。第一个是同步失败,通常是由于磁盘空间不足或网络连接问题。确保您有足够的可用空间,并且防火墙允许出站连接(P2P 端口 30333)以及入站连接(如果您需要外部 RPC 访问,则为 9944/9933)。
另一个问题是节点因内存耗尽而崩溃。如果您的 RAM 低于建议的 16 GB,可能会发生这种情况。考虑增加交换空间或升级硬件。如果您在调用时看到“RPC error: -32000”,这通常意味着节点仍在同步或 RPC 方法不受支持。等待同步完成并验证方法名称。
对于托管端点,速率限制是一个常见问题。如果您遇到速率限制,请考虑通过 OnFinality 的定价页面 升级到专用端点。
权衡:运行自己的节点与使用托管 RPC
运行自己的节点可以让您完全控制、保护隐私且没有速率限制,但它需要大量的硬件、维护和同步时间。对于必须提交交易并参与共识的矿工和验证者来说,这是必不可少的。对于只需要读取链数据的 dApp 开发者和用户,托管 RPC 端点更具成本效益和可靠性。
托管服务如 OnFinality 的 API 服务 提供高可用性、自动升级以及带有 SLA 的专用端点。它们还提供用于历史查询的归档节点。权衡是对第三方的潜在依赖,但对于大多数用例,好处大于成本。
使用以下决策指南:如果您是矿工或验证者,请运行自己的节点。如果您正在构建需要高吞吐量或历史数据的应用程序,请考虑托管的归档端点。如果您只是试验,请使用公共端点或轻节点。
后续步骤和更多资源
既然您了解了如何运行和连接 Bittensor 节点,您可以探索更高级的主题,例如注册为矿工或验证者、质押 TAO 以及与子网交互。Bittensor 官方文档 是这些主题的主要来源。
对于托管的 RPC 解决方案,请访问 OnFinality Bittensor Finney 网络页面 在几分钟内获取端点。您还可以使用 RPC 助手 为您喜欢的语言生成代码片段。如果您需要了解节点类型之间的差异,请阅读我们的 归档节点与全节点差异 指南。有关定价详情,请参阅 OnFinality 定价。