Hyperparameters
adjustment_interval
Blocks between adjustments of the registration difficulty and burn cost (legacy cadence).
Historically the cadence of Bittensor's registration-price controller: every
adjustment_interval blocks, the chain compared registrations against
target_regs_per_interval
and moved the burn cost and PoW difficulty up or down. It matters today mostly
as context — the current chain adjusts the burn price continuously instead.
How it works
The parameter lives in AdjustmentInterval storage (u16 block count, default
100 blocks ≈ 20 minutes, from SubtensorInitialAdjustmentInterval in
runtime/src/lib.rs). In the current runtime, however, no adjustment logic
reads it: the interval-based controller was replaced by a per-block
mechanism in pallets/subtensor/src/subnets/registration.rs where each
registration multiplies the burn by
burn_increase_mult and the price
decays every block with half-life
burn_half_life, clamped to
[min_burn,
max_burn]. The value is still stored,
returned by the subnet_hyperparameters query, and settable — the extrinsic
(sudo_set_adjustment_interval in pallets/admin-utils/src/lib.rs) checks
only that the subnet exists — but changing it has no effect on registration
pricing. Even the root subnet's per-interval registration counter resets on
the root epoch boundary (tempo), not on this interval.
The chart below replays the same registration burst under the old once-per-interval controller and the current per-block one — drag the interval to see what the cadence used to change.
The same demand burst (~2h of registrations, then quiet) priced two ways. Then (dotted steps): the price only moved once per adjustment_interval — drag it to make the steps wider or narrower. Now (solid): the price reacts per registration and decays per block; the interval no longer affects it.
Then (dotted)
steps per interval
next = α·old + (1−α)·old·(regs+2)/4
Now (solid)
moves every block
×1.26 per registration, half-life 360 blocks
These sliders affect
only the dotted line
On the current chain both values are stored but unused.
Reading and setting
btcli sudo get --netuid 12 --name adjustment_intervalRoot/governance only — sudo_set_adjustment_interval requires the root
origin, so subnet owners cannot change it. The value is a plain block count
(12-second blocks).
Related
burn_half_life— the cadence's replacement for burn decayburn_increase_mult— the per-registration responseadjustment_alpha— the smoothing factor of the same legacy controllertarget_regs_per_interval