Why so many servers?

Ian Bicking ian at ianbicking.org
Sun May 3 18:26:08 UTC 2020

On Sun, May 3, 2020 at 12:38 AM Joe Nelson <joe at begriffs.com> wrote:
> Ian Bicking wrote:
> > I've done a fair amount with WebRTC. It's not a great experience.
> > [...] It feels like what you want is the p2p sort of stuff, but most
> > of it is not realtime, it's more storage-oriented.
> Which chat program performs best in your experience?

Realistically, top-to-bottom integrated software stacks perform best,
like Facetime or Zoom. Then they can manage everything from the
network to the servers, any services are controlled by the same
authentication they use for the rest of the system. They still try to
do p2p to improve service and save costs, but they have more
visibility into failures and can adjust their heuristics accordingly.
It feels like establishing a p2p connection is full of heuristics,
there's no "right" way.

> > You might also find IndieWeb interesting: https://indieweb.org/ – not
> > exactly about this topic, but people that share some similar interest
> > in DIY tech.
> I like their message that people should self-host rather than getting
> put into a "silo." That said, I've also wasted time complying with some
> of their proposals like IndieAuth [0] or Microformats [1]. Nothing
> really came out of that work for me personally at least.
> 0: https://indieauth.com/auth?me=begriffs.com&client_id=https%3A%2F%2Findieauth.com&redirect_uri=https%3A%2F%2Findieauth.com%2Fsuccess
> 1: http://pin13.net/mf2/?url=begriffs.com

Yeah... I get the message of IndieWeb stuff, but I guess I'm not
surprised that it's not actually a very useful set of stuff :-/

> > Technically Urbit tries to create a p2p networking system based on
> > stable but portable identities. The implementation is absurd,
> Urbit is totally weird. I visited their office a few times, and got a
> planet or whatever they call it (~fallyr-mogseb). A large part of the
> office is filled with a library of books in praise of monarchy, and the
> philosophical drive behind their technology is establishing some kind of
> digital feudalism. The address space is an intentionally limited
> resource, and the pitch to investors is that they can make an initial
> land grab. Not sure how the lords of address space control their serfs
> or whatever, but that's the draw.

Urbit's technology is also totally crap. I wonder if it's really a
right wing crank welfare program.

But the shape of what they are attempting isn't entirely off, maybe.

I guess what you'd want is some kind of dynamic DNS, where you could
publish your computer name (e.g., fallyr-mogseb), along with whatever
the connection details are for that moment. But maybe that doesn't
make sense – the way you connect with another computer depends
somewhat on where that other computer is. So it's a negotiation. The
way a WebRTC system works is that negotiation generally happens
through some central signaling server.

But maybe what you'd put in your DNS is just the information to get
things started, that is based on a centralized system. E.g., Firefox's
Push (where a website can send a message to your browser) is done with
a single WebSocket connection that is kept open. There's just no other
particular good way to get things started except to maintain or poll a
connection (though there are many not-good ways to get things
started). So instead of an address published in DNS, you really need a
service that is ready to send a message. Then you build up from that
message to a connection.

I feel like I've talked myself back into centralization, but I guess
that's unsurprising. When I was doing simple realtime communication
between browsers with TogetherJS we just had a 100-line server that
echoed messages between browsers that connected with WebSockets, and
it was reliable and hardly needed any changes. As long as you are
doing soft-realtime (not A/V) it was also fast enough.

Ian Bicking  |  http://ianbicking.org

More information about the Friends mailing list