Skip to content

Commit 923ac4b

Browse files
Introduce Sub-Subnets (#83)
* wip * wip * wip * wip * wip * Update understanding-sub-subnets.md * wip * wip * wip --------- Co-authored-by: Dera Okeke <[email protected]>
1 parent 70cc79b commit 923ac4b

File tree

2 files changed

+124
-0
lines changed

2 files changed

+124
-0
lines changed
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
---
2+
title: "Introducing Sub-Subnets"
3+
---
4+
5+
import ThemedImage from '@theme/ThemedImage';
6+
import useBaseUrl from '@docusaurus/useBaseUrl';
7+
8+
# Introducing Sub-Subnets
9+
10+
Historically, each subnet operates with a single **incentive mechanism**, a function that validators run to assign weights to miners based on the value of their work. The **Sub-Subnets** feature allows a subnet creator to apportion the subnet's emissions across multiple **sub-subnets**, each of which runs Yuma Consensus *independently* to evaluate the miners' performance on each of a number of distinct tasks.
11+
12+
Each miner receives emissions separately within each sub-subnet, so a miner's performance within one sub-subnet does not affect their rating in another, and their emissions for each epoch are summed across the sub-subnets. Validators receive dividends as a weighted sum of their performance across all sub-subnets - they cannot choose which sub-subnets to validate, and if they don't validate all sub-subnets, they receive proportionally reduced emissions. Sub-subnets don't change the total emissions to a subnet, but create a way for subnet creators to distribute those emissions to miners working on different tasks. This mechanism affords subnet creators a transparent, on-chain way to exercise fine-grained control over the work they are incentivizing, keeping miner effort focused on work that is most needed at a time.
13+
14+
Each sub-subnet has its own:
15+
16+
- **Weight matrix**: Each validator sets weights for each miner on each of the subnet's sub-subnets.
17+
- **Independent emissions**: Since they depend on weights set by validators, a miner's emissions in each sub-subnet are independent.
18+
- **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+
22+
23+
### Takeaways
24+
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!!! -->
29+
4. **Separate Yuma Consensus**: Each sub-subnet runs its own consensus to determine miner rankings.
30+
31+
32+
## What Should Stakers Know?
33+
34+
**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.
37+
- **Transparent allocation**: All emission proportions are visible on-chain, so you can see exactly how subnet owners are distributing emissions.
38+
39+
**What This Means for Your Strategy:**
40+
- **No immediate action required**: Your existing staking strategy doesn't need to change
41+
- **Enhanced monitoring**: You may want to track sub-subnet performance to understand subnet health
42+
- **Risk assessment**: Factor in sub-subnet design when evaluating subnet quality
43+
- **Community oversight**: Use transparency to hold subnet owners accountable for fair emission distribution
44+
45+
## What Should Miners Know?
46+
47+
**Automatic Participation:**
48+
- **No separate registration**: When you register for a subnet, you automatically participate in ALL its sub-subnets
49+
- **Same UID across all sub-subnets**: You use the same UID for all sub-subnets within a subnet
50+
51+
**Performance Tracking:**
52+
- **Independent scoring**: Your performance is independent in different subnets, e.g. sub-subnet 0 doesn't affect your rating in sub-subnet 1.
53+
- **Separate incentive columns**: You'll see individual incentive amounts for each sub-subnet in metagraph data.
54+
- **Cumulative emissions**: Your total emissions = sum of emissions from all sub-subnets where you participate.
55+
56+
## What Should Validators Know?
57+
58+
### Core Changes
59+
60+
- **Separate weight setting**: You must set weights independently for each sub-subnet.
61+
- **Independent evaluation**: Each sub-subnet requires separate assessment according to its specific criteria.
62+
- **Separate Yuma Consensus**: Each sub-subnet runs its consensus algorithm independently to determine rankings.
63+
- **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).
65+
66+
### Operational Changes
67+
68+
69+
**1. Evaluation Workload:**
70+
- **Multiple assessments**: You must evaluate miners separately for each sub-subnet's tasks
71+
- **Different criteria**: Each sub-subnet may have distinct evaluation standards
72+
73+
**2. Data Structure Changes:**
74+
- **Two-dimensional weights**: Weight data becomes `[validator][uid][sub_subnet]`
75+
- **Separate incentive tracking**: Each sub-subnet tracks incentives independently
76+
- **Extended metagraph**: New columns for sub-subnet weights and incentives
77+
78+
## What Should Subnet Creators/Developers Know?
79+
80+
### 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.
82+
83+
:::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).
85+
:::
86+
- **Incentive mechanism design**: You define the specific tasks and evaluation criteria for each sub-subnet
87+
- **Transparent configuration**: All sub-subnet settings are visible on-chain for community oversight
88+
- **Single subnet slot**: No need to register multiple subnets for multiple competitions
89+
90+
91+
:::tip
92+
Ensure proportions sum to 100%.
93+
:::
94+
95+
96+
## Example Emissions Split
97+
98+
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:
99+
100+
- Sub-subnet 0 (60%): 100 $\tau$ *.41 * .6 = 24.6
101+
- Sub-subnet 1 (30%): 100 $\tau$ *.41 * .3 = 12.3
102+
- Sub-subnet 2 (10%): 100 $\tau$ *.41 * .1 = 4.1
103+
104+
105+
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.
106+
107+
## On-Chain Data Structure
108+
109+
Sub-subnets extend the existing metagraph with additional columns:
110+
111+
```
112+
UID | Hotkey | Stake | Sub-subnet 0 Weights | Sub-subnet 1 Weights | Sub-subnet 0 Incentive | Sub-subnet 1 Incentive
113+
-----|--------|-------|---------------------|---------------------|----------------------|----------------------
114+
123 | 5ABC...| 1000 | [0.3, 0.2, 0.1...] | [0.1, 0.4, 0.2...] | 0.05 τ | 0.02 τ
115+
456 | 7DEF...| 800 | [0.2, 0.3, 0.2...] | [0.2, 0.3, 0.1...] | 0.03 τ | 0.04 τ
116+
```
117+
118+
## Backward Compatibility
119+
120+
- Existing subnets continue with only one subnet (sub-subnet 0) collecting all emissions by default
121+
- All existing API calls default to sub-subnet 0
122+
- No breaking changes to current functionality
123+

sidebars.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ const sidebars = {
5050
"learn/introduction",
5151
"resources/questions-and-answers",
5252
"subnets/understanding-subnets",
53+
"subnets/understanding-sub-subnets",
5354
"learn/neurons",
5455
"learn/anatomy-of-incentive-mechanism",
5556
"learn/emissions",

0 commit comments

Comments
 (0)