Function centrifuge_chain::service::evm::start_node_impl
source · pub(crate) async fn start_node_impl<RuntimeApi, Executor, RB, BIQ, BIC>(
parachain_config: Configuration,
polkadot_config: Configuration,
eth_config: EthConfiguration,
collator_options: CollatorOptions,
id: ParaId,
hwbench: Option<HwBench>,
first_evm_block: BlockNumber,
rpc_ext_builder: RB,
build_import_queue: BIQ,
build_consensus: BIC
) -> Result<(TaskManager, Arc<TFullClient<Block, RuntimeApi, NativeElseWasmExecutor<Executor>>>)>where
RuntimeApi: ConstructRuntimeApi<Block, TFullClient<Block, RuntimeApi, NativeElseWasmExecutor<Executor>>> + Send + Sync + 'static,
RuntimeApi::RuntimeApi: TaggedTransactionQueue<Block> + Metadata<Block> + SessionKeys<Block> + ApiExt<Block, StateBackend = StateBackendFor<TFullBackend<Block>, Block>> + OffchainWorkerApi<Block> + BlockBuilder<Block> + CollectCollationInfo<Block> + EthereumRuntimeRPCApi<Block> + ConvertTransactionRuntimeApi<Block>,
StateBackendFor<TFullBackend<Block>, Block>: StateBackend<BlakeTwo256>,
Executor: NativeExecutionDispatch + 'static,
RB: Fn(Arc<TFullClient<Block, RuntimeApi, NativeElseWasmExecutor<Executor>>>, Arc<FullPool<Block, TFullClient<Block, RuntimeApi, NativeElseWasmExecutor<Executor>>>>, DenyUnsafe, SubscriptionTaskExecutor, Arc<NetworkService<Block, Hash>>, Arc<SyncingService<Block>>, Backend<Block>, FilterPool, FeeHistoryCache, Arc<OverrideHandle<Block>>, Arc<EthBlockDataCacheTask<Block>>) -> Result<RpcModule<()>, Error> + 'static,
BIQ: FnOnce(Arc<TFullClient<Block, RuntimeApi, NativeElseWasmExecutor<Executor>>>, ParachainBlockImport<Block, Arc<TFullClient<Block, RuntimeApi, NativeElseWasmExecutor<Executor>>>, TFullBackend<Block>>, &Configuration, Option<TelemetryHandle>, &TaskManager, Backend<Block>, BlockNumber) -> Result<DefaultImportQueue<Block, TFullClient<Block, RuntimeApi, NativeElseWasmExecutor<Executor>>>, Error>,
BIC: FnOnce(Arc<TFullClient<Block, RuntimeApi, NativeElseWasmExecutor<Executor>>>, ParachainBlockImport<Block, Arc<TFullClient<Block, RuntimeApi, NativeElseWasmExecutor<Executor>>>, TFullBackend<Block>>, Option<&Registry>, Option<TelemetryHandle>, &TaskManager, Arc<dyn RelayChainInterface>, Arc<FullPool<Block, TFullClient<Block, RuntimeApi, NativeElseWasmExecutor<Executor>>>>, Arc<SyncingService<Block>>, KeystorePtr, bool) -> Result<Box<dyn ParachainConsensus<Block>>, Error>,
Expand description
Start a node with the given parachain Configuration
and relay chain
Configuration
.
This is the actual implementation that is abstract over the executor and the runtime api.