摘要
Bittensor 挖矿不是算力挖矿。矿工在子网内运行模型或服务,在 Subtensor 链上注册热键,当验证者对其响应评分良好时获得排放。本教程将引导您完成实际路径:选择子网、设置钱包、注册、运行矿工,并保持链连接稳定。
最常见的故障点不是模型,而是连接性。注册、权重设置和元图同步都依赖于可靠的 Subtensor RPC 访问。本页展示如何配置 Bittensor Finney 端点、测试它,并决定何时专用节点或托管 RPC 端点是更好的运营选择。
Bittensor 挖矿不像比特币或以太坊挖矿那样工作。没有哈希谜题需要解决。相反,你在 Subtensor 链上注册一个热键,在子网内运行矿工,并竞争你的模型产生的响应质量。验证者对这些响应进行评分,排放流向得分高的矿工。
这重新定义了整个教程。困难的部分很少是模型代码。困难的部分是保持注册、与链保持同步,并在验证者查询时保持矿工可达。本页重点介绍该操作路径以及支撑它的 RPC 层。
快速推荐:首先设置什么
在你接触 GPU 或克隆子网仓库之前,决定你将如何与链通信。下面几乎每个步骤都依赖于可用的 Subtensor RPC 连接。
| 你的情况 | 推荐的起点 | 原因 |
|---|---|---|
| 首次注册、小额质押、学习 | 公共 Bittensor Finney 端点 | 零设置,足以进行注册和元图读取 |
| 运行必须保持在线的矿工 | 支持 WebSocket 的托管 RPC 端点 | 避免本地节点漂移和重启间隙 |
| 多个矿工或子网 | 专用节点 | 可预测的容量和隔离的吞吐量 |
| 构建工具或索引器 | 支持归档的专用节点 | 历史状态和更重的查询负载 |
如果你仍在决定是否自托管,权衡与其他链类似。有关操作模型,请参阅专用节点;有关托管访问的计费方式,请参阅 RPC 定价。
Bittensor 上挖矿的实际含义
子网定义了激励机制。矿工提交答案,验证者对它们进行排名,链将这些排名转换为排放。作为矿工,你的工作是尽可能快地产生最佳答案,以便被评分。
三个组件很重要:
- 钱包。 你需要一个冷键(持有质押并控制热键)和一个热键(签署矿工活动)。保持冷键离线。
- 注册。 你在子网的 UID 槽位上注册热键。注册需要花费 TAO,并且随着槽位填满,价格会上涨。
- 矿工进程。 这是你的模型或服务,通常从子网仓库启动,指向 RPC 端点和你的钱包文件。
这些都不是哈希挖矿。排放取决于子网评分,而不是花费在猜测 nonce 上的计算。
链设置一览
在配置钱包、Subtensor 客户端或监控探针时使用这些值。
| 设置 | 值 |
|---|---|
| 网络 | Bittensor Finney 主网 |
| 原生货币 | TAO(9 位小数) |
| HTTP RPC | https://bittensor-finney.api.onfinality.io/public |
| WebSocket RPC | wss://bittensor-finney.api.onfinality.io/public-ws |
| 传输 | HTTP 和 WebSocket |
对于托管端点,将主机替换为你自己的带密钥 URL。Bittensor Finney 网络页面列出了当前端点详细信息,支持的 RPC 网络显示了 OnFinality 还提供哪些服务。
分步指南:从空机器到注册矿工
1. 安装工具
大多数子网工作流使用 Bittensor Python SDK 和特定于子网的仓库。在虚拟环境中安装 SDK,以免子网依赖冲突。
python3 -m venv ~/.bt
source ~/.bt/bin/activate
pip install bittensor
btcli --version
2. 创建钱包
创建一个冷键和一个热键。将冷键助记词离线存储。热键是你的矿工在链上使用的身份。
btcli wallet new_coldkey --wallet.name miner
btcli wallet new_hotkey --wallet.name miner --wallet.hotkey default
3. 将客户端指向 RPC 端点
这是大多数教程含糊其辞的地方。明确设置端点,以便每个命令使用相同的链连接。
export BT_NO_PROMPT=true
btcli subnet list --subtensor.network finney --subtensor.chain_endpoint https://bittensor-finney.api.onfinality.io/public
如果你使用的是托管端点,请替换为你的带密钥 URL。将端点保存在环境变量中可以避免注册、元图读取和矿工启动之间的漂移。
4. 在花费 TAO 之前验证连接
不要盲目注册。在投入资金之前,确认端点响应并返回当前区块。
curl -s -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"chain_getHeader","params":[]}' \
https://bittensor-finney.api.onfinality.io/public
有效的响应包括带有最近区块号的区块头。如果没有,请在注册前修复连接。
5. 在子网上注册
选择一个激励机制与你实际拥有的硬件相匹配的子网。注册成本随需求变化,因此请先检查当前价格。
btcli subnet register --netuid <NETUID> \
--wallet.name miner --wallet.hotkey default \
--subtensor.chain_endpoint https://bittensor-finney.api.onfinality.io/public
6. 运行矿工
每个子网都有自己的矿工入口点。模式是一致的:传递网络、netuid、钱包,通常还有 axon 端口,以便验证者可以联系到你。
python neurons/miner.py \
--netuid <NETUID> \
--wallet.name miner \
--wallet.hotkey default \
--subtensor.chain_endpoint wss://bittensor-finney.api.onfinality.io/public-ws \
--axon.port 8091
对于长时间运行的矿工,使用 WebSocket 端点。它保持对新块的持久订阅,而不是轮询,从而减少重连波动。
无需照看即可保持矿工在线
注册是一次性成本。保持注册和响应是持续的工作。故障模式是可预测的:
| 症状 | 可能原因 | 修复 |
|---|---|---|
| 重启后矿工被注销 | 停机期间错过区块 | 在进程监督器下运行并使用稳定端点 |
| 元图读取超时 | 端点速率压力或本地节点延迟 | 切换到托管端点或专用节点 |
| 验证者无法访问 axon | 防火墙或端口未暴露 | 打开 axon 端口并确认外部可达性 |
| 权重看起来过时 | 矿工未同步新区块 | 使用 WebSocket 订阅而不是轮询 |
| 注册在交易中途失败 | 端点断开连接 | 针对健康端点重试并检查 nonce |
一个简单的监控循环可以及早发现大多数这些问题。定期探测端点和矿工的健康端点。
while true; do
curl -sf -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"chain_getHeader","params":[]}' \
https://bittensor-finney.api.onfinality.io/public \
> /dev/null && echo "rpc ok $(date -u +%FT%TZ)" || echo "rpc fail $(date -u +%FT%TZ)"
sleep 60
done
在 systemd 或容器重启策略下运行矿工本身,这样崩溃不会悄无声息地让你损失排放。
何时从公共端点迁移
公共端点适合学习、注册和偶尔读取。当你运行验证者依赖的矿工时,它就会成为负担。
当以下任何情况适用时,迁移到托管或专用设置:
- 你运行多个矿工或子网,需要隔离的吞吐量。
- 你需要保持打开数天的 WebSocket 订阅。
- 你需要用于工具的历史或归档查询。
- 你希望端点健康由他人处理,而不是在凌晨 3 点调试。
OnFinality 为 Bittensor 和其他网络提供 RPC API 访问和专用节点基础设施。API 服务页面涵盖托管端点,专用节点涵盖隔离部署。有关更广泛的比较框架,请阅读如何选择 RPC 提供商。
浪费 TAO 的常见陷阱
- 在测试端点之前注册。 注册期间连接断开会浪费费用。
- 在矿工主机上使用冷键。 矿工只需要热键。保持冷键离线。
- 忽略 axon 可达性。 如果验证者无法访问你的端口,你的答案永远不会被评分。
- 轮询而不是订阅。 在紧密循环中轮询元图会招致速率压力和过时读取。
- 没有重启策略。 崩溃的矿工停止赚取,直到有人注意到。
- 选择你无法服务的子网。 将子网的任务与你实际的硬件和技能相匹配。
关键要点
- Bittensor 挖矿是子网评分,不是哈希挖矿。你注册热键并竞争响应质量。
- 注册、元图读取和权重同步都依赖于稳定的 Subtensor RPC 连接。
- 使用 Bittensor Finney HTTP 端点进行设置,使用 WebSocket 端点进行长时间运行的矿工。
- 在花费 TAO 注册之前,验证端点返回当前区块。
- 在监督器下运行矿工,并监控 RPC 端点和 axon 端口。
- 当你运行验证者依赖的生产矿工时,迁移到托管或专用端点。
常见问题
挖 Bittensor 需要 GPU 吗?
这取决于子网。有些子网计算密集,需要 GPU;其他子网奖励数据、API 或专业服务。在购买硬件之前,检查子网的激励机制。
注册需要多少 TAO?
注册成本是动态的,随着子网槽位填满而上涨。在注册前使用 CLI 检查当前价格,而不是假设固定数字。
我可以使用公共 RPC 端点挖 Bittensor 吗?
对于学习和注册,可以。对于必须保持在线并持续响应验证者的矿工,托管或专用端点是更可靠的运营选择。
为什么我的矿工不断被注销?
通常是因为它离线时错过了区块或无法被联系到。使用进程监督器,保持端点稳定,并确认你的 axon 端口可从外部访问。
矿工应该使用 HTTP 还是 WebSocket?
对于长时间运行的矿工,使用 WebSocket,以便区块更新流式传入。HTTP 适用于一次性命令,如注册和余额检查。
在哪里可以找到当前的 Bittensor 端点详细信息?
有关端点和传输详细信息,请参阅 Bittensor Finney 网络页面;有关其他链,请参阅支持的 RPC 网络。