referrerpolicy=no-referrer-when-downgrade
polkadot_node_subsystem

Trait Subsystem

pub trait Subsystem<Ctx, E>
where Ctx: SubsystemContext, E: Error + Send + Sync + 'static + From<OrchestraError>,
{ // Required method fn start(self, ctx: Ctx) -> SpawnedSubsystem<E>; }
Expand description

A trait that describes the Subsystems that can run on the Orchestra.

It is generic over the message type circulating in the system. The idea that we want some type containing persistent state that can spawn actually running subsystems when asked.

Required Methods§

fn start(self, ctx: Ctx) -> SpawnedSubsystem<E>

Start this Subsystem and return SpawnedSubsystem.

Implementors§

§

impl<Context> Subsystem<Context, SubsystemError> for DummySubsystem
where Context: SubsystemContext<Signal = OverseerSignal, Error = SubsystemError>,

impl<Context, Sub, Interceptor> Subsystem<Context, SubsystemError> for InterceptedSubsystem<Sub, Interceptor>
where Context: SubsystemContext<Error = SubsystemError, Signal = OverseerSignal> + Sync + Send, InterceptedContext<Context, Interceptor>: SubsystemContext<Error = SubsystemError, Signal = OverseerSignal>, Sub: Subsystem<InterceptedContext<Context, Interceptor>, SubsystemError>, Interceptor: MessageInterceptor<<Context as SubsystemContext>::Sender, Message = <Context as SubsystemContext>::Message>, <Context as SubsystemContext>::Message: AssociateOutgoing, <Context as SubsystemContext>::Sender: SubsystemSender<<<Context as SubsystemContext>::Message as AssociateOutgoing>::OutgoingMessages>,

impl<Context> Subsystem<Context, SubsystemError> for ApprovalDistribution
where Context: ApprovalDistributionContextTrait + SubsystemContext, <Context as ApprovalDistributionContextTrait>::Sender: ApprovalDistributionSenderTrait, <Context as SubsystemContext>::Sender: ApprovalDistributionSenderTrait,

impl<Context> Subsystem<Context, SubsystemError> for BitfieldDistribution
where Context: BitfieldDistributionContextTrait + SubsystemContext, <Context as BitfieldDistributionContextTrait>::Sender: BitfieldDistributionSenderTrait, <Context as SubsystemContext>::Sender: BitfieldDistributionSenderTrait,

impl<Context> Subsystem<Context, SubsystemError> for AvailabilityDistributionSubsystem

impl<Context> Subsystem<Context, SubsystemError> for AvailabilityRecoverySubsystem
where Context: AvailabilityRecoveryContextTrait + SubsystemContext, <Context as AvailabilityRecoveryContextTrait>::Sender: AvailabilityRecoverySenderTrait, <Context as SubsystemContext>::Sender: AvailabilityRecoverySenderTrait,

impl<Context> Subsystem<Context, SubsystemError> for CollatorProtocolSubsystem
where Context: CollatorProtocolContextTrait + SubsystemContext, <Context as CollatorProtocolContextTrait>::Sender: CollatorProtocolSenderTrait, <Context as SubsystemContext>::Sender: CollatorProtocolSenderTrait,

impl<Context, AD> Subsystem<Context, SubsystemError> for GossipSupport<AD>
where AD: AuthorityDiscovery + Clone, Context: GossipSupportContextTrait + SubsystemContext, <Context as GossipSupportContextTrait>::Sender: GossipSupportSenderTrait, <Context as SubsystemContext>::Sender: GossipSupportSenderTrait,

impl<Net, AD, Context> Subsystem<Context, SubsystemError> for NetworkBridgeRx<Net, AD>
where Net: Network + Sync, AD: AuthorityDiscovery + Clone + Sync, Context: NetworkBridgeRxContextTrait + SubsystemContext, <Context as NetworkBridgeRxContextTrait>::Sender: NetworkBridgeRxSenderTrait, <Context as SubsystemContext>::Sender: NetworkBridgeRxSenderTrait,

impl<Net, AD, Context> Subsystem<Context, SubsystemError> for NetworkBridgeTx<Net, AD>
where Net: Network + Sync, AD: AuthorityDiscovery + Clone + Sync, Context: NetworkBridgeTxContextTrait + SubsystemContext, <Context as NetworkBridgeTxContextTrait>::Sender: NetworkBridgeTxSenderTrait, <Context as SubsystemContext>::Sender: NetworkBridgeTxSenderTrait,

impl<Context> Subsystem<Context, SubsystemError> for CollationGenerationSubsystem
where Context: CollationGenerationContextTrait + SubsystemContext, <Context as CollationGenerationContextTrait>::Sender: CollationGenerationSenderTrait, <Context as SubsystemContext>::Sender: CollationGenerationSenderTrait,

impl<Context> Subsystem<Context, SubsystemError> for ApprovalVotingSubsystem
where Context: ApprovalVotingContextTrait + SubsystemContext + Send, <Context as ApprovalVotingContextTrait>::Sender: ApprovalVotingSenderTrait, <Context as SubsystemContext>::Sender: ApprovalVotingSenderTrait,

impl<Context> Subsystem<Context, SubsystemError> for ApprovalVotingParallelSubsystem
where Context: ApprovalVotingParallelContextTrait + SubsystemContext + Send, <Context as ApprovalVotingParallelContextTrait>::Sender: ApprovalVotingParallelSenderTrait, <Context as SubsystemContext>::Sender: ApprovalVotingParallelSenderTrait,

impl<Context> Subsystem<Context, SubsystemError> for AvailabilityStoreSubsystem
where Context: AvailabilityStoreContextTrait + SubsystemContext, <Context as AvailabilityStoreContextTrait>::Sender: AvailabilityStoreSenderTrait, <Context as SubsystemContext>::Sender: AvailabilityStoreSenderTrait,

impl<Context> Subsystem<Context, SubsystemError> for CandidateBackingSubsystem
where Context: Send + Sync + CandidateBackingContextTrait + SubsystemContext, <Context as CandidateBackingContextTrait>::Sender: CandidateBackingSenderTrait, <Context as SubsystemContext>::Sender: CandidateBackingSenderTrait,

impl<Context> Subsystem<Context, SubsystemError> for BitfieldSigningSubsystem
where Context: BitfieldSigningContextTrait + SubsystemContext, <Context as BitfieldSigningContextTrait>::Sender: BitfieldSigningSenderTrait, <Context as SubsystemContext>::Sender: BitfieldSigningSenderTrait,

impl<Context> Subsystem<Context, SubsystemError> for CandidateValidationSubsystem
where Context: CandidateValidationContextTrait + SubsystemContext, <Context as CandidateValidationContextTrait>::Sender: CandidateValidationSenderTrait, <Context as SubsystemContext>::Sender: CandidateValidationSenderTrait,

impl<Client, Context> Subsystem<Context, SubsystemError> for ChainApiSubsystem<Client>
where Client: ChainApiBackend + AuxStore + 'static, Context: ChainApiContextTrait + SubsystemContext, <Context as ChainApiContextTrait>::Sender: ChainApiSenderTrait, <Context as SubsystemContext>::Sender: ChainApiSenderTrait,

impl<Context> Subsystem<Context, SubsystemError> for ChainSelectionSubsystem
where Context: ChainSelectionContextTrait + SubsystemContext, <Context as ChainSelectionContextTrait>::Sender: ChainSelectionSenderTrait, <Context as SubsystemContext>::Sender: ChainSelectionSenderTrait,

impl<Context> Subsystem<Context, SubsystemError> for DisputeCoordinatorSubsystem
where Context: DisputeCoordinatorContextTrait + SubsystemContext + Send, <Context as DisputeCoordinatorContextTrait>::Sender: DisputeCoordinatorSenderTrait, <Context as SubsystemContext>::Sender: DisputeCoordinatorSenderTrait,

impl<Context> Subsystem<Context, SubsystemError> for ProspectiveParachainsSubsystem
where Context: Send + Sync + ProspectiveParachainsContextTrait + SubsystemContext, <Context as ProspectiveParachainsContextTrait>::Sender: ProspectiveParachainsSenderTrait, <Context as SubsystemContext>::Sender: ProspectiveParachainsSenderTrait,

impl<Context> Subsystem<Context, SubsystemError> for ProvisionerSubsystem
where Context: ProvisionerContextTrait + SubsystemContext, <Context as ProvisionerContextTrait>::Sender: ProvisionerSenderTrait, <Context as SubsystemContext>::Sender: ProvisionerSenderTrait,

impl<Context> Subsystem<Context, SubsystemError> for PvfCheckerSubsystem
where Context: PvfCheckerContextTrait + SubsystemContext, <Context as PvfCheckerContextTrait>::Sender: PvfCheckerSenderTrait, <Context as SubsystemContext>::Sender: PvfCheckerSenderTrait,

impl<Client, Context> Subsystem<Context, SubsystemError> for RuntimeApiSubsystem<Client>
where Client: RuntimeApiSubsystemClient + Send + Sync + 'static, Context: RuntimeApiContextTrait + SubsystemContext, <Context as RuntimeApiContextTrait>::Sender: RuntimeApiSenderTrait, <Context as SubsystemContext>::Sender: RuntimeApiSenderTrait,

impl<M, Context> Subsystem<Context, SubsystemError> for ForwardSubsystem<M>
where M: AssociateOutgoing + Debug + Send + 'static, Context: SubsystemContext<Message = M, Signal = OverseerSignal, Error = SubsystemError, OutgoingMessages = <M as AssociateOutgoing>::OutgoingMessages>,

impl<Context, R: Rng + Send + Sync + 'static> Subsystem<Context, SubsystemError> for StatementDistributionSubsystem<R>
where Context: StatementDistributionContextTrait + SubsystemContext, <Context as StatementDistributionContextTrait>::Sender: StatementDistributionSenderTrait, <Context as SubsystemContext>::Sender: StatementDistributionSenderTrait,