Subnet Owner
The subnet owner is the registrar of the subnet, which entitles them to 20% of the total subnet emissions. The owner has control over many aspects of their subnet and is responsible for maintaining the subnet.
The owner has the following capabilities:
Update Information
Update Classification Epochs
Emergency Validator Set
Activate Subnet
Activate the subnet in the enactment phase.
Call activate_subnet with the subnet ID from the coldkey of the subnet owner.
Extrinsic
Pause Subnet
The subnet can temporarily be paused. This can be particularly useful in scenarios such as updates or bug fixes.
The subnet must be reactivated by the MaxPauseEpochs, otherwise it will begin to decrease its subnet reputation for each epoch that it is not unpaused until it reaches the minimum reputation and is removed.
Call pause_subnet with the subnet ID.
Extrinsic
Unpause Subnet
The owner can unpause the subnet if previously paused. Unpausing can take place at any time after the subnet is originally paused.
Call unpause_subnet with the subnet ID.
Extrinsic
Decommissioning Subnet
The subnet can be removed from the blockchain.
Call deactivate_subnet with the subnet ID.
This is irreversible!
Extrinsic
Update Name
Update the unique name of the subnet.
Extrinsic
Update Repo
Update the repo of the subnet. This is where the open-sourced code lives.
Extrinsic
Update Description
Update the description of the subnet.
Extrinsic
Update Misc
Update miscellaneous information on the subnet.
Extrinsic
Update Churn Limit
The churn limit is how many nodes can activate per epoch from the registration queue.
When a subnet node registers, it is given a start epoch at which it can activate. The churn limit limits how many are allowed to activate on any given epoch, without taking the grace epochs into account, which can extend the activation span.
For example, if the churn limit is 4 epochs and the queue registration epochs are 10 epochs, with 4 nodes registering on epoch 1,000, these 4 nodes will be appointed a start epoch of 1,010 (registration epoch + queue registration epochs). These nodes can then activate themselves on epoch 1,010.
If 4 more nodes register on the same epoch of 1,000, those four nodes will be appointed a start epoch of 1,011 because the churn limit is 4 per epoch.
Call owner_update_churn_limit with the subnet ID and the new churn limit.
Extrinsic
Update Churn Limit Multiplier
The multiplier is used with the churn limit and defaults to 1.
For example, if the ChurnLimit is set to 4 activations, and the multiplier is set to 2, every 2 epochs, 4 nodes will be activated on that epoch.
If the multiplier is set to 1, 4 nodes can be activated each epoch.
Call owner_update_churn_limit_multiplier with the subnet ID and the new churn limit multiplier.
Extrinsic
Update Min Stake
The min stake is the minimum balance for a subnet node to register.
This can force nodes to be removed!
Balances are checked during the following actions:
Registering
Activating
Validating
Attesting
Call owner_update_min_stakewith the subnet ID and new value.
Extrinsic
Update Max Stake
The max stake is the maximum balance for a subnet node to register. Balances can be higher than this threshold, although nodes cannot register or increase stake balance past this value.
Call owner_update_max_stakewith the subnet ID and new value.
Extrinsic
Update Registration Queue Epochs
The registration queue epochs are the number of epochs a subnet node must be in the registration queue, which is the queue before activation (see subnet node classifications), before it can activate itself.
Call owner_update_registration_queue_epochs with the subnet ID and new value.
Extrinsic
Update Idle Classification Epochs
The queue classification epochs are the number of epochs a subnet node must be in the queue classification before being upgraded to Included (see subnet node classifications).
Call owner_update_queue_classification_epochs with the subnet ID and new value.
Extrinsic
Update Included Classification Epochs
The included classification epochs are the number of epochs a subnet node must be in the included classification, which is the period before being upgraded to Validator (see subnet node classifications).
Call owner_update_included_classification_epochs with the subnet ID and new value.
Extrinsic
Add Initial Coldkeys
The initial coldkeys submitted during registration can be updated while the subnet is still in the registration phase.
Call owner_add_initial_coldkeys with the subnet ID you own, and a BTreeSet of coldkeys. This will mutate the SubnetRegistrationInitialColdkeys to include the new coldkeys.
Extrinsic
Remove Initial Coldkeys
Initial coldkeys can be removed.
Call owner_remove_initial_coldkeys with the subnet ID you own and a BTreeSet of coldkeys.
This will mutate the
SubnetRegistrationInitialColdkeysto remove the coldkeys passed through to the function.
Extrinsic
Ownership
The owner can transfer ownership in a two-step process.
Transfer Ownership
Call transfer_subnet_ownership with the subnet ID and the account of the new subnet owner.
Extrinsic
Accept Ownership
Call accept_subnet_ownership with the subnet ID from the coldkey.
Extrinsic
Undo Transfer Ownership
An ownership transfer can be undone before the new owner accepts the transfer.
Call transfer_subnet_ownership with the zero address as the new owner.
Extrinsic
Remove Subnet Node
Subnet nodes can be removed.
Call owner_remove_subnet_node with the subnet ID.
Extrinsic
Update Key Type
Update the subnets key type.
Call owner_update_key_types with the subnet ID and the set of key types the subnet utilizes.
Extrinsic
Update Delegate Stake Percentage
Update the delegate stake percentage.
Call owner_update_delegate_stake_percentage with the subnet ID and the new delegate stake percentage.
Extrinsic
Update Max Registered Nodes
Update the maximum registered nodes.
Call owner_update_max_registered_nodes with the subnet ID and the new maximum registered nodes.
Extrinsic
Add Bootnodes Access
Update the accounts that have access to update the bootnodes.
Call owner_add_bootnode_access with the subnet ID and the new maximum registered nodes.
Extrinsic
Update Target Registrations Per Epoch
Update the target registrations per epoch. This impacts the node registration burn rate.
Call owner_update_target_registrations_per_epoch with the subnet ID and the new target node registrations per epoch.
Extrinsic
Update Node Burn Rate Alpha
Update the node burn rate alpha. This is a smoothing factor (also called a learning rate) that controls how quickly the burn rate adjusts to changes in registration activity
Call owner_update_node_burn_rate_alpha with the subnet ID and the new alpha.
Extrinsic
Update Queue Immunity Epochs
Update the queue immunity epochs. This makes nodes immune to being removed via consensus while in the registration queue. See remove_queue_node_id in consensus.
Call owner_update_queue_immunity_epochs with the subnet ID and the new immunity epochs.
Extrinsic
Update Bootnodes
Update the subnets' main bootnodes. Owners and accounts with access (See owner_add_bootnode_access) and utilize this function.
Call update_bootnodes with the subnet ID and the bootnodes to add or remove.
Extrinsic
Update Minimum Subnet Node Reputation
Update the minimum subnet node reputation for the subnet. When nodes are below this threshold, they are removed from the subnet.
Call owner_update_min_subnet_node_reputation with the subnet ID and the new value.
Extrinsic
Subnet Node Min Weight Decrease Reputation Threshold
Update the subnet node minimum weight decrease reputation threshold. When a node is below the minimum weight, its reputation will be decreased based on the BelowMinWeightDecreaseReputationFactor (see Below Minimum Weight Decrease Reputation Factor).
Call owner_update_subnet_node_min_weight_decrease_reputation_threshold with the subnet ID and the new value.
Extrinsic
Below Minimum Weight Decrease Reputation Factor
Update the below minimum weight reputation factor. When a node is below the minimum weight threshold (see Subnet Node Min Weight Decrease Reputation Threshold), its reputation will be decreased based on this factor.
Call owner_update_below_min_weight_decrease_reputation_factor with the subnet ID and the new value.
Extrinsic
Update Absent Decrease Reputation Factor
Update the subnet node absent decrease reputation factor. When a node is absent from an in-consensus validator proposal, its reputation will be decreased based on this factor.
Call owner_update_absent_decrease_reputation_factor with the subnet ID and the new value.
Extrinsic
Update Included Increase Reputation Factor
Update the subnet node included increase reputation factor. When a node is included in an in-consensus validator proposal, its reputation will be increased based on this factor.
Call owner_update_included_increase_reputation_factor with the subnet ID and the new value.
Extrinsic
Update Non Attestor Decrease Reputation Factor
Update the below minimum weight reputation factor. When a node doesn't attest to an in-consensus proposal, its reputation will be decreased based on this factor.
Call owner_update_non_attestor_decrease_reputation_factor with the subnet ID and the new value.
Extrinsic
Update Non Consensus Attestor Decrease Reputation Factor
Update the below minimum weight reputation factor. When a node attests to a proposal that is not in consensus, its reputation will be decreased based on this factor.
Call owner_update_non_consensus_attestor_decrease_reputation_factor with the subnet ID and the new value.
Extrinsic
Set Emergency Validator Set
Set a temporary emergency validator set.
Call owner_set_emergency_validator_set with the subnet ID and a vector of subnet node IDs.
Extrinsic
Revert Emergency Validator Set
Remove the temporary emergency validator set.
Call owner_revert_emergency_validator_set with the subnet ID.
Extrinsic
Last updated