ProcessBlockFinalizedSignal(BlockFinalizedSignal) error
however some of the subsystems are not required to do anything regarding these signals, so perhaps we should reconsider if these methods should be included in the interface. As we design more subsystems it may become more evident what methods are required for a subsystem.
Also defined in the interface is Run(ctx context.Context, OverseerToSubSystem chan any, SubSystemToOverseer chan any) however many of the subsystems do not utilize the OverseerToSubsystem or the SubsystemToOverseer parameters in this method. So, perhaps the parameters of this interface should also be reconsidered.
Issue summary
This is an issue to consider weather the Subsystem interface should be refactored since some of the methods defined there are not always used.
The Subsystem interface https://github.com/ChainSafe/gossamer/blob/ff28c9f58dbb021f79e7c9d00c117dddfb9fd026/dot/parachain/types/types.go#L660 defines methods:
ProcessActiveLeavesUpdateSignal(ActiveLeavesUpdateSignal) error
ProcessBlockFinalizedSignal(BlockFinalizedSignal) error
however some of the subsystems are not required to do anything regarding these signals, so perhaps we should reconsider if these methods should be included in the interface. As we design more subsystems it may become more evident what methods are required for a subsystem.Also defined in the interface is
Run(ctx context.Context, OverseerToSubSystem chan any, SubSystemToOverseer chan any)
however many of the subsystems do not utilize theOverseerToSubsystem
or theSubsystemToOverseer
parameters in this method. So, perhaps the parameters of this interface should also be reconsidered.Other information and links