Logo
新用户订阅 RPC,首月享 6.5 折优惠查看优惠
OnFinality Learn
网络与协议指南12 分钟阅读

Bittensor RPC 与节点访问:运行节点并连接 Finney

了解如何运行 Bittensor(TAO/Finney)Substrate 节点,在轻节点和归档节点模式之间选择,通过 WSS RPC 连接,并使用 JSON-RPC 调用验证节点健康。包括自托管与托管 RPC 端点的决策指南。

TL;DR

本指南介绍如何运行 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_healthsystem_syncStatechain_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_healthsystem_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 定价

永远不用担心基础设施

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

开始