Do not run unneeded subsystems on collator and its alongside node (#3061)

Currently, collators and their alongside nodes spin up a full-scale
overseer running a bunch of subsystems that are not needed if the node
is not a validator. That was considered to be harmless; however, we've
got problems with unused subsystems getting stalled for a reason not
currently known, resulting in the overseer exiting and bringing down the
whole node.

This PR aims to only run needed subsystems on such nodes, replacing the
rest with `DummySubsystem`.

It also enables collator-optimized availability recovery subsystem
implementation.

Partially solves #1730.
This commit is contained in:
s0me0ne-unkn0wn
2024-01-29 10:53:51 +01:00
committed by GitHub
parent 987edd8864
commit 3e8139e7de
16 changed files with 429 additions and 220 deletions
@@ -91,7 +91,7 @@ fn main() -> Result<()> {
workers_path: None,
workers_names: None,
overseer_gen: polkadot_service::RealOverseerGen,
overseer_gen: polkadot_service::CollatorOverseerGen,
overseer_message_channel_capacity_override: None,
malus_finality_delay: None,
hwbench: None,
@@ -93,7 +93,7 @@ fn main() -> Result<()> {
workers_path: None,
workers_names: None,
overseer_gen: polkadot_service::RealOverseerGen,
overseer_gen: polkadot_service::CollatorOverseerGen,
overseer_message_channel_capacity_override: None,
malus_finality_delay: None,
hwbench: None,