diff --git a/docs/learn/announcements.md b/docs/learn/announcements.md index 8ed276eab6..030cf73728 100644 --- a/docs/learn/announcements.md +++ b/docs/learn/announcements.md @@ -8,7 +8,7 @@ This page tracks recent and upcoming changes to the Bittensor protocol and other ## Sub-Subnets (Major Feature Launch) -**Status**: Ready for deployment on September 12, 2025 +**Status**: Deploying September 17 - **What**: Sub-subnets allow subnet owners to apportion emissions across multiple sub-subnets, each running Yuma Consensus independently - **Key Features**: - Enables up to 8 sub-subnets (IDs 0-7) within each main subnet for multi-task validation @@ -16,8 +16,9 @@ This page tracks recent and upcoming changes to the Bittensor protocol and other - Each sub-subnet has its own weight matrix and independent emissions - All validators participate in all sub-subnets with identical stake weights - Miners automatically participate in ALL sub-subnets when registering for a subnet - - Emissions are divided evenly, but subnet owners can configure proportions. - - First version focuses on core functionality with additional features planned based on community feedback + - **Emission distribution control**: Subnet owners can set custom emission distributions using the `sudo_set_subsubnet_emission_split` extrinsic + - **Immediate sub-subnet number setting**: No onset period - changes take effect immediately + - **Rate limiting**: Subnet owners can set sub-subnet numbers once per 7200 blocks ## Hyperparameter Rate Limiting **Status**: WIP diff --git a/docs/subnets/understanding-sub-subnets.md b/docs/subnets/understanding-sub-subnets.md index 8f1cb8983c..3d9b1acfb7 100644 --- a/docs/subnets/understanding-sub-subnets.md +++ b/docs/subnets/understanding-sub-subnets.md @@ -16,24 +16,20 @@ Each sub-subnet has its own: - **Weight matrix**: Each validator sets weights for each miner on each of the subnet's sub-subnets. - **Independent emissions**: Since they depend on weights set by validators, a miner's emissions in each sub-subnet are independent. - **Transparent on-chain data**: All sub-subnet configurations and the flow of emissions are visible on-chain. -- **Emission distribution**: Currently emissions are evenly distributed, but it is planned that subnet creators will control what percentage of total emissions goes to each sub-subnet. - - +- **Emission distribution**: Subnet creators can control what percentage of total emissions goes to each sub-subnet using the `sudo_set_subsubnet_emission_split` extrinsic. ### Takeaways -1. **Same Validators, Same Stake**: All validators participate in all sub-subnets with identical stake weights. -2. **Same Miners**: All registered miners can participate in any or all sub-subnets. -3. **Owner-Controlled Proportions**: The holder of the *subnet creator* key will set the emission distribution among sub-subnets. - +1. **Same Validators, Same Stake**: All validators participate in all sub-subnets within a subnet with identical stake weights. +2. **Same Miners**: All miners registered on a subnet can participate in any or all of its sub-subnets. +3. **Owner-Controlled Proportions**: The holder of the *subnet creator* key sets the emission distribution among sub-subnets. 4. **Separate Yuma Consensus**: Each sub-subnet runs its own consensus to determine miner rankings. - ## What Should Stakers Know? **Core Impact:** -- **No change to your staking mechanics**: Your stake weight remains identical across all sub-subnets within a subnet. The same validators, same stake, same neurons participate in all sub-subnets. -- **Same total emissions**: The subnet's total emissions remain unchanged - sub-subnets only redistribute these emissions internally. +- **No change to your staking mechanics**: Your stake is delegated to a validator on a subnet, and applies across all sub-subnets equally. +- **Same total emissions**: The subnet's total emissions and remain unchanged - sub-subnets only redistribute these emissions internally among miners and validators. - **Transparent allocation**: All emission proportions are visible on-chain, so you can see exactly how subnet owners are distributing emissions. **What This Means for Your Strategy:** @@ -45,7 +41,7 @@ Each sub-subnet has its own: ## What Should Miners Know? **Automatic Participation:** -- **No separate registration**: When you register for a subnet, you automatically participate in ALL its sub-subnets +- **No separate registration**: When you register for a subnet, you are eligible to participate in any of its sub-subnets - **Same UID across all sub-subnets**: You use the same UID for all sub-subnets within a subnet **Performance Tracking:** @@ -61,38 +57,37 @@ Each sub-subnet has its own: - **Independent evaluation**: Each sub-subnet requires separate assessment according to its specific criteria. - **Separate Yuma Consensus**: Each sub-subnet runs its consensus algorithm independently to determine rankings. - **Same stake weight**: Your stake weight is identical across all sub-subnets - no additional stake required. -- **Weighted dividend calculation**: Your dividends are calculated as a weighted sum of your performance across all sub-subnets. If you don't validate on all sub-subnets, you receive proportionally reduced emissions (e.g., if you validate 1 out of 8 sub-subnets, you receive 1/8 of your potential emissions). +- **Weighted dividend calculation**: Your dividends are calculated as a weighted sum of your performance across all sub-subnets. If you don't validate on all sub-subnets, you will receive proportionally reduced emissions. ### Operational Changes - **1. Evaluation Workload:** - **Multiple assessments**: You must evaluate miners separately for each sub-subnet's tasks - **Different criteria**: Each sub-subnet may have distinct evaluation standards **2. Data Structure Changes:** -- **Two-dimensional weights**: Weight data becomes `[validator][uid][sub_subnet]` +- **Two-dimensional weights**: Weights are now set for each miner on each subnet. - **Separate incentive tracking**: Each sub-subnet tracks incentives independently - **Extended metagraph**: New columns for sub-subnet weights and incentives ## What Should Subnet Creators/Developers Know? ### Core Changes -- **Emission distribution**: Currently, emissions are divided evenly between subnets; In the planned release state, you will control what percentage of total emissions goes to each sub-subnet. +- **Emission distribution**: You can control what percentage of total emissions goes to each sub-subnet using the `sudo_set_subsubnet_emission_split` extrinsic. When the number of sub-subnets is set, the emission distribution is reset to even, but you can set it again with custom proportions. :::info - Currently, emissions are divided evenly between sub-subnets; In the planned release state, you will control what percentage of total emissions goes to each sub-subnet (planned feature). + The `sudo_set_subsubnet_emission_split` extrinsic accepts an optional vector parameter. If the parameter is `None`, the distribution is set to an even split. When it's not `None`, it reflects the proportion of emissions each sub-subnet gets. The proportion is calculated as `value / 65535`. For example, with two sub-subnets and vector `[13107, 52428]`, sub-subnet 0 gets 20% and sub-subnet 1 gets 80%. ::: - **Incentive mechanism design**: You define the specific tasks and evaluation criteria for each sub-subnet - **Transparent configuration**: All sub-subnet settings are visible on-chain for community oversight - **Single subnet slot**: No need to register multiple subnets for multiple competitions - +- **Immediate sub-subnet number setting**: The number of sub-subnets is set immediately when changed. +- **Rate limiting**: Subnet owners can set the number of sub-subnets once per 7200 blocks to prevent frequent changes. :::tip -Ensure proportions sum to 100%. +Ensure proportions sum to 100% when setting them, or the request will be rejected. ::: - ## Example Emissions Split For each subnet, the subnet creator keeps 18% of emissions, 41% is allocated to miners, and 41% to validators and their stakers, unless the subnet creator has reduced their take. Of the 41% that goes to miners and validators, here is an estimated emission distribution across three sub-subnets for each 100 $\tau$ earned on the subnet: @@ -101,6 +96,8 @@ For each subnet, the subnet creator keeps 18% of emissions, 41% is allocated to - Sub-subnet 1 (30%): 100 $\tau$ *.41 * .3 = 12.3 - Sub-subnet 2 (10%): 100 $\tau$ *.41 * .1 = 4.1 +**Setting Custom Proportions:** +To achieve the above distribution, the subnet owner would submit the `sudo_set_subsubnet_emission_split` extrinsic with the vector `[39321, 19660, 6554]` (calculated as 60% × 65535, 30% × 65535, 10% × 65535). Note that a miner who excels in sub-subnet 0 but performs poorly in others might receive more emissions than a miner who performs moderately across all sub-subnets, depending on the emission proportions and their relative performance.