Add support for FloodSub publishing in py-libp2p
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 624
- Forks
- 256
- Avg merge
- 1d 34m
- Merged PRs (30d)
- 47
Description
Description
Currently, py-libp2p does not support publishing messages using FloodSub, the most basic pubsub router. FloodSub is a foundational step for pubsub protocols like GossipSub, and enabling it in the Python implementation will make it easier to test interoperability across different libp2p stacks.
Motivation
Motivation:
FloodSub is the simplest pubsub routing algorithm and useful for testing.
Several libp2p language implementations already include FloodSub.
Adding publishing support will allow Python developers to test pubsub workflows without depending solely on GossipSub.
Current Implementation
Requirements:
Implement message publishing for FloodSub.
Ensure compatibility with existing subscriptions and handlers.
Write unit tests to confirm interoperability with other libp2p stacks (e.g., go-libp2p, js-libp2p).
Update documentation/examples to show FloodSub usage.
References:
Example implementations:
Acceptance Criteria:
Able to publish and receive messages via FloodSub in py-libp2p.
Interoperability tests pass with at least one other implementation.
Are you planning to do it yourself in a pull request ?
Maybe
Contributor guide
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 with the FloodSub Spec and py-libp2p's existing subscription and handler paths. Add unit and interoperability tests with go-libp2p or js-libp2p, and update the documentation/examples for FloodSub usage. Done means messages can be published and received via FloodSub, existing subscriptions and handlers remain compatible, and interoperability tests pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100