Earlier quoted context omitted.
Could you elaborate?
Want to p2p video call? Here run this script. We don't really use our Browsers like terminals to dynamically run user code. It would be like a different timeline where a programming console is not a 'dev' feature and anyone is equal at using code. If our computers become smart like AI then all friction for programming could be erased. It's hard to elaborate on a world where bookmarklets and user scripting becomes a n…
For some people (behind CG-NAT), it may just not be possible to get an inbound port at all, so there may be two nodes that cannot directly communicate in the network.
The traditional solution is some kind of relay (see: TURN, skype's supernodes).
As far as I know, and maybe somebody can point me in the right direction, there is no technology available for a webrtc overlay mesh network where some nodes can relay for other nodes. I know webtorrent exists, so it should be possible.
You can see evidence of this problem in this project's README:
> When a direct connection cannot be established, it might be help to use a TURN server. The peercalls.com instance is configured to use a TURN server and it can be used for testing. However, the server bandwidth there is not unlimited.
What's needed, IMO, and please HN tell me why I'm wrong -- is a browser-to-browser mesh overlay system.
I would love to see an array of nodes (across varying levels of NAT) saturate their connections by all relaying to each other as a decentralized stress test that reports real-world p2p bandwidth between providers.
--
Btw, Tailscale has an excellent post on this topic: https://tailscale.com/blog/how-nat-traversal-works