referrerpolicy=no-referrer-when-downgrade
polkadot_runtime_parachains::disputes

Trait SlashingHandler

Source
pub trait SlashingHandler<BlockNumber> {
    // Required methods
    fn punish_for_invalid(
        session: SessionIndex,
        candidate_hash: CandidateHash,
        losers: impl IntoIterator<Item = ValidatorIndex>,
        backers: impl IntoIterator<Item = ValidatorIndex>,
    );
    fn punish_against_valid(
        session: SessionIndex,
        candidate_hash: CandidateHash,
        losers: impl IntoIterator<Item = ValidatorIndex>,
        backers: impl IntoIterator<Item = ValidatorIndex>,
    );
    fn initializer_initialize(now: BlockNumber) -> Weight;
    fn initializer_finalize();
    fn initializer_on_new_session(session_index: SessionIndex);
}
Expand description

Punishment hooks for disputes.

Required Methods§

Source

fn punish_for_invalid( session: SessionIndex, candidate_hash: CandidateHash, losers: impl IntoIterator<Item = ValidatorIndex>, backers: impl IntoIterator<Item = ValidatorIndex>, )

Punish a series of validators who were for an invalid parablock. This is expected to be a major punishment.

Source

fn punish_against_valid( session: SessionIndex, candidate_hash: CandidateHash, losers: impl IntoIterator<Item = ValidatorIndex>, backers: impl IntoIterator<Item = ValidatorIndex>, )

Punish a series of validators who were against a valid parablock. This is expected to be a minor punishment.

Source

fn initializer_initialize(now: BlockNumber) -> Weight

Called by the initializer to initialize the slashing pallet.

Source

fn initializer_finalize()

Called by the initializer to finalize the slashing pallet.

Source

fn initializer_on_new_session(session_index: SessionIndex)

Called by the initializer to note that a new session has started.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<BlockNumber> SlashingHandler<BlockNumber> for ()

Source§

fn punish_for_invalid( _: SessionIndex, _: CandidateHash, _: impl IntoIterator<Item = ValidatorIndex>, _: impl IntoIterator<Item = ValidatorIndex>, )

Source§

fn punish_against_valid( _: SessionIndex, _: CandidateHash, _: impl IntoIterator<Item = ValidatorIndex>, _: impl IntoIterator<Item = ValidatorIndex>, )

Source§

fn initializer_initialize(_now: BlockNumber) -> Weight

Source§

fn initializer_finalize()

Source§

fn initializer_on_new_session(_: SessionIndex)

Implementors§

Source§

impl<T> SlashingHandler<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for SlashValidatorsForDisputes<Pallet<T>>
where T: Config<KeyOwnerIdentification = IdentificationTuple<T>>,