摘要
设置 Bittensor 矿工意味着准备一个 coldkey/hotkey 钱包,为其充值 TAO,在子网上注册 UID,然后针对可靠的 Finney RPC 端点运行子网的矿工进程。RPC 层至关重要,因为注册、质押检查和元图同步都依赖于一致的链访问。
本指南将引导您完成实际设置路径、容易让人困惑的决策(子网选择、注册成本、端点可靠性),以及如何在注册后保持矿工运行。它还涵盖了何时共享公共端点足够,以及何时专用节点或托管 RPC 端点更合适。
Bittensor 矿工实际运行的是什么
Bittensor 矿工不是安装后就可以忘记的单一二进制文件。它是子网中的一个角色:你在子网上注册一个 hotkey,运行子网的矿工代码,并响应该子网用于给矿工评分的验证流量。链本身(Finney 主网)处理身份、质押和注册;子网处理实际工作。
这种分离对设置很重要。你需要同时做好两件事:
- 在 Bittensor 链上拥有钱包和注册,这需要可靠的 Finney RPC 访问。
- 为你加入的特定子网运行矿工进程,这需要子网自身的依赖项、GPU 或 CPU 资源,并且通常需要一个公共 IP 或可访问的端点。
大多数设置失败都源于这两部分之一准备不足:要么钱包/注册步骤是在不可靠的端点上完成的,要么在理解子网要求之前就启动了矿工进程。
快速建议:公共端点还是专用节点?
在安装任何东西之前,先决定你的矿工如何与链通信。这个决策对注册后设置是否保持稳定影响最大。
| 你的情况 | 合理的起点 | 原因 |
|---|---|---|
| 首次注册,学习流程,低质押 | 共享公共 RPC 端点 | 启动成本低,适合偶尔的钱包和注册调用 |
| 运行一个或多个频繁轮询链的矿工 | 具有稳定 URL 的托管 RPC 端点 | 避免与无关流量共享速率限制 |
| 在运行矿工的同时操作多个子网或验证者 | 专用节点 | 可预测的吞吐量和隔离的资源 |
| 构建持续读取元图或质押数据的工具 | 托管 RPC 或专用节点 | 持续的读取量在专用容量上更友好 |
如果你还在探索,从公共端点开始,当你注意到速率限制、超时或元图读取缓慢时再升级。如果你已经知道自己将连续运行矿工,从一开始就计划使用托管或专用端点。OnFinality 通过 HTTP 和 WebSocket 提供 Bittensor Finney RPC,并在你需要隔离容量时提供专用节点选项。有关端点详情,请参阅 Bittensor Finney RPC;有关计划选项,请参阅 RPC 定价。
步骤 1:安装 Bittensor CLI 并创建钱包
Bittensor CLI(btcli)是用于钱包和注册操作的标准工具。在你控制的 Python 环境中安装它,然后创建一个 coldkey 和一个 hotkey。
- coldkey 持有你的 TAO 并控制你的身份。将其离线保存或放在你不暴露的机器上。
- hotkey 由矿工进程用于签名。它可以放在矿工主机上。
典型流程如下:
# 安装 CLI(版本可能变化;请查看当前文档)
pip install bittensor
# 创建 coldkey(保护此机器)
btcli wallet new_coldkey --wallet.name miner_cold
# 为矿工主机创建 hotkey
btcli wallet new_hotkey --wallet.name miner_cold --wallet.hotkey miner_hot
离线记录 coldkey 的助记词。丢失它意味着失去对钱包及其附加的任何质押的访问权限。
步骤 2:将 CLI 指向 Finney RPC 端点
CLI 需要访问 Finney 主网。你可以传递网络标志或配置端点。使用稳定、有文档的端点可以避免随机公共节点的猜测。
OnFinality 通过 HTTP 和 WebSocket 公开一个公共 Bittensor Finney 端点:
# HTTP 端点
https://bittensor-finney.api.onfinality.io/public
# WebSocket 端点
wss://bittensor-finney.api.onfinality.io/public-ws
在进行任何消耗 TAO 的操作之前,你可以通过一个简单的 JSON-RPC 调用验证连接性:
curl -s https://bittensor-finney.api.onfinality.io/public \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"chain_getHeader","params":[]}'
如果返回区块头,则你的端点可达。如果超时或返回错误,请先修复连接性再继续。注册交易不是你想盲目重试的事情。
对于生产矿工,在矿工配置中配置端点,而不是在脚本中硬编码,这样你可以在不编辑代码的情况下切换端点。
步骤 3:为钱包充值并检查余额
将 TAO 发送到你的 coldkey 地址。你需要足够的 TAO 用于:
- 你加入的子网上的注册费(销毁成本)。
- 用于交易费用和你想要添加的任何质押的小额缓冲。
注册成本因子网而异,并随需求变化。在注册前检查当前成本,而不是假设一个固定数字。你可以通过 CLI 或直接通过读取账户状态的 RPC 调用查询余额。
一个实用的习惯:在提交注册交易之前,一次性确认 coldkey 余额和 hotkey 注册状态。
步骤 4:选择子网并注册 UID
子网在硬件要求、评分逻辑和竞争方面差异巨大。在注册之前:
- 阅读子网的仓库和文档,了解硬件和软件要求。
- 检查有多少 UID 可用以及子网的竞争程度。
- 了解子网如何给矿工评分,因为这决定了你的设置是否能赚到任何东西。
注册本身是一个链上交易,它在子网上为你的 hotkey 分配一个 UID。注册后,你的矿工进程就可以启动了。
| 设置决策 | 需要检查什么 | 常见错误 |
|---|---|---|
| 子网选择 | 硬件需求、评分规则、UID 可用性 | 加入一个硬件无法匹配的子网 |
| 注册时机 | 当前销毁成本和网络活动 | 在成本飙升时未检查就注册 |
| Hotkey 放置 | hotkey 文件所在位置 | 将 coldkey 放在面向互联网的主机上 |
| 端点选择 | 重复调用下的稳定性 | 使用在注册期间会限速的端点 |
步骤 5:运行矿工进程
每个子网都有自己的矿工。一般模式是:
- 克隆子网仓库并安装其依赖项。
- 使用你的钱包名称、hotkey 名称、网络端点和任何子网特定设置配置矿工。
- 启动矿工并确认它正在产生子网期望的响应。
- 监控日志中的错误、错过的请求或评分下降。
矿工主机需要保持可达和稳定。如果你的矿工离线,子网可能会停止给它评分,恢复并不总是即时的。
注册后保持矿工健康
注册是开始,不是结束。持续运营才是大部分实际工作所在:
- 端点可靠性。 如果你的矿工或监控脚本频繁轮询链,共享公共端点可能成为瓶颈。托管 RPC 端点或专用节点为你提供稳定的 URL 和隔离的容量。如果你运行多个矿工或验证者,请参阅专用节点。
- 元图和质押读取。 定期读取元图数据或质押状态的工具受益于一致的吞吐量。尽可能批量读取,避免紧密的轮询循环。
- 钱包卫生。 将 coldkey 保持在矿工主机之外。仅使用 hotkey 进行签名。
- 版本跟踪。 子网会更新其矿工代码。固定一个已知良好的版本,并在推出前测试升级。
- 告警。 关注注册丢失、重复的 RPC 错误和矿工进程退出。针对你的 RPC 端点进行简单的健康探测可以及早发现连接问题。
一个最小的监控探针可能如下所示:
#!/usr/bin/env bash
# Bittensor 矿工主机的基本端点健康检查
ENDPOINT="https://bittensor-finney.api.onfinality.io/public"
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" -X POST "$ENDPOINT" \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"chain_getHeader","params":[]}')
if [ "$RESPONSE" != "200" ]; then
echo "RPC 端点不健康: $RESPONSE"
fi
定期运行此脚本并在失败时告警。它不会捕获所有子网级问题,但能捕获最常见的问题:失去链连接。
常见故障模式及如何解读
| 症状 | 可能原因 | 下一步 |
|---|---|---|
| 注册交易反复失败 | 端点超时或余额不足 | 用读取调用测试端点,确认余额,重试 |
| 矿工启动但赚不到任何东西 | 子网配置错误或评分不匹配 | 重新阅读子网文档,检查日志中被拒绝的响应 |
| 操作期间频繁出现 RPC 错误 | 共享端点速率限制 | 迁移到托管或专用端点 |
| 重启后 UID 丢失 | 注册未持久化或钱包路径错误 | 验证钱包文件和注册状态 |
| 元图读取缓慢 | 轮询过于频繁 | 批量请求,增加间隔,使用专用端点 |
何时从公共端点迁移
公共端点适合学习和轻度使用。在以下情况下迁移到托管 RPC 端点或专用节点:
- 你连续运行矿工并需要可预测的访问。
- 你在运行矿工的同时操作多个子网或验证者。
- 你构建定期读取链状态的工具。
- 你一直遇到速率限制或间歇性超时。
OnFinality 通过 HTTP 和 WebSocket 提供 Bittensor Finney RPC,并为需要隔离容量的团队提供专用节点选项。从 Bittensor Finney 网络页面开始,比较 RPC 定价,如果你跨链运行基础设施,请浏览其他支持的 RPC 网络。
关键要点
- Bittensor 矿工设置有两个部分:链侧注册(钱包、TAO、UID)和子网的矿工进程。
- 使用有文档的 Finney RPC 端点,并在花费 TAO 注册之前用读取调用验证它。
- 保持 coldkey 离线;在矿工主机上使用 hotkey。
- 在注册前检查当前注册成本和子网要求。
- 当你连续运行矿工或遇到速率限制时,从共享公共端点迁移到托管 RPC 端点或专用节点。
- 监控端点健康和矿工日志;大多数故障是连接或配置问题。
常见问题
运行 Bittensor 矿工需要专用节点吗?
不需要。你可以从共享公共 RPC 端点开始。当你连续运行矿工、操作多个子网或需要可预测的吞吐量时,专用节点或托管 RPC 端点才变得有价值。
注册矿工需要多少 TAO?
注册成本因子网而异,并随需求变化。在注册前检查当前销毁成本,并保留少量缓冲用于费用。
我可以在同一主机上运行矿工和验证者吗?
可以,但资源争用是真实风险。如果这样做,请计划隔离容量并密切监控两个进程。
如果我的矿工离线会发生什么?
子网可能会停止给你的矿工评分,恢复并不总是即时的。保持主机稳定,并监控进程退出和连接丢失。
我应该为 Bittensor 使用哪个 RPC 端点?
使用有文档的 Finney 端点。OnFinality 提供对 Bittensor Finney 的 HTTP 和 WebSocket 访问;详情请参阅 Bittensor Finney 网络页面。