Module P2p_vicinity.Make
Functor building an implementation of Vicinity given a Node_id, Node, and gossip View.
Parameters
Node_id : P2p.S.NODE_IDNode : P2p.S.NODE with type nid := Node_id.tView : P2p.S.VIEW with type nid := Node_id.t and type node := Node.t
Signature
val initiate : view:view -> xview:view -> me:node -> view_len:int -> xchg_len:int -> node option * view * viewinitiate ~view ~xview ~me ~xchg_len ?distanceinitiates gossip exchange.- parameter ~view
current view
- parameter ~xview
external view from another gossip protocol
- parameter ~me
this node
- parameter ~xchg_len
number of items in gossip exchange
- returns
(Some dst, xchg, view):
- parameter dst
destination node
- parameter xchg
items to send to
dst
- parameter view
updated view of this node
val respond : view:view -> xview:view -> recvd:view -> src:node -> me:node -> view_len:int -> xchg_len:int -> viewrespond ~view ~xview ~recvd ~src ~me ~xchg_lenresponds to a gossip exchange.- parameter ~view
current view
- parameter ~xview
external view from another gossip protocol
- parameter ~recvd
received items
- parameter ~src
source node
- parameter ~me
this node
- parameter ~xchg_len
number of items in gossip exchange
- returns
updated view
val merge : view:view -> xview:view -> sent:view -> recvd:view -> src:node -> me:node -> view_len:int -> xchg_len:int -> viewmerge ~view ~view_len ~sent ~recvd ~xchg_len ~memerges received entries during a gossip exchange.- parameter ~view
current view
- parameter ~view_len
number of items in
view
- parameter ~sent
sent items
- parameter ~recvd
received items
- parameter ~xchg_len
number of items in gossip exchange
- parameter ~me
this node
- returns
updated view