package tezos-protocol-015-PtLimaPt
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 sill 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 Header : sig ... end
module Index : sig ... end
An `Index.t` is a possible value for a slot index. We assume this value to be a positive 8-bit integer. Note that this is a hard constraint, which is independent of protocol constants. If a choice is ever made to increase the size of available slots in the protocol, we also need to change this module to accommodate for higher values.
For Layer-1, a slot is described by the level at which it is published, the slot's index (in the list of slots), and the slot's header (KATE commitment hash).
type slot = t
type slot_index = Index.t
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.
val encoding : t Tezos_protocol_environment_015_PtLimaPt.Data_encoding.t
The encoding ensures the slot is always a non-negative number.
val pp : Tezos_protocol_environment_015_PtLimaPt.Format.formatter -> t -> unit
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 Slots_history : sig ... end
This module provides an abstract data structure (type t
) that represents a skip list used to store successive DAL slots confirmed 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.