-
Notifications
You must be signed in to change notification settings - Fork 586
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deleting replaceable events #1263
base: master
Are you sure you want to change the base?
Conversation
From other discussions the idea was to delete the referenced replaceable up to the Though your idea helps clients that don't fetch |
I don't like it because it still uses bandwidth to download the event with Either way... Amethyst does both: 1 is needed for relays that don't support replaceables (yes, those are out there) and 2 is needed to reduce bandwidth on those who do implement it. Full deletions are extremely helpful on Generic Drafts #1124, since things are being deleted all the time. There is usually more deletions than drafts. |
I prefer (and implement) |
Well, the idea is that relays will delete and not send these events to the client. |
This is better. I wish it had been written to the NIP. |
I don't think it's too late, as far as I can tell relays don't seem to implement a tag deletions. |
One advantage of my approach here of replacing the replaceable with an empty event would be that it would be backwards-compatible with relays that don't implement actual deletes. If the relay deletes it deletes -- otherwise the relay will just serve an empty event (the content itself will be deleted). This is in fact what Amethyst is already doing and what you should do if you want to erase the content from relays that don't implement deletion. |
I don't think this really solves anything because clients should be pulling deletes anyhow if they want a consistent UX. An empty event in contrast can look broken, and the client can't know why. This approach just leans into what's already bad about replaceables, in that they destroy information, making it harder for clients/users to know what happened. |
I put my zero-weight vote on the This goes in line with #236 vision. |
I don't think they should be pulling deletes. It's enough for relays to delete things. Unless the client is storing events from others locally, in which case that makes sense. Sure, you can pull in delete events, but that should not be a requirement.
Well, it accomplishes the goal of erasing the content. Is that worse than relying on or rendering an event with broken old invalid information that the creator had already expressed their desire to erase? Plus if it looks bad this client will have an easy time fixing it by just ignoring received events with the
This is true of every approach listed here. And it's a feature if you want that information destroyed. |
The only problem is that approach is bad, for the reasons I stated there. I feel like the more "elegant" approaches are often not the best ones to choose in the context of Nostr. |
Oh, forgot about this detail. @staab has a strong argument. Even if client is storing just the logged-in user's own events, considering a multi-device/app scerario, a local DB of events from a currently offline app will need to know that the replaceable was deleted, when the app goes online. The
|
I suppose this would work. It just means that now there are two ways to delete something (three if you count e/a tags as different things). |
Let's write and code this. It is by far the best solution.
Agree, clients should not receive deletes at all. |
I think these positions are mutually exclusive. What if a client already has an event in its local relay and wants to find out if it's been deleted? |
Between BUT, it is also common to have relays that do not implement |
Deletion Events are generally returned if you do a |
To delete an And the solution:
Is also very different (and much harder to code both on relay and on client side) than normal |
As a data point, in chorus/pocket I coded what Staab describes in this comment above: /nostrability/nostrability/issues/38#issuecomment-2120827062 kind 5 events with 'a' tags delete only events before the deletion event. |
Oh, I didn't even realize my MR was competing with this one. But we should just merge: #1293 |
No description provided.