pub fn start_aura<P, B, C, SC, I, PF, SO, L, CIDP, BS, Error>(
    _: StartAuraParams<C, SC, I, PF, SO, L, CIDP, BS, NumberFor<B>>
) -> Result<impl Future<Output = ()>, ConsensusError>where
    P: Pair,
    P::Public: AppPublic + Member,
    P::Signature: TryFrom<Vec<u8>> + Member + Codec,
    B: BlockT,
    C: ProvideRuntimeApi<B> + BlockOf + AuxStore + HeaderBackend<B> + Send + Sync,
    C::Api: AuraApi<B, <P as Pair>::Public>,
    SC: SelectChain<B>,
    I: BlockImport<B> + Send + Sync + 'static,
    PF: Environment<B, Error = Error> + Send + Sync + 'static,
    PF::Proposer: Proposer<B, Error = Error>,
    SO: SyncOracle + Send + Sync + Clone,
    L: JustificationSyncLink<B>,
    CIDP: CreateInherentDataProviders<B, ()> + Send + 'static,
    CIDP::InherentDataProviders: InherentDataProviderExt + Send,
    BS: BackoffAuthoringBlocksStrategy<NumberFor<B>> + Send + Sync + 'static,
    Error: Error + Send + From<ConsensusError> + 'static,
Expand description

Start the aura worker. The returned future should be run in a futures executor.