Module Mavryk_raw_protocol_alpha.Dal_slot_repr

type parameters = Mavryk_protocol_environment_alpha.Dal.parameters = {
  1. redundancy_factor : int;
  2. page_size : int;
  3. slot_size : int;
  4. number_of_shards : int;
}

To verify the proof of a page membership in its associated slot, the Cryptobox module needs the following Dal parameters. These are part of the protocol's parameters. See Dal.Config.default.

An encoding for values of type parameters.

Slot header representation for the data-availability layer.

Overview

For the data-availability layer, the L1 provides a list of slots at every level. A slot is a blob of data that can be interpreted by the users of the data-availability layer (such as SCORU).

The purpose of the data-availability layer is to increase the bandwidth of the layer 1 thanks to the distribution of "slots". A slot is never posted directly onto the layer 1 blocks but on the data-availability layer. The producer of a slot still has to post a slot header onto the layer 1. A slot header is an abstract datatype certifying that the corresponding slot has some maximum size (provided by the layer 1). In other words, the whole data contained into the slot cannot exceed some fixed size. This is to avoid attacks where a slot header would be posted onto the layer 1 block, declared available by the protocol, but actually the slot size would be too large to be refuted a posteriori.

The slot header can also be used to prove that a blob of data is a portion of the initial slot.

module Commitment : sig ... end
module Commitment_proof : sig ... end
module Header : sig ... end
module Page : sig ... end

A DAL slot is decomposed to a successive list of pages with fixed content size. The size is chosen so that it's possible to inject a page in a Tezos L1 operation if needed during the proof phase of a refutation game.

module Slot_market : sig ... end

Only one slot header is accepted per slot index. If two slots headers are included into a block, the second one will fail.

module History : sig ... end

This module provides an abstract data structure (type History.t) that represents a skip list used to store successive DAL slots confirmed/attested on L1. There is one slot per cell in the skip list. The slots are sorted in increasing order by level, and by slot index, for the slots of the same level.