Update to latest Substrate & Polkadot (#131)

* Switch to latest Substrate & Polkadot

* Update again
This commit is contained in:
Bastian Köcher
2020-07-01 10:38:26 +02:00
committed by GitHub
parent 05a83e8bdb
commit 6a6fec66fb
12 changed files with 779 additions and 479 deletions
+26 -22
View File
@@ -24,7 +24,8 @@ pub use sc_executor::NativeExecutor;
use sc_finality_grandpa::{
FinalityProofProvider as GrandpaFinalityProofProvider, StorageAndProofProvider,
};
use sc_service::{AbstractService, Configuration};
use sc_informant::OutputFormat;
use sc_service::{Configuration, TaskManager};
use std::sync::Arc;
// Our native executor instance.
@@ -71,7 +72,7 @@ macro_rules! new_full_start {
})?;
(builder, inherent_data_providers)
}};
}};
}
/// Run a collator node with the given parachain `Configuration` and relaychain `Configuration`
@@ -80,10 +81,15 @@ macro_rules! new_full_start {
pub fn run_collator(
parachain_config: Configuration,
key: Arc<CollatorPair>,
polkadot_config: polkadot_collator::Configuration,
mut polkadot_config: polkadot_collator::Configuration,
id: polkadot_primitives::parachain::Id,
) -> sc_service::error::Result<impl AbstractService> {
let parachain_config = prepare_collator_config(parachain_config);
) -> sc_service::error::Result<TaskManager> {
let mut parachain_config = prepare_collator_config(parachain_config);
parachain_config.informant_output_format = OutputFormat {
enable_color: true,
prefix: format!("[{}] ", Color::Yellow.bold().paint("Parachain")),
};
let (builder, inherent_data_providers) = new_full_start!(parachain_config);
inherent_data_providers
@@ -93,7 +99,6 @@ pub fn run_collator(
let block_announce_validator = DelayedBlockAnnounceValidator::new();
let block_announce_validator_copy = block_announce_validator.clone();
let service = builder
.with_informant_prefix(format!("[{}] ", Color::Yellow.bold().paint("Parachain")))?
.with_finality_proof_provider(|client, backend| {
// GenesisAuthoritySetProvider is implemented for StorageAndProofProvider
let provider = client as Arc<dyn StorageAndProofProvider<_, _>>;
@@ -102,17 +107,17 @@ pub fn run_collator(
.with_block_announce_validator(|_client| Box::new(block_announce_validator_copy))?
.build_full()?;
let registry = service.prometheus_registry();
let registry = service.prometheus_registry.clone();
let proposer_factory = sc_basic_authorship::ProposerFactory::new(
service.client(),
service.transaction_pool(),
service.client.clone(),
service.transaction_pool.clone(),
registry.as_ref(),
);
let block_import = service.client();
let client = service.client();
let network = service.network();
let block_import = service.client.clone();
let client = service.client.clone();
let network = service.network.clone();
let announce_block = Arc::new(move |hash, data| network.announce_block(hash, data));
let builder = CollatorBuilder::new(
proposer_factory,
@@ -124,15 +129,14 @@ pub fn run_collator(
block_announce_validator,
);
let polkadot_future = polkadot_collator::start_collator(
builder,
id,
key,
polkadot_config,
Some(format!("[{}] ", Color::Blue.bold().paint("Relaychain"))),
)
.map(|_| ());
service.spawn_essential_task("polkadot", polkadot_future);
polkadot_config.informant_output_format = OutputFormat {
enable_color: true,
prefix: format!("[{}] ", Color::Blue.bold().paint("Relaychain")),
};
Ok(service)
let polkadot_future =
polkadot_collator::start_collator(builder, id, key, polkadot_config).map(|_| ());
service.task_manager.spawn_essential_handle().spawn("polkadot", polkadot_future);
Ok(service.task_manager)
}