Module Mavryk_raw_protocol_alpha.Dal_attestation_repr

Slot attestation representation for the data-availability layer.

Overview

For the data-availability layer, the layer 1 provides a list of slots at every level (see Dal_slot_repr). Slots are not posted directly onto L1 blocks. Stakeholders, called attesters in this context, can attest on the availability of the data via attestation operations.

The slot is uniformly split into shards. Each attester commits, for every slot, on the availability of all shards they are assigned to.

This module encapsulates the representation of this commitment that aims to be provided with attestation operations. To avoid overloading the network, this representation should be compact.

type t = private Bitset.t

The size of the encoding is not bounded. However, the size of a DAL attestation bitset is checked during validation of an attestation; and there is a bound on the size of a generic operation.

val empty : t

empty returns an empty slot_attestation which commits that every slot are unavailable.

val is_attested : t -> Dal_slot_index_repr.t -> bool

is_attested slot_attestation ~index returns true if the slot_attestation commits that the slot at index is available.

val commit : t -> Dal_slot_index_repr.t -> t

commit slot_attestation index commits into slot_attestation that the slot index is available.

val occupied_size_in_bits : t -> int

occupied_size_in_bits slot_attestation returns the size in bits of an attestation.

val expected_size_in_bits : max_index:Dal_slot_index_repr.t -> int

expected_size_in_bits ~max_index returns the expected size (in bits) of an attestation considering the maximum index for a slot is max_index.

val number_of_attested_slots : t -> int

number_of_attested_slots slot_attestation returns the number of attested slots in an attestation.

type shard_index = int

A shard_index aims to be a positive number.

module Accountability : sig ... end

This module is used to record the shard attestations.