Subnet Architecture

The Bittensor network currently consists of (but is not limited to) 36 subnets. (There is also a subnet 0: the Root Subnet). The number of subnets will be expanded as the network grows.

πŸ“˜

In May-July 2024, the number of subnets will grow from 32 to 64 at a rate of 4 new subnets a week.

Each Subnet runs a self-contained codebase on top of the Bittensor code, each defining a unique context for the incentivised generation of value. Although each subnet is unique and runs with independent sets of participants, the interface with the Bittensor network and use of Yuma Consensus is common across all subnets.

πŸ“˜

If a new Subnet is registered (and there are no empty subnet slots), the Subnet with the lowest emission not in immunity is ejected. Learn more about Subnet Registration

Architecture of Subnets

Subnets currently have 256 neurons (Subnets 0 and 1 are exceptions to this rule), set in the subnet hyperparameters and will in time be a custom configurable value.

The neurons are a mix of validators and miners with 64 slots reserved for validators (given vpermit) and the remainder for miners. If validator slots are left unused they can be utilised by miners, ordered by the amount of tao staked on they key.

πŸ‘

Nervous System Analogy

As you dig deeper into Bittensor and AI you will come across vocabulary references to the nervous system such as neurons. Neurons have axons, dendrites and synapses. Since neurons are the way the nervous system transmits data, it is a convenient analogy to describe how data is transmitted through the subnet.

Easy mode:

  • Neurons are nodes or servers running on a subnet.
  • Synapse: Data sent between neurons
  • Axons: receives message (server)
  • Dendrite: sends message (client)

For a deeper discussion of biology and nodes see: TODO

Validators

Validators are nodes in the subnet that perform two roles.

  1. Validation of miner output. This is usually done by sending regular requests to each miner and then assigning a value/score to the response. These scores are usually added to a moving average of the miners performance which enables a score (weights) to be set at regular intervals on the blockchain for all miners by that validator. These weights form part of the incentive landscape which when combined with the weights of the other validators using Yuma Consensus are then used to define and distribute emissions.
  2. Gateway access to the network. The only way a user or application can query a subnet is through the hotkey of an active validator - therefore validators also act as trusted gateways to the miners which in turn allows miners to prioritise queries based on a stake.

The amount of tao a validator has as delegated stake defines both the value of the weights they set for miners and as a result allows for a natural market prioritisation of access to form.

Miners

Miners produce output as defined by the subnet code. This work is usually performed by running GPUs in order to complete tasks and although the mechanisms can vary from subnet to subnet, it is the power of distributed compute that one of the key values of the network. The validators then request this output for both the rewards mechanism and to satisfy any external queries.

Miners are ranked by the trust. Miners with higher trust values receive higher incentive and as a result more emissions.

Consensus

Each subnet has a task that is undertaken, and an incentive mechanism that can be evaluated by the validators. The validators score each miner, and set weights on-chain each epoch. These weights are aggregated by Yuma Consensus to form an overall incentive landscape upon which trust values are calculated to determine emissions.

Subnet Registration

Anyone can register a new subnet provided they have an address that contains the current subnet registration cost in tao. Once a Subnet is registered, it is given immunity from de-registration for 7 days. The period of immunity allows the new subnet to build trust and establish emissions without being de-registered in the event or further subnet registrations.

Registration Cost

There is a cost to register a new subnet. The base cost is 100 tao however after a subnet is registered the cost doubles, and slowly falls back over time until the next registration or returning to the base value of 100. On each subsequent registration the cost once again doubles from its value at the time of registration. The fee to register a subnet is locked (not spent, burned or recycled) and is returned to the address if and when the subnet is de-registered.

You can determine the current price using the Bittensor CLI:

btcli subnet lock_cost
>> Subnet lock cost: Ο„100.000000000

Or you can view a historical chart of registration cost at Taostats. The chart is called "subnet registration data." In this chart, a flurry of subnet registrations had recently occurred, leading to an increase in registration costs - showing 598 TAO.:

A screenshot of the Subnet registration cost over time.

A screenshot of the Subnet registration cost over time.

Subnet de-registration

With a limit on the number of subnets, (assuming all slots are filled) when a new subnet is registered an existing subnet must be de-registered. The subnet with the lowest emissions (that is not in immunity) will be removed from the network. This means that the subnet numbers are not a chronological summary of the Bittensor network. Taostats has a chart showing the emissions for all subnets that can be sorted low -> high.

In this screenshot, the three lowest emission subnets have immunity, meaning that subnet 29 would be the next deregistered subnet.

In this screenshot from 20th January, the three lowest emission subnets have immunity, meaning that subnet 29 would be the next deregistered subnet.

πŸ“˜

If a Subnet is de-registered, all node hotkeys (miners & validators) are deregistered as well.