History modes for the chain history storage

History modes allow a node to require less disk storage. Indeed, depending on the chosen history mode, some parts of the complete chain history can be deleted as they are not required anymore. Three history modes are provided:

  • Full mode (default mode): The node stores the minimal data since the genesis required to reconstruct (or 'replay') the complete chain's ledger state.
  • Rolling mode: This is the lightest mode as it only maintains a minimal rolling fragment of the chain data so the node can still validate new blocks and synchronize with the head.
  • Archive: This is the heaviest mode as it keeps the whole chain data to be able to query any information stored on the chain since the genesis. It is particularly suitable for indexers or block explorers.
type additional_cycles = {
  1. offset : int;

The type for defining the number of additional cycles to preserve.

type t =
  1. | Archive
  2. | Full of additional_cycles option
  3. | Rolling of additional_cycles option

The type for defining an history mode.

val default_additional_cycles : additional_cycles

The default value for the number of additional cycles to preserve.

val default_full : t

The default full history mode value. Based on default_additional_cycles.

val default_rolling : t

The default rolling history mode value. Based on default_additional_cycles.

val default : t

The default history mode value.

val equal : t -> t -> bool
val pp : Format.formatter -> t -> unit
val pp_short : Format.formatter -> t -> unit
module Legacy : sig ... end

The module for handling legacy history modes. It is only used for legacy support, see Tezos_store.Legacy and Tezos_store.Snapshots.

val convert : Legacy.t -> t

convert legacy returns the history mode of a given legacy history mode, using the default offset values.