Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
36502dc
Companion for Decouple Staking and Election - Part 3: Signed Phase
coriolinus Apr 1, 2021
1e509e9
Merge remote-tracking branch 'origin/master' into prgn-companion-for-…
coriolinus May 26, 2021
9638fcf
Merge remote-tracking branch 'origin/master' into prgn-companion-for-…
coriolinus May 27, 2021
0fc8c64
remove some config types
coriolinus May 31, 2021
a7ded3d
Merge remote-tracking branch 'origin/master' into prgn-companion-for-…
coriolinus Jun 18, 2021
5a972b2
Merge remote-tracking branch 'origin/master' into prgn-companion-for-…
coriolinus Jun 23, 2021
3c51221
allow up to 5 signed submissions on polkadot and kusama
coriolinus Jun 23, 2021
9538b7e
signed phase is equal induration to unsigned phase
coriolinus Jun 23, 2021
3da0659
use chain defaults for base and per-byte deposits; >= 16 SignedMaxSub…
coriolinus Jun 23, 2021
0f380ae
use a small but non-trivial solution reward
coriolinus Jun 23, 2021
fd9e8c6
reduce signed deposit per byte fee
coriolinus Jun 23, 2021
a0372e3
reduce signed reward, adjust polkadot expected soln size
coriolinus Jun 23, 2021
e1f3a06
copy submit benchmark from substrate
coriolinus Jun 23, 2021
b19f7e1
demo calculating an appropriate fee for the signed reward
coriolinus Jun 23, 2021
ff228bc
SignedRewardBase is 1.5x the fee to submit a signed solution
coriolinus Jun 24, 2021
f97eca3
Merge remote-tracking branch 'origin/master' into prgn-companion-for-…
coriolinus Jun 24, 2021
f5b6dd5
all chains use deposit byte of base per 50k
coriolinus Jun 25, 2021
99a16f3
Merge remote-tracking branch 'origin/master' into prgn-companion-for-…
Jun 28, 2021
7084efc
update Substrate
Jun 28, 2021
8cf97b6
cargo update -p pallet-election-provider-multi-phase
coriolinus Jun 28, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Merge remote-tracking branch 'origin/master' into prgn-companion-for-…
…7910
  • Loading branch information
