Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add implementations and definitions of floodsub and gossipsub #68

Closed
wants to merge 2 commits into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions pubsub/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ You can find information about the PubSub research and notes in the following re
- https://github.com/libp2p/research-pubsub
- https://github.com/libp2p/pubsub-notes

Floodsub is a preliminary version of pubsub, and involves a host (a peer that can send and receive messages) flooding or broadcasting a message to all peers in the network, while gossipsub is a later version that involves broadcasting a message to a list of peers, and receiving messages of a subscribed topic from a list of peers. Implementations are listed below.

## The RPC

All communication between peers happens in the form of exchanging protobuf RPC
Expand Down Expand Up @@ -167,3 +169,12 @@ Web Of Trust publishing. Messages are encrypted with some certificate or
certificate chain shared amongst trusted peers. (Spec writer's note: this is the
least clearly defined option and my description here may be wildly incorrect,
needs checking).

## Implementations

Implementations of pubsub as floodsub and gossipsub include:

- [go-libp2p-floodsub](https://github.com/libp2p/go-floodsub/); also see [this issue](https://github.com/libp2p/go-floodsub/issues/77) for context; and [this PR](https://github.com/libp2p/go-floodsub/pull/67) for gossipsub;
- [gerbil-gossipsub](https://github.com/vyzo/gerbil-simsub): the first implementation of gossipsub;
- [rust-libp2p-floodsub](https://github.com/libp2p/rust-libp2p/tree/master/floodsub); research and work is in progress on gossipsub by @jamesray1 with Drops of Diamond; and
- [js-libp2p-floodsub](http://github.com/libp2p/js-libp2p-floodsub).