libp2p / libp2p/specs

Multiplexing: Stream prioritization

Open
#211 5 comments 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
1.8k
Forks
320
Avg merge
11d 15h
Merged PRs (30d)
1

Description

One of the requirements to use libp2p for Tendermint's peer to peer level is to support prioritized mulitplexed channels.

Tendermint's p2p layer currently provides this functionality. This is used to ensure vote carrying messages, block part carrying messages and peer consensus state queries and responses have priority over other messages like transaction gossip.

The desired api is that a subroutine of the consensus system like Tendermint reactors should be able to request a channel from libp2p with desired priority level.

A more advanced API would allow a subroutine to request channels with even more application specific semantics like datagram semantics, datagram + error correcting code semantics or set reconciliation semantics..

Chains like Solana and Harmony are experimenting with these kind of channels in the p2p layer.

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 existing Tendermint p2p prioritization referenced in the issue and the requirements for libp2p's peer-to-peer layer. Define the prioritized-channel API and determine whether the advanced datagram, error-correction, and set-reconciliation semantics belong in scope. Done means the requirements and API are specified clearly enough for implementation.

Written by the indexing model from the issue text.

Assessment

Domain
distributed-systems, networking
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.