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 component of the Lineth execution client responsible for ordering, building, and executing blocks in a way that allows the subsequent ZK proof to be made. It's implemented as a set of plugins extending Linea Besu, including the tracer. There's typically one sequencer per network. 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 The execution client that Linea Mainnet and other Lineth deployments run to execute transactions and maintain EVM state. Linea Besu is a build of the Besu execution client, extended with plugins such as the sequencer and tracer that add ZK-rollup functionality. 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