From cb920116bd7bc738e6b2df081e6bf76253083b33 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Fri, 20 May 2022 17:24:29 +0200 Subject: [PATCH 1/2] ROADMAP.md: Add isolated item for WebRTC - Adds an _evolve_ section roadmap item for WebRTC. - Removes mention of WebRTC from other items to not double track. --- ROADMAP.md | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 6f803ddf0..e61559657 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -21,7 +21,8 @@ third-party ownership of data. - [๐Ÿค– libp2p as a WASM library](#๐Ÿค–-libp2p-as-a-wasm-library) - [Evolve](#evolve) - [๐Ÿ•ธ Unprecedented global connectivity](#๐Ÿ•ธ-unprecedented-global-connectivity) - - [โฑ Full Observability](#โฑ-full-observability) + - [WebRTC](#webrtc) + - [โฑ Full Observability](#-full-observability) - [๐Ÿงช Automated compatibility testing](#๐Ÿงช-automated-compatibility-testing) - [๐Ÿค Low latency, efficient connection handshake](#๐Ÿค-low-latency-efficient-connection-handshake) - [๐Ÿ›ฃ๏ธ Peer Routing Records](#๐Ÿ›ฃ๏ธ-peer-routing-records) @@ -238,8 +239,6 @@ Mechanisms we wish to add include: - Project Flare stack (via *Circuit Relay v2*, *Direct Connection Upgrade through Relay*, *AutoNAT*, *Stream Migration*, ...) -- WebRTC - **Why?** Good connectivity is the bread-and-butter of libp2p. Focusing on solving these issues will bring more stability and robustness to the rest of the system. @@ -251,8 +250,6 @@ rest of the system. - [NAT traversal tracking issue](https://github.com/libp2p/specs/issues/312). -- [WebRTC tracking issue](https://github.com/libp2p/specs/issues/220) - ### โฑ Full Observability **What?** libp2p should expose a wide set of metrics, making it easy to @@ -290,6 +287,25 @@ the [libp2p test-plans repository]. - [First proof of concept](https://github.com/libp2p/test-plans/pull/20) +### WebRTC + +**Status**: In progress + +**What?** WebRTC is a transport protocol supported by all major browsers. Those +browsers allow the establishment of connections to remote endpoints that don't +have a TLS certificate signed by a trusted certificate authority. In addition +WebRTC includes hole punching capabilities. + +**Why?** In most p2p networks the majority of nodes does not have a signed TLS +certificate. With WebRTC browsers will thus be able to connect to these +previously unreachable nodes. In addition, being able to hole punch allows +browsers to connect to nodes behind firewalls and NATs e.g. other browsers. + +**Links:** + +- Tracking issue https://github.com/libp2p/specs/issues/220 +- Specification draft https://github.com/libp2p/specs/pull/412 + ### ๐Ÿค Low latency, efficient connection handshake **High priority for: IPFS** @@ -472,9 +488,6 @@ popular frontend tooling (webpack, parcel, etc.). Developers should be able to cherry-pick the features to incorporate in their bundle, and tree-shaking should produce good results. -In terms of transports, hardening our WebRTC support and enabling it by -default will bring a huge boost to general browser connectivity. - Targeting the [WASM runtime](#libp2p-as-a-wasm-library) deserves a special mention, as we're likely to see more user interest in this area. Finally, we should continue supporting the From df4fb0cc85f6f30079b4c5c0c72a8b354ead2a20 Mon Sep 17 00:00:00 2001 From: Max Inden Date: Mon, 23 May 2022 15:15:22 +0200 Subject: [PATCH 2/2] ROADMAP.md: Reference WebTransport protocol --- ROADMAP.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index e61559657..fb3986669 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -296,10 +296,12 @@ browsers allow the establishment of connections to remote endpoints that don't have a TLS certificate signed by a trusted certificate authority. In addition WebRTC includes hole punching capabilities. -**Why?** In most p2p networks the majority of nodes does not have a signed TLS +**Why?** In most p2p networks the majority of nodes do not have a signed TLS certificate. With WebRTC browsers will thus be able to connect to these previously unreachable nodes. In addition, being able to hole punch allows -browsers to connect to nodes behind firewalls and NATs e.g. other browsers. +browsers to connect to nodes behind firewalls and NATs e.g. other browsers. Note +that the former, namely connecting without trusted TLS certificate, can as well +be achieved with the [WebTransport](#โœˆ๏ธ-webtransport) protocol. **Links:**