The Broken Fediverse

When Elon Musk originally bought Twitter, a number of people moved over to Mastodon. There were a lot of misunderstandings around how Mastodon works. People are used to mega-websites, now known as platforms. Mastodon is composed of tens of thousands of independently run servers that communicate with each other using a protocol known as ActivityPub (AP). There are other services that can communicate over AP, including Pleroma, PeerTube, Misskey, PixelFed and more. This interconnected network is colloquially known as The Fediverse. People use to the mega-sites and large-scale algorithmic content moderation were completely unprepared for a return to distributed, chronological, non-algorithmic social networking.
There are always a ton of complaints about moderation whenever an influx of people flood servers on the Fediverse. People start immediately reporting others who they think have unacceptable views, often not realizing those messages come from completely different servers. Over time, administrators have built block lists of which servers to allow or deny, based on past complaints. People just getting started with Mastodon may set up a server and import one of these block lists without verifying who is on it or why they are on it, essentially blocking an entire segment of the Fediverse and perpetuating certain echo chambers. These block lists have caused the Fediverse to be segmented into non-distinct regions. In this post, we’ll examine exactly how servers block one another, the effects it has on message threads, and some of the other alternative social networking protocols.
I’m going to start with a very basic visualization of how Fediverse servers block one another. Below is a visualization of several Fediverse servers, some of which are very popular and others chosen at random. Here we can clearly see which servers are visible from other servers. If you create an account on a server that’s blocked by someone else, the people on that remote instance cannot see your replies to their messages. If two servers mutually block one another, none of the users on either side will see each other’s messages.
To ➡️ From ⬇️ | bigshoulders.city | blob.cat | climatejustice.social | djsumdog.com | eldritch.cafe | fosstodon.org | freeatlantis.com | gleasonator.com | graphics.social | hitchhiker.social | infosec.exchange | journa.host | liberdon.com | mastodon.art | mastodon.nzoss.nz | mastodon.social | mastodon.world | mstdn.social | noauthority.social | plush.city | poa.st | qoto.org | shitposter.world | toot.cafe | universeodon.com | veenus.art | yiff.life |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
bigshoulders.city | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | 🔇 | ❌ | ✅ | ✅ | 🔇 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
blob.cat | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
climatejustice.social | ✅ | ✅ | ⬜ | ✅ | ✅ | 🔇 | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
djsumdog.com | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
eldritch.cafe | ✅ | ✅ | ✅ | ✅ | ⬜ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | 🔇 | 🔇 | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | 🔇 | ✅ | ✅ |
fosstodon.org | ✅ | ✅ | ✅ | 🔕 | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
freeatlantis.com | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
gleasonator.com | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
graphics.social | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
hitchhiker.social | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
infosec.exchange | ✅ | ✅ | ✅ | 🔕 | ✅ | ✅ | 🔇 | ❌ | ✅ | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 🔇 | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
journa.host | ✅ | ✅ | ✅ | 🔕 | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ⬜ | ❌ | 🔇 | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
liberdon.com | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ⬜ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
mastodon.art | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | 🔇 | ❌ | ⬜ | ❌ | 🔇 | 🔇 | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ |
mastodon.nzoss.nz | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
mastodon.social | ✅ | ✅ | ✅ | 🔇 | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | 🔇 | ✅ | ✅ | ✅ | ✅ |
mastodon.world | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | 🔇 | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
mstdn.social | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ⬜ | ❌ | ✅ | ❌ | ✅ | 🔇 | ✅ | ✅ | ✅ | ✅ |
noauthority.social | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
plush.city | ✅ | ❌ | ✅ | ❌ | ✅ | 🔇 | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | 🔇 | 🔇 | ✅ | 🔇 | ⬜ | ❌ | ❌ | ✅ | ✅ | 🔇 | ✅ | ✅ |
poa.st | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ⬜ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
qoto.org | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ⬜ | ✅ | ✅ | ❌ | ✅ | ❌ |
shitposter.world | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ⬜ | ✅ | ❌ | ✅ | ✅ |
toot.cafe | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ⬜ | ✅ | ✅ | ✅ |
universeodon.com | ✅ | ❌ | ✅ | ❌ | ✅ | 🔇 | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | 🔇 | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ⬜ | ✅ | ✅ |
veenus.art | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⬜ | ✅ |
yiff.life | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | 🔇 | 🔇 | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ⬜ |
✅ | Federation appears to work |
❌ | Federation appears to be blocked |
🔇 | Remote users appear silenced |
🔕 | Remote users appear suspended |
Methodology
The method I used for determining blocks involves searching for a known user from each instance on every other instance. If the user is returned on a search, additional checks are made to ensure the remote instance is not limited or blocked by admin moderation.
This methodology isn’t perfect, and a misconfigured server could return empty results. For example, some of the results from my instance were turning up empty. In my server logs, I saw the message could not resize shared memory segment \"/PostgreSQL.74382656\" to 6311936 bytes: No space left on device
, which indicated I hadn’t configured shared memory correctly on my database server1. I created a rescan.rb
script that can be used to run the checks multiple times in cases where initial searching returns empty results.
In addition, a server might not block another instance, but the remote server may block search requests. For instance, if I search for users on mastodon.art
from my own server, I see Could not decode user at fetch https://mastodon.art/users/***, :forbidden
in my logs, because that instance has decided to explicitly reject search requests from my server.
For the reasons stated above, this chart is only a rough approximation of which servers actively block one another. The scripts I created can be found in the Feditootscoot source code repository.
Results

