GossipSub

GossipSub

Messages and block headers alongside the message references are propagated using the libp2p GossipSub router. In order to guarantee interoperability between different implementations, all filecoin full nodes must implement and use this protocol. All pubsub messages are authenticated and must be syntactically validated before being propagated further.

GossipSub is a gossip-based pubsub protocol that is utilising two types of links to propagate messages: i) mesh links that carry full messages in an eager-push (i.e., proactive send) manner and ii) gossip-links that carry message identifiers only and realise a lazy-pull (i.e., reactive request) propagation model. Mesh links form a global mesh-connected structure, where, once messages are received they are forwarded in full to mesh-connected nodes, realizing an “eager-push” model. Instead, gossip-links are utilized periodically to complement the mesh structure. During gossip propagation, only message headers are sent to a selected group of nodes in order to inform them of messages that they might not have received before. In this case, nodes ask for the full message, hence, realizing a reactive request, or “lazy pull” model.

GossipSub includes a number of security extensions and mitigation strategies that make the protocol robust against attacks. Please refer to the protocol’s specification for details on GossipSub’s design, implementation and parameter settings, or to the technical report for the design rationale and a more detailed evaluation of the protocol.