Multiple questions and datapoints on PubSub (FloodSub, Gossipsub, gerbil-simsub)
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.
- Are gossipsub and meshsub the same thing? Is gossipsub the official name?
- Who is working on the Go implementation of gossipsub? Is is @vyzo only right now?
- Where can I find documentation on gossipsub?
- Did I understand correctly that gossipsub is a pubsub MVP? What is the pubsub roadmap after gossipsub has been implemented?
- How mature is gossipsub? Would it be fair to say it is still alpha? What is the target release date for gossipsub?
- How does gossipsub scale with number of users? How well would it handle, say, 10000 users on the same topic?
- Is there a public gossipsub testnet we can play with?
- Where does the gossipsub design come from? Is it "home-rolled", based on a specific academic paper, etc.?
- Would it be fair to say that pubsub research has settled on the current gossipsub design?
- 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.
- 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?
- Does gossipsub build upon floodsub? Specifically are the
IHAVEmessages flooded? - Is the gossipsub simulation for a single topic?
- Do you know of any projects that have experimented/tested the existing gossipsub codebase?
- What is the status of gossipsub in js-libp2p?
- Is it possible to wrap the Go implementation with Python bindings? Would it be feasible to use XTP for that?
- 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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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