Define interface for pluggable leader selection
In context of Optimint, leader is a aggregator/sequencer node that will produce next block. Leader selection is an algorithm enabling aggreators to decide who is the leader.
Currently Optimint supports only one aggreagator per network, so leader selection algorithm is trivial (the only aggregator node can produce the blocks all the time). For Testnet, our goal is to support networks with multiple block producers. This requires more sophisticated leader selection algorithms. There are at least two leader selection methods that needs to be supported (see: #206 and #207). Common, generic interface should be introduced, to allow use of both mentioned leader selection methods.
This issue definitely requires more context.
ref:
- https://github.com/celestiaorg/optimint/issues/206
- https://github.com/celestiaorg/optimint/issues/207
Closing since decentralized sequencers aren't a priority.