package octez-libs

  1. Overview
  2. Docs
A package that contains multiple base libraries used by the Octez suite

Install

Dune Dependency

Authors

Maintainers

Sources

tezos-18.0.tar.gz
sha256=dbc3b675aee59c2c574e5d0a771193a2ecfca31e7a5bc5aed66598080596ce1c
sha512=b97ed762b9d24744305c358af0d20f394376b64bfdd758dd4a81775326caf445caa57c4f6445da3dd6468ff492de18e4c14af6f374dfcbb7e4d64b7b720e5e2a

doc/octez-libs.tezos-gossipsub/Tezos_gossipsub/Worker/index.html

Module Tezos_gossipsub.WorkerSource

Parameters

Signature

Sourcetype t

The state of a gossipsub worker.

We (re-)export the GS, Monad and Stream modules.

include Gossipsub_intf.WORKER_CONFIGURATION with module GS = C.GS with module Monad = C.Monad with module Stream = C.Stream
Sourcemodule GS = C.GS

The gossipsub automaton that will be used by the worker.

Sourcemodule Monad = C.Monad

Abstraction of the IO monad used by the worker.

Sourcemodule Stream = C.Stream

A mutable (FIFO) stream of data.

Sourcetype message_with_header = {
  1. message : GS.Message.t;
  2. topic : GS.Topic.t;
  3. message_id : GS.Message_id.t;
}

A message together with a header, that is, a topic and an id. This corresponds to what the spec calls a "full message".

Sourcetype p2p_message =
  1. | Graft of {
    1. topic : GS.Topic.t;
    }
  2. | Prune of {
    1. topic : GS.Topic.t;
    2. px : GS.Peer.t Tezos_base.TzPervasives.Seq.t;
    3. backoff : GS.Span.t;
    }
  3. | IHave of {
    1. topic : GS.Topic.t;
    2. message_ids : GS.Message_id.t list;
    }
  4. | IWant of {
    1. message_ids : GS.Message_id.t list;
    }
  5. | Subscribe of {
    1. topic : GS.Topic.t;
    }
  6. | Unsubscribe of {
    1. topic : GS.Topic.t;
    }
  7. | Message_with_header of message_with_header

The following type defines the different kinds of messages a peer could receive from or sent to the P2P layer.

Sourcetype p2p_input =
  1. | In_message of {
    1. from_peer : GS.Peer.t;
    2. p2p_message : p2p_message;
    }
  2. | New_connection of {
    1. peer : GS.Peer.t;
    2. direct : bool;
    3. outbound : bool;
    }
  3. | Disconnection of {
    1. peer : GS.Peer.t;
    }

The different kinds of input events that could be received from the P2P layer.

Sourcetype app_input =
  1. | Publish_message of message_with_header
  2. | Join of GS.Topic.t
  3. | Leave of GS.Topic.t

The different kinds of input events that could be received from the application layer.

Sourcetype p2p_output =
  1. | Out_message of {
    1. to_peer : GS.Peer.t;
    2. p2p_message : p2p_message;
    }
    (*

    Emit the given p2p_message to the remote peer to_peer.

    *)
  2. | Disconnect of {
    1. peer : GS.Peer.t;
    }
    (*

    End the connection with the peer peer.

    *)
  3. | Kick of {
    1. peer : GS.Peer.t;
    }
    (*

    Kick the peer peer: the peer is disconnected and blacklisted.

    *)
  4. | Connect of {
    1. px : GS.Peer.t;
    2. origin : GS.Peer.t;
    }
    (*

    Inform the p2p_output messages processor that we want to connect to the peer px advertised by some other peer origin.

    *)
  5. | Forget of {
    1. px : GS.Peer.t;
    2. origin : GS.Peer.t;
    }
    (*

    Inform the p2p_output messages processor that we don't want to connect to the peer px advertised by some other peer origin.

    *)

The different kinds of outputs that could be emitted by the worker for the P2P layer.

Sourcetype app_output = message_with_header

The application layer will be advertised about full messages it's interested in.

Sourcetype event = private
  1. | Heartbeat
  2. | P2P_input of p2p_input
  3. | App_input of app_input

The different kinds of events the Gossipsub worker handles.

make ~events_logging rng limits parameters initializes a new Gossipsub automaton with the given arguments. Then, it initializes and returns a worker for it. The events_logging function can be used to define a handler for logging the worker's events.

Sourceval start : GS.Topic.t list -> t -> t

start topics state runs the (not already started) worker whose state is given together with the initial list of topics the caller is interested in.

Sourceval shutdown : t -> unit Monad.t

shutdown state allows stopping the worker whose state is given.

Sourceval app_input : t -> app_input -> unit

app_input state app_input adds the given application input app_input to the worker's input stream.

Sourceval p2p_input : t -> p2p_input -> unit

p2p_input state p2p_input adds the given P2P input p2p_input to the worker's input stream.

Sourceval p2p_output_stream : t -> p2p_output Stream.t

p2p_output_stream t returns the output stream containing data for the P2P layer.

Sourceval app_output_stream : t -> app_output Stream.t

app_output_stream t returns the output stream containing data for the application layer.

Sourceval is_subscribed : t -> GS.Topic.t -> bool

is_subscribed t topic checks whether topic is in the mesh of t.

Sourceval pp_p2p_output : Format.formatter -> p2p_output -> unit

Pretty-printer for values of type p2p_output.

Sourceval pp_app_output : Format.formatter -> app_output -> unit

Pretty-printer for values of type app_output.

OCaml

Innovation. Community. Security.