Mavryk_raw_protocol_alpha.Dal_apply
This modules handles all the validation/application/finalisation of any operation related to the DAL.
val validate_attestation :
Alpha_context.t ->
Alpha_context.Raw_level.t ->
Alpha_context.Slot.t ->
Alpha_context.Consensus_key.pk ->
Alpha_context.Dal.Attestation.t ->
unit Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.t
validate_attestation ctxt level slot consensus_key attestation
checks whether the DAL attestation attestation
emitted at given level
by the attester with the given consensus_key
and given slot
is valid. If an Error _
is returned, the op
is not valid. The checks made are: * the attestation size does not exceed the maximum; * the delegate is in the DAL committee.
These are checks done for the DAL part alone, checks on other fields of an attestation (like level, round) are done by the caller.
val apply_attestation :
Alpha_context.t ->
Alpha_context.Dal.Attestation.t ->
power:int ->
Alpha_context.t Mavryk_protocol_environment_alpha.Error_monad.tzresult
apply_attestation ctxt attestation
records in the context that the given attestation
was issued and the corresponding attester has the given power
.
val validate_publish_commitment :
Alpha_context.t ->
Alpha_context.Dal.Operations.Publish_commitment.t ->
unit Mavryk_protocol_environment_alpha.Error_monad.tzresult
validate_publish_commitment 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_commitment :
Alpha_context.t ->
Alpha_context.Dal.Operations.Publish_commitment.t ->
(Alpha_context.t * Alpha_context.Dal.Slot.Header.t)
Mavryk_protocol_environment_alpha.Error_monad.tzresult
apply_publish_commitment 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)
Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.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.