mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-09 20:11:09 +00:00
Trie simplification. (#2815)
* switch to simple codec, trie broken for now * Actualy use trie_root_noext * align some hash, failing test on EMCH comment * Fix trie code over layout instead of hash, revert legacy code for legacy mainnet ?? * stub behind LayOut * fix no_std * temp solution for legacy trie behind feature legacy-key in various crate * use remote project * rc client db need prefix * update trie deps * bum spec runtime version * Removing legacy as default. * Switch mode to non legacy. * bump runtime version * Remove legacy trie compatibility features. * fix warning * bump version * change hash on new test. * Move dependency (#11 trie PR) patched to a parity repo. Bench reverted to correct hasher. Some renaming and doc improvments. * ChildBitmap renaming to BitMap. * Renaming of LayOut to Layout. * formatting. * Removing abreviation such as _ix nb_ or bm. * Update deps and apply renaming 'Buff' -> 'Buffer'. * Align to latest trie crates naming changes. * Update trie dependency. * Update trie dependency. * change block_import test hash * update trie deps (trie use new scale codec but it does not seems to be an issue). * update to use latest trie version (no mgmt of multiple radix). * tabify * Restoring test to 10 000. * Use published crate, trie bench is currently down until publishing (require another pr to update version). * Update trie-bench.
This commit is contained in:
@@ -21,7 +21,8 @@ sr-primitives = { path = "../sr-primitives", default-features = false }
|
||||
runtime_version = { package = "sr-version", path = "../sr-version", default-features = false }
|
||||
runtime_support = { package = "srml-support", path = "../../srml/support", default-features = false }
|
||||
substrate-trie = { path = "../trie", default-features = false }
|
||||
trie-db = { version = "0.14.0", default-features = false }
|
||||
trie-db = { version = "0.15.0", default-features = false }
|
||||
memory-db = { version = "0.15.0", default-features = false }
|
||||
offchain-primitives = { package = "substrate-offchain-primitives", path = "../offchain/primitives", default-features = false}
|
||||
executive = { package = "srml-executive", path = "../../srml/executive", default-features = false }
|
||||
cfg-if = "0.1.6"
|
||||
@@ -60,6 +61,7 @@ std = [
|
||||
"primitives/std",
|
||||
"substrate-trie/std",
|
||||
"trie-db/std",
|
||||
"memory-db/std",
|
||||
"offchain-primitives/std",
|
||||
"executive/std",
|
||||
"srml-babe/std",
|
||||
|
||||
@@ -27,7 +27,8 @@ use parity_codec::{Encode, Decode, Input};
|
||||
|
||||
use primitives::Blake2Hasher;
|
||||
use trie_db::{TrieMut, Trie};
|
||||
use substrate_trie::{TrieDB, TrieDBMut, PrefixedMemoryDB};
|
||||
use substrate_trie::PrefixedMemoryDB;
|
||||
use substrate_trie::trie_types::{TrieDB, TrieDBMut};
|
||||
|
||||
use substrate_client::{
|
||||
runtime_api as client_api, block_builder::api as block_builder_api, decl_runtime_apis,
|
||||
@@ -394,20 +395,24 @@ fn code_using_trie() -> u64 {
|
||||
for i in 0..v.len() {
|
||||
let key: &[u8]= &v[i].0;
|
||||
let val: &[u8] = &v[i].1;
|
||||
t.insert(key, val).expect("static input");
|
||||
if !t.insert(key, val).is_ok() {
|
||||
return 101;
|
||||
}
|
||||
}
|
||||
t
|
||||
};
|
||||
|
||||
let trie = TrieDB::<Blake2Hasher>::new(&mdb, &root).expect("on memory with static content");
|
||||
|
||||
let iter = trie.iter().expect("static input");
|
||||
let mut iter_pairs = Vec::new();
|
||||
for pair in iter {
|
||||
let (key, value) = pair.expect("on memory with static content");
|
||||
iter_pairs.push((key, value.to_vec()));
|
||||
}
|
||||
iter_pairs.len() as u64
|
||||
if let Ok(trie) = TrieDB::<Blake2Hasher>::new(&mdb, &root) {
|
||||
if let Ok(iter) = trie.iter() {
|
||||
let mut iter_pairs = Vec::new();
|
||||
for pair in iter {
|
||||
if let Ok((key, value)) = pair {
|
||||
iter_pairs.push((key, value.to_vec()));
|
||||
}
|
||||
}
|
||||
iter_pairs.len() as u64
|
||||
} else { 102 }
|
||||
} else { 103 }
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "std"))]
|
||||
|
||||
Reference in New Issue
Block a user