Update Substrate & Polkadot (#427)

* Update Substrate & Polkadot

* Fixes
This commit is contained in:
Bastian Köcher
2021-05-04 09:48:41 +02:00
committed by GitHub
parent dd5ad841a0
commit 530c95d2df
11 changed files with 427 additions and 402 deletions
+1 -1
View File
@@ -55,7 +55,7 @@ hex-literal = "0.3.1"
hex = "0.4.3"
[build-dependencies]
substrate-wasm-builder = "3.0.0"
substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "master" }
[features]
default = [ "std" ]
@@ -46,7 +46,7 @@ hex = "0.4.3"
hex-literal = "0.3.1"
[build-dependencies]
substrate-wasm-builder = "3.0.0"
substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "master" }
[features]
default = [ "std" ]
+36 -38
View File
@@ -28,9 +28,9 @@ use sc_executor::native_executor_instance;
pub use sc_executor::NativeExecutor;
use sc_service::{Configuration, PartialComponents, Role, TFullBackend, TFullClient, TaskManager};
use sc_telemetry::{Telemetry, TelemetryWorker, TelemetryWorkerHandle};
use sp_api::ConstructRuntimeApi;
use sp_runtime::traits::BlakeTwo256;
use sp_trie::PrefixedMemoryDB;
use sp_api::ConstructRuntimeApi;
use std::sync::Arc;
// Native executor instance.
@@ -63,7 +63,8 @@ pub fn new_partial<RuntimeApi, Executor>(
(Option<Telemetry>, Option<TelemetryWorkerHandle>),
>,
sc_service::Error,
> where
>
where
RuntimeApi: ConstructRuntimeApi<Block, TFullClient<Block, RuntimeApi, Executor>>
+ Send
+ Sync
@@ -79,9 +80,9 @@ pub fn new_partial<RuntimeApi, Executor>(
sc_client_api::StateBackendFor<TFullBackend<Block>, Block>: sp_api::StateBackend<BlakeTwo256>,
Executor: sc_executor::NativeExecutionDispatch + 'static,
{
let inherent_data_providers = sp_inherents::InherentDataProviders::new();
let telemetry = config.telemetry_endpoints.clone()
let telemetry = config
.telemetry_endpoints
.clone()
.filter(|x| !x.is_empty())
.map(|endpoints| -> Result<_, sc_telemetry::Error> {
let worker = TelemetryWorker::new(16)?;
@@ -97,15 +98,12 @@ pub fn new_partial<RuntimeApi, Executor>(
)?;
let client = Arc::new(client);
let telemetry_worker_handle = telemetry
.as_ref()
.map(|(worker, _)| worker.handle());
let telemetry_worker_handle = telemetry.as_ref().map(|(worker, _)| worker.handle());
let telemetry = telemetry
.map(|(worker, telemetry)| {
task_manager.spawn_handle().spawn("telemetry", worker.run());
telemetry
});
let telemetry = telemetry.map(|(worker, telemetry)| {
task_manager.spawn_handle().spawn("telemetry", worker.run());
telemetry
});
let registry = config.prometheus_registry();
@@ -120,7 +118,7 @@ pub fn new_partial<RuntimeApi, Executor>(
let import_queue = cumulus_client_consensus_relay_chain::import_queue(
client.clone(),
client.clone(),
inherent_data_providers.clone(),
|_, _| async { Ok(sp_timestamp::InherentDataProvider::from_system_time()) },
&task_manager.spawn_essential_handle(),
registry.clone(),
)?;
@@ -132,7 +130,6 @@ pub fn new_partial<RuntimeApi, Executor>(
keystore_container,
task_manager,
transaction_pool,
inherent_data_providers,
select_chain: (),
other: (telemetry, telemetry_worker_handle),
};
@@ -180,22 +177,17 @@ where
let parachain_config = prepare_node_config(parachain_config);
let params = new_partial::<RuntimeApi, Executor>(&parachain_config)?;
params
.inherent_data_providers
.register_provider(sp_timestamp::InherentDataProvider)
.unwrap();
let (mut telemetry, telemetry_worker_handle) = params.other;
let polkadot_full_node =
cumulus_client_service::build_polkadot_full_node(
polkadot_config,
collator_key.clone(),
telemetry_worker_handle,
)
.map_err(|e| match e {
polkadot_service::Error::Sub(x) => x,
s => format!("{}", s).into(),
})?;
let polkadot_full_node = cumulus_client_service::build_polkadot_full_node(
polkadot_config,
collator_key.clone(),
telemetry_worker_handle,
)
.map_err(|e| match e {
polkadot_service::Error::Sub(x) => x,
s => format!("{}", s).into(),
})?;
let client = params.client.clone();
let backend = params.backend.clone();
@@ -258,7 +250,9 @@ where
let parachain_consensus = build_relay_chain_consensus(BuildRelayChainConsensusParams {
para_id: id,
proposer_factory,
inherent_data_providers: params.inherent_data_providers,
create_inherent_data_providers: |_, _| async {
Ok(sp_timestamp::InherentDataProvider::from_system_time())
},
block_import: client.clone(),
relay_chain_client: polkadot_full_node.client.clone(),
relay_chain_backend: polkadot_full_node.backend.clone(),
@@ -302,9 +296,10 @@ pub async fn start_node(
polkadot_config: Configuration,
id: ParaId,
validator: bool,
) -> sc_service::error::Result<
(TaskManager, Arc<TFullClient<Block, parachain_runtime::RuntimeApi, RuntimeExecutor>>)
> {
) -> sc_service::error::Result<(
TaskManager,
Arc<TFullClient<Block, parachain_runtime::RuntimeApi, RuntimeExecutor>>,
)> {
start_node_impl::<parachain_runtime::RuntimeApi, RuntimeExecutor, _>(
parachain_config,
collator_key,
@@ -312,7 +307,8 @@ pub async fn start_node(
id,
validator,
|_| Default::default(),
).await
)
.await
}
/// Start a rococo-shell parachain node.
@@ -322,9 +318,10 @@ pub async fn start_shell_node(
polkadot_config: Configuration,
id: ParaId,
validator: bool,
) -> sc_service::error::Result<
(TaskManager, Arc<TFullClient<Block, shell_runtime::RuntimeApi, ShellRuntimeExecutor>>)
> {
) -> sc_service::error::Result<(
TaskManager,
Arc<TFullClient<Block, shell_runtime::RuntimeApi, ShellRuntimeExecutor>>,
)> {
start_node_impl::<shell_runtime::RuntimeApi, ShellRuntimeExecutor, _>(
parachain_config,
collator_key,
@@ -332,5 +329,6 @@ pub async fn start_shell_node(
id,
validator,
|_| Default::default(),
).await
)
.await
}