Hyperparameters
activity_cutoff
Blocks without setting weights after which a validator is inactive and excluded from consensus.
activity_cutoff is the window, in blocks, that a validator can go without
setting weights before the epoch marks it inactive and removes its stake from
consensus. Validators care because an expired cutoff silently zeroes their
influence and dividends; owners tune it to keep consensus limited to
validators that are actually evaluating miners.
How it works
At each epoch (pallets/subtensor/src/epoch/run_epoch.rs), a neuron is
inactive when last_update + activity_cutoff is less than the current block,
where last_update is the block of its last accepted weight submission.
Inactive stake is masked out of the active-stake vector before consensus, so
an inactive validator contributes nothing to the
kappa-weighted median and earns no
dividends until it sets weights again.
The effective value is derived, not stored directly:
get_activity_cutoff_blocks (pallets/subtensor/src/utils/misc.rs) computes
factor_milli × tempo / 1000, clamped to at least 1 block. The per-mille
factor is bounded to 1,000–50,000 (one to fifty tempos); the default 13,889
at tempo 360 yields the legacy 5,000-block cutoff (~16.7 hours).
The chart below plots each validator's blocks-since-last-weights against the cutoff — slide it to see who drops out of consensus.
Each bar is how long a validator has gone without setting weights. run_epoch.rs marks a neuron inactive when last_update + activity_cutoff < current_block: bars past the dashed line fade out — their stake is masked from the active-stake vector and they earn no dividends until they set weights again.
Active validators
9 / 14
counted into consensus
Cutoff in wall-clock
16.7 h
5000 blocks × 12 s
Legacy default
5,000 blocks
~16.7 h at tempo 360
Reading and setting
Inspect with:
btcli sudo get --netuid N --name activity_cutoffThis returns the effective block count. It is not settable directly: the
epoch derives it from
activity_cutoff_factor
(per-mille of tempo), so change the factor
instead:
btcli sudo set --netuid N --name activity_cutoff_factor --value 13889A legacy absolute-blocks extrinsic (sudo_set_activity_cutoff) still exists
on chain, but the value it writes is ignored by the epoch and it will be
removed; don't use it.
Related
activity_cutoff_factor ·
tempo ·
kappa ·
rho ·
max_validators ·
weights_rate_limit