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

如何连接 Bittensor 网络以进行 RPC 访问?

摘要

Bittensor 网络是一个去中心化机器学习协议,子网在其中协调 AI 模型和矿工。对于开发者来说,实际的入口点是 Finney 主网,它暴露了一个基于 Substrate 的 JSON-RPC 接口,用于读取链状态、提交外部交易和订阅事件。本文解释了如何连接、在构建之前需要检查什么,以及何时使用托管 RPC 或专用节点是合理的。OnFinality 为 Bittensor Finney 提供 RPC API 和专用节点基础设施,因此您可以专注于子网逻辑,而不是节点运维。

快速推荐:托管 RPC 与运行自己的 Finney 节点

如果您在 Bittensor 上构建,第一个决定是如何与链交互。您有三种现实的选择:

  • 公共 RPC 端点 – 适合原型设计、读取余额和测试外部交易。不适用于需要一致吞吐量或 WebSocket 订阅的生产工作负载。
  • 托管 RPC 提供商 – 像 OnFinality 这样的服务为您提供一个托管端点,支持 HTTP 和 WebSocket,因此您无需进行节点维护、升级和同步。这是 dApp、仪表板和子网工具通常的选择,它们需要可靠的访问而无需运行基础设施。
  • 专用节点 – 您获得隔离的资源,用于高容量或延迟敏感的工作负载。当您需要可预测的性能、自定义修剪或私有访问时,这是有意义的。

对于大多数开发者来说,托管 RPC 端点是实现集成的最快途径。如果您以后遇到速率限制或需要专用容量,可以迁移到专用节点而无需更改应用程序逻辑。请参阅 RPC 定价 和 支持的 RPC 网络 了解当前选项。

Bittensor 网络向开发者暴露的内容

Bittensor 是一个用于机器学习的去中心化网络。其主网 Finney 基于 Substrate 构建,这意味着它暴露了一个类似于 Polkadot 和其他 Substrate 链的 JSON-RPC 接口。您可以使用标准的 Substrate 工具查询链状态、提交交易和订阅事件。

开发者关键事实:

  • 链名称: Bittensor Finney Mainnet
  • 原生代币: TAO(9 位小数)
  • RPC 传输: HTTP 和 WebSocket
  • 公共端点(OnFinality): https://bittensor-finney.api.onfinality.io/public
  • WebSocket 端点: wss://bittensor-finney.api.onfinality.io/public-ws

这些端点适用于开发和轻量级生产使用。对于更重的工作负载,请考虑专用节点。

链设置一览

当您为 Bittensor 配置钱包、SDK 或索引器时,需要正确的链参数。下表总结了应使用的参数。

设置值
网络名称Bittensor Finney Mainnet
原生货币TAO
小数位数9
HTTP RPChttps://bittensor-finney.api.onfinality.io/public
WebSocket RPCwss://bittensor-finney.api.onfinality.io/public-ws
区块浏览器使用官方 Bittensor 浏览器或兼容 Substrate 的浏览器
SS58 前缀42(默认 Substrate)

如果您使用 JavaScript 钱包或 SDK,可以这样配置端点:

import { ApiPromise, WsProvider } from '@polkadot/api';

const provider = new WsProvider('wss://bittensor-finney.api.onfinality.io/public-ws');
const api = await ApiPromise.create({ provider });

const chain = await api.rpc.system.chain();
console.log(`Connected to ${chain}`);

对于仅 HTTP 的客户端,您可以使用 curl 调用公共端点:

curl -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"chain_getBlock","params":[],"id":1}' \
  https://bittensor-finney.api.onfinality.io/public

连接您的应用程序:HTTP 与 WebSocket

Substrate 链支持 HTTP 和 WebSocket 传输。正确的选择取决于您的用例。

  • HTTP 是无状态的,适用于一次性查询、定时任务和无服务器函数。每个请求都会打开一个新连接,因此对于高频轮询效率较低。
  • WebSocket 保持持久连接并支持订阅。用于实时仪表板、事件监听器以及任何需要在新区块或外部交易发生时做出反应的应用程序。

