damus-io / damus

iOS nostr client
GNU General Public License v3.0
2k stars 290 forks source link

FSD Autopilot mode (Outbox model) 🚗🤖 #423

Open alltheseas opened 1 year ago

alltheseas commented 1 year ago

prerequisite

Local relay / nostrdb migration https://github.com/damus-io/damus/issues/2041

User Story

As a nostr newbie, and prospective Damus user who wants to Damus to be ready to use upon installation, I want Damus to handle relay selection & configuration automagically, so I don't have to worry about the complexities of finding & choosing relays, and so that Damus "just works".

Acceptance Criteria

  1. For new installs of Damus relays are automagically selected, and configured
  2. Damus users have option to switch from automatic relay config to manual configuration, and vice versa
  3. Upon rollout of Autopilot feature, Damus will not delete current Damus user's relay configuration

Suggested by @jb55 https://damus.io/note1qhn8v3h7racd3u0xtssath42y938zc8usfgfygr73yn6wrxhuy2scmg2a5

Mock setting: AUTOPILOT

alltheseas commented 1 year ago

On new Damus profile creation there are 4 initial relays.

Does auto-pilot relay do more than seed 4 relays after profile creation?

E.g. relays updated as needed

jb55 commented 6 months ago

This is basically outbox

jb55 commented 6 months ago

I just realized we have no outbox model tickets so I will co-op this one

jb55 commented 6 months ago

Maybe autopilot mode would simply turn on the outbox model, it could be default.

alltheseas commented 6 months ago

Maybe boostrap related to the Daniel's onboarding - copy relay list from friend https://github.com/damus-io/damus/issues/1696

alltheseas commented 6 months ago

See also #2022

alltheseas commented 6 months ago

@danieldaquino

alltheseas commented 6 months ago

Screenshot 2024-05-13 at 11 35 32 AM

alltheseas commented 6 months ago

Requires local relay nostrdb migration

alltheseas commented 5 months ago

@fiatjaf publishes npub1u3jp6rhdw8fdps8k3nf4pr2slnd3j49vrnx6y6wahda8397zyc2qw7q7na notes to obscure relays - adding as test case

alltheseas commented 5 months ago

Requires local relay nostrdb migration

@danieldaquino whats your best understanding of local db/nostrdb migration remaining effort post Will showing you the nostrdb matrix?

danieldaquino commented 5 months ago

Requires local relay nostrdb migration

@danieldaquino whats your best understanding of local db/nostrdb migration remaining effort post Will showing you the nostrdb matrix?

I would estimate around 13 story points left

alltheseas commented 2 months ago

https://github.com/damus-io/damus/issues/1147 relay hints

alltheseas commented 2 months ago

note16epe5s8s9sqclx2xxpc3ll8l9azzdw0s0n2yux8qnzk7fu5hdtsqsesuvc

On relays

This whole time I thought that was automatically managed and had like 15 from before 🫠😂

note19qgg8gg4c9gxt38zfrnzwflf38wrckqqg9zmxwffk9rtepnfyqwsdsjvf8

I haven’t added any relays. I’m just using the default ones. I haven’t seen the spam replies after the first day.

alltheseas commented 2 months ago

See NIP-66 relay discovery and liveness monitoring stated benefits. Benefits seem potentially useful for damus devs & end users relating to autopilot (outbox+):

  1. performance benchmarking - i.e. latency (e.g. 50 ms), uptime (great, good, poor, offline)
  2. outbox optimization via network topology

https://github.com/nostr-protocol/nips/pull/230