Module P2p_poldercast
PolderCast: P2P Topic-based Pub/Sub
This is an OCaml implementation of PolderCast, a P2P topic-based pub/sub protocol described in the paper PolderCast: Fast, Robust, and Scalable Architecture for P2P Topic-Based Pub/Sub
It relies on three different gossip protocols:
- Random Peer Sampling, to find random nodes in the network. See the
P2p_cyclon
module. - Clustering, to find nodes with overlapping subscriptions. See the
P2p_vicinity
module. - Dissemination, for the dissemination of messages within a topic. See the
P2p_ringcast
module.
Privacy
PolderCast, as specified in the paper, employs VICINITY for clustering, and transmits full node subscription profiles in the clear. See BLIP for a privacy mechanism that transmits subscriptions as randomized Bloom filters instead, and BFPSI, a Bloom filter-based Private Set Intersection protocol to determine common subscriptions of two nodes.
module Make : functor (Node_id : P2p.S.NODE_ID) -> functor (Group_id : P2p.S.GROUP_ID) -> functor (Node : P2p.S.NODE with type nid := Node_id.t) -> functor (Group : P2p.S.GROUP with type gid := Group_id.t) -> functor (View : P2p.S.VIEW with type nid := Node_id.t and type node := Node.t) -> functor (Msg_id : P2p.S.MSG_ID) -> functor (Pub : P2p.S.GOSSIP_DISSEM with type nid := Node_id.t and type node := Node.t and type view := View.t and type mid := Msg_id.t) -> S.PUBSUB with type nid := Node_id.t and type node := Node.t and type view := View.t and type mid := Msg_id.t and type gid := Group_id.t and type group := Group.t
PolderCast
module S : sig ... end
Signatures