Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Document "Early Muxer Negotiation" #213

Closed
4 tasks done
Tracked by #212
p-shahi opened this issue Oct 24, 2022 · 0 comments · Fixed by #274
Closed
4 tasks done
Tracked by #212

Document "Early Muxer Negotiation" #213

p-shahi opened this issue Oct 24, 2022 · 0 comments · Fixed by #274
Assignees
Labels
area:general General content and concepts P0 Critical

Comments

@p-shahi
Copy link
Member

p-shahi commented Oct 24, 2022

An optimization to when and how libp2p selects a muxer is actively underway.
The muxer will be negotiated and selected "early", as a part of the security handshake process (TLS and Noise) during connection establishment.
The Working Draft version of the spec is close to complete and the feature is being implemented in go-libp2p in Q4 2022 and in rust-libp2p sometime in Q2 2023.

Done Criteria

  • Documentation that describes this optimization and the contrasts it to the old status quo (early muxer negotiation & selection vs in later/separate in multistream selection round.)
  • Describes benefits offered (saving RTTs and decreasing TTFB)
  • Describes how it works in TLS (with ALPN) and in Noise (with extension registry)
  • Decide where to add this section; under a new Advanced Concepts section, under general connection establishment section, how to add a reference in stream multiplexing, how to reference in docs for secure channels (TLS and Noise). Relates to add: fundamentals doc on connections #202 and Populate secure communication section: Noise & TLS #19

Why Important

We need to document and highlight the performance optimizations libp2p has specified and implemented.

@p-shahi p-shahi added P1 High area:general General content and concepts labels Oct 24, 2022
@p-shahi p-shahi moved this to Planned in libp2p Product Oct 24, 2022
@p-shahi p-shahi added P0 Critical and removed P1 High labels Oct 24, 2022
@salmad3 salmad3 self-assigned this Oct 26, 2022
@salmad3 salmad3 moved this from Planned to In Progress in libp2p Product Nov 2, 2022
@salmad3 salmad3 pinned this issue Nov 6, 2022
@salmad3 salmad3 added this to go-libp2p Nov 7, 2022
@salmad3 salmad3 moved this to 🏃‍♀️ In Progress in go-libp2p Nov 7, 2022
@salmad3 salmad3 unpinned this issue Nov 23, 2022
@p-shahi p-shahi pinned this issue Dec 5, 2022
@salmad3 salmad3 mentioned this issue Jan 5, 2023
@github-project-automation github-project-automation bot moved this from 🏃‍♀️ In Progress to 🎉 Done in go-libp2p Jan 11, 2023
@github-project-automation github-project-automation bot moved this from In Progress to Done in libp2p Product Jan 11, 2023
@salmad3 salmad3 unpinned this issue Jan 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:general General content and concepts P0 Critical
Projects
Archived in project
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants