• Ross Bulat's avatar
    Staking: Add `deprecate_controller_batch` AdminOrigin call (#2589) · 048a9c27
    Ross Bulat authored
    
    
    Partially Addresses #2500
    
    Adds a `deprecate_controller_batch` call to the staking pallet that is
    callable by `Root` and `StakingAdmin`. To be used for controller account
    deprecation and removed thereafter. Adds
    `MaxControllersDeprecationBatch` pallet constant that defines max
    possible deprecations per call.
    
    - [x] Add `deprecate_controller_batch` call, and
    `MaxControllersInDeprecationBatch` constant.
    - [x] Add tests, benchmark, weights. Tests that weight is only consumed
    if unique pair.
    - [x] Adds `StakingAdmin` origin to staking's `AdminOrigin` type in
    westend runtime.
    - [x] Determined that worst case 5,900 deprecations does fit into
    `maxBlock` `proofSize` and `refTime` in both normal and operational
    thresholds, meaning we can deprecate all controllers for each network in
    one call.
    
    ## Block Weights
    
    By querying `consts.system.blockWeights` we can see that the
    `deprecate_controller_batch` weights fit within the `normal` threshold
    on Polkadot.
    
    #### `controller_deprecation_batch` where i = 5900:
    #### Ref time: 69,933,325,300
    #### Proof size: 21,040,390
    
    ### Polkadot 
    
    ```
    // consts.query.blockWeights
    
    maxBlock: {
            refTime: 2,000,000,000,000
            proofSize: 18,446,744,073,709,551,615
    }
    normal: {
     maxExtrinsic: {
    	refTime: 1,479,873,955,000
    	proofSize: 13,650,590,614,545,068,195
     }
     maxTotal: {
    	refTime: 1,500,000,000,000
    	proofSize: 13,835,058,055,282,163,711
     }
    }
    ```
    
    ### Kusama
    
    ```
    // consts.query.blockWeights
    
      maxBlock: {
        refTime: 2,000,000,000,000
        proofSize: 18,446,744,073,709,551,615
      }
        normal: {
          maxExtrinsic: {
            refTime: 1,479,875,294,000
            proofSize: 13,650,590,614,545,068,195
          }
          maxTotal: {
            refTime: 1,500,000,000,000
            proofSize: 13,835,058,055,282,163,711
          }
    }
    ```
    
    ---------
    
    Co-authored-by: command-bot <>
    Co-authored-by: default avatarGonçalo Pestana <[email protected]>
    048a9c27