srml: system: prune block hash mapping (#3062)

* srml: system: prune block number to hash mapping

* srml: system: add test for block hash mapping pruning

* node: bump runtime version

* srml: system: wrap long line

* srml: system: use parameter type for block hash count

* srml: system: prune block hash mapping before storage root calculation

* srml: system: keep the genesis hash in block number map
This commit is contained in:
André Silva
2019-07-09 16:07:38 +01:00
committed by Gavin Wood
parent 459eb94c38
commit ed630e5eda
21 changed files with 149 additions and 15 deletions
+5 -1
View File
@@ -22,7 +22,7 @@ use std::collections::HashSet;
use ref_thread_local::{ref_thread_local, RefThreadLocal};
use primitives::testing::Header;
use substrate_primitives::{H256, Blake2Hasher};
use srml_support::impl_outer_origin;
use srml_support::{impl_outer_origin, parameter_types};
use {runtime_io, system};
use crate::{GenesisConfig, Module, Trait, IsDeadAccount, OnNewAccount, ResolveHint};
@@ -64,6 +64,9 @@ impl ResolveHint<u64, u64> for TestResolveHint {
// Workaround for https://github.com/rust-lang/rust/issues/26925 . Remove when sorted.
#[derive(Clone, PartialEq, Eq, Debug)]
pub struct Runtime;
parameter_types! {
pub const BlockHashCount: u64 = 250;
}
impl system::Trait for Runtime {
type Origin = Origin;
type Index = u64;
@@ -74,6 +77,7 @@ impl system::Trait for Runtime {
type Lookup = Indices;
type Header = Header;
type Event = ();
type BlockHashCount = BlockHashCount;
}
impl Trait for Runtime {
type AccountIndex = u64;