rollup-boost as the block-building coordination layer, streaming flashblocks from op-rbuilder, and serving the stream to RPC providers through flashblocks-websocket-proxy — in both single-sequencer and high-availability (HA) multi-sequencer setups.
For what Flashblocks are, the component architecture, and the lifecycle of a flashblock, see the Flashblocks explainer.
For full details on design choices, data structures, and invariants, see the Flashblocks specification.
What you’ll run
A Flashblocks-enabled sequencer runs these services side by side:rollup-boost: Coordination layer with Flashblocks enabledop-rbuilder: Execution client and builder with Flashblocks supportop-reth: Fallback builder, a standard EL nodeflashblocks-websocket-proxy: Relays the flashblocks stream from the active sequencer to RPC providersop-conductor(optional but recommended): Manages multiple sequencers, ensuring only one healthy leader streams blocks
op-rbuilder to rollup-boost over WebSockets, minimizing latency between the sequencer and the pre-confirmed state.
The role each component plays is described in the architecture section of the Flashblocks explainer.
How to set up and run rollup-boost
Flashblocks relies onrollup-boost as the coordination layer for block building.
To run Flashblocks, you’ll configure rollup-boost alongside your sequencer and execution clients.
Single‑sequencer setup
As suggested in the above links, in a single-sequencer setup, Flashblocks are streamed fromrollup-boost (or op-rbuilder) to flashblocks-websocket-proxy by setting the following environment variable in flashblocks-websocket-proxy:
HA‑compliant multi‑sequencer setup
While Flashblocks can be enabled in a single-sequencer setup, we highly recommend running a high-availability (HA) multi-sequencer setup managed byop-conductor.
In an HA setup, multiple op-conductor instances form a Raft group. At any time, only one healthy sequencer acts as the active leader responsible for block building, while others remain in follower mode. Leadership changes automatically if the active sequencer becomes unhealthy.
For Flashblocks, each sequencer (leader and followers) runs its own dedicated components, including rollup-boost and op-rbuilder.
Only the leader’s op-rbuilder produces flashblocks; follower instances remain idle.
In this setup, the connection between rollup-boost and the flashblocks-websocket-proxy is mediated by op-conductor.
op-conductorlistens to Flashblocks fromrollup-boost(orop-rbuilder).- If it is the active leader, it forwards the Flashblocks to
flashblocks-websocket-proxy. - If it is not the leader, it does not forward anything.
HA configuration
1. Configureop-conductor to listen for Flashblocks and forward them if leader:
- Variable descriptions:
OP_CONDUCTOR_WEBSOCKET_SERVER_PORT: Port whereop-conductorexposes Flashblocks if it is the leader. For example:ws://<op-conductor-url>:8546/ws.OP_CONDUCTOR_ROLLUPBOOST_WS_URL: Direct URL ofrollup-boost(orop-rbuilder) where Flashblocks are available. In a single-sequencer setup, this is the same URL you’d pass directly toflashblocks-websocket-proxy.OP_CONDUCTOR_ROLLUP_BOOST_ENABLED: Enables health checks forrollup-boost(and indirectlyop-rbuilder) so leadership can fail over if either becomes unhealthy.OP_CONDUCTOR_EXECUTION_RPC: Execution RPC URL ofrollup-boost. Same asOP_NODE_L2_ENGINE_RPCconfigured onop-node.
flashblocks-websocket-proxy to consume Flashblocks from all sequencer conductors:
op-conductor.
Optional rate limits for flashblocks-websocket-proxy:
PER_IP_CONNECTIONS_LIMIT: Max connections allowed per client IP.INSTANCE_CONNECTION_LIMIT: Max total connections allowed per proxy instance.
Next steps
- Learn how Flashblocks work in the Flashblocks explainer.
- Point your app developers to the Flashblocks integration guide.
- Review the technical specs for architecture details.