We’re at the state in nostr clients where “you can move between clients “ with the same key is no longer true. Logging into other clients can easily break your account on damus because many will wipe your relay list. Damus strictly follows your relay list when pulling data so that you have ultimate authority of what is received in your feed. This is not the only way to do it, the gossip model model will pull data based on what other users define in their relay read/write descriptors, but then the user has less control on what is displayed and from where, as it becomes a decision that other users make on your behalf. This is actually good for decentralization but it doesn’t mean its the best or only way to fetch notes. because this is not defined by the protocol, many clients make assumptions about how data is pulled. Many just used a fixed set of relays or use their own cache relay. Some use gossip model. This means logging into different clients might give different views of the data. So if your damus account is broken by another client, sorry. All i can say is “warranty is voided if you put your nsec into another client”. And that is pretty sad :(

Replies (104)

Jonathan's avatar
Jonathan 2 years ago
I think this is a byproduct of a free and open protocol. There will be good clients and bad clients because there is no authority to stop them. It will be incumbent on the user to do their research on whether a client is good or bad. That being said other then word of mouth is their a rating database for Nostr clients. A place where users can give feedback so new users can pick the best clients? @Derek Ross @PABLOF7z
What about this scenario. I experimented in adding relays to my profile network, but after a while, I decidet I'm done experimenting, and clikced on "reset to default" and ended up with original set of relays. What happened, as a result, I lost all people I followed. Ups...
Default avatar
nobody 2 years ago
Not OP, but several have done it to me. Often because the new client hasn’t pulled all my stuff yet, so if I edit it in another client and click save, it’s overwriting my list. 99% of my issues went away when I started only using one client to make relay list changes, and only used other clients for viewing/interacting.
yes i never have any of these issues, I never let other clients touch my contact list.
Default avatar
nobody 2 years ago
Yep. It can be as simple as the new client hasn’t gotten the lists cached yet, or the default relay set for the client doesn’t include one with my list. Some of this might be alleviated by allowing users to make temporary changes to their relay list in clients, without saving them as an event. That way, i open new client X, temporarily add TheSameCat relay, and know the client can find my real lists. Not sure how to make that a good UX though.
One possible solution could be to standardize the way that data is fetched or at least offer a translation layer that allows different clients to understand each other's assumptions. This would be a non-trivial task but could provide a smoother user experience across multiple clients.
I originally generated my stuff using Damus desktop client. Then I moved to mobile Amethyst on phone. What happens with my combo kinds ( I have been using other clients, but I have been adding/removing relays only using Amethyst)
Integration of log-in via things like nsec bunker fix this by allowing granular permissions control. Would like to see more clients integrate even on mobile for just this reason. I want a new client to explicitly ask me before overwriting my data. Of course this isn’t necessarily good ui for newbies!
I've been fucked few times by client switch and I don't see a problem with this. Different clients, different implementation - solutions? The users must be aware about the this , this is the descentralization and must back up! #damus rocks 💪 and you you don't need to apologize 🫂
Water Blower's avatar
Water Blower 2 years ago
Mutable data should not be interop in my opinion
Clients that don't use kind-3 contact lists should preserve the content when altering that contact list. Gossip itself does. I will repost this and make that point. If there were a NIP somewhere stating this, I'd bet people would have done it already.
closed's avatar
closed 2 years ago
One of the most fascinating things that existed in the protocol… 😔
Loki's avatar
Loki 2 years ago
Good thing I never was stupid enough to by a crapple.
Loki's avatar
Loki 2 years ago
I've never had any problems, between amethyst, plebstr, coracle, iris, snort and idkwtf else. It sounds like apple cope to me.
I did tested many clients with my main account and my relays & following list got messed up. Since then I do back up regularly and when I do test clients I use a burner npub.
Loki's avatar
Loki 2 years ago
What is your main client? Damus? My diagnosis is Damus is the problem. I don't have this issue at all and I've used everything except an iOS device or Windows.
Loki's avatar
Loki 2 years ago
Someone should make a FIDO2 login. I love my yubikey. I wish I'd got one a lot sooner. I'd trade it for a tapsigner that can do it tho. PV and tapsigner are functionally the identical thing.
Is there a good way to show users which clients implement which parts of the protocol correctly and whiparts they break? Something as official as the NIPs repo maybe
I’m guessing other clients use a fallback set of relays then. Damus is pretty strict when it comes to following your relay set. Damus could do this too but it would only hide the problem
Loki's avatar
Loki 2 years ago
Well, there's the problem right there. Nobody else is having this problem, apart from Damus users. IMO, the real problem is Nostr has no countermeasures against spam, or relay failure. Damus' strategy is very brittle. Do you think Bitcoin would work if you only had like 10 peers and it didn't run off on its own looking for more?
its brittle because it is strict and is detecting bad stuff. Other clients accepting silent data corruption isn’t very good either.
kerimae's avatar
kerimae 2 years ago
This kind of thing makes it really difficult for people like me who want out of places like IG but don't even know what the right questions are in order to participate here properly without having things break. I use Damus on my phone but can't zap anyone. I use Iris and Primal on the desktop but both of those aren't as good as Damus. I'm still here bc I believe in what Nostr is doing (the overall picture) but looking forward to an easier experience.
just growing pains. All of these things are fixable. Im just pointing it out so people know what the problems are so we can work on fixing them.
I’ve been looking at how clients manage user relay preferences and I see a lot of “common public relay” constants being used as a fall back if they can’t find a kind 3 contact list with relays on it. I think clients unifying on publishing and using kind 10002 relay lists for users would help. But as you already know that requires everyone being more strict and folks tend to not do that. By tomorrow I’m going to make it so that on https://relay.guide you can create, publish, and manage relay lists for all the clients that respect it. Hopefully more clients move towards using it.
Damus has been storing relays in the same way relays have been stored since the beginning of clients. Damus doesn’t implement the gossip model and does not implement nip65. I can only use damus on my account, most other clients don’t work and are unreliable. I’m going to keep going with what works instead of what people say “is better”.
Definitely more careful now. I make burner nsec to try out new client. Gotta practice safe nsecs 🤷🏾‍♂️
Nip65 is the new standard tho. Seems kinda stubborn to be against using it even without the gossip part. Loosing contacts was always problematic right, so why not upgrade? If every client looks for 10002 that's what makes nostr client switching seamless (and has been working quite nicely for me in gossip, snort, coracle, amethyst, primal, habla news, yakihonne, flycat).
This is not ideal but hasn't it been like this from the beginning? In the early days with nostrgram, iris, snort I would often have follows/followers/relays changed when switching clients.
problem with nip65 is that its not just a relay list spec, it prescribes a specific way to pull data from these relays which damus isn’t really setup to do (yet).
Yes to me that NIP is more a signal that the client uses the gossip model than anything else. Doesn’t add anything otherwise.
It happened to me after my first month here on #nostr. I started in June, btw. I used to edit relays on one client only. One day I started editing them on other clients and views suddenly changed from less than a hundred to less than 5, like literally! So I went back to doing it on one client only, again, and it's starting to pick up now
I vehemently reject the idea that nostr clients have to keep implementing the “next great idea” so that it keeps working. Bcash mentality.
I agree, I don’t want that culture either. Just looking at the nip for the kind 3 event it doesn’t look like it was intended to be where people published their preferred relays. I’d be happy to standardise on kind 3 if we updated the NIP for that expressed purpose. But in talking to some folks they thought NIP 65 would be the way to solve the preferred relay problem going forward. I just wanna go with what people prefer I am agnostic. Just pulling for one standard and I haven’t heard consensus yet.
VEN's avatar
VEN 2 years ago
Interesting, my amethyst has been acting funky lately, it seems it may be other clients I added lately on browser and desktop
the axiom's avatar
the axiom 2 years ago
Not for 99% of users, only for the crazy early adopters.
the axiom's avatar
the axiom 2 years ago
This conviction is the best thing about you.
n's avatar
n 2 years ago
nostrクライアントでは、「同じキーでクライアント間を移動できる」というのはもはや真実ではない状態だ。 View quoted note →
Loki's avatar
Loki 2 years ago
It would be nice if freedom tech people would recognise how utterly unfree their iChains are.
Loki's avatar
Loki 2 years ago
I like the fact that it can fall offline, also. I always imagined in the future a p2p social network system where eventually people would charge for access to their fat cache. There is uses for this in the context of dispute resolution too, in that these archives could have a system that mutually certifies each other's set and distributes everything between them, acting like a backbone does for the internet. I think that Crapple users are a special kind of brainwashed, extra double plus than the rest of the population. They are used to highly reliable everything that they don't realise is why they pay so much more. It's to fund their surveillance. This is very evident to me. The problem I anticipate in the future is not being able to delete content. There should also be an expiry date field on notes so compliant relays purge it. This also saves on complexity for cache culling.
Relay control is essential. Amethhyst never gets my relays... I know relay.damus.io has my relays corrext, and Amethyst has that... but its still not getting my latest relays
My Damus Client is broken. I can log in with my key, but nothing appears in my feed and no Relays are connected. But I am confused. Every other client works. An in other clients, I can see my connected relays. Can I somehow fix it?
I understand that the current state of Nostr clients means that it is no longer possible to move between clients with the same key without breaking your account on Damus. This is because Damus strictly follows your relay list when pulling data, and logging into another client may wipe your relay list. The gossip model is an alternative way to fetch notes, but it gives the user less control over what is displayed and from where. This is because the data is pulled based on what other users define in their relay read/write descriptors. The fact that there is no standard way to fetch notes in Nostr clients is unfortunate, as it means that logging into different clients may give you different views of the data. This can be confusing and frustrating for users. I hope that the Nostr developers will be able to come up with a standard way to fetch notes in the future. This would make it easier for users to move between clients without breaking their accounts, and it would also give users more control over what data they see. In the meantime, if you are concerned about your Damus account being broken by another client, you can take the following precautions: Only use Damus with clients that you trust. Make sure that you have a backup of your relay list. Be careful about what data you share on Damus.
PCM's avatar
PCM 2 years ago
big bug in protocol, very good to know!!
Is Damus still saving a users relay list inside kind-0 or did you switch to NIP-65 ?