Solizone

Solizone EVMChapter 03 / 17

Blocks and the chain

How executed transactions become a parent-linked chain of Solizone blocks.

Solizone blocks

Transactions are grouped into canonical Solizone EVM blocks.

Solizone EVM currently uses its own block format:

Diagram
SZB1

A block contains the information needed to represent one step in the Solizone execution chain.

Conceptually:

Diagram
SolizoneBlock
├── header
└── transactions

The header contains commitments and chain metadata.

Blocks are deterministic and hashable.

Diagram
Solizone block bytes
        ↓
      hash
        ↓
canonical block ID

Parent-linked chains

Each block contains the hash of its parent.

That gives us:

Diagram
block #0
hash A
   ↓
block #1
parent = A
hash B
   ↓
block #2
parent = B
hash C

This relationship is what makes the blocks a chain instead of just independent execution batches.

The BlockProducer is responsible for maintaining this progression.

BlockProducer

The BlockProducer tracks:

Diagram
next block height
parent block hash
chain configuration

For each new block:

Diagram
transactions
     ↓
BlockProducer
     ↓
REVM execution
     ↓
new state
     ↓
new Solizone block

Then it updates:

Diagram
parent_hash = newly produced block hash
next_height += 1

The next block continues from there.

Restarting the producer

A blockchain node should not forget where it was every time the process stops.

Solizone EVM can restore the producer using:

Diagram
next_height
parent_hash

For example:

Diagram
last block = #6

next_height = 7
parent_hash = hash(block #6)

After restart:

Diagram
produce block #7
parent = hash(block #6)

The chain continues instead of restarting.