如果您正在构建显示实时质押或排放数据的子网仪表板,WebSocket 通常是更好的选择。对于定期检查余额的后端服务,HTTP 更简单。

生产就绪检查清单

在发布 Bittensor 集成之前,请运行以下检查:

  1. 端点冗余 – 如果主 RPC 端点不可用,您是否有备用端点?托管提供商通常提供多个区域或故障转移 URL。
  2. 速率限制 – 了解您计划中的请求限制。公共端点是共享的,在高负载下可能会受到限制。如果您需要一致的吞吐量,请迁移到专用节点。
  3. WebSocket 稳定性 – 如果您依赖订阅,请测试重连逻辑。网络可能会断开连接,您的应用应能优雅地恢复。
  4. 数据新鲜度 – 对于质押或排放计算,请确认您的节点已完全同步且未落后于链头。
  5. 监控 – 为端点错误、延迟峰值和订阅中断设置警报。每分钟调用 chain_getBlock 的简单健康检查可以及早发现问题。

如果您不想自己管理这些问题,像 OnFinality 这样的托管 RPC 服务会处理节点升级、同步和可用性,以便您可以专注于应用程序。对于需要隔离资源的工作负载,专用节点 为您提供具有可预测性能的私有端点。

与 Bittensor 集成时的常见陷阱

刚接触 Substrate 链的开发者经常会遇到一些反复出现的问题:

  • 错误的 SS58 前缀 – Bittensor 使用默认的 Substrate 前缀(42)。如果您使用不同的前缀生成地址,它们在 Finney 上将无效。
  • 假设 EVM 兼容性 – Bittensor 不是 EVM 链。您不能直接使用 ethers.js 或 viem。请使用 Substrate 库,如 @polkadot/api 或 py-substrate-interface。
  • 忽略存在性存款 – Substrate 链对账户存在有最低余额要求。在资助新账户之前,请检查当前的存在性存款。
  • 硬编码区块时间 – 区块时间可能会变化。不要假设排放或质押奖励的固定间隔;始终从链上读取。
  • 跳过元数据更新 – 当运行时升级时,链元数据会发生变化。您的客户端应获取最新的元数据以避免解码错误。

何时从公共 RPC 迁移到专用节点

公共 RPC 端点是一个很好的起点,但它们是共享的。随着使用量的增长,您可能会在高峰时段注意到响应时间变慢或速率限制。需要专用节点的迹象包括:

  • 您的应用程序每分钟发出数千个请求。
  • 您需要保证交付的 WebSocket 订阅。
  • 您需要自定义修剪或归档数据。
  • 您想要一个不与其他用户共享的私有端点。

OnFinality 的专用 Bittensor 节点为您提供隔离的资源和私有端点。您可以在 Bittensor Finney 网络页面 上了解更多信息。

监控您的 Bittensor RPC 连接

一旦进入生产环境,监控至关重要。以下是一个简单的 Node.js 脚本,通过获取最新区块来检查端点的健康状况:

const fetch = require('node-fetch');

async function checkHealth() {
  const res = await fetch('https://bittensor-finney.api.onfinality.io/public', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      jsonrpc: '2.0',
      method: 'chain_getHeader',
      params: [],
      id: 1
    })
  });
  const data = await res.json();
  console.log('Latest block:', parseInt(data.result.number, 16));
}

checkHealth().catch(console.error);

定期运行此脚本,如果区块号停止增加或请求失败,则发出警报。对于 WebSocket 连接,还要监控意外断开连接,并在重连时实现指数退避。

关键要点

  • Bittensor 的主网 Finney 是一个基于 Substrate 的链,具有 HTTP 和 WebSocket RPC 端点。
  • 使用 OnFinality 公共端点进行开发:https://bittensor-finney.api.onfinality.io/public 和 wss://bittensor-finney.api.onfinality.io/public-ws。
  • 对于生产环境,根据您的吞吐量、延迟和隔离需求评估托管 RPC 或专用节点。
  • 始终配置备用端点,并监控速率限制、同步延迟和 WebSocket 断开。
  • Bittensor 不兼容 EVM;请使用 Substrate 工具,如 @polkadot/api。

