Skip to content

Commit b87cadb

Browse files
committed
update runtime step
1 parent d9f399d commit b87cadb

File tree

1 file changed

+15
-16
lines changed

1 file changed

+15
-16
lines changed

proposals/0072-feature-gate-threshold-automation.md

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -212,11 +212,6 @@ If a node does not send this instruction successfully during the current epoch,
212212
their stake is not tallied. This is analogous to a node signalling support for
213213
zero features.
214214

215-
If a feature is revoked, the list of staged features will not change, and nodes
216-
may still signal support for this feature. However, the runtime will not
217-
activate this feature if its corresponding feature account no longer exists
218-
on-chain.
219-
220215
#### Signal Bitmask
221216

222217
A bit mask is used as a compressed ordered list of indices. This has two main
@@ -292,21 +287,25 @@ queried) for up to 4 epochs.
292287

293288
### Step 4: Feature Activation
294289

295-
During the epoch rollover, the runtime must load the Staged Features PDA
296-
and calculate the stake - as a percentage of the total epoch stake - in support
297-
for each feature ID to determine which staged features to activate.
290+
At the end of the epoch, the runtime loads the Staged Features PDA for the
291+
current epoch and calculates the stake - as a percentage of the total epoch
292+
stake - in support of each feature to determine which staged features to
293+
activate.
298294

299295
Every feature whose stake support meets the required threshold must be
300296
activated. This threshold will be hard-coded in the runtime to 95% initially,
301-
but future iterations on the process could allow feature key-holders to set a
302-
custom threshold per-feature.
303-
304-
As mentioned previously, if a feature was revoked, it will no longer exist
305-
on-chain, and therefore will be not activated by the runtime, regardless of
306-
calculated stake support.
297+
but future iterations on the process could make this threshold configurable.
298+
299+
Features can be revoked at any point up until this step (staged or unstaged). If
300+
a feature is revoked, nodes may still have signalled support for it, but the
301+
runtime will not activate the feature since the account will not exist on-chain.
302+
For more information, see the
303+
[Feature Gate Program's](https://github.com/solana-program/feature-gate)
304+
`RevokePendingActivation` instruction, as proposed in
305+
[SIMD 0089](./0089-programify-feature-gate-program.md).
307306

308-
If a feature is not activated, either because it has been revoked or it did not
309-
meet the required stake support, it must be resubmitted according to Step 2.
307+
If a feature is not activated, it must be resubmitted according to Step 2. If it
308+
is revoked, it must be resubmitted according to Step 1.
310309

311310
## Alternatives Considered
312311

0 commit comments

Comments
 (0)