Skip to content

Commit

Permalink
roadmap: rewrite the section about efficient handshakes (#461)
Browse files Browse the repository at this point in the history
* roadmap: rewrite the section about efficient handshakes

* fix typos

Co-authored-by: Max Inden <[email protected]>
Co-authored-by: Prithvi Shahi <[email protected]>

Co-authored-by: Max Inden <[email protected]>
Co-authored-by: Prithvi Shahi <[email protected]>
  • Loading branch information
3 people authored Oct 12, 2022
1 parent 47da09e commit 2e4c260
Showing 1 changed file with 10 additions and 12 deletions.
22 changes: 10 additions & 12 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -321,21 +321,19 @@ be achieved with the [WebTransport](#✈️-webtransport) protocol.
**High priority for: IPFS**

**What?** Establishing a connection and performing the initial handshake
should be as cheap and fast as possible. Supporting things like
*selective* stream opening, *preemption*, *speculative* negotiation,
*upfront* negotiation, protocol table *pinning*, etc. may enable us to
achieve lower latencies when establishing connections, and even the
0-RTT holy grail in some cases. These features are being discussed in
the *Protocol Select* protocol design.

**Why?** Multistream 1.0 is chatty and naïve. Streams are essential to
libp2p, and negotiating them is currently inefficient in a number of
scenarios. Also, bootstrapping a multiplexed connection is currently
guesswork (we test protocols one by one, incurring in significant
ping-pong).
should be as cheap and fast as possible. On TCP, the current libp2p
handshake spends one round-trip negotiating the security protocol, and
another round-trip negotiating the stream multiplexer.
By using advanced features of the handshake protocol, we might even be
able to reach the holy grail of a 0-RTT handshake in some cases.

**Why?** Applications rely on quick connection establishment. libp2p
shouldn't make them wait for any longer than absolutely necessary.

**Links:**

- [Security protocol in multiaddr](https://github.com/libp2p/specs/pull/353)
- [Muxer selection in security handshake](https://github.com/libp2p/specs/pull/446)
- [Protocol Select specification](https://github.com/libp2p/specs/pull/349)

### 🛣️ Peer Routing Records
Expand Down

0 comments on commit 2e4c260

Please sign in to comment.