Skip to content

Commit

Permalink
chore(roadmap): move webrtc to done (#549)
Browse files Browse the repository at this point in the history
With #412 and
#497 merged, this roadmap item can be moved
to "done".

Co-authored-by: Prithvi Shahi <[email protected]>
  • Loading branch information
mxinden and p-shahi authored Jun 1, 2023
1 parent 917be26 commit 7321c89
Showing 1 changed file with 23 additions and 22 deletions.
45 changes: 23 additions & 22 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ third-party data ownership.
- [⏱ Full Observability](#-full-observability)
- [🧪 Automated compatibility testing](#-automated-compatibility-testing)
- [Stream Migration Protocol](#stream-migration-protocol)
- [WebRTC](#webrtc)
- [🤖 libp2p as a Wasm library](#-libp2p-as-a-wasm-library)
- [🤝 Low latency, efficient connection handshake](#-low-latency-efficient-connection-handshake)
- [🛣️ Peer Routing Records](#️-peer-routing-records)
Expand All @@ -38,6 +37,7 @@ third-party data ownership.
- [🏹 RPC and other common node communication patterns](#-rpc-and-other-common-node-communication-patterns)
- [Done](#done)
- [🕸 Hole punching on TCP and QUIC](#-hole-punching-on-tcp-and-quic)
- [WebRTC](#webrtc)

## Core Tenets
Before we dive into what libp2p should support and enable, let's outline the core tenets that underpin the project. As maintainers, we commit to ensuring libp2p is:
Expand Down Expand Up @@ -265,27 +265,6 @@ connection to a direct connection.
- Tracking issue https://github.com/libp2p/specs/issues/328
- Specification draft https://github.com/libp2p/specs/pull/406#discussion_r852835671

### 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 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. Note
that the former, namely connecting without trusted TLS certificate, can as well
be achieved with the [WebTransport](#✈️-webtransport) protocol.

**Links:**

- Tracking issue https://github.com/libp2p/specs/issues/220
- Specification draft https://github.com/libp2p/specs/pull/412

### 🤖 libp2p as a Wasm library

**What?** This point encompasses two things:
Expand Down Expand Up @@ -666,3 +645,25 @@ connect to the rest of the libp2p network.
- [webtransport-go](https://github.com/marten-seemann/webtransport-go/)
- [go-libp2p WebTransport](https://github.com/libp2p/go-libp2p/tree/master/p2p/transport/webtransport)
- [js-libp2p WebTransport](https://github.com/libp2p/js-libp2p-webtransport/)

### WebRTC

**Status**: Done

**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 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. Note
that the former, namely connecting without trusted TLS certificate, can as well
be achieved with the [WebTransport](#✈️-webtransport) protocol.

**Links:**

- Tracking issue https://github.com/libp2p/specs/issues/220
- [`/webrtc` specification](./webrtc/webrtc.md)
- [`/webrtc-direct` specification](./webrtc/webrtc-direct.md)

0 comments on commit 7321c89

Please sign in to comment.