Module Mavkit_smart_rollup_node.Store_v0

This version of the store is used for the rollup nodes for protocol Mumbai, i.e. = 16.

This interface is a copy of src/proto_016_PtMumbai/lib_sc_rollup_node/store.mli, which contains the layout for the Mumbai rollup node.

module Irmin_store : sig ... end

Storage for persisting messages downloaded from the L1 node.

Aggregated collection of messages from the L1 inbox

Storage containing commitments and corresponding commitment hashes that the rollup node has knowledge of.

module Commitments_published_at_level : sig ... end

Storage mapping commitment hashes to the level when they were published by the rollup node. It only contains hashes of commitments published by this rollup node.

Published slot headers per block hash, stored as a list of bindings from Dal_slot_index.t to Dal.Slot.t. The encoding function converts this list into a Dal.Slot_index.t-indexed map.

Dal_processed_slots is a Store_utils.Nested_map used to store the processing status of dal slots content fetched by the rollup node. The values of this storage module have type ``Confirmed | `Unconfirmed`, depending on whether the content of the slot has been confirmed or not. If an entry is not present for a (block_hash, slot_index), this either means that it's not processed yet.

type +'a store = {
  1. l2_blocks : 'a L2_blocks.t;
  2. messages : 'a Messages.t;
  3. inboxes : 'a Inboxes.t;
  4. commitments : 'a Commitments.t;
  5. commitments_published_at_level : 'a Commitments_published_at_level.t;
  6. l2_head : 'a L2_head.t;
  7. last_finalized_level : 'a Last_finalized_level.t;
  8. levels_to_hashes : 'a Levels_to_hashes.t;
  9. irmin_store : 'a Irmin_store.t;
}
include Store_sig.S with type 'a store := 'a store
type 'a t = [< `Read | `Write Read ] as 'a store

Type of store. The parameter indicates if the store can be written or only read.

Read/write store t.

Read only store t.

val version : Store_version.t

Version supported by this code.

val close : _ t -> unit Mavryk_base.TzPervasives.tzresult Lwt.t

close store closes the store.

val load : 'a Mavryk_layer2_store.Store_sigs.mode -> index_buffer_size:int -> l2_blocks_cache_size:int -> string -> 'a store Mavryk_base.TzPervasives.tzresult Lwt.t

load mode ~index_buffer_size ~l2_blocks_cache_size directory loads a store from the data persisted in directory. If mode is Store_sigs.Read_only, then the indexes and irmin store will be opened in readonly mode and only read operations will be permitted. This allows to open a store for read access that is already opened in Store_sigs.Read_write mode in another process. index_buffer_size is the maximum cache size in memory before it is flushed to disk. l2_blocks_cache_size is the number of L2 blocks the rollup node will keep in memory.

val readonly : _ t -> ro

readonly store returns a read-only version of store.

val iter_l2_blocks : ?progress:string -> Metadata.t -> _ t -> (Mavkit_smart_rollup.Sc_rollup_block.t -> unit Mavryk_base.TzPervasives.tzresult Lwt.t) -> unit Mavryk_base.TzPervasives.tzresult Lwt.t

iter_l2_blocks ?progress metadata store f iterates f on all L2 blocks reachable from the head, from newest to oldest. If progress is provided, a progress bar is displayed with the progress messages during the iteration.

val gc : rw -> level:int32 -> unit Mavryk_base.TzPervasives.tzresult Lwt.t

gc store ~level asynchronously garbage collects everything from the store that concerns blocks for levels below level.

val wait_gc_completion : 'a t -> unit Lwt.t

wait_gc_completion store returns a blocking thread if a GC run is currently ongoing.