Storage Layer for All FRAME Extrinsics (#11431)

* add new trait

* implement DispatchableWithStorageLayer

* at least one transactional

* all dispatch is at least transactional

* storage_layer api

* add test

* storage layer tests

* deprecate transactional tag

* i guess no reason to deprecate

* remove transactional from batch_all

* update tests

* extend trait

* cargo run --quiet --profile=production --features runtime-benchmarks --manifest-path bin/node/cli/Cargo.toml -- benchmark pallet --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs

* cargo run --quiet --profile=production --features runtime-benchmarks --manifest-path bin/node/cli/Cargo.toml -- benchmark pallet --chain=dev --steps=50 --repeat=20 --pallet=pallet_balances --extrinsic=* --execution=wasm --wasm-execution=compiled --output=./frame/balances/src/weights.rs --template=./.maintain/frame-weight-template.hbs

* cargo run --quiet --profile=production --features runtime-benchmarks --manifest-path bin/node/cli/Cargo.toml -- benchmark pallet --chain=dev --steps=50 --repeat=20 --pallet=pallet_staking --extrinsic=* --execution=wasm --wasm-execution=compiled --output=./frame/staking/src/weights.rs --template=./.maintain/frame-weight-template.hbs

* fix copy paste name

* cargo run --quiet --profile=production --features runtime-benchmarks --manifest-path bin/node/cli/Cargo.toml -- benchmark pallet --chain=dev --steps=50 --repeat=20 --pallet=pallet_utility --extrinsic=* --execution=wasm --wasm-execution=compiled --output=./frame/utility/src/weights.rs --template=./.maintain/frame-weight-template.hbs

* Create run_all_benchmarks.sh

* uncomment build

* update number of steps and repeats

* add skip build

* Update run_all_benchmarks.sh

* Update run_all_benchmarks.sh

* new benchmarks

* Update frame/support/src/traits/dispatch.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Update frame/support/src/traits/dispatch.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Update frame/support/test/tests/storage_layers.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Update frame/support/test/tests/storage_layers.rs

* weights

* Update dispatch.rs

* doc link

* decl_macro support

Co-authored-by: Parity Bot <admin@parity.io>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
This commit is contained in:
Shawn Tabrizi
2022-05-26 15:28:32 -04:00
committed by GitHub
parent ea469886f8
commit 8e7adaf283
52 changed files with 1741 additions and 1355 deletions
@@ -18,7 +18,7 @@
//! Autogenerated weights for pallet_elections_phragmen
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
//! DATE: 2022-05-22, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! DATE: 2022-05-23, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("dev"), DB CACHE: 1024
// Executed Command:
@@ -68,9 +68,9 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Elections Voting (r:1 w:1)
// Storage: Balances Locks (r:1 w:1)
fn vote_equal(v: u32, ) -> Weight {
(23_819_000 as Weight)
(27_798_000 as Weight)
// Standard Error: 5_000
.saturating_add((242_000 as Weight).saturating_mul(v as Weight))
.saturating_add((238_000 as Weight).saturating_mul(v as Weight))
.saturating_add(T::DbWeight::get().reads(5 as Weight))
.saturating_add(T::DbWeight::get().writes(2 as Weight))
}
@@ -80,8 +80,8 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Elections Voting (r:1 w:1)
// Storage: Balances Locks (r:1 w:1)
fn vote_more(v: u32, ) -> Weight {
(37_141_000 as Weight)
// Standard Error: 6_000
(41_241_000 as Weight)
// Standard Error: 8_000
.saturating_add((259_000 as Weight).saturating_mul(v as Weight))
.saturating_add(T::DbWeight::get().reads(5 as Weight))
.saturating_add(T::DbWeight::get().writes(2 as Weight))
@@ -92,16 +92,16 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Elections Voting (r:1 w:1)
// Storage: Balances Locks (r:1 w:1)
fn vote_less(v: u32, ) -> Weight {
(37_494_000 as Weight)
// Standard Error: 10_000
.saturating_add((227_000 as Weight).saturating_mul(v as Weight))
(41_313_000 as Weight)
// Standard Error: 8_000
.saturating_add((255_000 as Weight).saturating_mul(v as Weight))
.saturating_add(T::DbWeight::get().reads(5 as Weight))
.saturating_add(T::DbWeight::get().writes(2 as Weight))
}
// Storage: Elections Voting (r:1 w:1)
// Storage: Balances Locks (r:1 w:1)
fn remove_voter() -> Weight {
(34_528_000 as Weight)
(39_218_000 as Weight)
.saturating_add(T::DbWeight::get().reads(2 as Weight))
.saturating_add(T::DbWeight::get().writes(2 as Weight))
}
@@ -109,17 +109,17 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Elections Members (r:1 w:0)
// Storage: Elections RunnersUp (r:1 w:0)
fn submit_candidacy(c: u32, ) -> Weight {
(38_330_000 as Weight)
(41_348_000 as Weight)
// Standard Error: 1_000
.saturating_add((88_000 as Weight).saturating_mul(c as Weight))
.saturating_add((112_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))
}
// Storage: Elections Candidates (r:1 w:1)
fn renounce_candidacy_candidate(c: u32, ) -> Weight {
(32_770_000 as Weight)
(35_522_000 as Weight)
// Standard Error: 1_000
.saturating_add((81_000 as Weight).saturating_mul(c as Weight))
.saturating_add((92_000 as Weight).saturating_mul(c as Weight))
.saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
@@ -129,13 +129,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Council Proposals (r:1 w:0)
// Storage: Council Members (r:0 w:1)
fn renounce_candidacy_members() -> Weight {
(43_413_000 as Weight)
(47_887_000 as Weight)
.saturating_add(T::DbWeight::get().reads(4 as Weight))
.saturating_add(T::DbWeight::get().writes(4 as Weight))
}
// Storage: Elections RunnersUp (r:1 w:1)
fn renounce_candidacy_runners_up() -> Weight {
(32_206_000 as Weight)
(36_271_000 as Weight)
.saturating_add(T::DbWeight::get().reads(1 as Weight))
.saturating_add(T::DbWeight::get().writes(1 as Weight))
}
@@ -150,13 +150,13 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Council Proposals (r:1 w:0)
// Storage: Council Members (r:0 w:1)
fn remove_member_with_replacement() -> Weight {
(50_135_000 as Weight)
(55_024_000 as Weight)
.saturating_add(T::DbWeight::get().reads(5 as Weight))
.saturating_add(T::DbWeight::get().writes(5 as Weight))
}
// Storage: Elections RunnersUp (r:1 w:0)
fn remove_member_wrong_refund() -> Weight {
(5_063_000 as Weight)
(13_089_000 as Weight)
.saturating_add(T::DbWeight::get().reads(1 as Weight))
}
// Storage: Elections Voting (r:251 w:250)
@@ -165,10 +165,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: Elections Candidates (r:1 w:0)
// Storage: Balances Locks (r:250 w:250)
// Storage: System Account (r:250 w:250)
fn clean_defunct_voters(v: u32, _d: u32, ) -> Weight {
fn clean_defunct_voters(v: u32, d: u32, ) -> Weight {
(0 as Weight)
// Standard Error: 62_000
.saturating_add((52_093_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 40_000
.saturating_add((51_848_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 38_000
.saturating_add((537_000 as Weight).saturating_mul(d as Weight))
.saturating_add(T::DbWeight::get().reads(4 as Weight))
.saturating_add(T::DbWeight::get().reads((3 as Weight).saturating_mul(v as Weight)))
.saturating_add(T::DbWeight::get().writes((3 as Weight).saturating_mul(v as Weight)))
@@ -184,12 +186,12 @@ impl<T: frame_system::Config> WeightInfo for SubstrateWeight<T> {
// Storage: System Account (r:2 w:2)
fn election_phragmen(c: u32, v: u32, e: u32, ) -> Weight {
(0 as Weight)
// Standard Error: 1_658_000
.saturating_add((30_489_000 as Weight).saturating_mul(c as Weight))
// Standard Error: 689_000
.saturating_add((49_624_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 1_664_000
.saturating_add((30_736_000 as Weight).saturating_mul(c as Weight))
// Standard Error: 692_000
.saturating_add((49_739_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 47_000
.saturating_add((3_352_000 as Weight).saturating_mul(e as Weight))
.saturating_add((3_363_000 as Weight).saturating_mul(e as Weight))
.saturating_add(T::DbWeight::get().reads((2 as Weight).saturating_mul(c 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).saturating_mul(c as Weight)))
@@ -204,9 +206,9 @@ impl WeightInfo for () {
// Storage: Elections Voting (r:1 w:1)
// Storage: Balances Locks (r:1 w:1)
fn vote_equal(v: u32, ) -> Weight {
(23_819_000 as Weight)
(27_798_000 as Weight)
// Standard Error: 5_000
.saturating_add((242_000 as Weight).saturating_mul(v as Weight))
.saturating_add((238_000 as Weight).saturating_mul(v as Weight))
.saturating_add(RocksDbWeight::get().reads(5 as Weight))
.saturating_add(RocksDbWeight::get().writes(2 as Weight))
}
@@ -216,8 +218,8 @@ impl WeightInfo for () {
// Storage: Elections Voting (r:1 w:1)
// Storage: Balances Locks (r:1 w:1)
fn vote_more(v: u32, ) -> Weight {
(37_141_000 as Weight)
// Standard Error: 6_000
(41_241_000 as Weight)
// Standard Error: 8_000
.saturating_add((259_000 as Weight).saturating_mul(v as Weight))
.saturating_add(RocksDbWeight::get().reads(5 as Weight))
.saturating_add(RocksDbWeight::get().writes(2 as Weight))
@@ -228,16 +230,16 @@ impl WeightInfo for () {
// Storage: Elections Voting (r:1 w:1)
// Storage: Balances Locks (r:1 w:1)
fn vote_less(v: u32, ) -> Weight {
(37_494_000 as Weight)
// Standard Error: 10_000
.saturating_add((227_000 as Weight).saturating_mul(v as Weight))
(41_313_000 as Weight)
// Standard Error: 8_000
.saturating_add((255_000 as Weight).saturating_mul(v as Weight))
.saturating_add(RocksDbWeight::get().reads(5 as Weight))
.saturating_add(RocksDbWeight::get().writes(2 as Weight))
}
// Storage: Elections Voting (r:1 w:1)
// Storage: Balances Locks (r:1 w:1)
fn remove_voter() -> Weight {
(34_528_000 as Weight)
(39_218_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(2 as Weight))
.saturating_add(RocksDbWeight::get().writes(2 as Weight))
}
@@ -245,17 +247,17 @@ impl WeightInfo for () {
// Storage: Elections Members (r:1 w:0)
// Storage: Elections RunnersUp (r:1 w:0)
fn submit_candidacy(c: u32, ) -> Weight {
(38_330_000 as Weight)
(41_348_000 as Weight)
// Standard Error: 1_000
.saturating_add((88_000 as Weight).saturating_mul(c as Weight))
.saturating_add((112_000 as Weight).saturating_mul(c as Weight))
.saturating_add(RocksDbWeight::get().reads(3 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
// Storage: Elections Candidates (r:1 w:1)
fn renounce_candidacy_candidate(c: u32, ) -> Weight {
(32_770_000 as Weight)
(35_522_000 as Weight)
// Standard Error: 1_000
.saturating_add((81_000 as Weight).saturating_mul(c as Weight))
.saturating_add((92_000 as Weight).saturating_mul(c as Weight))
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
@@ -265,13 +267,13 @@ impl WeightInfo for () {
// Storage: Council Proposals (r:1 w:0)
// Storage: Council Members (r:0 w:1)
fn renounce_candidacy_members() -> Weight {
(43_413_000 as Weight)
(47_887_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(4 as Weight))
.saturating_add(RocksDbWeight::get().writes(4 as Weight))
}
// Storage: Elections RunnersUp (r:1 w:1)
fn renounce_candidacy_runners_up() -> Weight {
(32_206_000 as Weight)
(36_271_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
.saturating_add(RocksDbWeight::get().writes(1 as Weight))
}
@@ -286,13 +288,13 @@ impl WeightInfo for () {
// Storage: Council Proposals (r:1 w:0)
// Storage: Council Members (r:0 w:1)
fn remove_member_with_replacement() -> Weight {
(50_135_000 as Weight)
(55_024_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(5 as Weight))
.saturating_add(RocksDbWeight::get().writes(5 as Weight))
}
// Storage: Elections RunnersUp (r:1 w:0)
fn remove_member_wrong_refund() -> Weight {
(5_063_000 as Weight)
(13_089_000 as Weight)
.saturating_add(RocksDbWeight::get().reads(1 as Weight))
}
// Storage: Elections Voting (r:251 w:250)
@@ -301,10 +303,12 @@ impl WeightInfo for () {
// Storage: Elections Candidates (r:1 w:0)
// Storage: Balances Locks (r:250 w:250)
// Storage: System Account (r:250 w:250)
fn clean_defunct_voters(v: u32, _d: u32, ) -> Weight {
fn clean_defunct_voters(v: u32, d: u32, ) -> Weight {
(0 as Weight)
// Standard Error: 62_000
.saturating_add((52_093_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 40_000
.saturating_add((51_848_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 38_000
.saturating_add((537_000 as Weight).saturating_mul(d as Weight))
.saturating_add(RocksDbWeight::get().reads(4 as Weight))
.saturating_add(RocksDbWeight::get().reads((3 as Weight).saturating_mul(v as Weight)))
.saturating_add(RocksDbWeight::get().writes((3 as Weight).saturating_mul(v as Weight)))
@@ -320,12 +324,12 @@ impl WeightInfo for () {
// Storage: System Account (r:2 w:2)
fn election_phragmen(c: u32, v: u32, e: u32, ) -> Weight {
(0 as Weight)
// Standard Error: 1_658_000
.saturating_add((30_489_000 as Weight).saturating_mul(c as Weight))
// Standard Error: 689_000
.saturating_add((49_624_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 1_664_000
.saturating_add((30_736_000 as Weight).saturating_mul(c as Weight))
// Standard Error: 692_000
.saturating_add((49_739_000 as Weight).saturating_mul(v as Weight))
// Standard Error: 47_000
.saturating_add((3_352_000 as Weight).saturating_mul(e as Weight))
.saturating_add((3_363_000 as Weight).saturating_mul(e as Weight))
.saturating_add(RocksDbWeight::get().reads((2 as Weight).saturating_mul(c as Weight)))
.saturating_add(RocksDbWeight::get().reads((1 as Weight).saturating_mul(v as Weight)))
.saturating_add(RocksDbWeight::get().writes((1 as Weight).saturating_mul(c as Weight)))