title: Validator disabling strategy in runtime doc: - audience: Node Operator description: | On each committed offence (no matter slashable or not) the offending validator will be disabled for a whole era. - audience: Runtime Dev description: | The disabling strategy in staking pallet is no longer hardcoded but abstracted away via `DisablingStrategy` trait. The trait contains a single function (make_disabling_decision) which is called for each offence. The function makes a decision if (and which) validators should be disabled. A default implementation is provided - `UpToLimitDisablingStrategy`. It will be used on Kusama and Polkadot. In nutshell `UpToLimitDisablingStrategy` disables offenders up to the configured threshold. Offending validators are not disabled for offences in previous eras. The threshold is controlled via `DISABLING_LIMIT_FACTOR` (a generic parameter of `UpToLimitDisablingStrategy`). migrations: db: [] runtime: - reference: pallet-staking description: | Renames `OffendingValidators` storage item to `DisabledValidators` and changes its type from `Vec<(u32, bool)>` to `Vec`. crates: - name: pallet-staking