Multiplexing: Stream prioritization
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
- 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 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