There are a lot of people losing contacts when they try new apps. This lady is one example:
View quoted note →
The reason may be:
Apps have to have default relays for them to start communicating with the network. This is just there to facilitate things to jump start.
When people use an app for the first time, the app doesn't know user's relay preferences and follow list. So when the app starts with its default relay list and immediately posts those to relays as kind 3, the app overwrites user's preferences. Since the app didn't read user's follow list first, it thinks the user doesn't have any follows. All the follow list is overwritten and the other apps will see that empty follows. If it deletes the previous kind=3 note, it is deleted from the relays as well. The user has to rebuild it from scratch or from a backup.
Another theory may be an app is using kind=10002 for relay list but user's relays were actually part of kind=3. Miscommunication between apps may result in such cases.
As a temporary solution I think:
- All the apps should write to 10002 and 3 for a while for relay prefs. 3 for being compatible for previous design.
- 3 and 10003 for follow list.
- If a person follows more than 1000 people they can use 30003 and store several pages of contacts. Maybe save the first 1000 in 10003 and all of them in 30003. If another app is not supporting 30003 then at least they will see first 1000.
- 30003 may be more efficient too in terms of traffic. If they follow like a 1000 people but divide the list by 10, then whenever they follow or unfollow the app doesn't have to do a huge list update but just update a smaller list (1/10th of the whole thing).
kind 30003 tag: "d", "page01" {1/10 th of contacts in this note}
kind 30003 tag: "d", "page02" {1/10 th of contacts in this note}
....
kind 30003 tag: "d", "page10" {1/10 th of contacts in this note}
Another theory is default relays of an app may not include relay prefs of a user. The intersection of those two sets of relays is empty. Hence the app does not read user's prefs at all. This is harder to solve. Relays that specialize in just hosting 1, 3, 10002, 10003, 30003 like purplepag.es can be a neat solution.. Or having more relays...
Login to reply
Replies (2)
View quoted note →
I think I've read about something similar here before.
what do you think @fiatjaf ?