libp2p / libp2p/py-libp2p

Add support for FloodSub publishing in py-libp2p

Open
#941 2 comments 0 reactions 0 assignees View on GitHub

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:

FloodSub Spec

Example implementations:

go-libp2p FloodSub

js-libp2p FloodSub

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

Open the contributing guide

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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.