常见问题

我可以将 MetaMask 与 Bittensor 一起使用吗?
不可以。Bittensor 不是 EVM 链,因此 MetaMask 和其他以太坊钱包不兼容。请使用兼容 Substrate 的钱包,如 Polkadot.js 或 Talisman。

Bittensor 和 Finney 有什么区别?
Finney 是 Bittensor 主网的名称。当您连接到 Bittensor 网络时,您连接的是 Finney。

运行子网需要专用节点吗?
不一定。许多子网操作可以使用托管 RPC 端点完成。但是,如果您运行验证人或高频服务,专用节点可能会提供更好的性能和可靠性。

如何获取 TAO 进行测试?
TAO 是 Finney 主网上的原生代币。没有官方的 TAO 测试网水龙头。对于开发,您可以针对本地 Substrate 节点进行测试,或使用少量真实的 TAO。

OnFinality 支持 Bittensor WebSocket 订阅吗?
是的,公共 WebSocket 端点支持订阅。对于生产使用,请考虑使用专用节点以避免共享速率限制。有关详细信息,请参阅 RPC 定价。

后续步骤

如果您准备好连接,请从公共端点开始并构建您的集成。当您需要更多容量或隔离时,请探索 OnFinality 的 RPC API 和 专用节点。您还可以查看 如何选择 RPC 提供商 以系统地比较选项。

RPC 知识库

相关 RPC 内容

RPC 提供商选择Solana

在租用专用 Solana 节点之前,您应该评估哪些方面?

专用 Solana 节点为您提供具有隔离资源的私有 RPC 端点,这有助于那些超出共享速率限制或需要自定义节点配置的团队。本文解释了专用节点实际改变了什么、何时值得付出成本,以及如何比较提供商而不会为不需要的功能多付钱。...

RPC 提供商选择Solana

QuickNode WebSocket Solana:开发者应该比较什么

QuickNode WebSocket Solana 是团队在将实时 Solana 订阅(账户变更、日志、slot 和签名)接入交易机器人、索引器或仪表板时常见的搜索。真正的决策不仅仅在于教程中出现的是哪个提供商名称,而在于你选择的 WebSocket 端点能否维持长连接、在重连后存活,并与你的 H...

网络 RPCBittensor

Bittensor 挖矿应用实际上需要 RPC 基础设施提供什么?

Bittensor 挖矿应用并不是一个可以下载的单一产品。它是一个技术栈:一个在子网上注册热键的矿工进程、一个跟踪子网状态的验证者或元图读取器,以及一个让所有这些组件读取链数据并提交外部交易的 RPC 连接。大多数“挖矿应用”的搜索实际上都是关于如何将这个技术栈连接起来并保持在线。 本文梳理了各个组...

网络 RPCBase

Base RPC API: Endpoint Settings, Marketplace Alternatives, and Production Setup

Base RPC is the JSON-RPC interface to the Base L2 network, used to read state, send transactions, and subscribe to events. This page covers the public...

网络 RPCEth Sepolia

什么是以太坊公共 RPC,以及何时应该使用它?

以太坊公共 RPC 是一个共享的、无需认证的 JSON-RPC 端点,允许任何开发者读取以太坊数据并广播交易,而无需运行节点。它非常适合原型设计、钱包配置和低流量脚本,但共享容量和速率限制使其不适合需要稳定吞吐量、归档数据或 WebSocket 订阅的生产工作负载。 本页解释了如何连接到以太坊公共 ...

网络 RPCEth Sepolia

What is an Ethereum RPC endpoint and how do you choose the right one?

An Ethereum RPC endpoint is the URL your dapp, wallet, or backend uses to talk to an Ethereum node via JSON-RPC. Public endpoints are free but rate-li...

永远不用担心基础设施

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

开始