From 399e73fd1e4d978f2e3633bfcff922b134951b32 Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Thu, 18 Jun 2020 14:19:16 +0200 Subject: [PATCH 1/4] hardcoded whitelist --- Cargo.lock | 1 + client/db/Cargo.toml | 1 + client/db/src/bench.rs | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 2c1d3e2c4b1e3..2fbbbc2f7048e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6000,6 +6000,7 @@ dependencies = [ "blake2-rfc", "env_logger 0.7.1", "hash-db", + "hex-literal", "kvdb", "kvdb-memorydb", "kvdb-rocksdb", diff --git a/client/db/Cargo.toml b/client/db/Cargo.toml index d9fcdf7f6a2cf..1290d0acc4e8d 100644 --- a/client/db/Cargo.toml +++ b/client/db/Cargo.toml @@ -22,6 +22,7 @@ hash-db = "0.15.2" parity-util-mem = { version = "0.6.1", default-features = false, features = ["std"] } codec = { package = "parity-scale-codec", version = "1.3.0", features = ["derive"] } blake2-rfc = "0.2.18" +hex-literal = "0.2.1" sc-client-api = { version = "2.0.0-rc3", path = "../api" } sp-core = { version = "2.0.0-rc3", path = "../../primitives/core" } diff --git a/client/db/src/bench.rs b/client/db/src/bench.rs index 1d6a421dcbb74..f0e3a2d31bd13 100644 --- a/client/db/src/bench.rs +++ b/client/db/src/bench.rs @@ -116,6 +116,8 @@ impl BenchmarkingState { read_write_tracker: Default::default(), }; + state.add_whitelist_to_tracker(); + state.reopen()?; let child_delta = genesis.children_default.iter().map(|(_storage_key, child_content)| ( &child_content.child_info, @@ -148,8 +150,39 @@ impl BenchmarkingState { Ok(()) } + fn add_whitelist_to_tracker(&self) { + let whitelist: Vec> = vec![ + // Block Number + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec(), + // Total Issuance + hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec(), + // Execution Phase + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec(), + // Event Count + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec(), + // System Events + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec(), + // Caller 0 Account + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da946c154ffd9992e395af90b5b13cc6f295c77033fce8a9045824a6690bbf99c6db269502f0a8d1d2a008542d5690a0749").to_vec(), + // Treasury Account + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da95ecffd7b6c0f78751baa9d281e0bfa3a6d6f646c70792f74727372790000000000000000000000000000000000000000").to_vec(), + ]; + + let mut key_tracker = self.key_tracker.borrow_mut(); + + let whitelisted = KeyTracker { + has_been_read: true, + has_been_written: true, + }; + + whitelist.iter().for_each(|key| { + key_tracker.insert(key.to_vec(), whitelisted); + }); + } + fn wipe_tracker(&self) { *self.key_tracker.borrow_mut() = HashMap::new(); + self.add_whitelist_to_tracker(); *self.read_write_tracker.borrow_mut() = Default::default(); } From f17689038e4e31c26ef3b2e1b90362de23fff75d Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Thu, 18 Jun 2020 23:54:33 +0200 Subject: [PATCH 2/4] Add whitelist to pipeline --- bin/node/runtime/src/lib.rs | 24 +++++++++++++++- client/db/src/bench.rs | 31 +++++++++------------ frame/benchmarking/src/lib.rs | 12 +++++++- frame/benchmarking/src/utils.rs | 6 ++++ primitives/externalities/src/lib.rs | 7 +++++ primitives/state-machine/src/backend.rs | 5 ++++ primitives/state-machine/src/basic.rs | 4 +++ primitives/state-machine/src/ext.rs | 4 +++ primitives/state-machine/src/read_only.rs | 4 +++ utils/frame/benchmarking-cli/src/command.rs | 3 +- utils/frame/benchmarking-cli/src/lib.rs | 4 +++ 11 files changed, 83 insertions(+), 21 deletions(-) diff --git a/bin/node/runtime/src/lib.rs b/bin/node/runtime/src/lib.rs index cf3d2622988a0..a0b6ebca84801 100644 --- a/bin/node/runtime/src/lib.rs +++ b/bin/node/runtime/src/lib.rs @@ -1061,8 +1061,10 @@ impl_runtime_apis! { highest_range_values: Vec, steps: Vec, repeat: u32, + whitelist: Vec>, ) -> Result, sp_runtime::RuntimeString> { use frame_benchmarking::{Benchmarking, BenchmarkBatch, add_benchmark}; + use frame_support::StorageValue; // Trying to add benchmarks directly to the Session Pallet caused cyclic dependency issues. // To get around that, we separated the Session benchmarks into its own crate, which is why // we need these two lines below. @@ -1074,8 +1076,28 @@ impl_runtime_apis! { impl pallet_offences_benchmarking::Trait for Runtime {} impl frame_system_benchmarking::Trait for Runtime {} + let mut final_whitelist: Vec> = vec![ + // Block Number + //frame_system::Number::::hashed_key().to_vec(), + // hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec(), + // // Total Issuance + // hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec(), + // // Execution Phase + // hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec(), + // // Event Count + // hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec(), + // // System Events + // hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec(), + // // Caller 0 Account + // hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da946c154ffd9992e395af90b5b13cc6f295c77033fce8a9045824a6690bbf99c6db269502f0a8d1d2a008542d5690a0749").to_vec(), + // // Treasury Account + // hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da95ecffd7b6c0f78751baa9d281e0bfa3a6d6f646c70792f74727372790000000000000000000000000000000000000000").to_vec(), + ]; + + final_whitelist.extend(whitelist); + let mut batches = Vec::::new(); - let params = (&pallet, &benchmark, &lowest_range_values, &highest_range_values, &steps, repeat); + let params = (&pallet, &benchmark, &lowest_range_values, &highest_range_values, &steps, repeat, &final_whitelist); add_benchmark!(params, batches, b"balances", Balances); add_benchmark!(params, batches, b"collective", Council); diff --git a/client/db/src/bench.rs b/client/db/src/bench.rs index 6fbfef0bf278d..013cad5ba232c 100644 --- a/client/db/src/bench.rs +++ b/client/db/src/bench.rs @@ -95,11 +95,16 @@ pub struct BenchmarkingState { shared_cache: SharedCache, // shared cache is always empty key_tracker: RefCell, KeyTracker>>, read_write_tracker: RefCell, + whitelist: RefCell>>, } impl BenchmarkingState { /// Create a new instance that creates a database in a temporary dir. - pub fn new(genesis: Storage, _cache_size_mb: Option) -> Result { + pub fn new( + genesis: Storage, + _cache_size_mb: Option, + whitelist: Vec>, + ) -> Result { let mut root = B::Hash::default(); let mut mdb = MemoryDB::>::default(); sp_state_machine::TrieDBMut::>::new(&mut mdb, &mut root); @@ -114,6 +119,7 @@ impl BenchmarkingState { shared_cache: new_shared_cache(0, (1, 10)), key_tracker: Default::default(), read_write_tracker: Default::default(), + whitelist: RefCell::new(whitelist), }; state.add_whitelist_to_tracker(); @@ -151,23 +157,6 @@ impl BenchmarkingState { } fn add_whitelist_to_tracker(&self) { - let whitelist: Vec> = vec![ - // Block Number - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec(), - // Total Issuance - hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec(), - // Execution Phase - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec(), - // Event Count - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec(), - // System Events - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec(), - // Caller 0 Account - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da946c154ffd9992e395af90b5b13cc6f295c77033fce8a9045824a6690bbf99c6db269502f0a8d1d2a008542d5690a0749").to_vec(), - // Treasury Account - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da95ecffd7b6c0f78751baa9d281e0bfa3a6d6f646c70792f74727372790000000000000000000000000000000000000000").to_vec(), - ]; - let mut key_tracker = self.key_tracker.borrow_mut(); let whitelisted = KeyTracker { @@ -175,6 +164,8 @@ impl BenchmarkingState { has_been_written: true, }; + let whitelist = self.whitelist.borrow_mut(); + whitelist.iter().for_each(|key| { key_tracker.insert(key.to_vec(), whitelisted); }); @@ -439,6 +430,10 @@ impl StateBackend> for BenchmarkingState { self.wipe_tracker() } + fn set_whitelist(&self, new: Vec>) { + *self.whitelist.borrow_mut() = new; + } + fn register_overlay_stats(&mut self, stats: &sp_state_machine::StateMachineStats) { self.state.borrow_mut().as_mut().map(|s| s.register_overlay_stats(stats)); } diff --git a/frame/benchmarking/src/lib.rs b/frame/benchmarking/src/lib.rs index c0cdb5ae1fe83..d8fa1c98185c4 100644 --- a/frame/benchmarking/src/lib.rs +++ b/frame/benchmarking/src/lib.rs @@ -708,6 +708,7 @@ macro_rules! impl_benchmark { highest_range_values: &[u32], steps: &[u32], repeat: u32, + whitelist: &[Vec] ) -> Result, &'static str> { // Map the input to the selected benchmark. let extrinsic = sp_std::str::from_utf8(extrinsic) @@ -717,6 +718,9 @@ macro_rules! impl_benchmark { _ => return Err("Could not find extrinsic."), }; + // Add whitelist to DB + $crate::benchmarking::set_whitelist(whitelist.to_vec()); + // Warm up the DB $crate::benchmarking::commit_db(); $crate::benchmarking::wipe_db(); @@ -831,6 +835,7 @@ macro_rules! impl_benchmark { highest_range_values: &[u32], steps: &[u32], repeat: u32, + whitelist: &[Vec] ) -> Result, &'static str> { // Map the input to the selected benchmark. let extrinsic = sp_std::str::from_utf8(extrinsic) @@ -840,6 +845,9 @@ macro_rules! impl_benchmark { _ => return Err("Could not find extrinsic."), }; + // Add whitelist to DB + $crate::benchmarking::set_whitelist(whitelist.to_vec()); + // Warm up the DB $crate::benchmarking::commit_db(); $crate::benchmarking::wipe_db(); @@ -1074,7 +1082,7 @@ macro_rules! impl_benchmark_tests { #[macro_export] macro_rules! add_benchmark { ( $params:ident, $batches:ident, $name:literal, $( $location:tt )* ) => ( - let (pallet, benchmark, lowest_range_values, highest_range_values, steps, repeat) = $params; + let (pallet, benchmark, lowest_range_values, highest_range_values, steps, repeat, whitelist) = $params; if &pallet[..] == &$name[..] || &pallet[..] == &b"*"[..] { if &pallet[..] == &b"*"[..] || &benchmark[..] == &b"*"[..] { for benchmark in $( $location )*::benchmarks().into_iter() { @@ -1085,6 +1093,7 @@ macro_rules! add_benchmark { &highest_range_values[..], &steps[..], repeat, + whitelist, )?, pallet: $name.to_vec(), benchmark: benchmark.to_vec(), @@ -1098,6 +1107,7 @@ macro_rules! add_benchmark { &highest_range_values[..], &steps[..], repeat, + whitelist, )?, pallet: $name.to_vec(), benchmark: benchmark.clone(), diff --git a/frame/benchmarking/src/utils.rs b/frame/benchmarking/src/utils.rs index 0f896506adb11..66e27de9a8d8f 100644 --- a/frame/benchmarking/src/utils.rs +++ b/frame/benchmarking/src/utils.rs @@ -66,6 +66,7 @@ sp_api::decl_runtime_apis! { highest_range_values: Vec, steps: Vec, repeat: u32, + whitelist: Vec>, ) -> Result, RuntimeString>; } } @@ -102,6 +103,10 @@ pub trait Benchmarking { fn reset_read_write_count(&mut self) { self.reset_read_write_count() } + + fn set_whitelist(&mut self, new: Vec>) { + self.set_whitelist(new) + } } /// The pallet benchmarking trait. @@ -125,6 +130,7 @@ pub trait Benchmarking { highest_range_values: &[u32], steps: &[u32], repeat: u32, + whitelist: &[Vec] ) -> Result, &'static str>; } diff --git a/primitives/externalities/src/lib.rs b/primitives/externalities/src/lib.rs index 9365b37d32e2c..d4ded98004336 100644 --- a/primitives/externalities/src/lib.rs +++ b/primitives/externalities/src/lib.rs @@ -224,6 +224,13 @@ pub trait Externalities: ExtensionStore { /// /// Resets read/write count for the benchmarking process. fn reset_read_write_count(&mut self); + + /// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + /// Benchmarking related functionality and shouldn't be used anywhere else! + /// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + /// + /// Adds new storage keys to the DB tracking whitelist. + fn set_whitelist(&mut self, new: Vec>); } /// Extension for the [`Externalities`] trait. diff --git a/primitives/state-machine/src/backend.rs b/primitives/state-machine/src/backend.rs index 4a7bdc02d0aea..9ec03c4d1e249 100644 --- a/primitives/state-machine/src/backend.rs +++ b/primitives/state-machine/src/backend.rs @@ -225,6 +225,11 @@ pub trait Backend: std::fmt::Debug { fn reset_read_write_count(&self) { unimplemented!() } + + /// Update the whitelist for tracking db reads/writes + fn set_whitelist(&self, _: Vec>) { + unimplemented!() + } } impl<'a, T: Backend, H: Hasher> Backend for &'a T { diff --git a/primitives/state-machine/src/basic.rs b/primitives/state-machine/src/basic.rs index 826da75a28d35..9db9b206915ea 100644 --- a/primitives/state-machine/src/basic.rs +++ b/primitives/state-machine/src/basic.rs @@ -318,6 +318,10 @@ impl Externalities for BasicExternalities { fn reset_read_write_count(&mut self) { unimplemented!("reset_read_write_count is not supported in Basic") } + + fn set_whitelist(&mut self, _: Vec>) { + unimplemented!("set_whitelist is not supported in Basic") + } } impl sp_externalities::ExtensionStore for BasicExternalities { diff --git a/primitives/state-machine/src/ext.rs b/primitives/state-machine/src/ext.rs index b8f09658fc3cb..345524c1ad6e9 100644 --- a/primitives/state-machine/src/ext.rs +++ b/primitives/state-machine/src/ext.rs @@ -582,6 +582,10 @@ where fn reset_read_write_count(&mut self) { self.backend.reset_read_write_count() } + + fn set_whitelist(&mut self, new: Vec>) { + self.backend.set_whitelist(new) + } } diff --git a/primitives/state-machine/src/read_only.rs b/primitives/state-machine/src/read_only.rs index b660807701b29..3c9b4d2569729 100644 --- a/primitives/state-machine/src/read_only.rs +++ b/primitives/state-machine/src/read_only.rs @@ -181,6 +181,10 @@ impl<'a, H: Hasher, B: 'a + Backend> Externalities for ReadOnlyExternalities< fn reset_read_write_count(&mut self) { unimplemented!("reset_read_write_count is not supported in ReadOnlyExternalities") } + + fn set_whitelist(&mut self, _: Vec>) { + unimplemented!("set_whitelist is not supported in ReadOnlyExternalities") + } } impl<'a, H: Hasher, B: 'a + Backend> sp_externalities::ExtensionStore for ReadOnlyExternalities<'a, H, B> { diff --git a/utils/frame/benchmarking-cli/src/command.rs b/utils/frame/benchmarking-cli/src/command.rs index c5719bcf6ae86..68199738793d7 100644 --- a/utils/frame/benchmarking-cli/src/command.rs +++ b/utils/frame/benchmarking-cli/src/command.rs @@ -52,7 +52,7 @@ impl BenchmarkCmd { let mut changes = Default::default(); let mut offchain_changes = Default::default(); let cache_size = Some(self.database_cache_size as usize); - let state = BenchmarkingState::::new(genesis_storage, cache_size)?; + let state = BenchmarkingState::::new(genesis_storage, cache_size, Vec::new())?; let executor = NativeExecutor::::new( wasm_method, None, // heap pages @@ -78,6 +78,7 @@ impl BenchmarkCmd { self.highest_range_values.clone(), self.steps.clone(), self.repeat, + &self.whitelist, ).encode(), extensions, &sp_state_machine::backend::BackendRuntimeCode::new(&state).runtime_code()?, diff --git a/utils/frame/benchmarking-cli/src/lib.rs b/utils/frame/benchmarking-cli/src/lib.rs index 149b971577fab..4475aab5aac2a 100644 --- a/utils/frame/benchmarking-cli/src/lib.rs +++ b/utils/frame/benchmarking-cli/src/lib.rs @@ -47,6 +47,10 @@ pub struct BenchmarkCmd { #[structopt(short, long, default_value = "1")] pub repeat: u32, + /// Select how many repetitions of this benchmark should run. + #[structopt(long, use_delimiter = true)] + pub whitelist: Vec, + /// Print the raw results. #[structopt(long = "raw")] pub raw_data: bool, From e58e019c9624e0f774fa8b5452b2921b602efdb2 Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Fri, 19 Jun 2020 00:06:12 +0200 Subject: [PATCH 3/4] Remove whitelist pipeline from CLI, add to runtime --- Cargo.lock | 2 +- bin/node/runtime/Cargo.toml | 1 + bin/node/runtime/src/lib.rs | 36 +++++++++------------ client/db/Cargo.toml | 1 - frame/benchmarking/src/utils.rs | 1 - utils/frame/benchmarking-cli/src/command.rs | 1 - utils/frame/benchmarking-cli/src/lib.rs | 4 --- 7 files changed, 18 insertions(+), 28 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2fbbbc2f7048e..c8df9639ebb47 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3509,6 +3509,7 @@ dependencies = [ "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", + "hex-literal", "integer-sqrt", "node-primitives", "pallet-authority-discovery", @@ -6000,7 +6001,6 @@ dependencies = [ "blake2-rfc", "env_logger 0.7.1", "hash-db", - "hex-literal", "kvdb", "kvdb-memorydb", "kvdb-rocksdb", diff --git a/bin/node/runtime/Cargo.toml b/bin/node/runtime/Cargo.toml index 7cc4018fb6c4c..c0b640ab27c99 100644 --- a/bin/node/runtime/Cargo.toml +++ b/bin/node/runtime/Cargo.toml @@ -18,6 +18,7 @@ codec = { package = "parity-scale-codec", version = "1.3.0", default-features = integer-sqrt = { version = "0.1.2" } serde = { version = "1.0.102", optional = true } static_assertions = "1.1.0" +hex-literal = "0.2.1" # primitives sp-authority-discovery = { version = "2.0.0-rc3", default-features = false, path = "../../../primitives/authority-discovery" } diff --git a/bin/node/runtime/src/lib.rs b/bin/node/runtime/src/lib.rs index a0b6ebca84801..d668eb62c638c 100644 --- a/bin/node/runtime/src/lib.rs +++ b/bin/node/runtime/src/lib.rs @@ -1061,10 +1061,8 @@ impl_runtime_apis! { highest_range_values: Vec, steps: Vec, repeat: u32, - whitelist: Vec>, ) -> Result, sp_runtime::RuntimeString> { use frame_benchmarking::{Benchmarking, BenchmarkBatch, add_benchmark}; - use frame_support::StorageValue; // Trying to add benchmarks directly to the Session Pallet caused cyclic dependency issues. // To get around that, we separated the Session benchmarks into its own crate, which is why // we need these two lines below. @@ -1076,28 +1074,26 @@ impl_runtime_apis! { impl pallet_offences_benchmarking::Trait for Runtime {} impl frame_system_benchmarking::Trait for Runtime {} - let mut final_whitelist: Vec> = vec![ + let whitelist: Vec> = vec![ // Block Number - //frame_system::Number::::hashed_key().to_vec(), - // hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec(), - // // Total Issuance - // hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec(), - // // Execution Phase - // hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec(), - // // Event Count - // hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec(), - // // System Events - // hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec(), - // // Caller 0 Account - // hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da946c154ffd9992e395af90b5b13cc6f295c77033fce8a9045824a6690bbf99c6db269502f0a8d1d2a008542d5690a0749").to_vec(), - // // Treasury Account - // hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da95ecffd7b6c0f78751baa9d281e0bfa3a6d6f646c70792f74727372790000000000000000000000000000000000000000").to_vec(), + // frame_system::Number::::hashed_key().to_vec(), + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec(), + // Total Issuance + hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec(), + // Execution Phase + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec(), + // Event Count + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec(), + // System Events + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec(), + // Caller 0 Account + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da946c154ffd9992e395af90b5b13cc6f295c77033fce8a9045824a6690bbf99c6db269502f0a8d1d2a008542d5690a0749").to_vec(), + // Treasury Account + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da95ecffd7b6c0f78751baa9d281e0bfa3a6d6f646c70792f74727372790000000000000000000000000000000000000000").to_vec(), ]; - final_whitelist.extend(whitelist); - let mut batches = Vec::::new(); - let params = (&pallet, &benchmark, &lowest_range_values, &highest_range_values, &steps, repeat, &final_whitelist); + let params = (&pallet, &benchmark, &lowest_range_values, &highest_range_values, &steps, repeat, &whitelist); add_benchmark!(params, batches, b"balances", Balances); add_benchmark!(params, batches, b"collective", Council); diff --git a/client/db/Cargo.toml b/client/db/Cargo.toml index 1290d0acc4e8d..d9fcdf7f6a2cf 100644 --- a/client/db/Cargo.toml +++ b/client/db/Cargo.toml @@ -22,7 +22,6 @@ hash-db = "0.15.2" parity-util-mem = { version = "0.6.1", default-features = false, features = ["std"] } codec = { package = "parity-scale-codec", version = "1.3.0", features = ["derive"] } blake2-rfc = "0.2.18" -hex-literal = "0.2.1" sc-client-api = { version = "2.0.0-rc3", path = "../api" } sp-core = { version = "2.0.0-rc3", path = "../../primitives/core" } diff --git a/frame/benchmarking/src/utils.rs b/frame/benchmarking/src/utils.rs index 66e27de9a8d8f..7f9d9121100e3 100644 --- a/frame/benchmarking/src/utils.rs +++ b/frame/benchmarking/src/utils.rs @@ -66,7 +66,6 @@ sp_api::decl_runtime_apis! { highest_range_values: Vec, steps: Vec, repeat: u32, - whitelist: Vec>, ) -> Result, RuntimeString>; } } diff --git a/utils/frame/benchmarking-cli/src/command.rs b/utils/frame/benchmarking-cli/src/command.rs index 68199738793d7..9390e7a912909 100644 --- a/utils/frame/benchmarking-cli/src/command.rs +++ b/utils/frame/benchmarking-cli/src/command.rs @@ -78,7 +78,6 @@ impl BenchmarkCmd { self.highest_range_values.clone(), self.steps.clone(), self.repeat, - &self.whitelist, ).encode(), extensions, &sp_state_machine::backend::BackendRuntimeCode::new(&state).runtime_code()?, diff --git a/utils/frame/benchmarking-cli/src/lib.rs b/utils/frame/benchmarking-cli/src/lib.rs index 4475aab5aac2a..149b971577fab 100644 --- a/utils/frame/benchmarking-cli/src/lib.rs +++ b/utils/frame/benchmarking-cli/src/lib.rs @@ -47,10 +47,6 @@ pub struct BenchmarkCmd { #[structopt(short, long, default_value = "1")] pub repeat: u32, - /// Select how many repetitions of this benchmark should run. - #[structopt(long, use_delimiter = true)] - pub whitelist: Vec, - /// Print the raw results. #[structopt(long = "raw")] pub raw_data: bool, From f5804b84bbbe962f3ce46c4da1e7f20bef2a6f55 Mon Sep 17 00:00:00 2001 From: Shawn Tabrizi Date: Fri, 19 Jun 2020 00:11:08 +0200 Subject: [PATCH 4/4] clean-up unused db initialized whitelist --- client/db/src/bench.rs | 8 ++------ utils/frame/benchmarking-cli/src/command.rs | 2 +- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/client/db/src/bench.rs b/client/db/src/bench.rs index 013cad5ba232c..384c2813cafa6 100644 --- a/client/db/src/bench.rs +++ b/client/db/src/bench.rs @@ -100,11 +100,7 @@ pub struct BenchmarkingState { impl BenchmarkingState { /// Create a new instance that creates a database in a temporary dir. - pub fn new( - genesis: Storage, - _cache_size_mb: Option, - whitelist: Vec>, - ) -> Result { + pub fn new(genesis: Storage, _cache_size_mb: Option) -> Result { let mut root = B::Hash::default(); let mut mdb = MemoryDB::>::default(); sp_state_machine::TrieDBMut::>::new(&mut mdb, &mut root); @@ -119,7 +115,7 @@ impl BenchmarkingState { shared_cache: new_shared_cache(0, (1, 10)), key_tracker: Default::default(), read_write_tracker: Default::default(), - whitelist: RefCell::new(whitelist), + whitelist: Default::default(), }; state.add_whitelist_to_tracker(); diff --git a/utils/frame/benchmarking-cli/src/command.rs b/utils/frame/benchmarking-cli/src/command.rs index 9390e7a912909..c5719bcf6ae86 100644 --- a/utils/frame/benchmarking-cli/src/command.rs +++ b/utils/frame/benchmarking-cli/src/command.rs @@ -52,7 +52,7 @@ impl BenchmarkCmd { let mut changes = Default::default(); let mut offchain_changes = Default::default(); let cache_size = Some(self.database_cache_size as usize); - let state = BenchmarkingState::::new(genesis_storage, cache_size, Vec::new())?; + let state = BenchmarkingState::::new(genesis_storage, cache_size)?; let executor = NativeExecutor::::new( wasm_method, None, // heap pages