Requirements
Get your miner server and GPU nodes ready before deploying.
Miner Server
A Linux machine that orchestrates access to your GPU nodes. CPU only, no GPU required.
- Public IP address (or port forwarding for axon port)
- SSH access to all your GPU nodes
If building from source:
sudo apt update && sudo apt install -y \
build-essential libssl-dev pkg-config protobuf-compiler git curl
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shIf deploying via Docker/Docker Compose:
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USERGPU Nodes
Your GPU nodes are your offering to the network. They must be bare metal or VMs, not containers. We need full access to the machine and its networking stack. Docker-in-Docker and SSH inside containers are not supported.
Each GPU node needs the following.
Supported GPUs
A100, H100, H200, B200. Check the current configuration to confirm your GPU type is earning emissions.
NVIDIA Drivers + CUDA
CUDA 12.8 or higher. Verify with:
nvidia-smiDocker + NVIDIA Container Toolkit
# Install Docker
curl -fsSL https://get.docker.com | sudo sh
# Install NVIDIA Container Toolkit
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt update
sudo apt install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
# Verify GPU access in Docker
docker run --rm --gpus all nvidia/cuda:12.8.0-base-ubuntu24.04 nvidia-smiSet up a dedicated user
Create a basilica user with Docker access:
sudo useradd -m -s /bin/bash basilica
sudo usermod -aG docker basilica
# Set up SSH
sudo -u basilica mkdir -p /home/basilica/.ssh
sudo chmod 700 /home/basilica/.ssh
sudo -u basilica touch /home/basilica/.ssh/authorized_keys
sudo chmod 600 /home/basilica/.ssh/authorized_keysVerify the user can access GPUs:
sudo -u basilica docker run --rm --gpus all nvidia/cuda:12.8.0-base-ubuntu24.04 nvidia-smiNetwork
- SSH server running and accessible from the miner server and the validator
- Firewall allows inbound SSH from both miner and validator IPs
- The validator controls which additional ports need open internet access
# Allow SSH (UFW)
sudo ufw allow 22/tcpDisk space
At least 1TB of free disk space. This can be on the root mount or a dedicated NVMe/SSD mount.
If your storage is on a separate device, mount it on the host and declare it in your node config. The validator will make it available to rental containers.
Register your Bittensor wallet
Register on subnet 39 (mainnet):
pip install bittensor
# Create wallet
btcli wallet new_coldkey --wallet.name miner_wallet
btcli wallet new_hotkey --wallet.name miner_wallet --wallet.hotkey default
# Register on mainnet
btcli subnet register --netuid 39 --wallet.name miner_wallet --wallet.hotkey defaultBefore you proceed
Verify each GPU node has:
- NVIDIA drivers installed (
nvidia-smiworks) - Docker with NVIDIA runtime (
docker run --gpus allworks) - Dedicated
basilicauser indockergroup - SSH server running and accessible
- 1TB+ free disk space (root mount or dedicated storage mount)
- Firewall allows SSH from miner + validator
Next Steps
- Setup: Configure SSH keys, miner.toml, and deploy