diff --git a/runtime/src/curated_grandpa.rs b/runtime/src/curated_grandpa.rs index 51f51796e12b..8db18d0ef347 100644 --- a/runtime/src/curated_grandpa.rs +++ b/runtime/src/curated_grandpa.rs @@ -75,7 +75,10 @@ decl_module! { voters.swap(remaining - 1, voter_index); } + // finalisation order is undefined, so grandpa's on_finalise might + // have already been called. calling it again is OK though. let _ = grandpa::Module::::schedule_change(voters, T::BlockNumber::zero(), None); + grandpa::Module::::on_finalise(block_number); } } } diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 2b4b2f098e65..a8c802e79bcd 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -107,7 +107,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("polkadot"), impl_name: create_runtime_str!("parity-polkadot"), authoring_version: 1, - spec_version: 105, + spec_version: 106, impl_version: 0, apis: RUNTIME_API_VERSIONS, }; diff --git a/service/src/lib.rs b/service/src/lib.rs index f71bcf5ef18f..bed1e8366ee0 100644 --- a/service/src/lib.rs +++ b/service/src/lib.rs @@ -172,7 +172,7 @@ construct_service_factory! { { let voter = grandpa::run_grandpa( grandpa::Config { - gossip_duration: Duration::new(4, 0), // FIXME: make this available through chainspec? + gossip_duration: Duration::from_millis(500), local_key: key.clone(), justification_period: 4096, name: Some(service.config.name.clone()),