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

在 Bittensor 上挖矿 TAO:如何保持矿工注册并获得奖励?

摘要

在 Bittensor 上挖矿 TAO 不是工作量证明哈希。你在子网上注册一个热键,运行一个矿工来产生该子网奖励的任务,并保持链连接足够健康以设置权重、领取排放,并在被注销时重新注册。这个循环的链上部分是大多数矿工亏损的地方:在设置权重或注册期间 RPC 连接断开可能会让你损失整个 tempo 的排放。

本文关注挖矿 TAO 的运营方面:矿工实际与什么通信,注册和注销如何工作,哪些 RPC 调用重要,以及如何在运行自己的 Subtensor 节点和使用托管的 Bittensor RPC 端点(如 OnFinality)之间做出决定。它补充了更广泛的 Bittensor 挖矿和节点文章,而不是重复它们。

在 Bittensor 上挖矿 TAO 通常被描述为“挖矿”,但没有任何哈希运算。没有工作量证明谜题,也没有 GPU 竞赛来寻找区块。Bittensor 矿工是一个在子网上注册热键、产生该子网奖励的任何输出,然后依赖链对其进行评分、加权并以 TAO 排放支付的过程。如果你来自比特币或以太坊挖矿,这种思维模型是错误的,而且这种错误很重要:你的瓶颈很少是原始计算能力,而是保持注册并按时设置权重。

这就是为什么本文首先将挖矿 TAO 视为运营问题,其次才是建模问题。模型是你的业务,链连接是你的正常运行时间。

当你“挖矿”TAO 时实际发生了什么

Bittensor 子网是一个竞争市场。矿工提交工作,验证者对该工作进行评分,链将这些分数转换为排放。当以下三个条件同时满足时,你的矿工赚取 TAO:

  1. 你的热键已在子网上注册(你持有 UID)。
  2. 你的矿工在子网的 tempo 窗口内响应验证者查询。
  3. 验证者正在设置反映你分数的权重,并且这些权重上链。

打破其中任何一个,你的排放在该 tempo 内将归零。注册是人们低估的部分。每个子网有固定数量的 UID,因此注册意味着出价高于当前持有你想要的位置的人。如果你的矿工表现不佳,你将被注销,你的位置将被回收给新的注册者。重新注册需要再次花费 TAO。

所以真正的挖矿循环是这样的:注册、运行、获得评分、设置权重、收集排放、监控注销、必要时重新注册。除了模型本身,一切都在 RPC 上运行。

决策指南:自建 Subtensor 节点还是托管 Bittensor RPC?

在调整模型之前,决定你的矿工如何连接到链。这是最影响你的矿工是否保持在线的一个选择。

情况自托管 Subtensor 节点托管 Bittensor RPC
你运行一个矿工并希望今天开始同步时间和磁盘成本是前置的;你可能需要等待才能首次注册你可以立即将矿工指向端点并在同一天注册
你运行许多矿工或许多子网一个节点可以服务许多热键,但你要承担所有故障模式每个热键可以共享一个托管端点;故障转移是提供商的问题
你需要归档或历史质押数据你必须运行归档节点并管理其存储在承诺之前检查提供商是否暴露归档式查询
你需要在 tempo 边界低延迟设置权重本地节点避免网络跳数,但前提是它健康附近的管理端点加上重试逻辑通常胜过不健康的本地节点
你在实验且对成本敏感硬件和同步时间是成本按需付费 RPC 保持固定成本低

一个实用的中间路径:运行本地 Subtensor 节点用于开发和读取链状态,并使用托管端点作为你的生产矿工和验证者脚本实际依赖的连接。OnFinality 通过 HTTP 和 WebSocket 暴露 Bittensor Finney 端点,这涵盖了矿工最常用的两种访问模式:一次性 extrinsic 和基于订阅的区块监视。查看 Bittensor Finney 网络页面 获取当前端点详情,以及 RPC 定价 如果你想根据热键数量估算成本。

注册、注销以及重要的调用

大多数 Bittensor 工具包装了这些调用,但了解它们有助于调试。链是 Subtensor,它暴露了 Substrate 风格的 JSON-RPC 接口。

