inference-labs-inc/subnet-2

Verifiable inference on Bittensor

Subnet 2 (τ, β) – Bittensor 的推理证明

它是什么 – Subnet 2 是一个基于 Rust 的实现,为 Bittensor 去中心化 AI 网络添加了 推理证明 层。它允许矿工运行编译为零知识(zk-ML)电路的 AI 模型,生成预测,并产生一个简洁的 zk 证明,证明输出确实来自该模型。验证者接收数据,检查证明,并根据证明大小、延迟和其他指标对矿工进行评分。奖励与证明的质量相关,而不仅仅是原始输出。


主要特性

  • 零知识验证 – AI 模型预测被转换为加密“指纹”(zk-ML 电路)。验证者可以在不查看模型本身的情况下确认预测的来源。
  • 原生 Rust 二进制文件 – 独立的 sn2-miner 和 sn2-validator 可执行文件,使用 Rust 构建,以保证性能和安全。
  • 双传输 – 通过 HTTP(使用 axum)和 QUIC(使用 btlightning)进行通信,提供低延迟的点对点消息传递。
  • 自动更新二进制文件 – 发布的二进制文件每 5 分钟轮询 GitHub 并原子替换自身;与 PM2 进程管理器兼容。
  • Docker 优先部署 – 官方 Docker 镜像(ghcr.io/inference-labs-inc/subnet-2),附带现成的 compose 文件和用于自动镜像更新的 Watchtower 边车。
  • 奖励机制 – 根据证明大小、生成时间和加密完整性对矿工进行评分,鼓励高效的 zk-ML 电路设计。
  • 与 Bittensor 集成 – 使用 btcli 处理钱包,通过 subxt 进行 Substrate RPC,并遵循 Opentensor 子网标准。

快速入门指南

先决条件

工具 为什么需要
Rust (rustup) 如果不使用预构建二进制文件,则从源代码构建
PM2 用于持续运行二进制文件的进程管理器
btcli 用于创建钱包和子网注册的 Bittensor CLI
Docker (可选) 无需安装 Rust 即可运行矿工/验证者

安装二进制文件(一行命令)

curl -fsSL https://raw.githubusercontent.com/inference-labs-inc/subnet-2/main/install.sh | bash

在脚本后添加 sn2-miner 或 sn2-validator 以仅安装该组件。

在网络上注册

btcli subnet register \
  --subtensor.network finney \
  --netuid 2 \
  --wallet.name YOUR_COLDKEY \
  --wallet.hotkey YOUR_HOTKEY

运行矿工(Docker compose – 推荐)

services:
  subnet-2-miner:
    image: ghcr.io/inference-labs-inc/subnet-2:latest
    restart: unless-stopped
    ports: ["8091:8091"]
    volumes:
      - /path/to/.bittensor:/home/subnet2/.bittensor
    environment:
      - PUID=1000
      - HOME=/home/subnet2
    command: >
      sn2-miner \
      --wallet-name YOUR_MINER_KEY \
      --wallet-hotkey YOUR_MINER_HOTKEY \
      --netuid 2

添加一个 Watchtower 容器(在 README 中显示)以自动更新镜像。

运行验证者(Docker compose)

services:
  subnet-2-validator:
    image: ghcr.io/inference-labs-inc/subnet-2:latest
    restart: unless-stopped
    ports: ["8443:8443", "9090:9090"]
    volumes:
      - /path/to/.bittensor:/home/subnet2/.bittensor
    environment:
      - PUID=1000
      - HOME=/home/subnet2
    command: >
      sn2-validator \
      --wallet-name YOUR_VALIDATOR_KEY \
      --wallet-hotkey YOUR_VALIDATOR_HOTKEY \
      --netuid 2

您也可以直接使用 PM2 运行二进制文件,或通过 make pm2-miner / make pm2-validator 运行,如 README 中所述。


架构概述

该仓库是一个 Rust 工作区,包含多个 crate:

Crate 作用
sn2-types 矿工和验证者共享的常量、数据结构和协议定义
sn2-chain 处理钱包交互、元图查询、子网注册、权重更新和自动更新逻辑
sn2-verify 使用 Expander 后端(独立仓库)实现 zk 证明验证
sn2-validator 验证者二进制文件 – 接收输入、发出挑战、检查 zk 证明并对矿工进行评分
sn2-miner 矿工二进制文件 – 获取挑战、运行本地存储的 zk-ML 模型、返回预测和证明

通信层:

  • HTTP 通过 axum 用于简单的 REST 风格请求。
  • QUIC 通过 btlightning 用于更快、无连接的通信。
  • Substrate RPC 通过 subxt 用于链上操作(权重、奖励、注册)。

硬件建议

矿工(最低要求)

  • CPU: 8 核 @ 3.2 GHz
  • 内存: 32 GB
  • 网络: 400 Mbps 上行/下行
  • 存储: 1 TB NVMe SSD

矿工(推荐)

  • CPU: 8 核 @ 3.6 GHz+
  • 内存: 64 GB+
  • 网络: 1 Gbps 上行/下行
  • 存储: 2 TB NVMe SSD

验证者(最低要求)

  • CPU: 8 核 @ 3.2 GHz
  • 内存: 16 GB
  • 网络: 400 Mbps 上行/下行
  • 存储: 1 TB SSD

验证者(推荐)

  • CPU: 8 核 @ 3.4 GHz+
  • 内存: 32 GB
  • 网络: 1 Gbps+
  • 存储: 2 TB SSD

更高的规格通常意味着更好的证明生成速度,从而获得更高的奖励。


了解更多


Subnet 2 已更名为 Dani Labs (https://danilabs.ai/),但代码和部署说明对当前的 Bittensor 子网仍然有效。

相关