-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
add WebRTC transport #1999
add WebRTC transport #1999
Conversation
@ddimaria : It sounds like this was covered in LBL sync but my understanding of the done criteria is:
I don't think the goalposts should be fluctuating from there. Let me know if there is other major areas of variability. |
@BigLep Thanks for following up! This general criteria has been my understanding as well, though the subjectivity has been a blocker in being predictive in any meaningful way. A more ideal scenario for nailing down time estimates would be to have a concrete list of items remaining, though it's OK to progress as we have been knowing that we can't make accurate estimates of "done". |
seems to work just fine without
@GlenDC can you please allow edits from maintainers? I cannot push to this branch https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork. Trying to update the multiaddr dep to use the correct multiaddr code. |
As far as I can see that check is enabled, so not sure why you can’t access it… To be sure @MarcoPolo I've also added you as a collaborator to my fork (you still need to accept it). But AFAIK you shouldn't need this. Only thing that might be is that you are not a maintainer of this Repo, but I guess from your reaction that you are, so in that case, no clue... Either way with the collaborator rights to my fork it should also work. |
passing unit and integration tests for webrtc
I'm taking over this PR. |
closed in favor of #2337 |
Successor of original PR: #1655 (hand over of developer)
This PR implements the WebRTC transport spec according to https://github.com/libp2p/specs/tree/cfcf0230b2f5f11ed6dd060f97305faa973abed2/webrtc.
Benchmarks
Benchmarks of how the WebRTC transport compares in terms of resource usage and continuous R/W throughput can be found at https://github.com/libp2p/libp2p-go-webrtc-benchmarks#2-benchmarks (submitted in function of this PR)
Comparison Quic Vs WebRTC transport:
Interoperability
Compatibility of go-libp2p's WebRTC transport with the Rust and JS implementations are to be validated using the libp2p-testplans:
WebRTC Interoperability Matrix
Note that
noise
is used for the encryption andyamux
for the multiplexer, and this for all of the tests above.How to run the WebRTC interoperability tests
Executables used for interop tests below:
libp2p-js
while testing I added a PR improve error logging for JS/TS ping test test-plans#119 to help with thatFirst make sure to have a redis server running locally, as this is what used in the new interop tests, e.g. you can do this using the command:
Wit that in mind there are following
(dial > listen)
cases to test:PR-Ready Checklist
Checklist to be completed before we can promote it from Draft to a PR ready for review:
go test -v ./...
make sureTestWebrtcTransport
can be ran (might require contribution to Pion)TestWebrtcTransport
is disabled on purpose, see comments in code on why this is