Dust has finally settled on the “Primal censorship” drama. That’s good to see, but I don’t want to sweep this episode under the rug. It is probably appropriate to do a post mortem, assess what has happened and see what we can learn. Let’s make sure that Nostr is a better place after this episode.
Two weeks ago, Primal’s trending algorithm was attacked by bots. The attacker generated hundreds of thousands of reactions, propping his note to the top of our trending feed. At the time, our only defence was a simple “can’t trend” list, so we put the attacker on it. He immediately posted on Nostr, accusing us of censorship, but his note never took off. The attacker then selected a few well liked Nostr accounts and started stuffing the ballot box for them. We saw a bunch of bogus notes with massive bot engagement, so we resorted to the only blunt tool we had. The attacker jumped on the opportunity to publicize the fact that some well liked accounts were being suppressed on Primal and accused us of “shadowbanning”. The whole thing exploded on Nostr.
What followed was a pretty tough week for Primal. Many of our users turned against us. They took the idea of shadowbanning seriously, as they should. Most feedback was in good spirits, people making fun of Primal via memes. But we also got a fair bit of hate from complete strangers, which was super-weird. All in all, Nostr users were clear about what they think of censorship. This was the Nostr immune system reacting. Being on the receiving end of it really sucked, but still it’s beautiful to see!
The crazy part is that those “shadowbanned” accounts were actually perfectly visible throughout the entire Primal site. They had *exactly* the same level of visibility as they do on Damus, Snort, Coracle, and other Nostr clients. They just couldn’t show up in our trending bar. I tried to explain, but there was little room for nuance with the drama in full swing.
So we decided to disengage temporarily, focus on building, and let our product do the talking. We made our trending algorithm more resistant to bots and removed everyone from the “can’t trend” list. We also built a new content moderation system for Nostr, giving complete control to the user. This is our best take on how to do content moderation on such a radically open network. I cover the features and our reasoning in my blog post below.
So Primal is strictly a better product after this episode. But what about Nostr itself?
Attacks can be useful. While they disrupt our systems and really suck for us and our users, they do force us to improve and become more competent at operating in an adversarial environment. However, we should be careful about making it socially acceptable for Nostr devs to attack other projects in broad daylight. That’s not the most productive way to collaborate. It also creates weird vibes which I think we don’t want here. Nostr is in its infancy and the way we act will set the tone for things to come. There is so much to build and we are all working as fast as we can. At Primal we build open source software and run services for Nostr. If you don’t like the way something works, fork it and do your own thing. If you want to contribute, we accept PRs. If you have found a vulnerability, there are multiple good ways to disclose it.
As for Nostr users, I think you all reacted perfectly. Push back hard at any whiff of censorship. When in doubt, mercilessly create memes, point out things that are wrong, and don’t let up. Even if the target is Primal.
If Primal is real, it can stand the pressure. 🤙💜
https://habla.news/u/miljan@primal.net/1693416828339