NIP33
参数化可替换事件
draft
optional
author:Semisol
author:Kukks
author:Cameri
author:Giszmo
该 NIP 添加了一个新的事件范围,允许替换具有相同 d
标签和种类的事件,而不像 NIP-16 仅替换为种类。
实施
标签的值定义为标签名称后标签的第一个参数。
A参数化可替换事件被定义为具有种类 30000 <= n < 40000
的事件。在接收到具有比当前已知的具有相同种类和第一 d
标签值的最新可替换事件更新的时间戳的参数化可替换事件时,应当丢弃旧事件并用较新事件替换。缺少或 d
没有值的标记应被解释为等同于值为空字符串的 d
标记。来自同一作者的事件与以下 tags
任何一项相互替换:
“标签”:[[“D ”,“”]
"tags":[]
:具有空值的隐式d
标记"tags":[["d"]]
:隐式空值""
"tags":[["d",""],["d","not empty"]]
:仅考虑第一个d
标记"tags":[["d"],["d","some value"]]
:仅考虑第一个d
标记"tags":[["e"]]
:与无标记相同"tags":[["d","","1"]]
:只考虑第一个值(""
)
客户端不应使用 d
具有多个值的标记,并且即使标记没有允许使用 #d
筛选器进行查询的值,也应包含该 d
标记。
引用和标记
通常(根据 NIP-01、NIP-12) "p"
,标签用于引用公钥, "e"
标签用于引用事件 ID,并且 note
、 npub
nprofile
或 nevent
是事件标签的等价物(即, nprofile
通常被转换为标签 ["p", "<event hex id>", "<relay url>"]
)。
为了支持到参数化可替换事件的链接, naddr
在 NIP-19 上引入了代码。它包括事件作者和 d
标记(和中继)的公钥,以便可以找到引用的公钥和 d
标记的组合。
naddr
代码中 tags
的等效项是标记 "a"
,由 ["a", "<kind>:<pubkey>:<d-identifier>", "<relay url>"]
组成。
客户行为
客户端应使用该 supported_nips
字段来了解中继是否支持此 NIP.客户端可以向可能不支持此 NIP 的中继发送参数化可替换事件,并且客户端查询应为中继发送多个事件做好准备,并且应使用最新的事件,并建议发送 #d
标签过滤器。客户端应该考虑到这样一个事实,即丢失的 d
标记或没有值的标记不会在标记过滤器中返回,并且建议客户端始终包含 d
具有值的标记。
Last updated