Skip to content

Ability to remove inactive validators #582

Open
@minghinmatthewlam

Description

@minghinmatthewlam

Context and scope
Validators can remove themselves through the DisableSubnetValidatorTx on the P-Chain, which returns their AVAX and makes the validator inactive, but the validator's weight still contributes to Warp thresholds until the validator manager contract sends an update to set validator weight = 0. Validator Manager contract does so through initializeEndValidation, which is currently gated by _msgSender(), but if a validator decides to disable themselves, they'll likely not go and call initializeEndValidation after, since they would've done so in the first place instead of disable. We don't want these validators to be leftover to affect Warp thresholds, or the tracked validator weights in the contract that can affect churn tracking etc, so the Subnet should be able to agree to remove certain validators, which can now be done through a ValidatorSetSig.

Discussion and alternatives
ValidatorManager should take in the option of a ValidatorSetSig, which can also initialize end validation for a validator, instead of just msgSender. Basically the validator manager contract should check whether it's msgSender or the additional validator set sig to allow for initializing end validation of a validator.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    • Status

      Backlog 🗄️

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions