State recovery
Linea supports the possibility to reconstruct the state.
Recover state from a finalized block
In the highly unlikely event that Linea's sequencerSequencer The set of Linea Besu plugins responsible for ordering, building, and executing blocks in a way that allows the subsequent ZK proof to be made, including the tracer. The sequencer is a plugin set rather than a standalone process; a node that runs it alongside a Maru validator is a sequencer node. fails, it must be possible to reconstruct Linea's state as it was at the last point in time data was finalized, using the finality data. Conceivably, any entity could then resume transaction sequencing, confident that state was resuming from the correct point.
State recovery insures against the risks of a single point of failure that could cripple the network. Since this system can be used by any independent actor to validate state roots against L1-published data, it also reduces the need for trust in the Linea sequencer and coordinator.
There's a plugin for that
To support state recovery, the Linea BesuLinea Besu A build of the Besu execution client, extended with Lineth plugins such as the sequencer and tracer that add ZK-rollup functionality. Linea Besu is required to propose blocks and to generate traces, so every sequencer node must run it. Nodes that only import blocks or serve standard Ethereum JSON-RPC can run any Ethereum execution client. execution client has a recovery plugin that:
- Retrieves finalized blobs from L1;
- Decompresses the blob data;
- Replays the transactions in the execution client, and, finally,
- Checks that the resulting
stateRootHashmatches the one finalized on L1.
Linea Besu executes the fetched transactions in the blob, while the state management plugin, Shomei, rebuilds state.
Next steps
- Follow the guide to recover state