package tezos-dal-node-lib

  1. Overview
  2. Docs
Tezos: `tezos-dal-node` library

Install

Dune Dependency

Authors

Maintainers

Sources

tezos-18.1.tar.gz
sha256=aa2f5bc99cc4ca2217c52a1af2a2cdfd3b383208cb859ca2e79ca0903396ca1d
sha512=d68bb3eb615e3dcccc845fddfc9901c95b3c6dc8e105e39522ce97637b1308a7fa7aa1d271351d5933febd7476b2819e1694f31198f1f0919681f1f9cc97cb3a

doc/tezos-dal-node-lib.gossipsub/Tezos_dal_node_lib_gossipsub/Gs_interface/index.html

Module Tezos_dal_node_lib_gossipsub.Gs_interfaceSource

This module defines the relevant data structures to instantiate the gossipsub worker.

Sourcetype topic = {
  1. slot_index : int;
  2. pkh : Tezos_crypto.Signature.Public_key_hash.t;
}

A topic is defined by a public key hash of an attestor and a slot index.

  • A slot producer tracks the topic associated to a given slot index for all the public key-hashes;
  • The attestor tracks its own public key hash for all the slot indices;
  • A slot consumer tracks topics associated to a given slot index and enough public key-hashes so that the number of covered shards is enough to recover the slot data.
Sourcetype message_id = {
  1. commitment : Tezos_crypto_dal.Cryptobox.Commitment.t;
  2. level : int32;
  3. slot_index : int;
  4. shard_index : int;
  5. pkh : Tezos_crypto.Signature.Public_key_hash.t;
}

A message id uniquely identifies a share whose commitment is included in an L1 block. It is defined by a tuple containing the commitment, the level at which the commitment is successfully included in an L1 block, the corresponding slot index, the shard index, as well as the public key hash pkh of the delegate expected to attest it.

Note that pkh is used to be able to directly infer a topic from a message id. It could be retrieved from L1 using the level. But, we decide to provide it directly in this first version.

A message is a portion of an encoded slot's data. It's basically a shard without the corresponding index. The proof that the corresponding shard belong to the commitment (part of the message id) is also part of the message.

From the Gossipsub point of view, a peer is given by a cryptographic node identity P2p_peer.Id.t. It's up to the caller to associate the P2p_peer.Id.t to a P2p_point.Id.t if needed (to e.g. implement peers exchange, which needs addresses and ports instead of cryptographic identities).

Encodings for various types above.

Sourceval topic_encoding : topic Tezos_base.TzPervasives.Data_encoding.t
Sourceval message_id_encoding : message_id Tezos_base.TzPervasives.Data_encoding.t
Sourceval message_encoding : message Tezos_base.TzPervasives.Data_encoding.t
Sourceval span_encoding : Span.t Tezos_base.TzPervasives.Data_encoding.t
Sourcemodule Monad : sig ... end
Sourcemodule Validate_message_hook : sig ... end
OCaml

Innovation. Community. Security.