←back to thread

Are we decentralized yet?

(arewedecentralizedyet.online)
487 points Bogdanp | 1 comments | | HN request time: 0s | source
Show context
jchw ◴[] No.45077739[source]
I think this compares AT proto PDSes to Fediverse instances. In many ways this actually underplays just how grossly centralized AT proto currently is, since some of the components are 100% centralized still. (Whereas Fediverse instances, all downsides considered, are at least self-contained fully-independent instances.)
replies(1): >>45077763 #
edavis ◴[] No.45077763[source]
Which components are you referring to?
replies(1): >>45077826 #
jchw ◴[] No.45077826[source]
In case of Bluesky, there will also only ever be a single instance of the App View. As far as I am aware though in practice there's really only the official relay or indexing services either.
replies(1): >>45077855 #
skybrian ◴[] No.45077855[source]
Why can't someone run another App View?
replies(2): >>45077960 #>>45078116 #
jchw ◴[] No.45077960[source]
You can, it just won't be the Bluesky App View, so it's not really Bluesky. It's not like the fediverse where the instances own the URLs of the posts: they go through app views and there's a canonical URL to a Bluesky post and that's through the official app view.
replies(1): >>45078096 #
danabramov ◴[] No.45078096[source]
This seems misleading.

Different AppViews would obviously be branded differently, but the whole point of ATProto is that there is a shared "picture" of the world. People are running alternative AppViews that consume Bluesky posts (and serve Bluesky threads).

Here's the same thread on three different AppViews:

- https://zeppelin.social/profile/did:plc:iyz5zf463ic52vqbonyu...

- https://blacksky.community/profile/did:plc:iyz5zf463ic52vqbo...

- https://bsky.app/profile/did:plc:iyz5zf463ic52vqbonyu2ebu/po...

These are three independent webapps indexing the same information and serving it independently. They're not different frontends for one API; these are all independent backends.

replies(4): >>45078361 #>>45078607 #>>45078905 #>>45080537 #
fluoridation ◴[] No.45078361[source]
So, it's the same underlying data structures (e.g. posts, threads, etc.), and the way they're exposed depends on the implementation? So there's one BlueSky, but BlueSky is just one interface (UI + API). Am I getting this right?

I just want to know if I can run my own node in my own hardware.

replies(1): >>45078848 #
1. danabramov ◴[] No.45078848{3}[source]
You can think of ATProto like this.

Each user has a "website" with JSON of their own content (e.g. all my posts, all my likes, all my follows, actually live in a sqlite database hosted somewhere). It's not really a website but more like a git repo — one per user.

And then, there's a protocol for how to aggregate information from all such "websites" in the network into a stream of changes. Apps subscribe to that stream of changes and update their local databases (which act as app-specific caches) in response to those events.

When I make a Bluesky post, I'm really writing JSON into my sqlite file. This change gets broadcasted to all interested apps which update their own databases (which may or may not care about specific content type like "Bluesky post"). Obviously forks of Bluesky backend do index Bluesky posts (and then return them in the same UI), but you could imagine other backends that only care about other content types, or that record Bluesky posts but in a different database structure, and ofc can present a different UI for it.

Yes, you can run your own node — multiple types of nodes. You run your own PDS (https://github.com/bluesky-social/pds) to store own data (that's the "website" in my analogy), or you could run a Relay (https://whtwnd.com/bnewbold.net/3lo7a2a4qxg2l) that collects all PDS changes into a stream, or you could run an AppView (any backend that listens to Relay or PDS, basically your own app).