@@ -212,11 +212,6 @@ If a node does not send this instruction successfully during the current epoch,
212
212
their stake is not tallied. This is analogous to a node signalling support for
213
213
zero features.
214
214
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
-
220
215
#### Signal Bitmask
221
216
222
217
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.
292
287
293
288
### Step 4: Feature Activation
294
289
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.
298
294
299
295
Every feature whose stake support meets the required threshold must be
300
296
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 ) .
307
306
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 .
310
309
311
310
## Alternatives Considered
312
311
0 commit comments