Just came up with a new plan for fixing replaceable events with @semisol
The biggest issue with replaceable events (contact lists, profiles, lists,) is that there is no versioning scheme. This leads to many issues where your contact list is dropped, comments+likes+zaps appearing only on older versions of a post, etc.
We need a concept of versioned events in nostr and a way of querying those effectively. Looking forward to working with @semisol on this and implementing it in Damus, nostrdb and hopefully strfry once we figure it all out.
Login to reply
Replies (7)
Thats the plan. We’re thinking of upgrading replaceable events to versioned events with a pruneable history. It shouldn’t be too disruptive in theory, it just changes replaceability with versions.
nm i think i understand what you mean now. The issue of replacing contact lists with reduced checkpoints is another problem which is more disruptive and difficult, the one im talking about here is a simpler problem to tackle.
This came up because people were starting to use a-tags as zap and like targets which seemed very wrong. I wrote up why here:

GitHub
update nip-57 zap receipt spec to include 'a' tag by huumn · Pull Request #800 · nostr-protocol/nips
@verbiricha reached out letting us know SN's zapper wasn't including a tags in the zap receipt.
Figured it should be added to the spec for future z...
We just need to not add information destruction as a core protocol feature. It leads to many awkward outcomes.
discussion: https://jb55.com/s/pre-versioning.txt
ohh.. I thought somebody would go for a Unified Format type of thing. :(
You should probably specify what happens when Clients filter for replaceables. I am willing to bet very few clients add a limit 1 to get only the latest update. They might end up receiving all historical events if relays are now keeping the entire history and we change the way the filter works.
Replaceable events are already being used to edit notes (longform, etc). The problem is you lose edit history when you abuse replaceable events like this.
Probably