package tezos-p2p

  1. Overview
  2. Docs

An Answerer.t is a set of callback functions, parameterized by conn_info record. The conn_info records contains values useful for the callback functions to perform their task, and known after the connection is set up.

The callback functions are called when the node receives `P2p_messages.t` messages. The parameters are the values carried by the message, and a request_info record that contains values pertaining to the connection that may change during the life of the connection.

type 'msg conn_info = {
  1. peer_id : Tezos_base.P2p_peer.Id.t;
  2. is_private : bool;
  3. write_advertise : Tezos_base.P2p_point.Id.t list -> (bool, Tezos_error_monad.TzCore.error list) result;
    (*

    write_advertise points must send the message Advertise(points) to the internal peer_id. It must return Ok true if the message has been successfully sent, Ok false if the message has been dropped, or fails with a corresponding error otherwise.

    *)
  4. write_swap_ack : Tezos_base.P2p_point.Id.t -> Tezos_base.P2p_peer.Id.t -> (bool, Tezos_error_monad.TzCore.error list) result;
    (*

    write_swap_ack (p1, p2) must send the message Swap_ack(p1, p2) to the internal peer_id. It must return Ok true if the message has been successfully sent, Ok false if the message has been dropped, or fails with a corresponding error otherwise.

    *)
  5. messages : (int * 'msg) Tezos_stdlib.Lwt_pipe.Maybe_bounded.t;
}
type request_info = {
  1. last_sent_swap_request : (Tezos_base.Time.System.t * Tezos_base.P2p_peer.Id.t) option;
}
type 'msg callback = {
  1. bootstrap : request_info -> (unit, Tezos_error_monad.TzCore.error list) result Lwt.t;
  2. advertise : request_info -> Tezos_base.P2p_point.Id.t list -> unit Lwt.t;
  3. message : request_info -> int -> 'msg -> unit Lwt.t;
  4. swap_request : request_info -> Tezos_base.P2p_point.Id.t -> Tezos_base.P2p_peer.Id.t -> unit Lwt.t;
  5. swap_ack : request_info -> Tezos_base.P2p_point.Id.t -> Tezos_base.P2p_peer.Id.t -> unit Lwt.t;
}
type 'msg t = 'msg conn_info -> 'msg callback