任务你调用什么为什么对矿工重要
检查你在子网上的 UID通过 Bittensor SDK 的 neuronInfo / uid 查询,由 state_getStorage 支持在花时间调整之前确认你仍然注册
读取当前注册成本子网上的 burn / recycle告诉你现在重新注册的成本
注册热键burnedRegister extrinsic你的位置生效的时刻;如果这在 tempo 中途失败,你会失去时间
作为验证者设置权重set_weights extrinsic如果这没有上链,你评分的矿工什么也得不到,你也是
监视新区块通过 WebSocket 的 chain_subscribeNewHeads让你的矿工在 tempo 边界做出反应,而不是盲目轮询
检查你的余额system_accountNextIndex 和余额查询防止连续发送多个 extrinsic 时 nonce 冲突

两种故障模式经常出现。第一,nonce 冲突:如果你连续发送注册和设置权重 extrinsic,它们可能共享一个 nonce,其中一个被丢弃。第二,过时读取:如果你的端点落后于链头,你可能认为你已注册但实际上没有,或者针对旧 tempo 设置权重。

以下是一个最小健康探测,你可以在将矿工指向任何 Bittensor 端点之前运行:

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

如果返回最近的区块头,则端点可达并跟随链。在信任它进行权重设置之前,将区块号与第二个来源进行比较。

将矿工连接到 WebSocket 端点

需要在 tempo 边界行动的矿工和验证者应该订阅而不是轮询。WebSocket 连接让你在新头到达时做出反应,这正是当权重设置窗口打开时你想要的。

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

const provider = new WsProvider(
  "wss://bittensor-finney.api.onfinality.io/public-ws"
);

const api = await ApiPromise.create({ provider });

// React to each new block head instead of polling on a timer.
const unsubscribe = await api.rpc.chain.subscribeNewHeads((header) => {
  const blockNumber = header.number.toNumber();
  console.log("new head", blockNumber);

  // Your tempo logic goes here: check UID, check stake,
  // decide whether this is the block to set weights.
});

// Always keep a handle so you can unsubscribe cleanly on shutdown.
process.on("SIGINT", async () => {
  await unsubscribe();
  await api.disconnect();
  process.exit(0);
});

两个操作注意事项。第一,将订阅视为可恢复的:如果套接字断开,使用退避重连而不是让矿工崩溃。第二,不要假设一个连接足以支持一组热键。单个 WebSocket 可以承载许多订阅,但单点故障仍然是单点故障。

矿工实际在哪里损失排放

大多数“挖矿 TAO”问题不是模型问题。它们是以下问题,大致按发生频率排序:

  • 静默注销。 你的 UID 被回收,你的矿工继续针对它不再拥有的位置运行。定期轮询你的 UID 并在变化时发出警报。
  • 权重设置从未上链。 extrinsic 已提交但未包含,通常是由于 nonce 冲突或费用不足。确认包含,而不仅仅是提交。
  • 端点漂移。 你的节点或端点落后于链头。针对过时视图设置权重比完全不设置权重更糟。
  • 注册成本意外。 回收成本随需求变化。将重新注册作为经常性成本预算,而不是一次性费用。
  • 密钥管理错误。 热键之所以是热的,是有原因的。保持冷键离线,绝不让矿工进程持有超出需要的权限。

一个有用的习惯是为每个 tempo 记录三个数字:你的 UID、你行动的链头,以及你的 extrinsic 是否被包含。当排放下降时,这三个数字通常会告诉你遇到了上述哪种故障模式。

为生产矿工选择端点

如果你正在为 Bittensor 矿工评估 RPC 选项,标准比一般的 dApp 清单更窄。你关心:

检查什么为什么矿工关心
HTTP 和 WebSocket 支持Extrinsic 需要 HTTP;tempo 边界逻辑需要 WebSocket
链头新鲜度过时读取导致错误的权重设置和虚假的注册检查
归档可用性如果你回测评分或重建历史质押,则需要
故障转移行为无法重连的矿工损失一个 tempo,而不是一个请求
速率和并发限制一组热键会倍增你的请求量
如何付费按请求定价比固定层级更适合突发矿工流量

OnFinality 提供 Bittensor Finney 访问作为托管 RPC API,对于运行许多热键或子网的团队,专用节点基础设施 消除了嘈杂邻居效应并为你提供私有端点。如果你更广泛地比较提供商,RPC 提供商选择指南 涵盖了通用评估框架,支持的 RPC 网络 列出了当前可用的内容。

一个适用于每个提供商(包括我们)的警告:不要假设公共端点是验证者权重设置路径的正确归宿。公共端点是共享的。如果你的排放依赖于特定 extrinsic 在特定窗口内上链,请相应地规划你的计划和故障转移。

一个现实的第一周计划

