Tezos_p2p.P2p_answererAn 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 = {peer_id : Tezos_base.TzPervasives.P2p_peer.Id.t;is_private : bool;write_advertise : Tezos_base.TzPervasives.P2p_point.Id.t list ->
bool Tezos_base.TzPervasives.tzresult;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.
write_swap_ack : Tezos_base.TzPervasives.P2p_point.Id.t ->
Tezos_base.TzPervasives.P2p_peer.Id.t ->
bool Tezos_base.TzPervasives.tzresult;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.
messages : (int * 'msg) Tezos_stdlib.Lwt_pipe.Maybe_bounded.t;}type request_info = {last_sent_swap_request : (Tezos_base.TzPervasives.Time.System.t
* Tezos_base.TzPervasives.P2p_peer.Id.t)
option;}type 'msg callback = {bootstrap : request_info -> unit Tezos_base.TzPervasives.tzresult Lwt.t;advertise : request_info ->
Tezos_base.TzPervasives.P2p_point.Id.t list ->
unit Lwt.t;message : request_info -> int -> 'msg -> unit Lwt.t;swap_request : request_info ->
Tezos_base.TzPervasives.P2p_point.Id.t ->
Tezos_base.TzPervasives.P2p_peer.Id.t ->
unit Lwt.t;swap_ack : request_info ->
Tezos_base.TzPervasives.P2p_point.Id.t ->
Tezos_base.TzPervasives.P2p_peer.Id.t ->
unit Lwt.t;}