diff --git a/substrate/core/finality-grandpa/src/lib.rs b/substrate/core/finality-grandpa/src/lib.rs index 474d0ae24b..73368a52d8 100644 --- a/substrate/core/finality-grandpa/src/lib.rs +++ b/substrate/core/finality-grandpa/src/lib.rs @@ -444,7 +444,7 @@ fn global_communication, B, E, N, RA>( /// Register the finality tracker inherent data provider (which is used by /// GRANDPA), if not registered already. -fn register_finality_tracker_inherent_data_provider, RA>( +pub fn register_finality_tracker_inherent_data_provider, RA>( client: Arc>, inherent_data_providers: &InherentDataProviders, ) -> Result<(), consensus_common::Error> where diff --git a/substrate/node/cli/src/service.rs b/substrate/node/cli/src/service.rs index e69e0ce233..554d3a16b6 100644 --- a/substrate/node/cli/src/service.rs +++ b/substrate/node/cli/src/service.rs @@ -170,6 +170,14 @@ construct_service_factory! { } } + // regardless of whether grandpa is started or not, when + // authoring blocks we expect inherent data regarding what our + // last finalized block is, to be available. + grandpa::register_finality_tracker_inherent_data_provider( + service.client(), + &service.config().custom.inherent_data_providers, + )?; + Ok(service) } },