Skip to content
pr_2226.prdoc 1.22 KiB
Newer Older
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<u32>`.

crates:
  - name: pallet-staking