package octez-shell-libs

  1. Overview
  2. Docs
Octez shell libraries

Install

Dune Dependency

Authors

Maintainers

Sources

tezos-octez-v20.1.tag.bz2
sha256=ddfb5076eeb0b32ac21c1eed44e8fc86a6743ef18ab23fff02d36e365bb73d61
sha512=d22a827df5146e0aa274df48bc2150b098177ff7e5eab52c6109e867eb0a1f0ec63e6bfbb0e3645a6c2112de3877c91a17df32ccbff301891ce4ba630c997a65

doc/octez-shell-libs.p2p/Tezos_p2p/P2p_message/index.html

Module Tezos_p2p.P2p_messageSource

This module defines the messages of the P2p layers.

P2p messages are parameterized by a generic upper-layer message type 'msg. The P2p layer serializes these 'msg using a 'msg encoding' provided by the client of this lib.

The P2p protocol is simple and can be deduced mostly from the message type. To make the network topology more dynamic, it implements a simple peer swapping mechanism which works as follows.

Peer A sends a message : Swap_request (point, peer) to B. If B is already connected to the peer, the message is ignored. Otherwise B picks a peer peer' at point point' and connect to peer. If successful, it sends a response Swap_ack (point', peer') to A. Upon reception of Swap_ack. B tries to connected to peer'. If successful, it disconnect from peer.

Sourcetype 'msg t =
  1. | Bootstrap
    (*

    Welcome message sent by a peer upon connection

    *)
  2. | Advertise of Tezos_base.TzPervasives.P2p_point.Id.t list
    (*

    Response to a Bootstrap message, contains list of known points

    *)
  3. | Swap_request of Tezos_base.TzPervasives.P2p_point.Id.t * Tezos_base.TzPervasives.P2p_peer.Id.t
    (*

    Propose new peer/point and ask a peer/point to swap with

    *)
  4. | Swap_ack of Tezos_base.TzPervasives.P2p_point.Id.t * Tezos_base.TzPervasives.P2p_peer.Id.t
    (*

    Response to a swap request and propose peer/point to swap with.

    *)
  5. | Message of 'msg
    (*

    Generic upper-layer message

    *)
  6. | Disconnect
    (*

    Ending of connection, unused for now

    *)
Sourceval encoding : 'a Tezos_base.TzPervasives.P2p_params.app_message_encoding list -> 'a t Tezos_base.TzPervasives.Data_encoding.t
OCaml

Innovation. Community. Security.