coriolinus committed May 26, 2021
commit 1e509e97a59892db3e322ed5afbe77e174c4bc7b
5 changes: 3 additions & 2 deletions runtime/kusama/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -345,8 +345,8 @@ parameter_types! {

// signed config
pub const SignedMaxSubmissions: u32 = 0;
pub const SignedRewardBase: Balance = 1 * DOLLARS;
pub const SignedDepositBase: Balance = 1 * DOLLARS;
pub const SignedRewardBase: Balance = 100 * CENTS;
pub const SignedDepositBase: Balance = 100 * CENTS;
pub const SignedDepositByte: Balance = 1 * CENTS;

// fallback: run election on-chain.
Expand Down Expand Up @@ -382,6 +382,7 @@ impl pallet_election_provider_multi_phase::Config for Runtime {
type SignedMaxWeight = Self::MinerMaxWeight;
type SlashHandler = (); // burn slashes
Copy link
Contributor

Choose a reason for hiding this comment

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

Same, could use more thought. My initial values here are all placeholders.

type RewardHandler = (); // nothing to do upon rewards
type SignedPhase = SignedPhase;
type SolutionImprovementThreshold = SolutionImprovementThreshold;
type MinerMaxIterations = MinerMaxIterations;
type MinerMaxWeight = OffchainSolutionWeightLimit; // For now use the one from staking.
Expand Down
64 changes: 33 additions & 31 deletions runtime/kusama/src/weights/pallet_election_provider_multi_phase.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,27 @@ use sp_std::marker::PhantomData;
/// Weight functions for pallet_election_provider_multi_phase.
pub struct WeightInfo<T>(PhantomData<T>);
impl<T: frame_system::Config> pallet_election_provider_multi_phase::WeightInfo for WeightInfo<T> {
fn on_initialize_nothing() -> Weight {
(20_217_000 as Weight)
.saturating_add(T::DbWeight::get().reads(7 as Weight))
}
fn on_initialize_open_signed() -> Weight {
(99_197_000 as Weight)
.saturating_add(T::DbWeight::get().reads(8 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
}
fn on_initialize_open_unsigned_with_snapshot() -> Weight {
(98_403_000 as Weight)
.saturating_add(T::DbWeight::get().reads(8 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
}
fn on_initialize_open_unsigned_without_snapshot() -> Weight {
(21_039_000 as Weight)
(18_101_000 as Weight)
.saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
fn elect_queued() -> Weight {
(7_362_949_000 as Weight)
(11_435_187_000 as Weight)
.saturating_add(T::DbWeight::get().reads(2 as Weight))
.saturating_add(T::DbWeight::get().writes(6 as Weight))
}
Expand All @@ -60,43 +74,31 @@ impl<T: frame_system::Config> pallet_election_provider_multi_phase::WeightInfo f
.saturating_add(T::DbWeight::get().reads(3 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
fn submit_unsigned(v: u32, _t: u32, a: u32, d: u32, ) -> Weight {
fn submit_unsigned(v: u32, t: u32, a: u32, d: u32, ) -> Weight {
(0 as Weight)
// Standard Error: 21_000
.saturating_add((3_933_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 21_000
.saturating_add((13_520_000 as Weight).saturating_mul(a as Weight))
// Standard Error: 107_000
.saturating_add((2_880_000 as Weight).saturating_mul(d as Weight))
// Standard Error: 23_000
.saturating_add((6_005_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 79_000
.saturating_add((115_000 as Weight).saturating_mul(t as Weight))
// Standard Error: 23_000
.saturating_add((18_959_000 as Weight).saturating_mul(a as Weight))
// Standard Error: 119_000
.saturating_add((4_858_000 as Weight).saturating_mul(d as Weight))
.saturating_add(T::DbWeight::get().reads(6 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
fn feasibility_check(v: u32, t: u32, a: u32, d: u32, ) -> Weight {
(0 as Weight)
// Standard Error: 10_000
.saturating_add((4_069_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 36_000
.saturating_add((503_000 as Weight).saturating_mul(t as Weight))
// Standard Error: 10_000
.saturating_add((10_000_000 as Weight).saturating_mul(a as Weight))
// Standard Error: 54_000
.saturating_add((3_734_000 as Weight).saturating_mul(d as Weight))
// Standard Error: 17_000
.saturating_add((5_835_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 59_000
.saturating_add((264_000 as Weight).saturating_mul(t as Weight))
// Standard Error: 17_000
.saturating_add((14_827_000 as Weight).saturating_mul(a as Weight))
// Standard Error: 89_000
.saturating_add((4_130_000 as Weight).saturating_mul(d as Weight))
.saturating_add(T::DbWeight::get().reads(3 as Weight))
}
fn on_initialize_nothing() -> Weight {
(24_128_000 as Weight)
.saturating_add(T::DbWeight::get().reads(7 as Weight))
}
fn on_initialize_open_signed() -> Weight {
(80_951_000 as Weight)
.saturating_add(T::DbWeight::get().reads(7 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
}
fn on_initialize_open_unsigned_with_snapshot() -> Weight {
(79_888_000 as Weight)
.saturating_add(T::DbWeight::get().reads(7 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
}
fn finalize_signed_phase_accept_solution() -> Weight {
(47_783_000 as Weight)
.saturating_add(T::DbWeight::get().reads(1 as Weight))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,60 +43,53 @@ use sp_std::marker::PhantomData;
/// Weight functions for pallet_election_provider_multi_phase.
pub struct WeightInfo<T>(PhantomData<T>);
impl<T: frame_system::Config> pallet_election_provider_multi_phase::WeightInfo for WeightInfo<T> {
fn on_initialize_nothing() -> Weight {
(19_802_000 as Weight)
.saturating_add(T::DbWeight::get().reads(7 as Weight))
}
fn on_initialize_open_signed() -> Weight {
(100_008_000 as Weight)
.saturating_add(T::DbWeight::get().reads(8 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
}
fn on_initialize_open_unsigned_with_snapshot() -> Weight {
(99_255_000 as Weight)
.saturating_add(T::DbWeight::get().reads(8 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
}
fn on_initialize_open_unsigned_without_snapshot() -> Weight {
(21_039_000 as Weight)
(18_383_000 as Weight)
.saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
fn elect_queued() -> Weight {
(7_362_949_000 as Weight)
(7_631_033_000 as Weight)
.saturating_add(T::DbWeight::get().reads(2 as Weight))
.saturating_add(T::DbWeight::get().writes(6 as Weight))
}
fn submit(c: u32, ) -> Weight {
(84_430_000 as Weight)
// Standard Error: 146_000
.saturating_add((2_758_000 as Weight).saturating_mul(c as Weight))
.saturating_add(T::DbWeight::get().reads(3 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
fn submit_unsigned(v: u32, _t: u32, a: u32, d: u32, ) -> Weight {
(0 as Weight)
// Standard Error: 21_000
.saturating_add((3_933_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 21_000
.saturating_add((13_520_000 as Weight).saturating_mul(a as Weight))
// Standard Error: 107_000
.saturating_add((2_880_000 as Weight).saturating_mul(d as Weight))
// Standard Error: 19_000
.saturating_add((4_133_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 19_000
.saturating_add((12_776_000 as Weight).saturating_mul(a as Weight))
// Standard Error: 99_000
.saturating_add((2_879_000 as Weight).saturating_mul(d as Weight))
.saturating_add(T::DbWeight::get().reads(6 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
fn feasibility_check(v: u32, t: u32, a: u32, d: u32, ) -> Weight {
(0 as Weight)
// Standard Error: 10_000
.saturating_add((4_069_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 36_000
.saturating_add((503_000 as Weight).saturating_mul(t as Weight))
// Standard Error: 10_000
.saturating_add((10_000_000 as Weight).saturating_mul(a as Weight))
// Standard Error: 54_000
.saturating_add((3_734_000 as Weight).saturating_mul(d as Weight))
// Standard Error: 11_000
.saturating_add((4_286_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 39_000
.saturating_add((468_000 as Weight).saturating_mul(t as Weight))
// Standard Error: 11_000
.saturating_add((9_291_000 as Weight).saturating_mul(a as Weight))
// Standard Error: 58_000
.saturating_add((3_405_000 as Weight).saturating_mul(d as Weight))
.saturating_add(T::DbWeight::get().reads(3 as Weight))
}
fn on_initialize_nothing() -> Weight {
(24_128_000 as Weight)
.saturating_add(T::DbWeight::get().reads(7 as Weight))
}
fn on_initialize_open_signed() -> Weight {
(80_951_000 as Weight)
.saturating_add(T::DbWeight::get().reads(7 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
}
fn on_initialize_open_unsigned_with_snapshot() -> Weight {
(79_888_000 as Weight)
.saturating_add(T::DbWeight::get().reads(7 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
}
fn finalize_signed_phase_accept_solution() -> Weight {
(47_783_000 as Weight)
.saturating_add(T::DbWeight::get().reads(1 as Weight))
Expand All @@ -107,4 +100,8 @@ impl<T: frame_system::Config> pallet_election_provider_multi_phase::WeightInfo f
.saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
fn submit(_: u32) -> Weight {
// needs a real benchmarking to get a real value here
0
}
}
8 changes: 4 additions & 4 deletions runtime/westend/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -330,13 +330,13 @@ impl pallet_session::historical::Config for Runtime {

parameter_types! {
// phase durations. 1/4 of the last session for each.
pub const SignedPhase: u32 = EPOCH_DURATION_IN_BLOCKS / 4;
pub const UnsignedPhase: u32 = EPOCH_DURATION_IN_BLOCKS / 4;
pub const SignedPhase: u32 = EPOCH_DURATION_IN_SLOTS / 4;
pub const UnsignedPhase: u32 = EPOCH_DURATION_IN_SLOTS / 4;

// signed config
pub const SignedMaxSubmissions: u32 = 128;
pub const SignedRewardBase: Balance = 1 * DOLLARS;
pub const SignedDepositBase: Balance = 1 * DOLLARS;
pub const SignedRewardBase: Balance = 100 * CENTS;
pub const SignedDepositBase: Balance = 100 * CENTS;
pub const SignedDepositByte: Balance = 1 * CENTS;

// fallback: run election on-chain.
Expand Down
63 changes: 30 additions & 33 deletions runtime/westend/src/weights/pallet_election_provider_multi_phase.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,60 +43,53 @@ use sp_std::marker::PhantomData;
/// Weight functions for pallet_election_provider_multi_phase.
pub struct WeightInfo<T>(PhantomData<T>);
impl<T: frame_system::Config> pallet_election_provider_multi_phase::WeightInfo for WeightInfo<T> {
fn on_initialize_nothing() -> Weight {
(20_363_000 as Weight)
.saturating_add(T::DbWeight::get().reads(7 as Weight))
}
fn on_initialize_open_signed() -> Weight {
(103_193_000 as Weight)
.saturating_add(T::DbWeight::get().reads(8 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
}
fn on_initialize_open_unsigned_with_snapshot() -> Weight {
(102_404_000 as Weight)
.saturating_add(T::DbWeight::get().reads(8 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
}
fn on_initialize_open_unsigned_without_snapshot() -> Weight {
(21_039_000 as Weight)
(17_265_000 as Weight)
.saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
fn elect_queued() -> Weight {
(7_362_949_000 as Weight)
(7_631_563_000 as Weight)
.saturating_add(T::DbWeight::get().reads(2 as Weight))
.saturating_add(T::DbWeight::get().writes(6 as Weight))
}
fn submit(c: u32, ) -> Weight {
(84_430_000 as Weight)
// Standard Error: 146_000
.saturating_add((2_758_000 as Weight).saturating_mul(c as Weight))
.saturating_add(T::DbWeight::get().reads(3 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
fn submit_unsigned(v: u32, _t: u32, a: u32, d: u32, ) -> Weight {
(0 as Weight)
// Standard Error: 21_000
.saturating_add((3_933_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 21_000
.saturating_add((13_520_000 as Weight).saturating_mul(a as Weight))
// Standard Error: 107_000
.saturating_add((2_880_000 as Weight).saturating_mul(d as Weight))
// Standard Error: 20_000
.saturating_add((4_279_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 20_000
.saturating_add((13_165_000 as Weight).saturating_mul(a as Weight))
// Standard Error: 104_000
.saturating_add((3_000_000 as Weight).saturating_mul(d as Weight))
.saturating_add(T::DbWeight::get().reads(6 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
fn feasibility_check(v: u32, t: u32, a: u32, d: u32, ) -> Weight {
(0 as Weight)
// Standard Error: 10_000
.saturating_add((4_069_000 as Weight).saturating_mul(v as Weight))
.saturating_add((4_410_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 36_000
.saturating_add((503_000 as Weight).saturating_mul(t as Weight))
.saturating_add((510_000 as Weight).saturating_mul(t as Weight))
// Standard Error: 10_000
.saturating_add((10_000_000 as Weight).saturating_mul(a as Weight))
.saturating_add((9_685_000 as Weight).saturating_mul(a as Weight))
// Standard Error: 54_000
.saturating_add((3_734_000 as Weight).saturating_mul(d as Weight))
.saturating_add((3_700_000 as Weight).saturating_mul(d as Weight))
.saturating_add(T::DbWeight::get().reads(3 as Weight))
}
fn on_initialize_nothing() -> Weight {
(24_128_000 as Weight)
.saturating_add(T::DbWeight::get().reads(7 as Weight))
}
fn on_initialize_open_signed() -> Weight {
(80_951_000 as Weight)
.saturating_add(T::DbWeight::get().reads(7 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
}
fn on_initialize_open_unsigned_with_snapshot() -> Weight {
(79_888_000 as Weight)
.saturating_add(T::DbWeight::get().reads(7 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
}
fn finalize_signed_phase_accept_solution() -> Weight {
(47_783_000 as Weight)
.saturating_add(T::DbWeight::get().reads(1 as Weight))
Expand All @@ -107,4 +100,8 @@ impl<T: frame_system::Config> pallet_election_provider_multi_phase::WeightInfo f
.saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
fn submit(_: u32) -> Weight {
// need a real benchmark to get a value here
0
}
}
You are viewing a condensed version of this merge commit. You can view the full changes here.