Avoid client-side moderation, rely on relays.
Login to reply
Replies (61)
Bullshit. You can see the clients code. You cannot see how relays moderate you.
Tell ‘emmmmm
Keep relays fast and dumb, make the clients smart. This is the foundation of Nostr.
Why?
Makes more sense

The moderation needs to be a third service. Where relays and clients can opt in to which moderation regirme they want to use and moderation decisions can be opt in and transparent.
What if instead of clients and relays opting in, just users can opt in?
Noooo
Primal.
😆
You don't have to. What harm can they cause to you?
You just made that up, you know.
Personally I rely on Tim Cook and Elon exclusively.
#KeepNostrDumb
Sure, but I don't see why introduce this unnecessary complexity.
In most cases as a client you can pretty much
- for whoever you follow or are interested in, request data from any relay, whatever relay on Earth, you really don't care what relay
- for cases where you'll get data from people you don't know ("global feed", replies etc), request data from relays that enforce policies you agree with ("no posts without PoW", "all posts must contain the word 'soup'", "only posts from women", "posts must be manually approved" etc)
Even if he did, he’s right.
Seriously? I have seen relays deleting posts they don't like (political positions, etc) without telling anyone. I have seen them delaying posts that have a criticism of the product that happens to be sponsoring them. I have seen them hide counts and act as if those were at the "bottom of the database".
NEVER trust any relay.
These things are expected, they do not hurt you in any way. If a relay has deleted something that is not different from the relay never having seen that event anyway.
You shouldn't count on relays having all the events in the world, that's not what I said.
What do you think of this? View quoted note →
is there a way to do software verification where an implementation would periodically self sign a note saying it’s verified its build?
and then also broadcast relay actions?
Even, just to see the relay actions… not to move all trust of moderation to relays.
Hahahahahaha
There are, and always will be, far more relays than clients. It requires practically no effort to switch between relays from within a client, to achieve the moderation you want.
Relay moderation > client moderation
They are expected indeed. That's why one should NEVER rely on them. Don't entrust relays to moderate anything because you don't know what they are running.
Clients are always "moderating" because their choice of UI **is** moderation in itself.
That's why I also say people show NEVER use a closed-source client in Nostr. A closed-source client can create and display "events" as if they were signed by the author even if they didn't. They can create things out of thin air.
Use only open-source clients so that you can verify what's happening in code and create an expectation of behavior that can be constantly checked.
Yep, it's called reproducible builds. Amethyst has this active. It means that anybody should be able to check if the APK I published matches the code on the repo by recompiling the app with the same code/parameters.
I’d like to be able to connect privately to my own relay for backing up notes. Is it possible to connect to a relay and no one else be aware/able to see that connection? Encrypted relay list?
VPN is the only way.
Sorry, half reply. You can add a local IP (192.168.0.x, etc) to your relay list while we don't have private relay lists. In that way, people know you have a local relay but there is no way to know where.
Your client literally censors ppl for no reason, including me.
Yep, and it's written in the code that everyone can see. That is my point. People can use Onyx if they dont like the filter or simply disable the filters in Amethyst's settings.
However, you have no idea if relays are censoring you or not (hint, they are).
Not to mention how ppl have told you that they literally had no idea your app was censoring ppl. “Read the code” isn’t a reasonable suggestion, most ppl can’t.
Also there are tools that you can use to check whether your posts are being relayed.
Options are always nice, I'm glad Amethyst has them now.


Feels like he wasn’t just making it up. This was my sentiment as well and here is an excerpt from your blog.

nostr - Notes and Other Stuff Transmitted by Relays

