Sometimes my client has to go "find" a note from a random relay, often because my relay got the "re-tweet"/reply but not the original. There's no reason a relay should be needed for this operation, a DHT like a magnet link or IPFS would work fine. I assume event IDs aren't hashes, but given that they are signed, you have a similar way to verify authenticity of the note.
Login to reply
Replies (6)
event ids are hashes
you can store events in any file system with their ids if you separate signature and event data
event consist of following:
event_id = sha256([...event_data])
signature
you can calculate ipfs cid instead of sha256 event id and find event from ipfs:
cid([...event_data])
if you include signature in some place else, you can have full event:
https://ipfs.io/ipfs/event_cid#signature
where
curl https://ipfs.io/ipfs/event_cid finds event data without signature
problem is that if you know event id as sha256 hash, you cannot derive ipfs cid for event.
i dont think you can really find event from ipfs without specifically telling that ipfs cid within an event.
well then, guess we don't need relays to store them, only to keep track of their existence. And storage/delivery can be done by nostr relays, fully P2P, via DHT, IPFS, or any other hash-based storage table.
interesting points, but if I'm being brutally honest your improvement suggestions have to be taken with a grain of salt given that you're not really up to speed on the protocol... fair?
fair enough. I've just seen plenty of fully-functional P2P protocols over the years and don't think centralizing around relays is necessary or good. I love a lot about nostr, but not that part.
for what its worth, I also prefer true p2p networks where each user has/is a node/server.
but I have an even stronger preference for open protocols and I haven't yet seen a p2p network that a considerable number of people care about and use daily that is ALSO built as an open protocol.
I have some ideas for slowly increasing the ratio of relays:npubs on nostr... it might not ever get to 1:1