Closed
Description
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.
- Working Draft of the spec: Muxer selection in security handshake specs#446
- go-libp2p TLS early negotiation: Muxer selection in TLS handshake go-libp2p#1751 and Noise: noise: use Noise Extension to negotiate the muxer during the handshake go-libp2p#1813
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.
Metadata
Metadata
Assignees
Type
Projects
Status
🎉 Done
Status
Done