I think nostr:npub1acg6thl5psv62405rljzkj8spesceyfz2c32udakc2ak0dmvfeyse9p35c has already embarked down the rabbit hole of building his own personal relay, but to circle back, I think what would fulfill the original request would be a way to limit public (un-authed) event reads to only those events authored by white-listed pubkeys.
And then, yeah, there would have to be a way for the white-listed pubkeys to be able to auth on the relay and be able to subscribe to (read) all events, including those written by non-white-listed pubkeys (who are allowed [by my write policy plugin anyway] to write events that include white-listed pubkeys in the event tags).
If you widen your view and think about it a little bit, the fact that government actions seem to be validating that most cynical possible view has a few implications that go beyond communication privacy.
... and the world would be a better place.
nostr:note1w8pcl0gcs0j7ue03s3ntrj8rhcvevag7rcyypv4e78gpu4wh09zsr7gu25
I don't have any C++ fu, so I have not spent any real time spelunking the core source code, but I know that its db is LMDB. My only hands-on experience with strfry is from the devops side; getting it running in a container, and writing the python write policy plugin in my repo.
That strfry exposes a stdin / stdout interface to any other process that can effectively pipe input and output is brilliant. It opens up so many possibilities. nostr:npub108pv4cg5ag52nq082kd5leu9ffrn2gdg6g4xdwatn73y36uzplmq9uyev6 has written a bunch of different write policy plugins including iirc some that are storing and referencing state. Maybe I can think of a way to write some spam filtration for overzealous taggers. Or maybe if I keep tagging nostr:npub1yxprsscnjw2e6myxz73mmzvnqw5kvzd5ffjya9ecjypc5l0gvgksh8qud4 in this thread he'll come in with something interesting, though I am guessing by the number of commits in the strfry repo lately that he must be pretty busy with other stuff.
That's true - it does serve all events But since it only allows writing events from keys you've white-listed, events that tag the whitelisted keys, and kind 10002 events, there's not much else for it to serve. Is the concern that it serves events from others that tag you?
Maybe we can get nostr:npub1yxprsscnjw2e6myxz73mmzvnqw5kvzd5ffjya9ecjypc5l0gvgksh8qud4 to add read policy plugins to strfry to mirror the write policy plugins though I could imagine that having some performance implications.
Mike, did you try my docker server with the write policy plugin? If so, what didn't work for you? Tag spam?
Welcome. Love to see you post here instead of yet another platform that will, must inevitably, bow to the pressures.
wrote this to a twitter friend about a month ago...
==============================
this next period - year or two or three - is going to be interesting. I think that either bluesky or nostr is going to win the decentralized internet. Bluesky has a far better thought-out technical model, but the way they are developing it (which may well be required in order to have such a tight model) is totally choking any real energy which is absolutely necessary to get people to care.
nostr on the other hand is total chaotic wild west. It has massive juice in the developer community and a tribally passionate userbase is building daily. But there are so many fundamental scalability problems with the protocol that it really seems likely (to me) that at some point it will hit a threshold number of users and the whole thing will fall apart and the only way to make it work then will be to tear it all apart and sort of start over from scratch with fundamental changes. Which may or may not kill all that positive energy.
if the bluesky people are smart enough, they will soon throw the doors wide open and allow the same kind of wild west atmosphere to happen with their protocol that is currently happening with nostr. It would start a total war (in a good way) because the nostr people are totally tribal. I'm sure they will very soon start calling bluesky a "shitcoin". but i don't know if the bluesky team are going to be willing to let go of what they created, and if they try to hold on to it, they will never have a prayer of catching up to the energy in nostr.
Sorry, I think Amethyst is great work but I think everything in this note is wrong.
Reports are bad.
Relays introspecting content is bad.
Play store and Apple store are bad.
Play Store and Apple store policies are bad.
Complying with bad policies is bad.
Changing the world for the better means breaking away from the old, bad stuff and charting a new course.
I don't think there is anything inherently wrong with reactions or tallies of reactions. I think they can be meaningful and useful in many contexts. They just are not meaningful or useful (or truthful / accurate) in this particular context.
I think - and am pretty sure - the world would be a better place if people stopped believing in lies - including the lies that make them feel good. As I've argued here: https://github.com/nostr-protocol/nips/issues/159#issuecomment-1407384311 in a meaningfully decentralized system like nostr, there is no practical way for either clients or relays to actually count actual reactions. So that means that the tally next to the icon is necessarily fake news. And what is the reaction itself without the tally? 100% meaningless. It's a lie.
Of course people are going to do whatever they want and nostr is what it is exactly because people can do whatever they want with it. It's just too bad that what so many people want to do with it is to directly ape - without any discrimination - everything that legacy social media platforms do. Because a lot of what they do is bad. It would be better if nostr filtered out the bad stuff. It would be better if instead of re-creating legacy social media platforms, nostr created something entirely new that replaced legacy SM because it's better, not because it's the same.
In that issues thread that I linked to above @gkbrk made a comment about a way to make reactions useful in the context we're discussing. If there were a performant and practical way for me to see that PEOPLE I FOLLOW had a reaction to a given event, that would be really useful. This would be the job of a smart client (definitely not a relay thing and that’s a good thing - clients should be smart and relays should be dumb).
Agree with both of these sentences.
Also nostr:npub1acg6thl5psv62405rljzkj8spesceyfz2c32udakc2ak0dmvfeyse9p35c, it might be good to allow gossip users to override the default POW settings on a relay-by-relay basis. Or maybe not even need to do that manually but just have a general setting to automatically do whatever POW that a relay requires in `limitations.min_pow_difficulty`.
I've been noticing for a while that there doesn't seem to be a clearcut (interoperable) way to determine whether a given relay requires payment to post there or not. If you do a lot of manual digging and searching you can figure it out on a relay-by-relay basis but that seems unacceptable from a UI/UX point of view unless we (devs) want nostr to be geek-only.
I think for this issue what's probably needed is some kind of push to make both relays and clients really fully implement the "Server Limitations" (at least), and also the "pay-to-relay" blocks from the "extra fields" in NIP-11. So relays need to return those fields and clients need to parse those fields and if the relay has `limitations.payment_required: true` then clients should display that somehow so that it's easy for a user to know whether they can post to a relay right off or whether they need to do something special first (pay, configure POW, etc).
Too early for this now, but it would also be great somewhere down the road if there were a NIP that standardized how to pay for pay-to-post relays in a way that it could be implemented within clients such that users could do it all from within their client with a click or two. In my perfect world, this payment would not be limited to bitcoin / satoshis, but would instead be completely agnostic so that relays could take payment however they want and users could choose from among whatever choices the relay offered.
Everyone using f-droid should switch to obtanium.
"Obtainium allows you to install and update Open-Source Apps directly from their releases pages, and receive notifications when new releases are made available."
Nice.
Complementary personal relay server setup which also supports the gossip model: https://github.com/pjv/strfry_personal_docker
From the readme:
MOTIVATION
I think that in order for nostr to be what it can be, there needs to be a LOT of small relays all over everywhere as opposed to a short list of giant, "popular" relays that everyone uses which then must inevitably become centralized points of all manner of vulnerabilities that nostr is explicitly about avoiding.
Mike Dilger, author of the nostr client gossip as well as NIP-65 wrote The Gossip Model -- a description of how gossip manages relays in a way that can support this vision of having many smaller relays all over the place and still let people find the content they want to follow via nostr. In that document there is a section called Personal Relays. The write policy in this repo is a first stab at implementing personal relays in that fashion.
That's an interesting experiment.
Um. Wow; it's not that often that something lands me right exactly on the fence where my crotch feels so uncomfortable (also wondering if this post gets moderated by chatGPT because I wrote "crotch").
On the one hand... this is a clever use of an interesting tool to address a real issue.
On the other hand... (hard to nutshell the other hand because it's a long, giant rant) this is a textbook contribution to what I'm calling "the great dumbing down" where ubiquitous use of LLM AI's to moderate human speech has the highly negative systemic effect of making AI seem "smart" only by comparison with the monsterous level of stupidity in a human discourse that is constrained by the boundaries of LLM AI competence.
I guess I'm coming down on the disfavor side of the fence because I think that the great dumbing down is ACTUALLY the biggest threat of AI (as opposed to the science fiction story that recent letter-writers are concerned with) and I also think that the better way forward for social media users to not get their eyeballs stained with garbage is to not look at open sewage pipes (global feeds on public relays in nosterese) and instead evolve a working WOT model where you have interesting follows and you can also easily tap into the content of their follows and their follows follows (out to some user-configurable limit of degrees of Kevin Bacon).

