In May, the Base Engineering team published a blog post outlining their plans to bring flashblocks to the chain.
On July 7 they casually announced on X that flashblocks were enabled on Mainnet!
We’re living in a flashblocks world now, so we should learn how they work and how they will affect searching on Base and other networks that support it.
Whence Flashblocks?
The flashblock concept was developed by the Flashbots team. Flashblocks is one of two extensions provided in the launch of Rollup-Boost. Rollup-Boost is a platform built for Optimism-based (layer 2) rollup chains that allows chain operators to upgrade the sequencer1 with additional features.
A Flashblock Is…
At its core, a flashblock represents a soft promise of future transaction ordering. The flashblocks feed can be observed to discover which transactions will be finalized in some upcoming block window. This is similar to the feed published by the Arbitrum sequencer, which I reviewed:
The Base flashblock implementation is described in the Block Building section of their tech docs.
The previous sequencing (“vanilla”) was accomplished by running a priority fee auction of pending transactions every 2s, and building the block using op-geth.
The new sequencing uses a priority fee auction every 200ms, and building the block using op-rbuilder.
The new approach has some subtleties:
Each flashblock represents the transaction ordering for a portion of a coming block
Each flashblock has a built-in gas limit based on its index in the sequence
Once a flashblock is broadcast, its transaction ordering will be reflected in the final block
The sequence of flashblocks is fixed, a flashblock cannot preempt another one
New transactions cannot be placed in a flashblock that has already been published