Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enabling WebRTC Transport in Browser #153

Open
3 tasks
lidel opened this issue Oct 8, 2019 · 4 comments
Open
3 tasks

Enabling WebRTC Transport in Browser #153

lidel opened this issue Oct 8, 2019 · 4 comments
Labels

Comments

@lidel
Copy link
Member

lidel commented Oct 8, 2019

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

  • 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
  • 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

Ongoing IPFS Work

External Work

References

@lidel lidel added the epic label Oct 8, 2019
@mitra42
Copy link

mitra42 commented Oct 9, 2019

Maybe I missed it, but did you fix the problems that made webRTC not work before - if I remember correctly (and its possible I don't) it was a problem with JS-IPFS needing lots of connections and webRTC having very high per-connection overhead.

@lidel
Copy link
Member Author

lidel commented Oct 10, 2019

I believe it should be partially addressed: js-ipfs added support for libp2p's ConnectionManager, which enables us to set limits on the number of connections maintained by js-ipfs. AFAIK we are still lacking primitives for controlling the number of connections per transport.

@backkem
Copy link

backkem commented Dec 29, 2019

Why do you need getRemoteCertificates? Can't PeerConnection handle both stream muxing and encryption:

  • stream muxing: Just open multiple Data Channels.
  • encryption: Everything is sent over DTLS. The certificates are inherently verified by the signaling.
    • Is there a need to manually verify? You could do this against the fingerprint in the SessionDescription.
    • Or is there actually a need to extract the remote certificate? Knowing the the security is dealt with end-to-end by WebRTC already.

@lidel
Copy link
Member Author

lidel commented Mar 17, 2023

Work towards enabling WebRTC transport in Kubo is planned/tracked in ipfs/kubo#9724

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants