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

WebRTC signaling server support #408

Closed
oskarth opened this issue Oct 19, 2020 · 5 comments
Closed

WebRTC signaling server support #408

oskarth opened this issue Oct 19, 2020 · 5 comments

Comments

@oskarth
Copy link
Contributor

oskarth commented Oct 19, 2020

Problem

For Waku v2 nodes to talk to each other in a web browser, they need to be able to discover each other. This requires a WebRTC signaling server. This would enable use cases such as live audio and video chat.

The current PoC (https://github.com/vacp2p/waku-web-chat/) is using a basic NodeJS signaling server https://github.com/libp2p/js-libp2p-webrtc-star

It'd be useful to have a native Nim implementation, especially since stability in resource restricted environments is useful here.

I believe this does not require implementing the full WebRTC spec, since it is more about allowing these browser nodes to discover each other.

Acceptance criteria

  • WebRTC signaling server support
  • Can use to support e.g. Waku Web browser
  • Works in a deployed and secure environment
  • Ideally better stability than existing NodeJS version
@oskarth
Copy link
Contributor Author

oskarth commented Oct 19, 2020

It might also be useful to provide STUN and TURN capability

@dryajov
Copy link
Contributor

dryajov commented Oct 21, 2020

It's worth noting that the current WebRTC implementation/setup in js-libp2p relies on an old setup which predates the existence of Relays and Rendezvous services. Relays are a sort of STUN/TURN service that any capable node can advertise and it's used just as any other transport and address pair. Rendezvous nodes can advertise any type of service, including relays, which allows seamless transport and runtime interoperability.

@Menduist
Copy link
Contributor

Menduist commented Mar 2, 2022

This will not be added to nim-libp2p, because it's getting deprecated from libp2p anyway

As mentionned by @dryajov, browsers will be able to use Relay over WS to negotiate their webrtc connection.
Relay are WiP: #670

Rendezvous is a discovery mechanism that it's on our roadmap ATM, but any discovery system can be used instead

@Menduist Menduist closed this as completed Mar 2, 2022
@mxinden
Copy link

mxinden commented Mar 2, 2022

In addition to the above, I also want to reference libp2p/specs#220 here, tracking the WebRTC project on the libp2p project level.

@Menduist
Copy link
Contributor

Menduist commented Mar 2, 2022

Thanks, I was actually looking for this issue earlier and couldn't find it!

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

No branches or pull requests

4 participants