Mavryk_base.P2p_paramsTypes of the abstract data types (ADT) which parameterize the P2p layer.
Many types used in the P2p layer are parameterized by three type parameters:
'msg: type of messages exchanged between peers'peer_meta: type of the metadata associated with peers (score, etc.)'conn_meta: type of the metadata associated with connectionsThese types are kept abstract from the P2p layer. It can only operate on them via a set of functions packed in a "configuration" record passed by the upper layer (see also P2p and P2p.create).
This module defines the type of these configuration records.
type 'peer_meta peer_meta_config = {peer_meta_encoding : 'peer_meta Data_encoding.t;peer_meta_initial : unit -> 'peer_meta;Constructor
*)score : 'peer_meta -> float;Score of a peer, used for ordering
*)}Metadata for a peer
type 'conn_meta conn_meta_config = {conn_meta_encoding : 'conn_meta Data_encoding.t;conn_meta_value : unit -> 'conn_meta;Constructor
*)private_node : 'conn_meta -> bool;Returns true if peer at the other end of the connection is in private mode
*)}Metadata for a connection.
type 'msg app_message_encoding = | Encoding : {tag : int;title : string;encoding : 'a Data_encoding.t;wrap : 'a -> 'msg;unwrap : 'msg -> 'a option;max_length : int option;} -> 'msg app_message_encodingtype 'msg message_config = {encoding : 'msg app_message_encoding list;Encoding of the messages.
*)chain_name : Distributed_db_version.Name.t;Identifier for this P2p protocol when establishing session.
*)distributed_db_versions : Distributed_db_version.t list;List of versions supported by this P2p protocol.
*)}Application-level messages encoding, and version parameters