Add a block version field to the block header

Author: jvffCreated Mar 3, 2025Updated Sep 11, 2026
Labelsenhancement

Motivation

The block format should be upgradable.

Proposal

Add a field to the start of the block header that indicates the block format version. That way, old clients can abort as soon as possible if they see an unsupported version, without the risk of reading in the wrong format.

Internally, implement the new format in memory and convert from the old formats in storage as they are loaded. When deemed safe, trigger an epoch change that allows the new block format to be created and persisted in storage.

Source: linera-io/linera-protocol