Solizone

Solizone EVMChapter 04 / 17

State persistence

Checkpoints and snapshots: how EVM state survives a restart.

Checkpoints

The EVM state also needs to survive restarts.

Solizone EVM uses SolizoneCheckpoint.

A checkpoint contains:

Diagram
SolizoneCheckpoint
├── StateSnapshot
├── next_height
└── parent_hash

So the checkpoint captures both:

execution state

and

chain position

Together they answer:

Diagram
What does the EVM currently look like?

and

Where should the next block continue from?

State snapshots

A StateSnapshot is a deterministic representation of the current EVM state.

It can include:

Diagram
accounts
balances
nonces
contract bytecode
contract storage

The snapshot can be serialized.

Later:

Diagram
snapshot
   ↓
decode
   ↓
new MemoryState

This lets a completely new process reconstruct the execution environment.

Snapshot commitment vs state root

These two are intentionally separate.

State root

Diagram
current protocol state
      ↓
state_root

Used for execution and block correctness.

Snapshot commitment

Diagram
serialized snapshot
      ↓
Keccak256
      ↓
snapshot_commitment

Used to fingerprint persisted state.

They may describe related information, but they serve different jobs.

Persistence backends

Solizone EVM keeps persistence behind interfaces.

For checkpoints:

Diagram
CheckpointBackend
├── FileCheckpointBackend
└── LogosStorageCheckpointBackend

This is important because the execution layer should not care where the checkpoint lives.

From the node's perspective:

Diagram
checkpoint_backend.save(checkpoint)

could mean:

Diagram
write to disk

or:

Diagram
upload to Logos Storage

without changing REVM itself.