pub fn start_aura<B, C, E, I, P, SO, Error, OnExit>(
	slot_duration: SlotDuration,
	local_key: Arc<P>,
	client: Arc<C>,
	block_import: Arc<I>,
	env: Arc<E>,
	sync_oracle: SO,
	on_exit: OnExit,
	inherent_data_providers: InherentDataProviders,
	force_authoring: bool,
) -> Result<impl Future<Item=(), Error=()>, consensus_common::Error> where
	B: Block,
	C: ChainHead<B> + ProvideRuntimeApi + ProvideCache<B>,
	C::Api: AuthoritiesApi<B>,
	E: Environment<B, Error=Error>,
	E::Proposer: Proposer<B, Error=Error>,
	<<E::Proposer as Proposer<B>>::Create as IntoFuture>::Future: Send + 'static,
	I: BlockImport<B> + Send + Sync + 'static,
	P: Pair + Send + Sync + 'static,
	P::Public: Hash + Eq + Send + Sync + Clone + Debug + Encode + Decode + 'static,
	P::Signature: Encode,
	SO: SyncOracle + Send + Sync + Clone,
	DigestItemFor<B>: CompatibleDigestItem<P> + DigestItem<AuthorityId=AuthorityId<P>>,
	Error: ::std::error::Error + Send + From<::consensus_common::Error> + From<I::Error> + 'static,
	OnExit: Future<Item=(), Error=()>,
{
	let worker = AuraWorker {
		client: client.clone(),
		block_import,
		env,
		local_key,
		inherent_data_providers: inherent_data_providers.clone(),
		sync_oracle: sync_oracle.clone(),
		force_authoring,
	};
	aura_slots::start_slot_worker::<_, _, _, _, AuraSlotCompatible, _>(
		slot_duration,
		client,
		Arc::new(worker),
		sync_oracle,
		on_exit,
		inherent_data_providers
	)
}
/// Start the aura worker. The returned future should be run in a tokio runtime.
Start the aura worker. The returned future should be run in a tokio runtime.
Start the aura worker . The returned future should be run in a tokio runtime .
pub fn start_aura<B, C, E, I, P, SO, Error, OnExit>(
	slot_duration: SlotDuration,
	local_key: Arc<P>,
	client: Arc<C>,
	block_import: Arc<I>,
	env: Arc<E>,
	sync_oracle: SO,
	on_exit: OnExit,
	inherent_data_providers: InherentDataProviders,
	force_authoring: bool,
) -> Result<impl Future<Item=(), Error=()>, consensus_common::Error> where
	B: Block,
	C: ChainHead<B> + ProvideRuntimeApi + ProvideCache<B>,
	C::Api: AuthoritiesApi<B>,
	E: Environment<B, Error=Error>,
	E::Proposer: Proposer<B, Error=Error>,
	<<E::Proposer as Proposer<B>>::Create as IntoFuture>::Future: Send + 'static,
	I: BlockImport<B> + Send + Sync + 'static,
	P: Pair + Send + Sync + 'static,
	P::Public: Hash + Eq + Send + Sync + Clone + Debug + Encode + Decode + 'static,
	P::Signature: Encode,
	SO: SyncOracle + Send + Sync + Clone,
	DigestItemFor<B>: CompatibleDigestItem<P> + DigestItem<AuthorityId=AuthorityId<P>>,
	Error: ::std::error::Error + Send + From<::consensus_common::Error> + From<I::Error> + 'static,
	OnExit: Future<Item=(), Error=()>,
{
	let worker = AuraWorker {
		client: client.clone(),
		block_import,
		env,
		local_key,
		inherent_data_providers: inherent_data_providers.clone(),
		sync_oracle: sync_oracle.clone(),
		force_authoring,
	};
	aura_slots::start_slot_worker::<_, _, _, _, AuraSlotCompatible, _>(
		slot_duration,
		client,
		Arc::new(worker),
		sync_oracle,
		on_exit,
		inherent_data_providers
	)
}
pub fn start_aura < B , C , E , I , P , SO , Error , OnExit > ( slot_duration : SlotDuration , local_key : Arc < P > , client : Arc < C > , block_import : Arc < I > , env : Arc < E > , sync_oracle : SO , on_exit : OnExit , inherent_data_providers : InherentDataProviders , force_authoring : bool , ) -> Result < impl Future < Item = ( ) , Error = ( ) > , consensus_common :: Error > where B : Block , C : ChainHead < B > + ProvideRuntimeApi + ProvideCache < B > , C :: Api : AuthoritiesApi < B > , E : Environment < B , Error = Error > , E :: Proposer : Proposer < B , Error = Error > , < < E :: Proposer as Proposer < B > > :: Create as IntoFuture > :: Future : Send + ' static , I : BlockImport < B > + Send + Sync + ' static , P : Pair + Send + Sync + ' static , P :: Public : Hash + Eq + Send + Sync + Clone + Debug + Encode + Decode + ' static , P :: Signature : Encode , SO : SyncOracle + Send + Sync + Clone , DigestItemFor < B > : CompatibleDigestItem < P > + DigestItem < AuthorityId = AuthorityId < P > > , Error : :: std :: error :: Error + Send + From < :: consensus_common :: Error > + From < I :: Error > + ' static , OnExit : Future < Item = ( ) , Error = ( ) > , { let worker = AuraWorker { client : client . clone ( ) , block_import , env , local_key , inherent_data_providers : inherent_data_providers . clone ( ) , sync_oracle : sync_oracle . clone ( ) , force_authoring , } ; aura_slots :: start_slot_worker :: < _ , _ , _ , _ , AuraSlotCompatible , _ > ( slot_duration , client , Arc :: new ( worker ) , sync_oracle , on_exit , inherent_data_providers ) }
Start the aura worker.
Start the aura worker .
slot_duration
SlotDuration
local_key
Arc<P>
client
Arc<C>
block_import
Arc<I>
env
Arc<E>
sync_oracle
SO
on_exit
OnExit
inherent_data_providers
InherentDataProviders
force_authoring
bool
slot_duration
SlotDuration
local_key
Arc<P>
client
Arc<C>
block_import
Arc<I>
env
Arc<E>
sync_oracle
SO
on_exit
OnExit
inherent_data_providers
InherentDataProviders
force_authoring
bool