BlueSky's ADX solves this problem by representing content as self-authenticating data: each piece of content contains its own hash and is signed by the author. Now you can farm out replication and aggregation to third parties with fewer trust issues (n.b. some asterisks here).
Conversation
Naively, you could use this scheme with Solid as the storage layer. But efficient ongoing replication would be challenging: how to ensure a snapshot the indexer service used was complete? ADX solves this with a Merkle tree, which makes synchronization efficient and low-trust.
1
2
ActivityPub, another W3C standard, also tries to solve the distributed social app problem. It follows a path along the lines of per-peer-pods plus p2p replication. As in our imagined Solid+ADX system, I'm not sure how you'd implement "big-world" UX like "find all the retweets."
1
1
5
2
3
Where I'm more confused on is the differences with Scuttlebutt[1,2] (SSB). BlueSky's stated design goals[3] are portability, scale, and trust. Let's look at each.
[1] scuttlebutt.nz
[2] ssbc.github.io/scuttlebutt-pr
[3] blueskyweb.xyz/blog/3-6-2022-
1
1
2
SSB's user IDs are portable, even without owning your own domain name: they're key-based, like ADX's.
ADX's key idea wrt scale is self-authenticating content, which permits trustless and efficient services like indexers. But SSB content is self-authenticating in the same way.
1
2
I'm also not sure how the approach to trust differs. SSB is fully p2p, and auditing seems equally possible, since SSB's feeds are also Merkle trees. ADX has ideas about moderation being implemented as separate labeling / policy layers—cool—but seems addable to SSB?
1
2
I'm not an SSB partisan or anything—I've never used it—I'm just taking it as a reference to triangulate ADX's design ideas.
I'd like to better understand what the BlueSky team sees as SSB's limitations. They reference it explicitly but don't actually describe specific concerns.
1
5
This is a place where academic norms are nice: if this ADX doc were a paper, it'd have a Background section which would clearly delineate where it overlaps and diverges from its predecessors / influences, and why. All projects should have these! Clarifying—including for the devs.
2
2
22
Good writeup! Sorry for the incompleteness of the doc. Feel free to DM, email, or join the matrix if you’d like some questions answered
1
3

