nostr-protocol / nips

Nostr Implementation Possibilities
2.39k stars 582 forks source link

nip09: filtered deletation. #1509

Open kehiy opened 2 months ago

kehiy commented 2 months ago

using the current model, it's hard to remove events with complex conditions. client needs to turn user action into a huge event and send it to relay and then relay needs to do an iteration and remove them.

using f tag, we can make it much easier. filter already exists on relay and clients and they can parse, construct, and interpret them. for relys it's easy to turn this filter to a remove/delete query on different query languages compared with the current model.

then clients can support delete account, removing all chat messages, or even getting the filter as input from the user.

of course, the "authors" filed MUST be considered only if the matching events are kind of in the control of the "pubkey" field owner in the case of moderated communities and similar stuff.

vitorpamplona commented 2 months ago

The only issue with broad deletions is that other relays will also delete this if the event gets rebroadcasted there. This is why on https://github.com/nostr-protocol/nips/pull/1256 we had to specify the relay. Otherwise a database sync between relays might delete the filter elsewhere as well.

kehiy commented 1 month ago

as i can see this nip-09 is intended to be used to delete something network-wide. if we want to perform such a thing, why not just make the deletation request a protected event then?

kehiy commented 1 month ago

pr updated with better details and no typos.