Replying to Avatar jb55

Pablo is not right and I disagree with point 2 as well.

Having a fixed set of trusted relays is good for network performance and trust if your client isn’t hardened. You can just remove a bad relay if it’s malicious. In the gossip model you can’t and others can force your client to pull from any relay they desire.

Im not that worried about the network overhead if the gossip model, connections are pretty cheap, just a bit of state in the kernel. Maybe you would need some kind of LRU connection pool? I have yet to think about how to optimize this, but it’s not impossible.

nostr:npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6 continues to downplay the engineering challenges for the gossip model. Its easy to criticize us larger clients for not caring about decentralization, but its already very hard to make a performant client on mobile, and now we have to make sure our app still works in the presence of way more connections and potentially faulty and slow micro relays.

I’ve spent almost a year building an in-client relay just so this model doesn’t affect the performance and security of the app. I’m almost at the point where I can begin experimenting with this model only because of it. it’s a damn hard thing to switch to without a large amount of engineering, but we are getting there.

I didn't mean to downplay the challenges, and I don't even think outbox/gossip model is the only solution or the best (although I can't think of anything better at this point). All I did was to complain about the current state of things and wish they were better.

Reply to this note

Please Login to reply.

Discussion

It should be the responsibility of the poster to ensure their message gets to all their followers. Not the responsibility of the viewer to find all the posts from people they follow.

ActivityPub doesn't have this problem because it uses an inbox model. This makes sense because posters should be motivated to ensure their content reaches their followers.

In Nostr when a user makes a post, we should enumerate their followers and find the best relay for each by NIP-05 or NIP-65. Then deliver the event to those relays. This is essentially what ActivityPub does.

this seems easier than outbox

The client delivering their new post to all those different relays is cool, but it breaks down if you have millions of followers… too much stress on the client.

Neat idea though!