Skip to content

Latest commit

 

History

History
38 lines (27 loc) · 2.92 KB

README.md

File metadata and controls

38 lines (27 loc) · 2.92 KB

gossipsub: An extensible baseline pubsub protocol

Gossipsub logo

Gossipsub is an extensible baseline pubsub protocol, based on randomized topic meshes and gossip. It is a general purpose pubsub protocol with moderate amplification factors and good scaling properties. The protocol is designed to be extensible by more specialized routers, which may add protocol messages and gossip in order to provide behaviour optimized for specific application profiles.

If you are new to Gossipsub and/or PubSub in general, we recommend you to first:

Specification

  • gossipsub-v1.0: v1.0 of the gossipsub protocol. This is a revised specification, to use a more normative language. The original v1.0 specification is here, still a good read.
  • gossipsub-v1.1: v1.1 of the gossipsub protocol.
  • gossipsub-v1.2: v1.2 of the gossipsub protocol. This includes the aggregation of the IDONTWANT control messages to the specs.
  • (not in use) episub: a research note on a protocol building on top of gossipsub to implement epidemic broadcast trees.

Implementation status

Legend: ✅ = complete, 🏗 = in progress, ❕ = not started yet

Name v1.0 v1.1 v1.2
go-libp2p-pubsub (Golang)
js-libp2p-gossipsub (JavaScript)
rust-libp2p (Rust)
py-libp2p (Python) 🏗
jvm-libp2p (Java/Kotlin) 🏗
nim-libp2p (Nim) 🏗

Additional tooling: