Module Tezos_raw_protocol_022_PsRiotum.Dal_apply

This modules handles all the validation/application/finalisation of any operation related to the DAL.

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.

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.

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.

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.

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.

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.