You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/subnets/understanding-sub-subnets.md
+21-13Lines changed: 21 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ import useBaseUrl from '@docusaurus/useBaseUrl';
7
7
8
8
# Introducing Sub-Subnets
9
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.
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
11
12
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
13
@@ -22,17 +22,19 @@ Each sub-subnet has its own:
22
22
23
23
1.**Same Validators, Same Stake**: All validators participate in all sub-subnets within a subnet with identical stake weights.
24
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.
25
+
3.**Owner-Controlled Proportions**: The holder of the _subnet creator_ key sets the emission distribution among sub-subnets.
26
26
4.**Separate Yuma Consensus**: Each sub-subnet runs its own consensus to determine miner rankings.
27
27
28
28
## What Should Stakers Know?
29
29
30
30
**Core Impact:**
31
+
31
32
-**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.
33
+
-**Same total emissions**: The subnet's total emissions remain unchanged - sub-subnets only redistribute these emissions internally among miners and validators.
33
34
-**Transparent allocation**: All emission proportions are visible on-chain, so you can see exactly how subnet owners are distributing emissions.
34
35
35
36
**What This Means for Your Strategy:**
37
+
36
38
-**No immediate action required**: Your existing staking strategy doesn't need to change
37
39
-**Enhanced monitoring**: You may want to track sub-subnet performance to understand subnet health
38
40
-**Risk assessment**: Factor in sub-subnet design when evaluating subnet quality
@@ -41,10 +43,12 @@ Each sub-subnet has its own:
41
43
## What Should Miners Know?
42
44
43
45
**Automatic Participation:**
46
+
44
47
-**No separate registration**: When you register for a subnet, you are eligible to participate in any of its sub-subnets
45
48
-**Same UID across all sub-subnets**: You use the same UID for all sub-subnets within a subnet
46
49
47
50
**Performance Tracking:**
51
+
48
52
-**Independent scoring**: Your performance is independent in different subnets, e.g. sub-subnet 0 doesn't affect your rating in sub-subnet 1.
49
53
-**Separate incentive columns**: You'll see individual incentive amounts for each sub-subnet in metagraph data.
50
54
-**Cumulative emissions**: Your total emissions = sum of emissions from all sub-subnets where you participate.
@@ -62,22 +66,26 @@ Each sub-subnet has its own:
62
66
### Operational Changes
63
67
64
68
**1. Evaluation Workload:**
69
+
65
70
-**Multiple assessments**: You must evaluate miners separately for each sub-subnet's tasks
66
71
-**Different criteria**: Each sub-subnet may have distinct evaluation standards
67
72
68
73
**2. Data Structure Changes:**
74
+
69
75
-**Two-dimensional weights**: Weights are now set for each miner on each subnet.
70
76
-**Separate incentive tracking**: Each sub-subnet tracks incentives independently
71
77
-**Extended metagraph**: New columns for sub-subnet weights and incentives
72
78
73
79
## What Should Subnet Creators/Developers Know?
74
80
75
81
### Core Changes
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.
77
82
78
-
:::info
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 -->
80
-
:::
83
+
-**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 an even split, but you can set it again with custom proportions.
84
+
85
+
:::info
86
+
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, in a subnet 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 -->
87
+
:::
88
+
81
89
-**Incentive mechanism design**: You define the specific tasks and evaluation criteria for each sub-subnet
82
90
-**Transparent configuration**: All sub-subnet settings are visible on-chain for community oversight
83
91
-**Single subnet slot**: No need to register multiple subnets for multiple competitions
@@ -92,12 +100,13 @@ Ensure proportions sum to 100% when setting them, or the request will be rejecte
92
100
93
101
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:
94
102
95
-
- Sub-subnet 0 (60%): 100 $\tau$ *.41 * .6 = 24.6
96
-
- Sub-subnet 1 (30%): 100 $\tau$ *.41 * .3 = 12.3
97
-
- Sub-subnet 2 (10%): 100 $\tau$ *.41 * .1 = 4.1
103
+
- Sub-subnet 0 (60%): 100 $\tau$ _.41 _ .6 = 24.6
104
+
- Sub-subnet 1 (30%): 100 $\tau$ _.41 _ .3 = 12.3
105
+
- Sub-subnet 2 (10%): 100 $\tau$ _.41 _ .1 = 4.1
98
106
99
-
**Setting Custom Proportions:**
107
+
:::info Setting Custom Proportions
100
108
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).
109
+
:::
101
110
102
111
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.
0 commit comments