Registration

Registration Interval

  • One week: One subnet can register per week.

Registration Fee

  • Cost: For each registration interval, the registration fee will linearly decrease from 1000 𝕋 - 100 𝕋.


Registering

pub struct RegistrationSubnetData<AccountId> {
    pub path: Vec<u8>,
    pub registration_blocks: u64,
    pub entry_interval: u64,
    pub coldkey_whitelist: Option<BTreeSet<AccountId>>,
}
  • path: A unique name for the subnet. This can be used as the path to download the model, etc.

  • registration_blocks: The number of blocks the subnet will have to meet all subnet activation conditions.

  • entry_interval: The block interval between each node entry.

    • This is updateable by the subnet owner (registerer) after registration.

  • coldkey_whitelist: A whitelist of coldkeys that can register nodes within the registration period.

    • Due to subnets being P2P applications, the same as blockchains, the nodes that start at the genesis of the subnet should be trusted entities.

    • This whitelist is removed on the subnet activation and the subnet becomes a public network.

Subnet Data:

The blockchain stores the following parameters for each subnet:

pub struct SubnetData {
    pub id: u32,
    pub path: Vec<u8>,
    pub state: SubnetState,
    pub registered: u32,
    pub activated: u32,
}
  • id: The unique identifier for the subnet (generated on-chain)

  • path: The unique path for the subnet (submitted by the registerer)

    • This is the location of the open-sourced model from which subnet nodes can download it, the documentation, or the name of the subnet.

  • state: The state of the subnet; Registered or Active.

  • registered: The block registered.

  • activated: The block of the subnets activation.

Subnet Entry Interval

The blocks that are required to pass between each node registration. This is updateable by the subnet owner.

#[pallet::storage]
pub type SubnetEntryInterval<T: Config> = StorageMap<_, Identity, u32, u32, ValueQuery, DefaultZeroU32>;

Subnet Registration Coldkey Whitelist

The coldkey whitelist is for node registrations while a subnet is in its registration period. Once the subnet is activated, this is removed and no longer a function of the subnet.

#[pallet::storage] // subnet_id => {..., AccountId, ...}
pub type SubnetRegistrationColdkeyWhitelist<T: Config> = StorageMap<_, Identity, u32, BTreeSet<T::AccountId>>;

Once a subnet is registered, it must achieve the required activation conditions to begin receiving incentives.

Last updated