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:
cheme
2019-08-02 19:51:59 +02:00
committed by Gavin Wood
parent 7927e80bc6
commit da8b91ae7b
43 changed files with 892 additions and 590 deletions
+3 -1
View File
@@ -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",
+16 -11
View File
@@ -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"))]