Sequencer
What is it?
The sequencer is the heart of Linea's execution client, responsible for ordering, building, and executing blocks in a way that allows the subsequent zero-knowledge proof to be made.
What does it do?
The sequencer does a number of things:
- Determines the order—the sequence—in which transactions will be executed
- Builds blocks from them
- Executes those blocks
- Prepares certain data relating to the traces of that execution for the zero-knowledge prover.
How does it do it?
Linea's execution client is Linea Besu, an implementation of the Besu execution client extended with additional functionality to support Linea and its requirements as a zero-knowledge rollup. You can run your own Linea Besu node.
Linea's sequencer takes transactions from the Linea memory pool, and builds them into blocks. However, on Linea, it also does a bit of extra work, and communication, with the coordinator, to ensure that blocks are made in such a way that they can be proven by the zero-knowledge prover, and that they are as compact as possible-doubly important in a situation where all data has to be written in tiny, costly pieces on Ethereum Mainnet. This is done specifically by subsystems within the sequencer: the traces generator and conflator.