It’s cool to see folks using WebTorrent tracker servers to bootstrap p2p connections for other apps. I’ve also seen some native apps doing this with the mainline BitTorrent DHT.
1. Why is video conferencing in 2022 still such a disaster?
2. Why is it still so freakin’ hard for me to send a file of arbitrary size to someone?
I’m really getting optimistic about #2. But I worry it’ll be limited to nerds or attacked by established parties using the usual means (like making it impossible on popular devices in the name of anti piracy)
For #2, see https://wormhole.app which is built with the same WebTorrent library mentioned in the original link. Works on iOS, Android, etc. all platforms as far as I know.
For #1 I think it's simply a bandwidth and latency issue.
Say you are using webrtc to do a video call. Now imagine the same thing but with 10000 peers sharing their video. That means each participant has to upload their feed 9999 time while at the same time download 9999 videos from random peers around the Internet, each one with their own bandwidth and latency restrictions and each one doing the same thing as you (uploading and downloading to/from 9999 peers)
As well as other usages it seems this would be one way to host online games.
The app itself being the only thing served centrally and then instances of the app get served by website visitor's to host their own private workspace/gamespace.
So all data created in that instance would remain private to that instance and the clients that connect to it.
Is that a reasonable use case or am I misunderstanding?
Imagine a card game with a deck and two players. The deck knows which player got which card. Each player knows its own cards and the ones on the table. The deck should not run in the browser of one of the players because that player could inspect the status of the deck and know which cards were handed to the other one.
To answer your question: maybe, but for almost any game you need a trusted third party that holds the secret state of the game. A third browser somewhere or a headless server?
Exceptions: complete information games like go, chess and checkers. Everything is public.
Games with a dice like backgammon starts to be problematic because how can one player trust the dice of the other player? A shared random seed would let them know in advance all the rolls.
This is rekindling an interest I had in doing exactly the same thing. Nice to see another implementation. I’ll have to revive my old code. I think the key to getting uptake would be making it easy for anyone to live edit their copy and have the changes propagate to peers. Also some easy way of browsing what connected peers are hosting.
At which point they will be so complicated, and each browser will be subtly different, that we will invent yet another abstraction layer. Devs will stubbornly only target it, and we will add more and more features until....
[+] [-] feross|3 years ago|reply
Disclosure: I’m the original author of WebTorrent
[+] [-] Waterluvian|3 years ago|reply
1. Why is video conferencing in 2022 still such a disaster?
2. Why is it still so freakin’ hard for me to send a file of arbitrary size to someone?
I’m really getting optimistic about #2. But I worry it’ll be limited to nerds or attacked by established parties using the usual means (like making it impossible on popular devices in the name of anti piracy)
[+] [-] feross|3 years ago|reply
Disclosure: worked on WebTorrent and Wormhole.app
[+] [-] ranguna|3 years ago|reply
Say you are using webrtc to do a video call. Now imagine the same thing but with 10000 peers sharing their video. That means each participant has to upload their feed 9999 time while at the same time download 9999 videos from random peers around the Internet, each one with their own bandwidth and latency restrictions and each one doing the same thing as you (uploading and downloading to/from 9999 peers)
[+] [-] jonititan|3 years ago|reply
As well as other usages it seems this would be one way to host online games. The app itself being the only thing served centrally and then instances of the app get served by website visitor's to host their own private workspace/gamespace. So all data created in that instance would remain private to that instance and the clients that connect to it. Is that a reasonable use case or am I misunderstanding?
[+] [-] pmontra|3 years ago|reply
To answer your question: maybe, but for almost any game you need a trusted third party that holds the secret state of the game. A third browser somewhere or a headless server?
Exceptions: complete information games like go, chess and checkers. Everything is public.
Games with a dice like backgammon starts to be problematic because how can one player trust the dice of the other player? A shared random seed would let them know in advance all the rolls.
[+] [-] noAnswer|3 years ago|reply
[+] [-] popcalc|3 years ago|reply
Blog post.
[+] [-] dang|3 years ago|reply
WebTorrent - https://news.ycombinator.com/item?id=33790186 - Nov 2022 (137 comments)
[+] [-] throwuwu|3 years ago|reply
[+] [-] nunez|3 years ago|reply
The question I ask myself whenever I enter a JS codebase lol
This is really cool. Actually serverless apps!
[+] [-] tomalaci|3 years ago|reply
[+] [-] dahfizz|3 years ago|reply
[+] [-] drakythe|3 years ago|reply
[+] [-] teaearlgraycold|3 years ago|reply