LiamPowell
3 months ago
> peer-to-peer connection ... without the need for ... any server infrastructure.
iceServers: [{ urls: 'stun:stun.l.google.com:19302' }],
- https://github.com/mistweaverco/bananas/blob/623016aea330e61...It's P2P, but saying there's no server infrastructure is objectively wrong.
eddyg
3 months ago
Anytime I see “P2P”, I assume a STUN server is involved because of the ubiquitous nature of NAT with IPv4. I read such claims as meaning that the tool itself does not require dedicated servers or persistent storage for its core functionality. (And there are plenty of public STUN servers to choose from.)
GorillaMoe
3 months ago
You are completely right, the website has been updated to reflect the correct flow of data.
As other users already stated, we need that to agree on connection details, but once that is done, the flow of your media data like audio, video and text is just between the two parties.
K0nserv
3 months ago
It's a fundamental limitation of P2P that you need NAT hole punching. If you use IPv6 it's truly peer to peer since you can generate ICE host candidates directly.
Also, you don't actually need NAT hole punching if you use fixed ports and port forwarding at the router level.
porridgeraisin
3 months ago
Useful, correct-enough information > objectively pedantically correct information. When people say lack of server infra in the context of a screensharing app, it is plain and obvious they exclude STUN/TURN, especially on HN. Come on now.
LiamPowell
3 months ago
To me "P2P with no servers" implies something like Kademlia that truly require no central servers after bootstrapping, although it is immediately obvious that they don't mean this when there's no details about the protocol presented prominently.
GorillaMoe
3 months ago
Bootstrapping in Kademlia also requires either a server or a Kademlia Node that previously has run the bootstrapping process, so I can't really see the benefit except of having more resilience against DDoS attacks.
LiamPowell
3 months ago
I don't think there's any real benefit to be clear, I just thought that saying P2P and then saying "no servers" implied some fancy new distributed protocol.
GorillaMoe
3 months ago
Oh, thanks for the clarification! And to be frank, you're right on that it was somehow misleading. I hope the current state of the website is more clear on this topic.
porridgeraisin
3 months ago
WebRTC doesn't need it either in principle. The stun server is only to exchange IP addresses for the purpose of hole punching through NATs.
Even in p2p implementations that use kademlia, you need a way to figure out hole punching. In IPFS, while there is a decentralised hole punching method as an alternative to a centralised STUN server, it requires atleast one participant to not be behind a NAT, so for this purpose it's besides the point.
e12e
3 months ago
Might work with coturn or turn-rs, others?
https://github.com/coturn/coturn
https://github.com/mycrl/turn-rs
Maybe there are some projects doing only stun - if that is enough?
GorillaMoe
3 months ago
Will definitely make the servers list configurable via settings in one of the next releases.
e12e
3 months ago
Btw, found this which explains a bit when you need a TURN server: