-
Notifications
You must be signed in to change notification settings - Fork 29
Open
Labels
Description
This issue tracks what needs to happen before we enable WebRTC transport in JS-IPFS by default. It also acts as an entry point to existing resources in other repos.
Current Status
- go-libp2p-webrtc-direct / js-libp2p-webrtc-direct - A libp2p transport that enables browser-to-server, and server-to-server, direct communication over WebRTC without requiring signalling servers (examples)
- caveat: opt-in, point-to-point over http, no browser-browser
Goals
-
Transport that does not require hardcoding centralized signaling server to work and is stable enough to be enabled by default in JS IPFS.
-
RTCDtlsTransport API: getRemoteCertificates could in theory let webrtc handle encryption & stream muxing in the browser. Unfortunately it is not supported by Firefox.. yet.
Historical IPFS Work
- Sunsetting the *-star protocols: It's (beyond) time to sunset the *-star protocols 🌅 libp2p/js-libp2p#385
- Distributed signaling protocol (removes need for ws-star)
-
js-libp2p-webrtc-star - libp2p WebRTC transport that includes a discovery mechanism provided by the signalling-star- caveat: opt-in, JS-only, centralized signaling service is a single point of failure
- modern libp2p specs
- https://github.com/libp2p/specs/blob/master/webrtc/webrtc-direct.md (client-server)
- https://github.com/libp2p/specs/blob/master/webrtc/webrtc.md (client-client)
External Work
- WebRTC in (Service) Workers
- Specs allowing Data channels in Workers: Add support for WebRTC Data Channel in Workers w3c/webrtc-pc#230
- WebRTC WG at W3C looking for DHT/P2P use cases for webrtc-nv: PSA: WebRTC WG at W3C looking for DHT/P2P use cases libp2p/js-libp2p-webrtc-star#177 / Using WebRTC peer-to-peer networks to back Service Workers w3c/webrtc-nv-use-cases#60
- WPT not passing:
transfer-datachannel-service-worker.https.html
https://wpt.fyi/results/webrtc-extensions?label=experimental&label=master&aligned
- Mozilla:
- Chromium:
References
- Stable transports in browser: Stable transports in the browser js-ipfs#1088
- WebRTC and DWeb analysis WebRTC arewedistributedyet/arewedistributedyet#7
- https://w3c.github.io/webrtc-pc/#peer-to-peer-connections
- https://caniuse.com/#search=getRemoteCertificates
gobengo and Xendergo5310, backkem, crockwave, pithuene, tydira and 1 more