Mavryk_raw_protocol_001_PtAtLas.Dal_applyThis 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.tvalidate_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.tzresultapply_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.tzresultvalidate_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.tzresultapply_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.tfinalisation 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.tinitialize 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.tcompute_committee ctxt level computes the DAL committee for level.