Module P2p_tac.Make
Functor building an implementation of TAC given a Node_id
, Node
, and gossip View
.
Parameters
Node_id : P2p.S.NODE_ID
Node : P2p.S.NODE with type nid := Node_id.t
View : P2p.S.VIEW with type nid := Node_id.t and type node := Node.t
Config : S.CONFIG
Signature
val initiate : view:view -> xview:view -> me:node -> view_len:int -> xchg_len:int -> node option * view * view
initiate ~view ~xview ~me ~xchg_len ?distance
initiates 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 -> view
respond ~view ~xview ~recvd ~src ~me ~xchg_len
responds 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 -> view
merge ~view ~view_len ~sent ~recvd ~xchg_len ~me
merges 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