如果你从零开始,一个避免常见陷阱的顺序:

  1. 选择一个子网,在编写任何代码之前阅读其激励机制。
  2. 运行本地 Subtensor 节点或将开发矿工指向托管端点以学习注册流程。
  3. 注册一个热键并观察一个完整的 tempo 周期,不做任何更改。记录你的 UID、分数和排放。
  4. 在添加第二个热键之前,添加对 UID 变化和链头新鲜度的监控。
  5. 只有在那之后才扩展到多个热键,并在那时决定共享还是 专用基础设施 符合你的风险承受能力。

第三步是人们跳过的,也是教你子网实际奖励什么的一步。

关键要点

  • Bittensor 挖矿是注册加评分加设置权重,而不是工作量证明哈希。
  • 你的排放取决于保持注册和按时设置权重;链连接是运营风险。
  • HTTP 处理 extrinsic,WebSocket 处理 tempo 边界反应;生产矿工通常两者都需要。
  • Nonce 冲突和过时链读取是错过排放的两个最常见原因。
  • 托管的 Bittensor RPC 端点是生产矿工的合理默认;本地节点对于开发和深度调试仍然有用。
  • 将重新注册作为经常性成本预算,并将你的 UID 作为一等指标监控。

常见问题

挖矿 TAO 和比特币挖矿一样吗?

不。没有工作量证明。你在子网上注册一个热键,产生该子网奖励的输出,验证者对其进行评分。排放来自分数和权重,而不是哈希率。

我需要运行自己的 Subtensor 节点来挖矿 TAO 吗?

不一定。许多矿工使用托管 RPC 端点进行链连接,只运行矿工进程本身。本地节点对于开发、回测和调试(当你怀疑端点落后于链头时)仍然有用。

如果我的矿工离线会发生什么?

你在这段时间内停止被评分,如果你表现不佳足够长,你可能会被注销。重新注册需要花费 TAO,因此链连接的正常运行时间有直接成本。

我可以为多个热键使用一个 RPC 端点吗?

技术上可以,但要注意并发和速率限制。如果你的排放依赖于及时的权重设置,考虑共享访问还是 专用基础设施 更符合你的风险承受能力。

我在哪里可以找到 Bittensor 端点详情?

Bittensor Finney 的当前 HTTP 和 WebSocket 端点列在 Bittensor Finney 网络页面 上。对于多个热键的成本规划,请参阅 RPC 定价

RPC 知识库

相关 RPC 内容

网络 RPCStellar

什么是 Stellar RPC,如何使用它?

# 什么是 Stellar RPC,如何使用它? Stellar RPC(远程过程调用)是与 Stellar 区块链网络交互的标准接口。它允许开发者以编程方式查询账本数据、提交交易和管理账户。Stellar 的 RPC API 与兼容以太坊的 JSON-RPC 不同;它使用基于 RESTful 原则...

网络 RPCKava

Kava API 端点:开发者需要了解的内容

Kava 结合了 Cosmos SDK 和以太坊虚拟机 (EVM) 兼容性,提供多种 API 接口:Tendermint RPC、EVM JSON-RPC、REST API 和 WebSocket 端点。本文解释了可用的端点类型、如何连接以及为生产环境 dApp 选择 Kava API 提供者时需评...

网络 RPCGnosis

什么是 Gnosis Chain RPC,如何选择合适的端点?

Gnosis Chain RPC 端点允许开发者通过 JSON-RPC 调用与 Gnosis Chain 网络交互。本文介绍了链设置、如何评估提供商以及在生产 dApp 中选择基础设施时应避免的常见陷阱。...

RPC 提供商选择

Which RPC providers offer enhanced APIs specifically tailored for NFT data?

Several RPC providers now offer enhanced APIs that simplify NFT data access—including metadata, ownership, transfers, and spam filtering—without requi...

RPC 提供商选择BNB Chain

如何为高吞吐量工作负载扩展 BNB Chain RPC

为了扩展 BNB Smart Chain (BSC) RPC 以应对高吞吐量工作负载,不要将每秒请求数视为唯一指标。一个快速执行 eth_call 和 eth_getTransactionReceipt 循环的交易机器人、一个使用 eth_getLogs 扫描大区块范围的分析索引器,以及一个广播交易...

区块链基础设施多链

Web3 桥接 API 在跨链开发中如何比较?

Web3 桥接 API 使开发者能够将跨链资产转移和消息传递集成到 dApp 中。本指南比较了流行的桥接 API,涵盖支持的链、安全模型、延迟和开发者体验等标准,帮助您为项目选择合适的桥接 API。...

永远不用担心基础设施

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

开始