-
Notifications
You must be signed in to change notification settings - Fork 54
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
WebRTC transport support #698
Comments
Note that webrtc direct will likely not be promoted to the general libp2p WebRTC protocol, given that it requires a previous WebSocket connection to exchange the SDP. The goal of the upcoming design (libp2p/specs#220) is to not require a previous exchange. Happy to expand on this in case you are planning on working on this any time soon. |
We dig a bit on the SCTP part with @Menduist lately, here what we found:
As for the full webrtc stack, only two were satisfying, the google one in C++ and the pion one in Go. I'm not sure if we can use those directly though. |
A quick overview of what was done since last update.
Some DataChannel relevant links:
|
Issue to track what's needed to support the WebRTC transport (aka libp2p-webrtc-direct)
Transport protocols
The WebRTC stack:
My understanding is that we only need DataChannel for the transport to work properly.
UDP: already implemented in chronos
DTLS: BearSSL doesn't implement it yet. Track progress here. After it's done (or maybe we can hack it together), chronos implementation should be relatively trivial (~300 LoC)
SCTP over DTLS: need a user-space library (linux has a native implem of SCTP over IP or UDP, not over DTLS). Complexity: probably similar to Quic
DataChannel: Should be pretty straightforward (~200 LoC)
Overall, probably >3 months of work.
Repo: https:/status-im/nim-webrtc
The text was updated successfully, but these errors were encountered: