Module P2p_vicinity.Make

Functor building an implementation of Vicinity given a Node_id, Node, and gossip View.

Parameters

Signature

type node
type view
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