Mavryk_raw_protocol_001_PtAtLas.Dal_apply
This modules handles all the validation/application/finalisation of any operation related to the DAL.
val validate_attestation :
Alpha_context.t ->
(unit ->
Alpha_context.Consensus_key.pk
Mavryk_protocol_environment_001_PtAtLas.Error_monad.tzresult
Mavryk_protocol_environment_001_PtAtLas.Lwt.t) ->
Alpha_context.Dal.Attestation.operation ->
Alpha_context.Consensus_key.pk
Mavryk_protocol_environment_001_PtAtLas.Error_monad.tzresult
Mavryk_protocol_environment_001_PtAtLas.Lwt.t
validate_attestation ctxt get_consensus_key op
checks whether the DAL attestation op
is valid, assuming the delegate returned by get_consensus_key ()
issued those attestations. If an Error _
is returned, the op
is not valid.
val apply_attestation :
Alpha_context.t ->
Alpha_context.Consensus_key.pk ->
Alpha_context.Dal.Attestation.operation ->
Alpha_context.t Mavryk_protocol_environment_001_PtAtLas.Error_monad.tzresult
apply_attestation ctxt consensus_key op
applies op.attestation
into the ctxt
assuming consensus_key.delegate
issued those attestations.
val validate_publish_slot_header :
Alpha_context.t ->
Alpha_context.Dal.Operations.Publish_slot_header.t ->
unit Mavryk_protocol_environment_001_PtAtLas.Error_monad.tzresult
validate_publish_slot_header ctxt slot
ensures that slot_header
is valid and prevents an operation containing slot_header
to be refused on top of ctxt
. If an Error _
is returned, the slot_header
is not valid.
val apply_publish_slot_header :
Alpha_context.t ->
Alpha_context.Dal.Operations.Publish_slot_header.t ->
(Alpha_context.t * Alpha_context.Dal.Slot.Header.t)
Mavryk_protocol_environment_001_PtAtLas.Error_monad.tzresult
apply_publish_slot_header ctxt slot_header
applies the publication of slot header slot_header
on top of ctxt
. Fails if the slot contains already a slot header.
val finalisation :
Alpha_context.t ->
(Alpha_context.t * Alpha_context.Dal.Attestation.t option)
Mavryk_protocol_environment_001_PtAtLas.Error_monad.tzresult
Mavryk_protocol_environment_001_PtAtLas.Lwt.t
finalisation ctxt
should be executed at block finalisation time. A set of slots attested at level ctxt.current_level - lag
is returned encapsulated into the attestation data-structure.
lag
is a parametric constant specific to the data-availability layer.
val initialisation :
Alpha_context.t ->
level:Alpha_context.Level.t ->
Alpha_context.t Mavryk_protocol_environment_001_PtAtLas.Error_monad.tzresult
Mavryk_protocol_environment_001_PtAtLas.Lwt.t
initialize ctxt ~level
should be executed at block initialisation time. It allows to cache the committee for level
in memory so that every time we need to use this committee, there is no need to recompute it again.
val compute_committee :
Alpha_context.t ->
Alpha_context.Level.t ->
Alpha_context.Dal.Attestation.committee
Mavryk_protocol_environment_001_PtAtLas.Error_monad.tzresult
Mavryk_protocol_environment_001_PtAtLas.Lwt.t
compute_committee ctxt level
computes the DAL committee for level
.