A few days back this long thread #[0] discussed the gossip model and how people would deal with the censorship of Alex Jones. I don't think I participated in the thread, being weary of the topic. Instead I have written a webpage stating my position so that in the future I can just point people at the webpage:
Discussion
Have you thought about packaging it as library such that other clients might easily plug it?
Don't know if that even makes sense technically, I'm just asking.'
I mean there is a thread but as I look into thread and beginning of your text there is an assumption that gossip model is known to everyone and everyone already took a position about it. Maybe if I don’t know I don’t need to worry about but it just feel weird with something so new how I’m already so far behind. It is the f.ing Red Queen from the Through the Looking Glass again… I need to run as hard as I can just to stay in the same place… Damn…
Nostr is an MMORPG and we are all in different zones. I'm leaving this zone, and perahsp you are entering it. I hope my webpage can serve as a guide. And I hope you find and kill the mobs that I missed.
I read your page and my first thought is this actually solves the biggest issue in my mind about Nostr. With this scale maybe it is not a problem but as more people join it will be more fragmented. And with this fragmentation there will be relays that will ban some people. So this is actually a good idea but I always thought it is possible to do with current environments. Anyway don’t want to ask questions and start a new thread for you on the thread where you explain you are tired to give answers :)). Wish all the best for you and all of us.
Are there any other gossip clients? Yours is missing some key features like PMs, filters and threads
#[0] great document.
I'm working on a write-policy plugin for strfry that will implement most of what you specified in the section on personal relays. Can you expand some of the details of what constitutes "events tagging me"?
Does that include scanning the content of notes for npubs and / or hex pubkeys? Or just looking at 'p' tags?
Any subset of event kinds you have in mind for "events tagging me"?
I'm glad to hear that.
I would allow anything that has a p-tag mentioning me. This however allows spammers to simply address me, just like they do with email. So there needs to be at least an option to only allow senders who are on my latest contact list (which the relay should have, so it shouldn't need to be a list in a config file). I would prefer not to turn on that option, but in that case there needs to be ways to block spam based on filters and modest proof-of-work [probably not paid accounts since nobody is going to pay just to send me a message, are they?]
I don't think that strfry currently exposes enough through its plugin framework to implement the anti-spam ideas here (which I agree will be essential). Or if it does, it's currently undocumented.
What it does is let you build a simple (non-stateful) "write policy" plugin that gives you the incoming event (with some metadata like IP address, etc) and lets your plugin decide whether that event should be accepted or not.
The plugin I am currently testing on my instance:
1. lets you define a whitelist of pubkeys that are allowed to post anything.
2. lets anyone post a kind 10002 event
3. lets anyone post any event with a 'p' tag that includes any of the pubkeys in the whitelist
4. rejects writing everything else
strfry seems not to have any "read policy" plugin implementation (yet?). So I am unable to put limits on what people can read.
Is this via gRPC?
No, strfry and the plugin(s) simply communicate via stdio. The plugin is an executable in any language that can deal with input on stdin and write output to stdout. I wrote mine in python.
Here's the brief documentation: https://github.com/hoytech/strfry/blob/beta/docs/plugins.md
I published a repo that implements a usable first stab at the personal relay you described in your "Gossip Model" page on your website.
It's docker based and lets anyone who can spin up a vanilla linux VPS have a strfry-based personal nostr relay up and running in about 10 minutes.
The repo is here: https://github.com/pjv/strfry_personal_docker
#[0]