Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Fully enable bags-list pallet in polkadot runtime #4653

Merged
merged 7 commits into from
Jan 5, 2022
1 change: 0 additions & 1 deletion runtime/kusama/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -573,7 +573,6 @@ impl pallet_staking::Config for Runtime {
type NextNewSession = Session;
type MaxNominatorRewardedPerValidator = MaxNominatorRewardedPerValidator;
type OffendingValidatorsThreshold = OffendingValidatorsThreshold;
// Use the nominators map to iter voters, but also keep bags-list up-to-date.
type SortedListProvider = BagsList;
type BenchmarkingConfig = runtime_common::StakingBenchmarkingConfig;
type WeightInfo = weights::pallet_staking::WeightInfo<Runtime>;
Expand Down
140 changes: 73 additions & 67 deletions runtime/kusama/src/weights/pallet_staking.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
//! Autogenerated weights for `pallet_staking`
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
//! DATE: 2021-09-17, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! DATE: 2022-01-04, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("kusama-dev"), DB CACHE: 128

// Executed Command:
Expand All @@ -33,7 +33,6 @@
// --header=./file_header.txt
// --output=./runtime/kusama/src/weights/


#![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)]
#![allow(unused_imports)]
Expand All @@ -51,7 +50,7 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
// Storage: Balances Locks (r:1 w:1)
// Storage: Staking Payee (r:0 w:1)
fn bond() -> Weight {
(66_934_000 as Weight)
(47_083_000 as Weight)
.saturating_add(T::DbWeight::get().reads(5 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
}
Expand All @@ -61,7 +60,7 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
// Storage: BagsList ListNodes (r:3 w:3)
// Storage: BagsList ListBags (r:2 w:2)
fn bond_extra() -> Weight {
(106_496_000 as Weight)
(79_677_000 as Weight)
.saturating_add(T::DbWeight::get().reads(8 as Weight))
.saturating_add(T::DbWeight::get().writes(7 as Weight))
}
Expand All @@ -75,7 +74,7 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
// Storage: Staking Bonded (r:1 w:0)
// Storage: BagsList ListBags (r:2 w:2)
fn unbond() -> Weight {
(115_916_000 as Weight)
(87_481_000 as Weight)
.saturating_add(T::DbWeight::get().reads(12 as Weight))
.saturating_add(T::DbWeight::get().writes(8 as Weight))
}
Expand All @@ -84,9 +83,9 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
// Storage: Balances Locks (r:1 w:1)
// Storage: System Account (r:1 w:1)
fn withdraw_unbonded_update(s: u32, ) -> Weight {
(47_633_000 as Weight)
(36_547_000 as Weight)
// Standard Error: 0
.saturating_add((25_000 as Weight).saturating_mul(s as Weight))
.saturating_add((23_000 as Weight).saturating_mul(s as Weight))
.saturating_add(T::DbWeight::get().reads(4 as Weight))
.saturating_add(T::DbWeight::get().writes(3 as Weight))
}
Expand All @@ -103,13 +102,16 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
// Storage: System Account (r:1 w:1)
// Storage: Balances Locks (r:1 w:1)
// Storage: Staking Payee (r:0 w:1)
fn withdraw_unbonded_kill(_s: u32, ) -> Weight {
(94_253_000 as Weight)
fn withdraw_unbonded_kill(s: u32, ) -> Weight {
(72_430_000 as Weight)
// Standard Error: 0
.saturating_add((2_000 as Weight).saturating_mul(s as Weight))
.saturating_add(T::DbWeight::get().reads(13 as Weight))
.saturating_add(T::DbWeight::get().writes(11 as Weight))
}
// Storage: Staking Ledger (r:1 w:0)
// Storage: Staking MinValidatorBond (r:1 w:0)
// Storage: Staking MinCommission (r:1 w:0)
// Storage: Staking Validators (r:1 w:1)
// Storage: Staking MaxValidatorsCount (r:1 w:0)
// Storage: Staking Nominators (r:1 w:1)
Expand All @@ -119,16 +121,16 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
// Storage: BagsList CounterForListNodes (r:1 w:1)
// Storage: Staking CounterForValidators (r:1 w:1)
fn validate() -> Weight {
(63_555_000 as Weight)
.saturating_add(T::DbWeight::get().reads(11 as Weight))
(55_595_000 as Weight)
.saturating_add(T::DbWeight::get().reads(12 as Weight))
.saturating_add(T::DbWeight::get().writes(8 as Weight))
}
// Storage: Staking Ledger (r:1 w:0)
// Storage: Staking Nominators (r:1 w:1)
fn kick(k: u32, ) -> Weight {
(9_518_000 as Weight)
// Standard Error: 11_000
.saturating_add((16_662_000 as Weight).saturating_mul(k as Weight))
(10_034_000 as Weight)
// Standard Error: 9_000
.saturating_add((11_481_000 as Weight).saturating_mul(k as Weight))
.saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(k as Weight)))
.saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(k as Weight)))
Expand All @@ -139,15 +141,15 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
// Storage: Staking MaxNominatorsCount (r:1 w:0)
// Storage: Staking Validators (r:2 w:0)
// Storage: Staking CurrentEra (r:1 w:0)
// Storage: Staking CounterForNominators (r:1 w:1)
// Storage: Staking Bonded (r:1 w:0)
// Storage: BagsList ListNodes (r:2 w:2)
// Storage: BagsList ListBags (r:1 w:1)
// Storage: BagsList CounterForListNodes (r:1 w:1)
// Storage: Staking CounterForNominators (r:1 w:1)
fn nominate(n: u32, ) -> Weight {
(74_049_000 as Weight)
// Standard Error: 16_000
.saturating_add((5_118_000 as Weight).saturating_mul(n as Weight))
(60_257_000 as Weight)
// Standard Error: 8_000
.saturating_add((4_191_000 as Weight).saturating_mul(n as Weight))
.saturating_add(T::DbWeight::get().reads(12 as Weight))
.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(n as Weight)))
.saturating_add(T::DbWeight::get().writes(6 as Weight))
Expand All @@ -160,49 +162,49 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
// Storage: BagsList ListBags (r:1 w:1)
// Storage: BagsList CounterForListNodes (r:1 w:1)
fn chill() -> Weight {
(62_972_000 as Weight)
(52_552_000 as Weight)
.saturating_add(T::DbWeight::get().reads(8 as Weight))
.saturating_add(T::DbWeight::get().writes(6 as Weight))
}
// Storage: Staking Ledger (r:1 w:0)
// Storage: Staking Payee (r:0 w:1)
fn set_payee() -> Weight {
(10_848_000 as Weight)
(8_794_000 as Weight)
.saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
// Storage: Staking Bonded (r:1 w:1)
// Storage: Staking Ledger (r:2 w:2)
fn set_controller() -> Weight {
(23_892_000 as Weight)
(18_992_000 as Weight)
.saturating_add(T::DbWeight::get().reads(3 as Weight))
.saturating_add(T::DbWeight::get().writes(3 as Weight))
}
// Storage: Staking ValidatorCount (r:0 w:1)
fn set_validator_count() -> Weight {
(2_279_000 as Weight)
(1_619_000 as Weight)
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
// Storage: Staking ForceEra (r:0 w:1)
fn force_no_eras() -> Weight {
(2_614_000 as Weight)
(1_667_000 as Weight)
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
// Storage: Staking ForceEra (r:0 w:1)
fn force_new_era() -> Weight {
(2_592_000 as Weight)
(1_743_000 as Weight)
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
// Storage: Staking ForceEra (r:0 w:1)
fn force_new_era_always() -> Weight {
(2_572_000 as Weight)
(1_677_000 as Weight)
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
// Storage: Staking Invulnerables (r:0 w:1)
fn set_invulnerables(v: u32, ) -> Weight {
(2_700_000 as Weight)
(1_852_000 as Weight)
// Standard Error: 0
.saturating_add((57_000 as Weight).saturating_mul(v as Weight))
.saturating_add((53_000 as Weight).saturating_mul(v as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
// Storage: Staking Bonded (r:1 w:1)
Expand All @@ -219,18 +221,18 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
// Storage: Staking Payee (r:0 w:1)
// Storage: Staking SpanSlash (r:0 w:2)
fn force_unstake(s: u32, ) -> Weight {
(90_113_000 as Weight)
(68_818_000 as Weight)
// Standard Error: 1_000
.saturating_add((2_230_000 as Weight).saturating_mul(s as Weight))
.saturating_add((1_104_000 as Weight).saturating_mul(s as Weight))
.saturating_add(T::DbWeight::get().reads(11 as Weight))
.saturating_add(T::DbWeight::get().writes(12 as Weight))
.saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(s as Weight)))
}
// Storage: Staking UnappliedSlashes (r:1 w:1)
fn cancel_deferred_slash(s: u32, ) -> Weight {
(2_809_466_000 as Weight)
// Standard Error: 181_000
.saturating_add((16_204_000 as Weight).saturating_mul(s as Weight))
(966_416_000 as Weight)
// Standard Error: 55_000
.saturating_add((4_979_000 as Weight).saturating_mul(s as Weight))
.saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
Expand All @@ -245,9 +247,9 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
// Storage: Staking Payee (r:2 w:0)
// Storage: System Account (r:2 w:2)
fn payout_stakers_dead_controller(n: u32, ) -> Weight {
(113_536_000 as Weight)
// Standard Error: 16_000
.saturating_add((45_494_000 as Weight).saturating_mul(n as Weight))
(94_709_000 as Weight)
// Standard Error: 17_000
.saturating_add((32_919_000 as Weight).saturating_mul(n as Weight))
.saturating_add(T::DbWeight::get().reads(10 as Weight))
.saturating_add(T::DbWeight::get().reads((3 as Weight).saturating_mul(n as Weight)))
.saturating_add(T::DbWeight::get().writes(2 as Weight))
Expand All @@ -265,9 +267,9 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
// Storage: System Account (r:2 w:2)
// Storage: Balances Locks (r:2 w:2)
fn payout_stakers_alive_staked(n: u32, ) -> Weight {
(134_960_000 as Weight)
// Standard Error: 25_000
.saturating_add((58_130_000 as Weight).saturating_mul(n as Weight))
(123_535_000 as Weight)
// Standard Error: 28_000
.saturating_add((44_813_000 as Weight).saturating_mul(n as Weight))
.saturating_add(T::DbWeight::get().reads(11 as Weight))
.saturating_add(T::DbWeight::get().reads((5 as Weight).saturating_mul(n as Weight)))
.saturating_add(T::DbWeight::get().writes(3 as Weight))
Expand All @@ -280,9 +282,9 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
// Storage: Staking Bonded (r:1 w:0)
// Storage: BagsList ListBags (r:2 w:2)
fn rebond(l: u32, ) -> Weight {
(103_717_000 as Weight)
(78_279_000 as Weight)
// Standard Error: 4_000
.saturating_add((65_000 as Weight).saturating_mul(l as Weight))
.saturating_add((55_000 as Weight).saturating_mul(l as Weight))
.saturating_add(T::DbWeight::get().reads(9 as Weight))
.saturating_add(T::DbWeight::get().writes(8 as Weight))
}
Expand All @@ -297,14 +299,15 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
// Storage: Staking ErasStartSessionIndex (r:0 w:1)
fn set_history_depth(e: u32, ) -> Weight {
(0 as Weight)
// Standard Error: 69_000
.saturating_add((31_059_000 as Weight).saturating_mul(e as Weight))
// Standard Error: 66_000
.saturating_add((26_032_000 as Weight).saturating_mul(e as Weight))
.saturating_add(T::DbWeight::get().reads(2 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
.saturating_add(T::DbWeight::get().writes((7 as Weight).saturating_mul(e as Weight)))
}
// Storage: System Account (r:1 w:1)
// Storage: Staking Bonded (r:1 w:1)
// Storage: Staking Ledger (r:1 w:1)
// Storage: Staking SlashingSpans (r:1 w:1)
// Storage: Staking Validators (r:1 w:0)
// Storage: Staking Nominators (r:1 w:1)
Expand All @@ -313,14 +316,13 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
// Storage: BagsList ListBags (r:1 w:1)
// Storage: BagsList CounterForListNodes (r:1 w:1)
// Storage: Balances Locks (r:1 w:1)
// Storage: Staking Ledger (r:0 w:1)
// Storage: Staking Payee (r:0 w:1)
// Storage: Staking SpanSlash (r:0 w:1)
fn reap_stash(s: u32, ) -> Weight {
(93_312_000 as Weight)
(76_424_000 as Weight)
// Standard Error: 1_000
.saturating_add((2_226_000 as Weight).saturating_mul(s as Weight))
.saturating_add(T::DbWeight::get().reads(11 as Weight))
.saturating_add((1_103_000 as Weight).saturating_mul(s as Weight))
.saturating_add(T::DbWeight::get().reads(12 as Weight))
.saturating_add(T::DbWeight::get().writes(12 as Weight))
.saturating_add(T::DbWeight::get().writes((1 as Weight).saturating_mul(s as Weight)))
}
Expand All @@ -330,7 +332,9 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
// Storage: Staking Bonded (r:101 w:0)
// Storage: Staking Ledger (r:101 w:0)
// Storage: Staking SlashingSpans (r:1 w:0)
// Storage: Staking Nominators (r:101 w:0)
// Storage: BagsList ListBags (r:183 w:0)
// Storage: BagsList ListNodes (r:100 w:0)
// Storage: Staking Nominators (r:100 w:0)
// Storage: System BlockWeight (r:1 w:1)
// Storage: Staking ValidatorCount (r:1 w:0)
// Storage: Staking MinimumValidatorCount (r:1 w:0)
Expand All @@ -343,13 +347,13 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
// Storage: Staking ErasStartSessionIndex (r:0 w:1)
fn new_era(v: u32, n: u32, ) -> Weight {
(0 as Weight)
// Standard Error: 724_000
.saturating_add((300_240_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 36_000
.saturating_add((49_412_000 as Weight).saturating_mul(n as Weight))
.saturating_add(T::DbWeight::get().reads(10 as Weight))
// Standard Error: 865_000
.saturating_add((235_921_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 43_000
.saturating_add((37_925_000 as Weight).saturating_mul(n as Weight))
.saturating_add(T::DbWeight::get().reads(192 as Weight))
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm have to look into this one.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

right, well, we need to lookup all bags upon each new era, and the number of bags is always bounded. Should be fine.

.saturating_add(T::DbWeight::get().reads((3 as Weight).saturating_mul(v as Weight)))
.saturating_add(T::DbWeight::get().reads((3 as Weight).saturating_mul(n as Weight)))
.saturating_add(T::DbWeight::get().reads((4 as Weight).saturating_mul(n as Weight)))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
.saturating_add(T::DbWeight::get().writes((3 as Weight).saturating_mul(v as Weight)))
}
Expand All @@ -359,40 +363,42 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
// Storage: Staking Bonded (r:1500 w:0)
// Storage: Staking Ledger (r:1500 w:0)
// Storage: Staking SlashingSpans (r:21 w:0)
// Storage: Staking Nominators (r:1001 w:0)
// Storage: BagsList ListBags (r:183 w:0)
// Storage: BagsList ListNodes (r:1000 w:0)
// Storage: Staking Nominators (r:1000 w:0)
// Storage: System BlockWeight (r:1 w:1)
fn get_npos_voters(v: u32, n: u32, s: u32, ) -> Weight {
(0 as Weight)
// Standard Error: 83_000
.saturating_add((23_656_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 83_000
.saturating_add((31_191_000 as Weight).saturating_mul(n as Weight))
// Standard Error: 2_847_000
.saturating_add((37_983_000 as Weight).saturating_mul(s as Weight))
.saturating_add(T::DbWeight::get().reads(6 as Weight))
// Standard Error: 87_000
.saturating_add((23_516_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 87_000
.saturating_add((27_548_000 as Weight).saturating_mul(n as Weight))
// Standard Error: 2_968_000
.saturating_add((21_935_000 as Weight).saturating_mul(s as Weight))
.saturating_add(T::DbWeight::get().reads(188 as Weight))
.saturating_add(T::DbWeight::get().reads((3 as Weight).saturating_mul(v as Weight)))
.saturating_add(T::DbWeight::get().reads((3 as Weight).saturating_mul(n as Weight)))
.saturating_add(T::DbWeight::get().reads((4 as Weight).saturating_mul(n as Weight)))
.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(s as Weight)))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
// Storage: Staking Validators (r:501 w:0)
// Storage: System BlockWeight (r:1 w:1)
fn get_npos_targets(v: u32, ) -> Weight {
(0 as Weight)
// Standard Error: 27_000
.saturating_add((9_398_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 28_000
.saturating_add((9_481_000 as Weight).saturating_mul(v as Weight))
.saturating_add(T::DbWeight::get().reads(2 as Weight))
.saturating_add(T::DbWeight::get().reads((1 as Weight).saturating_mul(v as Weight)))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
// Storage: Staking MinCommission (r:0 w:1)
// Storage: Staking MinValidatorBond (r:0 w:1)
// Storage: Staking MaxValidatorsCount (r:0 w:1)
// Storage: Staking ChillThreshold (r:0 w:1)
// Storage: Staking MaxNominatorsCount (r:0 w:1)
// Storage: Staking MinNominatorBond (r:0 w:1)
// Storage: Staking MinCommission (r:0 w:1)
fn set_staking_configs() -> Weight {
(5_996_000 as Weight)
(4_323_000 as Weight)
.saturating_add(T::DbWeight::get().writes(6 as Weight))
}
// Storage: Staking Ledger (r:1 w:0)
Expand All @@ -406,7 +412,7 @@ impl<T: frame_system::Config> pallet_staking::WeightInfo for WeightInfo<T> {
// Storage: BagsList ListBags (r:1 w:1)
// Storage: BagsList CounterForListNodes (r:1 w:1)
fn chill_other() -> Weight {
(76_568_000 as Weight)
(64_253_000 as Weight)
.saturating_add(T::DbWeight::get().reads(11 as Weight))
.saturating_add(T::DbWeight::get().writes(6 as Weight))
}
Expand Down
3 changes: 1 addition & 2 deletions runtime/polkadot/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -569,8 +569,7 @@ impl pallet_staking::Config for Runtime {
type NextNewSession = Session;
type ElectionProvider = ElectionProviderMultiPhase;
type GenesisElectionProvider = runtime_common::elections::GenesisElectionOf<Self>;
// Use the nominators map to iter voters, but also keep bags-list up-to-date.
type SortedListProvider = runtime_common::elections::UseNominatorsAndUpdateBagsList<Runtime>;
type SortedListProvider = BagsList;
type BenchmarkingConfig = runtime_common::StakingBenchmarkingConfig;
type WeightInfo = weights::pallet_staking::WeightInfo<Runtime>;
}
Expand Down
Loading