irelephant [he/him]

Failing optimist, can code poorly.

RIP: lemm.ee

  • 9 Posts
  • 135 Comments
Joined 19 days ago
cake
Cake day: June 4th, 2025

help-circle








  • Yes, this does help, but atproto as a whole still doesn’t scale well:

    In the beginning of our network, we have 26 users, which conveniently for us map to each letter of the English alphabet: [Alice, Bob, Carol, … Zack]. Each user sends one message per day, which is intended to have one recipient. (This may sound unrealistic, but this is fine to do to model our scenario.) To simplify things, we’ll have each user send a message in a ring: Alice sends a message to Bob, Bob sends a message to Carol, and so on, all the way up to Zack, who simply we wrap around and have message Alice. This could be because these messages have specific intended recipients or it could be because Bob is the sole “follower” of Alice’s posts, Carol is the sole “follower” of Bob’s, etc.

    Let’s look at what happens in a single day under both systems.

    Under message passing, Alice sends her message to Bob. Only Bob need receive the message. So on and so forth.

    From an individual self-hosted server, only one message is passed per day: 1. From the fully decentralized network, the total number of messages passed, zooming out, is the number of participants in the network: 26. Under the public-gods-eye-view-shared-heap model, each user must know of all messages to know what may be relevant. Each user must receive all messages.

    From an individual self-hosted server, 26 messages must be received.

    Zooming out, the number of messages which must be transmitted in the day is 26 * 26: 676, since each user receives each message.

    Okay, so what does that mean? How bad is this? With 26 users, this doesn’t sound like so much. Now let’s add 5 users.

    Under message passing:

    Per server, still 1 message received per user per day. Per the network, it’s 5 extra messages transmitted per day, which makes sense: we’ve added 5 users. Under the public-gods-eye-view-shared-heap model:

    Per server: 5 new messages received per user per day.

    Per the network, it’s ((31 * 31) - (26 * 26)): 285 new messages per day!

    But we aren’t actually running networks of 26 users. We are running networks of millions of users. What would happen if we had a million self-hosted users and five new users were added to the network? Zooming out, once again, the message passing system simply has five new messages sent. Under the public shared heap model, it is 10,000,025 new messages sent! For adding five new self-hosted users! (And that’s even just with our simplified model of only sending one message per day per user!)

    Source: https://dustycloud.org/blog/re-re-bluesky-decentralization/

    As well as this, if there was a reddit-like atproto AppView, setting up multiple instances of it would still result in the same problems.




  • Define decentralised.
    As per RFC 9518: Centralization, Decentralization, and Internet Standards,

    […] “centralization” is the state of affairs where a single entity or a small group of them can observe, capture, control, or extract rent from the operation or use of an Internet function exclusively.

    [Decentralization is when] “complete reliance upon a single point is not always required” (citing Baran, 1964)

    […] federation, i.e., designing a function in a way that uses independent instances that maintain connectivity and interoperability to provide a single cohesive service.



















OSZAR »