Skip to content

Commit 60931c4

Browse files
Subsubnets tweaks (#92)
* wip * wip * wip * wip * wip * Update understanding-sub-subnets.md * wip * wip * wip * wip * wip --------- Co-authored-by: Dera Okeke <[email protected]>
1 parent 923ac4b commit 60931c4

File tree

2 files changed

+20
-22
lines changed

2 files changed

+20
-22
lines changed

docs/learn/announcements.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,17 @@ This page tracks recent and upcoming changes to the Bittensor protocol and other
88

99
## Sub-Subnets (Major Feature Launch)
1010

11-
**Status**: Ready for deployment on September 12, 2025
11+
**Status**: Deploying September 17
1212
- **What**: Sub-subnets allow subnet owners to apportion emissions across multiple sub-subnets, each running Yuma Consensus independently
1313
- **Key Features**:
1414
- Enables up to 8 sub-subnets (IDs 0-7) within each main subnet for multi-task validation
1515
- Fully backward-compatible with existing miners and validators via sub-subnet ID 0
1616
- Each sub-subnet has its own weight matrix and independent emissions
1717
- All validators participate in all sub-subnets with identical stake weights
1818
- Miners automatically participate in ALL sub-subnets when registering for a subnet
19-
- Emissions are divided evenly, but subnet owners can configure proportions.
20-
- First version focuses on core functionality with additional features planned based on community feedback
19+
- **Emission distribution control**: Subnet owners can set custom emission distributions using the `sudo_set_subsubnet_emission_split` extrinsic
20+
- **Immediate sub-subnet number setting**: No onset period - changes take effect immediately
21+
- **Rate limiting**: Subnet owners can set sub-subnet numbers once per 7200 blocks
2122

2223
## Hyperparameter Rate Limiting
2324
**Status**: WIP

docs/subnets/understanding-sub-subnets.md

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,20 @@ Each sub-subnet has its own:
1616
- **Weight matrix**: Each validator sets weights for each miner on each of the subnet's sub-subnets.
1717
- **Independent emissions**: Since they depend on weights set by validators, a miner's emissions in each sub-subnet are independent.
1818
- **Transparent on-chain data**: All sub-subnet configurations and the flow of emissions are visible on-chain.
19-
- **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.
20-
21-
19+
- **Emission distribution**: Subnet creators can control what percentage of total emissions goes to each sub-subnet using the `sudo_set_subsubnet_emission_split` extrinsic. <!-- See: subtensor/pallets/admin-utils/src/lib.rs:1891-1910 -->
2220

2321
### Takeaways
2422

25-
1. **Same Validators, Same Stake**: All validators participate in all sub-subnets with identical stake weights.
26-
2. **Same Miners**: All registered miners can participate in any or all sub-subnets.
27-
3. **Owner-Controlled Proportions**: The holder of the *subnet creator* key will set the emission distribution among sub-subnets.
28-
<!-- CHeck release state of above feature!!! -->
23+
1. **Same Validators, Same Stake**: All validators participate in all sub-subnets within a subnet with identical stake weights.
24+
2. **Same Miners**: All miners registered on a subnet can participate in any or all of its sub-subnets.
25+
3. **Owner-Controlled Proportions**: The holder of the *subnet creator* key sets the emission distribution among sub-subnets.
2926
4. **Separate Yuma Consensus**: Each sub-subnet runs its own consensus to determine miner rankings.
3027

31-
3228
## What Should Stakers Know?
3329

3430
**Core Impact:**
35-
- **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.
36-
- **Same total emissions**: The subnet's total emissions remain unchanged - sub-subnets only redistribute these emissions internally.
31+
- **No change to your staking mechanics**: Your stake is delegated to a validator on a subnet, and applies across all sub-subnets equally.
32+
- **Same total emissions**: The subnet's total emissions and remain unchanged - sub-subnets only redistribute these emissions internally among miners and validators.
3733
- **Transparent allocation**: All emission proportions are visible on-chain, so you can see exactly how subnet owners are distributing emissions.
3834

3935
**What This Means for Your Strategy:**
@@ -45,7 +41,7 @@ Each sub-subnet has its own:
4541
## What Should Miners Know?
4642

4743
**Automatic Participation:**
48-
- **No separate registration**: When you register for a subnet, you automatically participate in ALL its sub-subnets
44+
- **No separate registration**: When you register for a subnet, you are eligible to participate in any of its sub-subnets
4945
- **Same UID across all sub-subnets**: You use the same UID for all sub-subnets within a subnet
5046

5147
**Performance Tracking:**
@@ -61,38 +57,37 @@ Each sub-subnet has its own:
6157
- **Independent evaluation**: Each sub-subnet requires separate assessment according to its specific criteria.
6258
- **Separate Yuma Consensus**: Each sub-subnet runs its consensus algorithm independently to determine rankings.
6359
- **Same stake weight**: Your stake weight is identical across all sub-subnets - no additional stake required.
64-
- **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).
60+
- **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.
6561

6662
### Operational Changes
6763

68-
6964
**1. Evaluation Workload:**
7065
- **Multiple assessments**: You must evaluate miners separately for each sub-subnet's tasks
7166
- **Different criteria**: Each sub-subnet may have distinct evaluation standards
7267

7368
**2. Data Structure Changes:**
74-
- **Two-dimensional weights**: Weight data becomes `[validator][uid][sub_subnet]`
69+
- **Two-dimensional weights**: Weights are now set for each miner on each subnet.
7570
- **Separate incentive tracking**: Each sub-subnet tracks incentives independently
7671
- **Extended metagraph**: New columns for sub-subnet weights and incentives
7772

7873
## What Should Subnet Creators/Developers Know?
7974

8075
### Core Changes
81-
- **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.
76+
- **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.
8277

8378
:::info
84-
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).
79+
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%. <!-- See: subtensor/pallets/subtensor/src/subnets/subsubnet.rs:173-175 -->
8580
:::
8681
- **Incentive mechanism design**: You define the specific tasks and evaluation criteria for each sub-subnet
8782
- **Transparent configuration**: All sub-subnet settings are visible on-chain for community oversight
8883
- **Single subnet slot**: No need to register multiple subnets for multiple competitions
89-
84+
- **Immediate sub-subnet number setting**: The number of sub-subnets is set immediately when changed. <!-- See: subtensor/pallets/subtensor/src/subnets/subsubnet.rs:91-116 -->
85+
- **Rate limiting**: Subnet owners can set the number of sub-subnets once per 7200 blocks to prevent frequent changes. <!-- See: subtensor/pallets/subtensor/src/lib.rs:1842-1844 -->
9086

9187
:::tip
92-
Ensure proportions sum to 100%.
88+
Ensure proportions sum to 100% when setting them, or the request will be rejected.
9389
:::
9490

95-
9691
## Example Emissions Split
9792

9893
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
10196
- Sub-subnet 1 (30%): 100 $\tau$ *.41 * .3 = 12.3
10297
- Sub-subnet 2 (10%): 100 $\tau$ *.41 * .1 = 4.1
10398

99+
**Setting Custom Proportions:**
100+
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).
104101

105102
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.
106103

0 commit comments

Comments
 (0)