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