Crates.io | ismp-parachain-inherent |
lib.rs | ismp-parachain-inherent |
version | 1.15.1 |
source | src |
created_at | 2024-05-02 14:21:23.712482 |
updated_at | 2024-10-15 11:50:33.764331 |
description | ISMP parachain consensus client inherent provider |
homepage | https://docs.hyperbridge.network/developers/polkadot/integration |
repository | https://github.com/polytope-labs/hyperbridge |
max_upload_size | |
id | 1227785 |
size | 10,307 |
This exports the inherent provider which includes ISMP parachain consensus updates as block inherents.
To use this, you'll need to include the inherent into your collator parameters like so:
fn start_consensus(
client: Arc<FullClient>,
backend: Arc<FullBackend>,
block_import: ParachainBlockImport,
prometheus_registry: Option<&Registry>,
telemetry: Option<TelemetryHandle>,
task_manager: &TaskManager,
relay_chain_interface: Arc<dyn RelayChainInterface>,
transaction_pool: Arc<sc_transaction_pool::FullPool<opaque::Block, FullClient>>,
sync_oracle: Arc<SyncingService<opaque::Block>>,
keystore: KeystorePtr,
relay_chain_slot_duration: Duration,
para_id: ParaId,
collator_key: CollatorPair,
overseer_handle: OverseerHandle,
announce_block: Arc<dyn Fn(opaque::Hash, Option<Vec<u8>>) + Send + Sync>,
) {
// .. omitted calls
let (client_clone, relay_chain_interface_clone) =
(client.clone(), relay_chain_interface.clone());
let params = lookahead::Params {
create_inherent_data_providers: move |parent, ()| {
let client = client_clone.clone();
let relay_chain_interface = relay_chain_interface_clone.clone();
async move {
let inherent = ismp_parachain_inherent::ConsensusInherentProvider::create(
parent,
client,
relay_chain_interface,
).await?;
Ok(inherent)
}
},
..Default::default()
// omitted fields
};
// ..omitted calls
}
This library is licensed under the Apache 2.0 License, Copyright (c) 2024 Polytope Labs.