Octez_smart_rollup_node.Store_v2SourceThis version of the store is used for the rollup nodes for protocols for and after Nairobi, i.e. >= 17.
include module type of struct include Store_v1 endinclude module type of struct include Store_v0 endmodule Commitments_published_at_level =
Octez_smart_rollup_node.Store_v1.Commitments_published_at_levelStorage 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.
Dal_slot_pages is a Store_utils.Nested_map used to store the contents of dal slots fetched by the rollup node, as a list of pages. The values of this storage module have type `string list`. A value of the form page_contents refers to a page of a slot that has been confirmed, and whose contents are page_contents.
include Store_sig.S with type 'a store := 'a Store_v0.storeDal_slots_statuses is a Store_utils.Nested_map used to store the attestation status of DAL slots. The values of this storage module have type ``Confirmed | `Unconfirmed`, depending on whether the content of the slot has been attested on L1 or not. If an entry is not present for a (block_hash, slot_index), this means that the corresponding block is not processed yet.
include Store_sig.S with type 'a store := 'a Store_v1.storemodule Messages :
Tezos_layer2_store.Indexed_store.INDEXED_FILE
with type key := Octez_smart_rollup.Merkelized_payload_hashes_hash.t
and type value := string list
and type header := Tezos_base.TzPervasives.Block_hash.tStorage for persisting messages downloaded from the L1 node.
module Inboxes :
Tezos_layer2_store.Indexed_store.SIMPLE_INDEXED_FILE
with type key := Octez_smart_rollup.Inbox.Hash.t
and type value := Octez_smart_rollup.Inbox.t
and type header := unitStorage for persisting inboxes.
module Commitments :
Tezos_layer2_store.Indexed_store.SIMPLE_INDEXED_FILE
with type key := Octez_smart_rollup.Commitment.Hash.t
and type value := Octez_smart_rollup.Commitment.t
and type header := unitStorage containing commitments and corresponding commitment hashes that the rollup node has knowledge of.
module Dal_slots_headers :
Tezos_layer2_store.Store_sigs.Nested_map
with type primary_key := Tezos_base.TzPervasives.Block_hash.t
and type secondary_key := Octez_smart_rollup.Dal.Slot_index.t
and type value := Octez_smart_rollup.Dal.Slot_header.t
and type 'a store := 'a Irmin_store.tPublished 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.
module Dal_confirmed_slots_history :
Tezos_layer2_store.Store_sigs.Append_only_map
with type key := Tezos_base.TzPervasives.Block_hash.t
and type value := Octez_smart_rollup.Dal.Slot_history.t
and type 'a store := 'a Irmin_store.tmodule Dal_confirmed_slots_histories :
Tezos_layer2_store.Store_sigs.Append_only_map
with type key := Tezos_base.TzPervasives.Block_hash.t
and type value := Octez_smart_rollup.Dal.Slot_history_cache.t
and type 'a store := 'a Irmin_store.tConfirmed DAL slots histories cache. See documentation of Dal_slot_repr.Slots_history for more details.
type +'a store = {l2_blocks : 'a L2_blocks.t;messages : 'a Messages.t;inboxes : 'a Inboxes.t;commitments : 'a Commitments.t;commitments_published_at_level : 'a Commitments_published_at_level.t;l2_head : 'a L2_head.t;last_finalized_level : 'a Last_finalized_level.t;levels_to_hashes : 'a Levels_to_hashes.t;protocols : 'a Protocols.t;irmin_store : 'a Irmin_store.t;}include Store_sig.S with type 'a store := 'a storeType of store. The parameter indicates if the store can be written or only read.
Read/write store t.
Read only store t.
Version supported by this code.
close store closes the store.
val load :
'a Tezos_layer2_store.Store_sigs.mode ->
l2_blocks_cache_size:int ->
string ->
'a store Tezos_base.TzPervasives.tzresult Lwt.tload mode ~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. l2_blocks_cache_size is the number of L2 blocks the rollup node will keep in memory.
val iter_l2_blocks :
_ t ->
(Octez_smart_rollup.Sc_rollup_block.t ->
unit Tezos_base.TzPervasives.tzresult Lwt.t) ->
unit Tezos_base.TzPervasives.tzresult Lwt.titer_l2_blocks store f iterates f on all L2 blocks reachable from the head, from newest to oldest.