fn start_consensus(
client: Arc<TFullClient<Block, RuntimeApi, WasmExecutor<ParachainHostFunctions>>>,
backend: Arc<TFullBackend<Block>>,
block_import: ParachainBlockImport<Block, Arc<TFullClient<Block, RuntimeApi, WasmExecutor<ParachainHostFunctions>>>, TFullBackend<Block>>,
prometheus_registry: Option<&Registry>,
telemetry: Option<TelemetryHandle>,
task_manager: &TaskManager,
relay_chain_interface: Arc<dyn RelayChainInterface>,
transaction_pool: Arc<TransactionPoolHandle<Block, TFullClient<Block, RuntimeApi, WasmExecutor<ParachainHostFunctions>>>>,
keystore: KeystorePtr,
relay_chain_slot_duration: Duration,
para_id: ParaId,
collator_key: CollatorPair,
overseer_handle: OverseerHandle,
announce_block: Arc<dyn Fn(Hash, Option<Vec<u8>>) + Send + Sync>,
) -> Result<(), Error>