Mavryk_raw_protocol_alpha.Dal_slot_storage
Storage management of slots for the data-availability layer.
This module is an interface for the slot storage for the layer 1.
Depending on the current level of the context and the attestation_lag
(a constant given by the context), the status of the slot may differ:
current_level; current_level +
attestation_lag - 1
the slot is Pending
. This means a slot header was proposed but was not declared available yet.current_level + attestation_lag
, the slot may be attested
. For any slot attested by the protocol (i.e. indices returned by finalize_pending_slots
), subscribers of the DAL should take into account the corresponding slots.current_level - attestation_lag
, there should not be any slot in the storage.val find_slot_headers :
Raw_context.t ->
Raw_level_repr.t ->
Dal_slot_repr.Header.t list option
Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.t
find_slot_headers ctxt level
returns Some slot_headers
where slot_headers
are pending slots at level level
. None
is returned if no slot_header
was registered at this level. The function fails if the reading into the context fails.
val finalize_current_slot_headers :
Raw_context.t ->
Raw_context.t Mavryk_protocol_environment_alpha.Lwt.t
finalize_current_slot_headers ctxt
finalizes the current slot headers posted on this block and marks them as pending into the context.
val finalize_pending_slot_headers :
Raw_context.t ->
number_of_slots:int ->
(Raw_context.t * Dal_attestation_repr.t)
Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.t
finalize_pending_slot_headers ctxt ~number_of_slots
finalizes pending slot headers which are old enough (i.e. registered at level current_level -
attestation_lag
). All slots marked as available are returned. All the pending slots at current_level - attestation_lag
level are removed from the context.
val get_slot_headers_history :
Raw_context.t ->
Dal_slot_repr.History.t
Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.t
get_slot_headers_history ctxt
returns the current value of slots_history stored in ctxt
, or Slots_history.genesis if no value is stored yet.
val compute_attested_slot_headers :
is_slot_attested:(Dal_slot_repr.Header.t -> bool) ->
Dal_slot_repr.Header.t list ->
Dal_slot_repr.Header.t list * Dal_attestation_repr.t
compute_attested_slot_headers ~is_slot_attested published_slot_headers
filter the given published_slot_headers
and return the list of attested slot headers and the corresponding bitset.