Yes, but there will be thousands of relays. Anyone can setup their own relay and others can broadcast the note to other relays.
Very few people have the ability to create their own client. Right now, if 5 clients decide to censor a user, nobody would ever see them.
Ok but your distributed unaccountable censorship system (which should be opt-in btw) can’t be challenged. If a relay claims they do not censor, it’s a lot easier for me as a non-technical person to verify that than it is to go into a bunch of code I have no idea how to read and find out how you’re censoring me (which you are btw).
Relays have an incentive to abide by the policies they establish, and they can be exposed if they’re lying.
Your system has no recourse, and there’s literally nothing I can do to contest being censored by the policies you arbitrarily set (that gives weight to false reports for whatever reason), particularly since many ppl can’t even see me.
There are dozens of clients already. Hopefully, we get to thousands. You don't need to create one from scratch, you can just fork it and remove the things you don't like... like Onyx did.
Clients make 100s of decisions in the visibility of posts. For instance, Amethyst didn't show non-like reactions until this week. They were always displayed as red hearts. Is that censorship? To some extent, yes. But if so, then every client is censoring everyone, all the time.
Don't trust anyone. Not relays, not clients. The only thing you can be sure of is the code that you can see and verify. If you can't verify, hire somebody who can, or fund a group that does it for you (but then you are trusting the group).
That's disturbing..👎🤔
but for relays on servers one would need like artifact sharing?
There is no way to know if they are running the version you think they are and/or if they added anything between you and the code you know.
Absolutely. I hope no one is advocating for coercion, but we can of course debate what the optimal action is.
Any moderation should be transparent. Experimentation is good.
probably need a tool that caches seen on and then rechecks for seen on later
how did you noticed relays deleting things?
Would you need to be on your local network to backup then tho? Can you connect to this local relay from the internet?
Correct. If you make something outside of a local network, you have to place it inside a VPN for now. Otherwise, everyone will know you have access to it.
OR, you can use NIP-42 to authenticate with your public keys to write and read from the relay.
no one suggested that one would have to run/choose an implementation that would broadcast relay actions 🙄
Please stop straw manning.
Relays that have told me it's their private property and they do whatever they want with it.
Which is true.
So, there was no point in me entering an unwinnable tug-of-war with them just to make them be nicer to their users. Their users will figure it out sooner or later anyway.
Either way, I prefer to be building and not shitting on people that provide free stuff to the space.
The idea that ppl should just “learn to code”, or pay hundreds or thousands of dollars to vet an app they’re using is simply ridiculous.
It's not that expensive. Lots of people do it for free like Tony did with Onyx.
But welcome to real freedom.
You can also use something like tailscale or wireguard
Censoring a hug emoji because your client hasn’t implemented it is much different than censoring the text of a note. Damus doesn’t render markdown, but the words are still there.
I’m a bit confused about what you’re arguing for. If relays already censor, and we cannot verify what they’re doing, how does it help to have an open-source client that explicitly tells you they censor? That’s just adding more censorship.
At least if I feel like 5 relays are censoring me, I can add 10 more. If I’m censored on Amethyst, I may never know that 1000s of people aren’t seeing my notes, and they also don’t know I even exist.
I think you're both right, but I tend to lean towards the FoaF (friend of a friend) moderation algorithm. FoaF makes newcomers work to get reach, because they need to know someone, and it's something that Scuttlebot did right so we all know how it works.
You can include a dial for less toleratant people that can be turned down to 'just friends', and people who want to explore more can dial it up to 3 or 4 hops if they want a global feed.
*tolerant -- can we get an edit button? I jest.
I have that problem rn. I literally don’t know who can see my posts because of Vitor’s censorship.
He doesn’t seem receptive to reason, and seems to condone using reports as a valid means to censor ppl, considering it doesn’t stop spam at all.
@Vitor Pamplona‘s amethyst does it. We still need to add it to @nos
Relays should be dumb pipes. If they start moderation, they become the gatekeepers
this feel too complicated. just rely on relay for moderation, right now relay feel likes a data redundancy layer on nostr, but eventually each relay will became its own social community focus on specific topics and interests and acts as a content moderation/curation box that user can plug-in
Would a model like pi-hole work? Something that sits between the relay and client, that does said filtering for you?
I implemented editable posts on ssb, it's possible.
I posted a new message type 'edit', edit: 'posthash', content: 'new content' and then I collected all of the message edits, order by timestamp (ssb-query did this for me), and render a message that shows the differences between the edits. I only rendered a diff at the time, but I wanted an arrow where you can quickly pass over the edit timeline.
I'm pretty sure the code is on `git-ssb` somewhere.
Yes. There are some people doing this.
for example.

nostr.wine Relay
The most reliable paid relay on nostr.
I mostly agree with you, but I think we're talking past each other.
That is the very short summary, it doesn't contain everything.
Client-side filters are the future. I don’t like relying on relays to curate content. Users can discern locally (1st person POV) rather than relays discerning globally (deciding the 1st POV for everyone else).
Both types of filtering will occur, but I prefer client-side so as many relays as possible host diverse content.