The issue you raise is valid and I think it comes from the misunderstanding that even most nostr app developers have about the protocol which leads to them writing "nostr apps" in a way that - indeed - makes no sense, causes confusion, and ultimately does not solve anything.
In one short sentence: people mistake nostr for IPFS. They think relays are there to somehow store the events, to provide persistence. They are not! They are there to relay the data. Remember, the T in nostr stays for transmitted.
Most "nostr apps" do this: want to publish an event? Let's blast it to a list of relays and say done! Want to see other people's events - or even my events? Ask the same list of relays. Maybe have a DB locally used as a cache for better performance. This is the wrong approach in my opinion, and leads to nostr being misunderstood - at best - and will lead to data loss and pain and disappointment in the long run.
To better explain: I think relays should be thought as ephemeral entities. Every client should store the data locally first. After storing the data locally, it should blast it to a bunch of relays that happen to be active at that particular moment, and other clients will receive these events from those relays. But these relays might disappear an hour later. They are not there to stay. Having the data locally means that IF the user decides that the events are important enough (for example the events represent profile metadata or long-form blog posts), it can periodically send them to new relays. If the events are not considered important - like a short status update - it is perfectly fine to just stop caring and assume that whoever got it, got it, but other clients that come online later might not get it anymore.
I think relays should be thought as ephemeral entities. Every client should store the data locally first. After storing the data locally, it should blast it to a bunch of relays that happen to be active at that particular moment, and other clients will receive these events from those relays.
+1
Sounds like POSSE https://indieweb.org/POSSE
reply
Didn't know about this term, but yes. This was the whole point of nostr: to 1) put you in control of your data and 2) make your data easily accessible and hard to censor.
How would you achieve 1) if you would not hold your data in the first place, anyway? How are you self-sovereign if you trust some random relays to hold your data forever?
reply
I still haven't full wrapped my mind around the "transmitted" part of NOSTR. There's a part of me that intuitively understands, but the rest of me is still unsure of how that should work.
reply
You hold your data in a safe place - a place you have 100% control over. Not inside Twitter, not inside the cloud, not on a VPS. This might mean your data is on your node running in your closet. Which means it is not accessible from the outside world. Nostr clients cannot connect to your node, since it doesn't have a public IP. Plus you don't even want random strangers to know your node's IP address.
So what do you do?
You talk to these random dudes that sit on the street all day long and answer questions to anyone passing by.
You tell them ... "if anyone asks about me, tell them I said this and that." That's it. These dudes might come and go. Nobody needs to know who they are. The whole point is that they don't need to be trusted, because the messages are signed, so these shady dudes cannot alter the messages. Also, nobody needs to know where exactly you live, all they need to find is some random dude knowing something about you.
reply
Don’t trust, just verify 🤓
reply
What I don't like about this characterization, though I may have to live with it, is that this random dude on the side of the street doesn't just give me message to people asking for it, but he'll give it to everyone passing by unless they specifically avoid it. (ie they have global feed turned off and only see people they follow in their own client) Maybe this is an issue with the message I give him, and not with his model of telling anyone everyone else's business.
reply