nostr-protocol / nips

Nostr Implementation Possibilities
2.4k stars 583 forks source link

replaceability using other tags #1510

Open fiatjaf opened 2 months ago

fiatjaf commented 2 months ago

This might be a solution to the https://github.com/nostr-protocol/nips/pull/1501 conundrum (we can just grandfather in that specific kind like we did with normal replaceables and kinds 0 and 3).

And also address https://github.com/nostr-protocol/nips/pull/1506 and other similar issues that will certainly arrive in the future.

Just a preliminary idea.

alexgleason commented 2 months ago

I like this approach.

Another idea I had was to give the "d" tag a second parameter, something like this:

[
  ["d", eventId, "e"],
  ["e", eventId, ...rest],
]

or:

[
  ["d", pubkey, "p"],
  ["p", pubkey, ...rest],
]

When the "d" tag has this extra parameter, there MUST be a matching tag.

kehiy commented 2 months ago

the current filter/event model is complex (better to say dynamic) enough to be hard to store and query efficiently. i think putting more dynamic rules on them just makes the relay implementation more complex. also makes them inefficient. also clients.

if i understand this nip correctly, it will affect a lot of stuff in the processing "EVENT"s and "REQ"s. maybe I'm wrong? not sure.

mikedilger commented 2 months ago

I don't think this is worth it. Adding a 'd' tag that matches the 'e' or 'p' or 'a' isn't that much overhead, but it is a lot of coding to do it this way.