As you can clearly see, server moderation breaks messages through much of the Fediverse. Sometimes a message might reach you on a particular instance, because someone you follow boosted (reposted) it. However, the original poster might block you or your instance, meaning they cannot see any of your replies. This creates a situation where viewing the exact same thread of messages from different instances shows a completely different version of the conversation.

Ideally, most instance administrators would take a mostly hands-off approach to moderation, allowing individual users to mute and block individuals on their own, and limiting large instance blocks for spam or posts that contain malware. However, that is often not the case. Some Fediverse users seek instances that have more heavy-handed moderation policies, so they don’t see messages they might find offensive. It creates a broken system of messages and echo chambers while also segmenting the Fediverse into arbitrary regions.
Bluesky
Bluesky is a social network system that gives the impression that it was created to be decentralized. It uses the AT Protocol (AT), which was developed long after ActiviyPub became a well-established federated social network protocol. Bluesky is not decentralized. While it is possible to run your own Personal Data Server (PDS), your server doesn’t communicate directly with anyone else’s PDS. Instead, all communication goes through a centralized Bluesky network, which handles all content moderation.

You can preserve your identity, but that’s really about it. Bluesky requires either DNS entries or e-mail for verification. The PDS/AT Protocol can be useful in establishing an identity for a company and users on a given domain name, but there is little to no autonomy on each individual server.

Administrators have no agency on their PDS. Bluesky is a system designed for people who really don’t care about decentralized technology or censorship. It’s designed for people who want to attach official accounts to company and organization domains. It’s a broken system by design, and subject to all the same algorithmic brainwashing and propaganda that’s already funneled through every other large social networking website.
Nostr
The Nostr protocol is not well known outside the world of technologists and crypto enthusiasts. However, it is far more decentralized than ActivityPub and has several technological advantages. Users are responsible for their own private keys and post messages to a set of relays. The relays only hold messages long enough to forward them to other subscribers. This encourages individual moderation rather than large-scale server blocking. If relay admins decide to block individual users, those users can simply add more relays to communicate with.
Nostr is slightly more technically challenging to understand and use. People can easily use different web applications and Nostr clients, but they are responsible for holding onto their private keys. If someone loses a private key, that identity is lost. There is also a tipping/payment system involving crypto known as zaps. There is a Nostr to Fediverse bridge that allows communication between the networks, but it should come as no surprise that many servers ban any communication via that bridge.
The Regions of Fedi
The Fediverse is essentially fragmented into regions, creating virtual borders between which messages may or may not be allowed to pass. This fragmentation creates echo chambers, promotes group think, destroys potential real cultural diversity and instead creates monocultures. In encourages people who mistakenly believe they are inclusive in their exclusivity.
I’ve been an active participant in the Fediverse since 2018, and I found myself affected by this censorship very early on. I’m affected both in the views I see and conversations I participate in, as well as in limits imposed by other servers on who is allowed to interact with me.
I personally do not censor heavily on the instances I have run. I rarely even blocked individuals until 2024, when I started to get dog-piled by people who specifically target and insult me due to my race. Even then, I do not block people who are directly racist against my people, only when they are bullying me specifically.
My advice to new server administrators is to not import any of the existing block lists unilaterally. Instead, encourage your users to mute or block individuals themselves if they take issues with what others are saying. Limit instance-wide blocks to servers that are serving spam, malware or content that is illegal in your region. Promoting individual moderation creates an overall healthier Fediverse.
For everyone who currently uses Mastodon, Pleroma and other Fediverse software, I only wish for them to be aware of how the Fediverse works. Depending on the server you use, your view of the Fediverse may be critically limited. I’d encourage people to make profiles on multiple servers to get a better idea of viewpoints, beliefs and trends around the entire Fediverse and avoid echo chambers.
-
pq: could not resize shared memory segment. No space left on device. 25 June 2019. arilwan. Stack Overflow. ↩