DEV Community

Zhuoxin Sun
Zhuoxin Sun

Posted on • Originally published at onfinality.io

Bittensor Node: Requirements, Setup, and When to Use Managed RPC

Bittensor Node Decision Checklist

Before deciding how to connect to the Bittensor network, evaluate these factors:

Criterion What to check Why it matters
Hardware requirements CPU cores, RAM, storage (SSD), bandwidth Running a subtensor node demands 4+ cores, 16+ GB RAM, and 128+ GB SSD. Inadequate hardware leads to sync failures or poor performance.
Network connectivity Public internet access, static IP, firewall rules A subtensor node must be reachable by peers. NAT or restrictive firewalls can prevent proper syncing.
Operational overhead Setup time, maintenance, monitoring, upgrades Self-hosted nodes require ongoing attention. Managed services reduce this burden.
Data access patterns Read vs. write frequency, archival needs, WebSocket support If you need historical state or real-time subscriptions, ensure your node or provider supports archive mode and WebSocket endpoints.
Budget Hardware cost, electricity, hosting fees vs. managed RPC pricing Self-hosting can be cheaper at scale but has upfront costs. Managed RPC offers predictable monthly fees.
Reliability requirements Uptime SLAs, failover, redundancy Production apps often need high availability. A single self-hosted node is a single point of failure.

What Is a Bittensor Node?

A Bittensor node, also called a subtensor node, is a full blockchain node that runs the Bittensor protocol. It maintains a copy of the Bittensor ledger, validates transactions, and communicates with other nodes in the network. Developers and subnet participants use these nodes to query on-chain data, submit extrinsics (transactions), and interact with subnets.

Bittensor is a decentralized machine intelligence network where independent subnets produce digital commodities like compute, inference, storage, and prediction. The network rewards contributors with TAO tokens. To participate—whether as a validator, miner, or application developer—you need a reliable connection to a Bittensor node.

Hardware Requirements for Running a Subtensor Node

According to the official Bittensor documentation, a subtensor node requires:

  • CPU: 4 cores (8+ recommended for production)
  • RAM: 16 GB minimum, 32 GB+ for heavy usage
  • Storage: 128 GB SSD (NVMe preferred). The chain grows over time, so plan for 256 GB or more.
  • Bandwidth: Unmetered connection with at least 100 Mbps download/upload
  • Public IP: The node must be reachable on the internet (ports 30333 and 9933 typically)

These requirements are similar to running a Polkadot or Kusama node, as subtensor is built on Substrate.

How to Run a Bittensor Node

You can run a subtensor node using pre-built binaries, Docker, or by compiling from source. The official repository is RaoFoundation/subtensor.

Option 1: Using Docker (Recommended for Quick Start)

docker pull ghcr.io/raofoundation/subtensor:latest
docker run -d --name subtensor \
  -p 30333:30333 \
  -p 9933:9933 \
  -v /path/to/data:/data \
  ghcr.io/raofoundation/subtensor:latest \
  --base-path /data \
  --chain finney \
  --name my-subtensor-node \
  --pruning archive \
  --rpc-external \
  --rpc-cors all
Enter fullscreen mode Exit fullscreen mode

This starts an archive node with RPC enabled on port 9933. Adjust --pruning to archive if you need full historical state.

Option 2: Compile from Source

git clone https://github.com/RaoFoundation/subtensor.git
cd subtensor
cargo build --release
./target/release/node-subtensor \
  --base-path /data \
  --chain finney \
  --name my-subtensor-node \
  --pruning archive \
  --rpc-external \
  --rpc-cors all
Enter fullscreen mode Exit fullscreen mode

Compilation can take 30–60 minutes and requires Rust toolchain.

Common Pitfalls When Running Your Own Node

  • Insufficient storage: The chain database grows quickly. Monitor disk usage and plan for expansion.
  • Slow sync: Initial sync can take days. Use a snapshot or warp sync if available.
  • Firewall misconfiguration: Ensure ports 30333 (P2P) and 9933 (RPC) are open and reachable.
  • Outdated software: Keep your node binary updated to avoid consensus issues.
  • Single point of failure: A single node can go offline due to hardware failure or network issues. For production, consider redundancy.

When to Use a Managed Bittensor RPC Endpoint

Running your own subtensor node gives you full control, but it comes with operational costs. Managed RPC services, like those offered by OnFinality, provide:

  • Instant access: No need to sync the chain; start querying immediately.
  • High availability: Load-balanced endpoints with automatic failover.
  • Scalability: Handle traffic spikes without provisioning extra hardware.
  • Maintenance-free: Updates and patches are handled by the provider.

If you are building a dApp, a wallet, or an analytics tool, a managed RPC endpoint is often the most practical choice. For high-throughput or latency-sensitive applications, a dedicated node may be warranted.

Bittensor RPC Endpoint Example

Once you have access to a Bittensor RPC endpoint (either self-hosted or managed), you can interact with it using standard JSON-RPC calls. Here's a curl example to get the latest block number:

curl -H "Content-Type: application/json" \
  -d '{"id":1, "jsonrpc":"2.0", "method":"chain_getBlock", "params":[]}' \
  https://bittensor-finney.api.onfinality.io/public
Enter fullscreen mode Exit fullscreen mode

Replace the URL with your own endpoint. For a managed service, you'll typically use an API key.

Key Takeaways

  • A Bittensor node (subtensor) is essential for interacting with the Bittensor network.
  • Running your own node requires 4+ CPU cores, 16+ GB RAM, and 128+ GB SSD, plus ongoing maintenance.
  • Managed RPC endpoints offer a convenient alternative for most development and production use cases.
  • Evaluate your hardware, network, and operational capacity before deciding to self-host.
  • For production apps, consider redundancy and failover—either through multiple self-hosted nodes or a managed service.

Frequently Asked Questions

Q: What is the difference between a subtensor node and a Bittensor RPC endpoint?
A: A subtensor node is the full blockchain node software. An RPC endpoint is a network URL that exposes the node's API. You can run your own node and expose its RPC, or use a third-party RPC service.

Q: Can I run a Bittensor node on a cloud server?
A: Yes. Cloud VMs with sufficient specs (e.g., AWS c5.xlarge or equivalent) work well. Ensure you have adequate bandwidth and a public IP.

Q: How long does it take to sync a subtensor node?
A: Initial sync can take 1–3 days depending on network speed and hardware. Using warp sync or a snapshot can reduce this to hours.

Q: Do I need an archive node for my application?
A: If you need historical state (e.g., past balances, old events), run an archive node. For current state only, a pruned node is sufficient.

Q: Where can I find a list of managed Bittensor RPC providers?
A: Check the supported networks page for Bittensor and other chains. OnFinality offers public and private endpoints for Bittensor Finney.

For more details on pricing and dedicated node options, visit the RPC pricing page.

Related resources

Originally published at OnFinality.

Top comments (0)