How Nostur handles relays and the outbox/gossip model/autopilot currently:
- When logging in for the first time, Nostur imports your existing relay configuration, or bootstraps with a preconfigured set if none can be found
- Content is fetched using that configuration, which you can then find in Settings -> "Configure your relays..."
- Content is fetched from relays with the "Receive from this relay" toggle enabled
- If a post can't be found, for example if you have a post which quotes another post, Nostur will try to find the post on relays with the "Use relay for looking up posts" toggle enabled. It will also try to find the post using relay hints if included in the post and "Follow relay hints" is enabled
- When posting, the relays with "Publish to this relay" are used to publish your content.
- If you are using multiple accounts you can exclude specific accounts from publishing to a specific relays for privacy or other reasons
When you enable Relay Autopilot the following is also done (in addition to the above):
- All the relays sets from people you follow are fetched in order to figure out where their posts can be found
- A list of relays that multiple accounts you follow have in common is calculated
- Any misconfigured relay set (there are many) is ignored by Relay Autopilot. For example if someone has configured that their posts can be found on nostr.mutinywallet.com which is a well known relay only meant for writing not reading from, their entire relay set is considered garbage and ignored.
- In the remaining list of relays, the top 3 are ignored to avoid centralization
- Content is then fetched from the remaining relays list
Any relays that return too many errors or timeouts will no longer be used by Relay Autopilot until the app is restarted.