libp2p / libp2p/notes

Multiple questions and datapoints on PubSub (FloodSub, Gossipsub, gerbil-simsub)

Open
#19 17 comments 16 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
38
Forks
2
PR merge metrics
No merged PRs in 30d

Description

Hi there :) This is Justin from Ethereum. I am doing some due diligence on libp2p's pubsub to see if we can potentially use it for the sharding (Ethereum 2.0) gossip feeds.

  1. Are gossipsub and meshsub the same thing? Is gossipsub the official name?
  2. Who is working on the Go implementation of gossipsub? Is is @vyzo only right now?
  3. Where can I find documentation on gossipsub?
  4. Did I understand correctly that gossipsub is a pubsub MVP? What is the pubsub roadmap after gossipsub has been implemented?
  5. How mature is gossipsub? Would it be fair to say it is still alpha? What is the target release date for gossipsub?
  6. How does gossipsub scale with number of users? How well would it handle, say, 10000 users on the same topic?
  7. Is there a public gossipsub testnet we can play with?
  8. Where does the gossipsub design come from? Is it "home-rolled", based on a specific academic paper, etc.?
  9. Would it be fair to say that pubsub research has settled on the current gossipsub design?
  10. What are the high-level properties of gossipsub? Can I confirm that the design is "best effort" in that it provides no guarantees around delivery, ordering or persistence of messages.
  11. What is the persistence layer of messages? In this comment there is a mention of a "time t" after which messages are expired. Where can I find this parameter t in the code?
  12. Does gossipsub build upon floodsub? Specifically are the IHAVE messages flooded?
  13. Is the gossipsub simulation for a single topic?
  14. Do you know of any projects that have experimented/tested the existing gossipsub codebase?
  15. What is the status of gossipsub in js-libp2p?
  16. Is it possible to wrap the Go implementation with Python bindings? Would it be feasible to use XTP for that?
  17. Is the recurring research call still active?

Various links (to help me for future reference)

Gossipsub notes
https://gist.github.com/vyzo/3e42cd92becd9972e007c8bffb1ea298

Gossipsub simulator
https://github.com/vyzo/gerbil-simsub

Gossipsub pull request
https://github.com/libp2p/go-floodsub/pull/67

Reliable and/or Persistent Pubsub
https://github.com/libp2p/go-floodsub/issues/42

PulsarCast M.Sc Thesis - Scaling libp2p PubSub
https://github.com/ipfs/notes/issues/266

Take a look at pubsub on IPFS
https://ipfs.io/blog/25-pubsub

Pubsub research
https://github.com/libp2p/research-pubsub

XL peer-to-peer PubSub systems (pubsub survey)
http://dl.acm.org/citation.cfm?id=2543583

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the linked gossipsub pull request #67, research-pubsub project, gerbil-simsub simulator, and related issue #42. Organize the 17 questions into an up-to-date reference covering implementation status, design, scaling, bindings, and documentation; done means the answers and supporting links are recorded.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, javascript, python
Domain
distributed-systems, documentation, networking
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.