Overview
TLDR: This design integrates Rollup Boost with op-conductor to support high-availability sequencer setups. We'll leverage the op-conductor's leadership election to ensure only the leader sequencer communicates with the builder, and implement configuration distribution for settings like miner_setMaxDASize.
Goals
- Enable Rollup Boost to work seamlessly with op-conductor in a high-availability sequencer environment
- Ensure only the leader sequencer's Rollup Boost communicates with the external block builder; Prevent chain rewinds that would occur if multiple sequencers communicated with the same builder
- Ensure all the sequencer nodes and the builder have consistent DA settings
- Support clean leadership transitions without disrupting the transaction flow or block production process
- Ensure the rollup boost proxy only receives the stream from the leader to avoid duplication and inconsistency
Non-goals:
- Preserving partial blocks during leadership transitions - these will be treated as best-effort preconfirmations that may be lost during transitions
- Instead of building a complex mechanism to preserve partial blocks during leadership transitions, we're taking a pragmatic approach:
- The follower nodes' Rollup Boost instances are already receiving the same blocks as the leader
- When a follower becomes the new leader, its Rollup Boost likely already has the relevant blocks
- We'll set up the HA system with this simple approach and test it in practice
- If we observe significant issues with lost partial blocks, we can revisit the topic
- Creating a full leadership-aware proxy for all services (this is an important improvement but not a requirement for this project). Given the tight timeline of this project, we will pursue this leadership aware proxy as a future project.
Architecture
Current Infrastructure Setup for miner_setMaxDASize(simplified to showcase the interaction between batcher and sequencer)
Proposed Infrastructure Setup for miner_setMaxDASize(simplified to showcase the interaction between batcher and sequencer)
Extend the Batcher to Send Configuration Updates to All Nodes
The batcher will be extended to talk to all conductors in the HA cluster and the builder, as well as update the DA size regardless of their leadership status
- The batcher will receives miner_setMaxDASize and other configuration calls