Why Nostr? What is Njump?
2024-06-17 12:31:08

fiatjaf on Nostr: ...

gossip/outbox/etc was “added” to the protocol after most clients had already become accustomed to read/write to all relays. this is what happens when you iterate on protocols after they’ve been released in the wild.

it will sort itself out in time, but it may not be what you envision.

The "outbox model" was not a modification of the protocol nor a new invention, nor it is a new optional NIP. once said about the idea, "this is just the Nostr model, it is how Nostr has to work if it can ever scale" (https://t.me/gossipclient/605). Minutes after he came up with the name "outbox model" just so we could refer to this thing that Nostr clients should be doing but only Gossip was doing at the time.

The initial description of Nostr (nostr:naddr1qqzkummnw3eqzythwden5te0ve5kzar2v9nzucm0d5pzqwlsccluhy6xxsr6l9a9uhhxf75g85g8a709tprjcn4e42h053vaqvzqqqr4gusz7vna) said: "you write a post, sign it with your key and send it to multiple relays (servers hosted by someone else, or yourself)" and under the "censorship-resistance" section it said "there will always be some Russian server willing to take your money in exchange for serving your posts".

Since you were supposed to write "to your own relay" or "to some Russian server" shouldn't it be reasonable to assume clients would be connecting to these relays to read your posts and the entire promise of censorship-resistance of Nostr rests on that possibility?

Implementation details were never specified because I think there are many ways to approach that and hoped clients would each have their own creative way of implementing it. Having the user manually specify a list of relays and then flood all relays in the list with queries for all people you're following was part of a very quick proof-of-concept I've implemented in (what was supposed to be the first version of) Branle in December 2022, but it should be obvious it's not a very user-friendly or scalable design, right?
Author Public Key
npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6