Tezos_raw_protocol_022_PsRiotum.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 Tezos_protocol_environment_022_PsRiotum.Error_monad.tzresult
Tezos_protocol_environment_022_PsRiotum.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 ->
tb_slot:Alpha_context.Slot.t ->
power:int ->
Alpha_context.t Tezos_protocol_environment_022_PsRiotum.Error_monad.tzresult
apply_attestation ctxt attestation ~tb_slot ~power
records in the context that the given attestation
was issued by the delegate with initial Tenderbake slot tb_slot
and the corresponding attester has the given power
.
val validate_publish_commitment :
Alpha_context.t ->
Alpha_context.Dal.Operations.Publish_commitment.t ->
unit Tezos_protocol_environment_022_PsRiotum.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 ->
source:Alpha_context.Contract.t ->
(Alpha_context.t * Alpha_context.Dal.Slot.Header.t)
Tezos_protocol_environment_022_PsRiotum.Error_monad.tzresult
apply_publish_commitment ctxt slot_header ~source
applies the publication of slot header slot_header
associated to source
on top of ctxt
. Fails if the slot already contains a slot header.
val record_participation :
Alpha_context.t ->
Tezos_protocol_environment_022_PsRiotum.Signature.Public_key_hash.t ->
Alpha_context.Slot.t ->
dal_power:int ->
Alpha_context.Dal.Attestation.t ->
Alpha_context.t Tezos_protocol_environment_022_PsRiotum.Error_monad.tzresult
Tezos_protocol_environment_022_PsRiotum.Lwt.t
record_dal_participation ctxt delegate tb_slot ~dal_power dal_attestation
records the number of protocol-attested slots (given in dal_attestation
attested by delegate
(with the initial TB slot tb_slot
and dal_power
assigned shards per slot) in the current block.
val finalisation :
Alpha_context.t ->
(Alpha_context.t * Alpha_context.Dal.Attestation.t)
Tezos_protocol_environment_022_PsRiotum.Error_monad.tzresult
Tezos_protocol_environment_022_PsRiotum.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.