Replying to Avatar fiatjaf

nostr:nevent1qqsqqq90yfee6l3ahjz8ffglf22ga44r2sjk63gvhcu6264wr7wmr8cpypmhxue69uhkx6r0wf6hxtndd94k2erfd3nk2u3wvdhk6w35xs6z7qg4waehxw309an8yetwwvh82arcduhx7mn99uqsuamnwvaz7tmwdaejumr0dshspc9z9u

The "outbox model" is kind of a misnomer actually, it can't be "implemented", it is just an idea.

The idea is: you have to organize your client in a way that it learns using all the information available where each pubkey is publishing their stuff to, then connect to those relays to fetch their stuff. That's it, the rest is your imagination.

The common tools that can be used for this are:

- kind:10002 relay lists

- relay hints in "p" tags

- relay hints in other tags

- relay hints in nprofile, nevent codes

- relays listed on nip05 /.well-known/nostr.json

- history of successes and failures when fetching events for a specific pubkey in a specific relay

I tried to convey the idea here: https://how-nostr-works.pages.dev/#/outbox (notice the table with a dynamic ranking of relays for a specific pubkey on the right). This is just an example of one possible implementation. It follows roughly what is implemented on https://pkg.go.dev/github.com/nbd-wtf/go-nostr/sdk/hints and is heavily inspired by some past version of https://github.com/mikedilger/gossip.

What do you propose calling the approach instead?

nostr:nprofile1qqswuyd9ml6qcxd92h6pleptfrcqucvvjy39vg4wx7mv9wm8kakyujgpypmhxue69uhkx6r0wf6hxtndd94k2erfd3nk2u3wvdhk6w35xs6z7qgwwaehxw309ahx7uewd3hkctcpypmhxue69uhkummnw3ezuetfde6kuer6wasku7nfvuh8xurpvdjj7a0nq40 also has a page here:

https://mikedilger.com/gossip-model/

Reply to this note

Please Login to reply.

Discussion

It may be useful to have a comprehensive site or in-client feedback on how well various clients and profiles support this approach? Might help move progress forward.

It would be good indeed, one could start by reading the code and asking the developers questions about how it works, then testing edge cases on each client.

I would have preferred that it was called "nostr", but I am happy with "outbox" for now.

mike dilger likes a horrible programming language, his opinion is duly weighed

That's the goal, I think. 🤘