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?
Currently, Linea’s execution client is zkGeth, a version of geth that has been modified to work with zk-proving technology. However, Linea is building linea-besu: leveraging the full power of the Consensys stack by using the same Besu client software that is used to execute blocks on Ethereum coupled with a plugin system. Linea-besu will help the Linea stack with compatibility, reliability, ease of maintenance, and of course will help the Linea team ensure compatibility, stability, ease of maintenance in their client, and of course helps them get their network launched much faster than building from scratch.
Linea's sequencer takes transactions from the Linea memory pool, and builds them into blocks, just like Besu does on mainnet Ethereum. 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.