Crate polkadot_overseer[−][src]
Expand description
Overseer
overseer
implements the Overseer architecture described in the
implementers-guide.
For the motivations behind implementing the overseer itself you should
check out that guide, documentation in this crate will be mostly discussing
technical stuff.
An Overseer
is something that allows spawning/stopping and overseeing
asynchronous tasks as well as establishing a well-defined and easy to use
protocol that the tasks can use to communicate with each other. It is desired
that this protocol is the only way tasks communicate with each other, however
at this moment there are no foolproof guards against other ways of communication.
The Overseer
is instantiated with a pre-defined set of Subsystems
that
share the same behavior from Overseer
’s point of view.
+-----------------------------+
| Overseer |
+-----------------------------+
................| Overseer "holds" these and uses |..............
. them to (re)start things .
. .
. +-------------------+ +---------------------+ .
. | Subsystem1 | | Subsystem2 | .
. +-------------------+ +---------------------+ .
. | | .
..................................................................
| |
start() start()
V V
..................| Overseer "runs" these |.......................
. +--------------------+ +---------------------+ .
. | SubsystemInstance1 | | SubsystemInstance2 | .
. +--------------------+ +---------------------+ .
..................................................................
Re-exports
pub use polkadot_node_subsystem_types::jaeger;
pub use self::metrics::Metrics as OverseerMetrics;
pub use self::dummy::DummySubsystem;
pub use polkadot_node_metrics::metrics::prometheus;
pub use polkadot_overseer_gen as gen;
Modules
A dummy subsystem, mostly useful for placeholders and tests.
Prometheus metrics related to the overseer and its channels.
Structs
Activated leaf.
Changes in the set of active leaves: the parachain heads which we care to work on.
An event telling the Overseer
on the particular block
that has been imported or finalized.
Collection of channels to the individual subsystems.
A wrapping type for messages.
Create a stream of ticks with a defined cycle duration.
A subsystem that the overseer oversees.
The overseer.
External connector.
A context type that is given to the Subsystem
upon spawning.
It can be used by Subsystem
to communicate with other Subsystem
s
or to spawn it’s SubsystemJob
s.
Connector to send messages towards all subsystems, while tracking the which signals where already received.
Watermark to track the received signals.
A running instance of some Subsystem
.
Set of readouts of the Meter
s of a subsystem.
Collection of meters related to a subsystem.
Enums
Generated message type wrapper
An event from outside the overseer scope, such as the substrate framework or user interaction.
Some request from outer world.
A message type that a subsystem receives from an overseer. It wraps signals from an overseer and messages that are circulating between subsystems.
The status of an activated leaf.
Signals sent by an overseer to a subsystem.
An error type that describes faults that may happen
A type of messages that are sent from Subsystem
to [Overseer
].
Constants
Store 2 days worth of blocks, not accounting for forks, in the LRU cache. Assumes a 6-second block time.
Traits
Whether a header supports parachain consensus or not.
A helper trait to map a subsystem to smth. else.
Subsystem- or job-specific Prometheus metrics.
Something that can spawn tasks (blocking and non-blocking) with an assigned name and optional group.
Sender end of a channel to interface with a subsystem.
Task kind to launch.
Extends Future
to allow time-limited futures.
Functions
Glues together the Overseer
and BlockchainEvents
by forwarding
import and finality notifications into the OverseerHandle
.
Spawn task of kind self
using spawner S
.
Spawn the metrics metronome task.
Type Definitions
Handle for an overseer.
Incoming messages from both the bounded and unbounded channel.
Ease the use of subsystem errors.