top | item 33809309

Bugout: Browser-to-browser networking built on WebTorrent

74 points| popcalc | 3 years ago |github.com | reply

33 comments

order
[+] feross|3 years ago|reply
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.

Disclosure: I’m the original author of WebTorrent

[+] Waterluvian|3 years ago|reply
Two things bewilder me:

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
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.

Disclosure: worked on WebTorrent and Wormhole.app

[+] ranguna|3 years ago|reply
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)

[+] jonititan|3 years ago|reply
Very interesting.

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
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.

[+] noAnswer|3 years ago|reply
Multiplayer games of old where usually p2p. DoS attacks from sad losers an cheating put an end to that.
[+] throwuwu|3 years ago|reply
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.
[+] nunez|3 years ago|reply
> // javascript why

The question I ask myself whenever I enter a JS codebase lol

This is really cool. Actually serverless apps!

[+] tomalaci|3 years ago|reply
I sometimes wonder how long until we come full circle by integrating enough features in a browser to make them fully replace your usual everyday OSes.
[+] dahfizz|3 years ago|reply
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....
[+] drakythe|3 years ago|reply
ChromeOS would seem to be the answer to this question, no?
[+] teaearlgraycold|3 years ago|reply
I'm shocked (and a bit upset) we aren't taking the mid-way step and treating browser tabs as comparable to apps in DE taskbars.