Similarly, if a relay decides to nullroute you, you are functionally up on shitcreek, which because it's all handled by the relay is way worse than getting a Mastodon instance filtered.
If we use a torrent analogy, it's not possible to use Bluesky/ATproto with DHT, you're required to connect to a tracker who then decides who you can peer with.
(Relatedly, AcitivityPub also supports the use of relays for discovery, but doesn't require them. It's just not often used because they tend to be a moderation firehose.)
[0]: https://blueskyweb.xyz/blog/5-5-2023-federation-architecture
Similarly, the fact Bluesky is offering a PDS implementation for self-hosting[0] but not a relay[1] tells me that hosting a relay is more than a non-trivial matter, although I'd love to be proven wrong there.
[0]: https://github.com/bluesky-social/pds
[1]: Well, outside of literally deploying Blueskys own implementation - https://github.com/bluesky-social/indigo/tree/main/cmd/bigsk... .
Centralisation is a feature in social networks: being able to find your friends is the very first thing. But don't then pretend you aren't.
Every now and then I post to Bluesky asking: so what's the loadout for Bluesky? How many servers does it take to run this thing? What would it take to run my own?
These questions never quite seem to get answered or documented that I could find.
A "PDS" is a reasonable Ubuntu box. They seem unable to admit what it takes to run the rest, though.