I need to figure out the outbox model and use it. Not sure where to start

Reply to this note

Please Login to reply.

Discussion

In principle, it's pretty simple. Each user reads from some relays and writes to others.

If User A wants to read an event from User B, User A should query the relays User B writes to, i.e., his outbox relays.

Likewise, if A wants to ensure B can see a note, A should send to the relays B reads from, i.e., his inbox relays.

How do you identify a user's inboxes and outboxes? There are a few ways:

- Query some common relays and download the user's relay list event.

- Use relay hints in events or event addresses themselves, as detailed by the protocol.

- Keep track of which event authors show up on which relays, and maintain a running list in-app of inboxes and outboxes.

Other methods are likely possible. The first two are the most straightforward; any client dev can start with those.

Is there a reason I don't want to just connect to every relay I learn of?

data use

And it slows the client down.