package tezos-protocol-014-PtKathma

  1. Overview
  2. Docs
On This Page
  1. Overview
Legend:
Library
Module
Module type
Parameter
Class
Class type

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.

type header = Header.t
type t = private {
  1. level : Raw_level_repr.t;
  2. index : Index.t;
  3. header : header;
}
type slot = t

make ~level ~index ~header builds a slot.

val make : level:Raw_level_repr.t -> index:Index.t -> header:header -> t

The encoding ensures the slot is always a non-negative number.

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.

OCaml

Innovation. Community. Security.