What is Nostr?
Nostr社区党支部书记
npub1d5y…p6lz
2025-03-02 15:20:14
in reply to nevent1q…y7yh

Nostr社区党支部书记 on Nostr: #nostr知识科普 答案来自Gemini thinking experimental with app。 # Nostr ...

#nostr知识科普

答案来自Gemini thinking experimental with app。

# Nostr Implementation Possibilities (NIPs) 协议详解
以下是更详细的 Nostr NIP 协议功能解释,希望能帮助您更深入地理解每个协议的作用:
基础协议与规范
* NIP-01: Basic protocol flow description (基础协议流程描述)
* 详解: 这是 Nostr 协议的核心规范,是所有其他 NIP 的基础。它定义了 Nostr 网络的基本架构、数据结构和通信流程。
* 事件 (Events): 定义了 Nostr 中信息的基本单元,包括事件的结构(kind, tags, content, pubkey, sig, id 等字段)和事件类型 (kind 字段的取值范围,例如文本笔记、转发、反应等)。
* 密钥 (Keys): 定义了公钥 (用于身份标识) 和私钥 (用于签名和授权) 的使用。
* 签名 (Signatures): 定义了事件的数字签名机制,确保事件的真实性和不可篡改性。
* 网络消息类型 (Message Types): 定义了客户端和中继之间通信的消息类型,例如 REQ (请求订阅)、EVENT (事件发布)、NOTICE (通知) 等。
* 中继连接 (Relay Connections): 描述了客户端如何连接和与中继服务器交互。
* 基本操作流程 (Basic Operations): 概述了发布事件、订阅事件、接收事件等基本操作流程。
* 重要性: NIP-01 是理解 Nostr 协议运作原理的基石,所有客户端和中继都必须遵循 NIP-01 的规范才能互操作。
* NIP-02: Follow List (关注列表)
* 详解: 定义了用户如何管理和使用关注列表。
* Kind 3 事件: 定义了使用 kind: 3 事件来发布和更新用户的关注列表。关注列表是一个包含用户公钥的列表,表示用户关注了这些公钥对应的用户。
* 客户端订阅: 客户端可以订阅用户关注列表中用户的事件,从而构建个性化的信息流。
* 隐私: 关注列表事件是公开的,任何人都可以查看用户的关注列表。
* 用途: 构建社交关系的基础,实现信息流的个性化推荐和内容过滤。
* NIP-03: OpenTimestamps Attestations for Events (事件的开放时间戳公证)
* 详解: 定义了使用 OpenTimestamps 协议为 Nostr 事件添加时间戳公证的方法。
* 时间戳证明: 允许事件发布者为事件生成 OpenTimestamps 证明,证明事件在某个时间点之前已经存在。
* 验证: 接收者可以使用 OpenTimestamps 证明验证事件的时间戳,增强事件的时间可信度。
* 状态: 已弃用 (Deprecated)。 NIP-03 最初旨在提供一种去中心化的时间戳验证机制,但由于签名机制的成熟和应用场景的限制,NIP-03 逐渐被认为是不必要的,并被标记为已弃用。
* NIP-04: Encrypted Direct Message (加密的直接消息)
* 详解: 定义了 Nostr 中实现端到端加密直接消息 (DM) 的早期方法。
* Diffie-Hellman 密钥交换: 使用 Diffie-Hellman 密钥交换算法协商共享密钥。
* 对称加密: 使用协商的共享密钥对称加密消息内容。
* 状态: 已弃用 (Deprecated)。 NIP-04 存在一些安全性和效率方面的问题,已被更安全和更完善的 NIP-17 取代。
* NIP-05: Mapping Nostr keys to DNS-based internet identifiers (将 Nostr 密钥映射到基于 DNS 的互联网标识符)
* 详解: 定义了将 Nostr 公钥 (身份) 映射到传统的 DNS-based 互联网标识符 (例如域名) 的方法,用于身份验证。
* /.well-known/nostr.json: 用户可以在自己的域名下托管一个 /.well-known/nostr.json 文件,文件中包含域名所有者的 Nostr 公钥。
* 验证流程: 客户端可以通过 DNS 查询域名,获取 /.well-known/nostr.json 文件,验证域名所有者是否拥有对应的 Nostr 公钥。
* 用途: 将 Nostr 身份与已有的互联网身份体系连接起来,方便用户验证身份,建立更可信的社交关系。例如,在个人资料中显示已验证的域名,证明该 Nostr 账号属于该域名所有者。
* NIP-06: Basic key derivation from mnemonic seed phrase (从助记词种子短语进行基本密钥派生)
* 详解: 定义了从 助记词 (Mnemonic Seed Phrase) 派生 Nostr 私钥 的方法。
* BIP-39: 基于 BIP-39 标准生成助记词。
* HD 钱包: 使用 HD 钱包 (Hierarchical Deterministic Wallet) 技术,从助记词派生出主私钥,再从主私钥派生出多个子私钥。
* 用途: 方便用户备份和恢复 Nostr 私钥,提高密钥管理的安全性和便捷性。大多数 Nostr 钱包都支持使用助记词来管理密钥。
* NIP-07: window.nostr capability for web browsers (Web 浏览器的 window.nostr 功能)
* 详解: 定义了 Web 浏览器通过 window.nostr API 与 Nostr 钱包进行交互的标准接口。
* 浏览器扩展: Nostr 钱包可以作为浏览器扩展安装,并注入 window.nostr 对象到网页中。
* API 方法: window.nostr API 提供了一系列方法,例如 window.nostr.getPublicKey() (获取公钥)、window.nostr.signEvent() (签名事件) 等。
* 用途: 允许 Web 应用程序 (例如 Nostr Web 客户端) 安全地请求用户 Nostr 钱包执行操作,例如获取公钥、签名事件等,而无需 Web 应用直接接触用户私钥。实现了 Web 应用与 Nostr 钱包的安全桥梁。
* NIP-08: Handling Mentions (处理提及)
* 详解: 定义了早期处理 提及 (Mentions) 的方法。
* @ 符号: 使用 @ 符号后跟公钥 (或部分公钥) 来提及其他用户。
* 客户端解析: 客户端需要解析文本内容,识别 @ 符号后的公钥,并将其转换为链接或用户名等形式。
* 状态: 已弃用 (Deprecated)。 NIP-08 的提及处理方式较为简单,已被更灵活和强大的 NIP-27 取代。
* NIP-09: Event Deletion Request (事件删除请求)
* 详解: 定义了用户如何 删除 自己发布的 事件。
* kind: 5 事件: 定义了使用 kind: 5 事件作为删除事件请求。删除事件请求中包含要删除事件的 id。
* 中继处理: 中继接收到删除事件请求后,应该删除对应的事件 (如果存在)。
* 数据一致性: NIP-09 强调数据一致性,建议中继在删除事件后,也应该通知其他连接的客户端,确保所有客户端的数据同步。
* 用途: 赋予用户 数据控制权,允许用户删除不希望公开或不再需要的内容,维护个人数据隐私。
* NIP-10: Text Notes and Threads (文本笔记和线程)
* 详解: 定义了 文本笔记 (Text Notes) 和 线程 (Threads) 的早期实现方式。
* kind: 1 事件: 定义了使用 kind: 1 事件发布文本笔记,即普通的 Nostr 消息。
* 'e' 标签: 使用 'e' 标签来引用其他事件,构建回复关系,形成线程。
* 客户端渲染: 客户端需要解析 'e' 标签,并根据回复关系渲染线程结构。
* 状态: NIP-10 是早期定义文本笔记和线程的方式,后续在 NIP-27 等 NIP 中得到了进一步的扩展和完善。
* NIP-11: Relay Information Document (中继信息文档)
* 详解: 定义了 中继信息文档 (Relay Information Document) 的格式和内容,用于客户端 发现中继服务器的功能和信息。
* /.well-known/nostr: 中继服务器需要在根路径下提供 /.well-known/nostr 路径,返回 JSON 格式的中继信息文档。
* 文档内容: 文档应包含中继服务器的名称、描述、软件版本、协议支持 (例如支持哪些 NIP)、费用政策、限制等信息。
* 用途: 方便客户端 自动发现 中继服务器的功能和特性,帮助客户端 选择合适的 中继服务器,并根据中继的能力进行相应的操作。例如,客户端可以根据中继信息文档判断中继是否支持 NIP-42 认证。
* NIP-13: Proof of Work (工作量证明)
* 详解: 定义了为 Nostr 事件添加工作量证明 (Proof of Work, PoW) 的机制。
* pow 标签: 在事件中添加 pow 标签,包含工作量证明的哈希值和难度值。
* 中继验证: 中继可以验证事件的工作量证明是否满足一定的难度要求,只有满足要求的事件才会被接受和广播。
* 用途: 增加发布事件的计算成本,防止 垃圾信息 (Spam) 和 拒绝服务攻击 (DoS)。通过提高发布成本,可以有效降低恶意用户大量发布垃圾信息的动机。
* NIP-14: Subject tag in text events (文本事件中的主题标签)
* 详解: 定义了在 文本事件 中使用 subject 标签 来标示事件的 主题。
* subject 标签: 在 tags 数组中添加 ["subject", "主题内容"] 格式的标签。
* 客户端展示: 客户端可以解析 subject 标签,并在用户界面中以某种形式展示事件的主题,例如在消息列表中显示主题,或在对话页面中显示主题标题。
* 用途: 方便用户在发布文本事件时 明确标示事件的主题,有助于 组织和管理对话,尤其是在长篇对话或群组聊天中。
* NIP-15: Nostr Marketplace (for resilient marketplaces) (Nostr 市场 (用于弹性市场))
* 详解: 定义了构建 Nostr 市场 (Marketplace) 的相关规范,旨在实现 弹性 (Resilient) 和 去中心化 的市场。
* 商品发布: 定义了商品发布事件的格式,包括商品描述、价格、库存等信息。
* 订单处理: 定义了订单创建、支付、发货等流程。
* 评价系统: 可能包含商品评价和卖家信誉系统。
* 用途: 在 Nostr 网络上构建 去中心化电商平台,实现点对点交易,无需中心化平台控制。
* NIP-17: Private Direct Messages (私密直接消息)
* 详解: 定义了 Nostr 中实现 私密直接消息 (Private Direct Messages, PDM) 的 更安全和更完善 的方法,取代了 NIP-04。
* Noise Protocol Framework: 使用 Noise Protocol Framework 进行密钥协商和加密。
* 更安全: 相比 NIP-04,NIP-17 使用更现代和安全的加密协议,提供更好的安全性。
* 更高效: 在密钥协商和消息加解密方面可能更高效。
* 用途: 实现用户之间 端到端加密的私密通信,保护用户隐私。目前 Nostr 客户端普遍采用 NIP-17 实现 DM 功能.
* NIP-18: Reposts (转发)
* 详解: 定义了 Nostr 中 转发 (Repost) 事件的格式和处理方式。
* kind: 6 事件: 定义了使用 kind: 6 事件作为转发事件。转发事件中包含被转发事件的 id。
* 客户端展示: 客户端可以识别转发事件,并在用户界面中以转发的形式展示,例如显示转发来源和被转发内容。
* 用途: 方便用户 传播和分享 其他用户的事件,扩大信息传播范围,类似于 Twitter 的转发功能。
* NIP-19: bech32-encoded entities (bech32 编码的实体)
* 详解: 定义了使用 bech32 编码 来表示 Nostr 中的 实体 (例如公钥、事件 ID、地址等) 的标准格式。
* nostr: 前缀: 所有 bech32 编码的 Nostr 实体都以 nostr: 前缀开头。
* 不同实体类型: 根据实体类型 (例如公钥、事件 ID、地址),使用不同的 bech32 编码方案。
* 例如: npub1... (公钥), nevent1... (事件 ID), nprofile1... (个人资料地址)。
* 用途: 提供了一种 人类可读且易于复制粘贴 的 Nostr 实体表示方法,方便用户在不同客户端和平台之间共享和传输 Nostr 实体。
* NIP-21: nostr: URI scheme (nostr: URI 方案)
* 详解: 定义了 nostr: URI 方案,用于在 链接 中表示 Nostr 实体。
* nostr: 前缀: 所有 Nostr URI 都以 nostr: 前缀开头。
* 不同实体类型: 根据实体类型,nostr: URI 可以包含不同的 bech32 编码的实体。
* 例如: nostr:npub1... (公钥链接), nostr:nevent1... (事件链接), nostr:nprofile1... (个人资料链接)。
* 用途: 允许用户在 Web 页面、文本、二维码 等场景中使用 nostr: URI 链接到 Nostr 实体,方便用户 跳转到 Nostr 客户端 并执行相应操作 (例如关注用户、查看事件、打开个人资料)。
* NIP-22: Comment (评论)
* 详解: 定义了 评论 (Comment) 事件的格式和处理方式。
* kind: 1 事件 + 'e' 标签: 使用 kind: 1 事件发布评论,并使用 'e' 标签引用被评论的事件。
* 线程结构: 评论事件通过 'e' 标签与被评论事件关联,形成线程结构。
* 用途: 实现对 特定事件进行评论 的功能,构建围绕事件的讨论和互动。
* NIP-23: Long-form Content (长文内容)
* 详解: 定义了 长文内容 (Long-form Content) 事件的格式和展示方式,用于发布和阅读 长篇文章。
* kind: 30023 事件: 定义了使用 kind: 30023 事件发布长文内容。
* content 字段: 长文内容通常使用 Markdown 或 HTML 格式,存储在 content 字段中。
* 元数据: 长文事件可以包含标题、摘要、封面图片等元数据。
* 客户端渲染: 客户端需要能够渲染 Markdown 或 HTML 格式的长文内容,并展示元数据。
* 用途: 支持在 Nostr 上发布和阅读 博客文章、专栏文章、新闻报道 等长篇内容,扩展 Nostr 的内容形式。
* NIP-24: Extra metadata fields and tags (额外的元数据字段和标签)
* 详解: 定义了在 Nostr 事件中添加 额外的元数据字段和标签 的方法。
* tags 扩展: 允许在 tags 数组中添加自定义标签,例如 ["自定义标签名", "标签值"]。
* content 扩展: 允许在 content 字段中使用 JSON 或其他结构化格式,存储更丰富的元数据。
* 用途: 提供 更灵活和可扩展 的元数据扩展机制,方便应用开发者根据自身需求添加自定义元数据,例如文章分类、商品属性、地理位置等。
* NIP-25: Reactions (反应)
* 详解: 定义了对 Nostr 事件进行 反应 (Reactions) 的功能,例如 点赞、表情符号 等。
* kind: 7 事件: 定义了使用 kind: 7 事件作为反应事件。反应事件中包含被反应事件的 id 和反应内容 (例如表情符号)。
* 客户端展示: 客户端可以聚合和展示事件的反应,例如显示点赞数、表情符号列表等。
* 用途: 增强社交互动性,允许用户对内容表达情感和态度,提供更丰富的用户反馈机制。
* NIP-26: Delegated Event Signing (委托事件签名)
* 详解: 定义了 委托事件签名 (Delegated Event Signing) 的机制,允许用户 委托第三方 (例如应用或服务) 代表自己签名事件。
* 委托密钥: 用户可以生成一个委托密钥,并授权给第三方。
* 授权事件: 用户发布授权事件,声明委托关系和权限范围。
* 第三方签名: 第三方可以使用委托密钥代表用户签名事件,并将事件发布到 Nostr 网络。
* 用途: 实现更 灵活的权限管理和应用场景,例如:
* 服务授权: 用户可以将某些权限 (例如发布特定类型的事件) 委托给第三方服务,方便服务代表用户执行操作。
* 多设备管理: 用户可以使用委托密钥在多个设备上管理 Nostr 账号,无需在每个设备上都存储私钥。
* NIP-27: Text Note References (文本笔记引用)
* 详解: 定义了在 文本笔记 中 引用 其他 Nostr 实体 (例如用户、事件、地址等) 的 更完善和灵活 的方式,取代了 NIP-08。
* 'p' 标签: 使用 'p' 标签引用用户公钥。
* 'e' 标签: 使用 'e' 标签引用事件 ID。
* 'a' 标签: 使用 'a' 标签引用地址 (NIP-67 定义)。
* 客户端渲染: 客户端需要解析这些标签,并将它们转换为链接、用户名、事件摘要等形式,方便用户导航和查看相关内容。
* 用途: 提供更 强大和灵活 的提及和引用机制,方便用户在文本内容中链接到其他 Nostr 实体,构建更丰富的网络关系和信息网络。
* NIP-28: Public Chat (公共聊天)
* 详解: 定义了实现 公共聊天 (Public Chat) 功能的协议。
* kind: 40 事件: 定义了使用 kind: 40 事件发布公共聊天消息。
* 'e' 标签 (根事件): 使用 'e' 标签引用根事件,表示消息属于哪个聊天室。
* 开放参与: 任何用户都可以加入和参与公共聊天室,无需邀请或授权。
* 用途: 构建 开放的群组聊天 功能,方便用户进行公开讨论和交流。
* NIP-29: Relay-based Groups (基于中继的群组)
* 详解: 定义了基于 中继 (Relay) 实现 群组 (Groups) 功能的协议。
* 群组管理事件: 定义了创建群组、加入群组、离开群组、管理群组成员等事件类型。
* 中继存储: 群组信息和成员关系存储在中继服务器上。
* 权限控制: 可能包含群组管理员权限控制机制,例如邀请成员、踢出成员、设置群组权限等。
* 用途: 构建 基于中继的群组 功能,提供更 中心化 的群组管理和社交互动体验。与 NIP-28 的公共聊天相比,NIP-29 的群组更强调 成员管理和权限控制。
* NIP-30: Custom Emoji (自定义表情符号)
* 详解: 定义了在 Nostr 中使用 自定义表情符号 (Custom Emoji) 的功能。
* kind: 30000 事件: 定义了使用 kind: 30000 事件发布自定义表情符号定义。
* 表情符号定义: 事件内容包含表情符号的名称、URL (图片地址) 等信息。
* 客户端渲染: 客户端可以解析自定义表情符号定义事件,并在用户界面中渲染自定义表情符号,例如在反应或聊天中使用。
* 用途: 丰富用户表达方式,允许用户使用个性化的表情符号进行交流和互动,增强用户体验。
* NIP-31: Dealing with Unknown Events (处理未知事件)
* 详解: 定义了客户端如何 处理未知事件 (即客户端不认识的 kind 类型的事件)。
* 忽略未知事件: 客户端应该 忽略 不认识的 kind 类型的事件,而不是崩溃或报错。
* 向前兼容: NIP-31 鼓励客户端 向前兼容,即使遇到新的事件类型,也能保持基本功能可用。
* 用途: 提高 Nostr 协议的 可扩展性和健壮性,允许协议在不断发展和添加新功能的同时,保持旧客户端的兼容性。
* NIP-32: Labeling (标签)
* 详解: 定义了为 Nostr 内容添加标签 (Labeling) 的功能。
* kind: 10002 事件: 定义了使用 kind: 10002 事件发布标签定义。
* 标签定义: 事件内容包含标签的名称、描述、分类等信息.
* 内容关联: 使用标签将内容 (例如事件、用户) 进行分类和关联。
* 用途: 方便用户 组织和管理 Nostr 网络中的 信息和内容,例如对文章进行分类、对用户进行分组等。
* NIP-34: git stuff (git 相关)
* 详解: NIP-34 标题为 "git stuff",内容比较 模糊和不完整,可能与使用 Nostr 进行 版本控制 或 Git 相关操作 有关。
* 草案性质: NIP-34 可能是一个 草案 或 实验性 的 NIP,尚未成熟和完善。
* 具体功能: NIP-34 的具体功能尚不明确,需要进一步参考 NIP 文档或相关讨论。
* 状态: 功能不明, 可能为草案。
* NIP-35: Torrents (种子)
* 详解: NIP-35 标题为 "Torrents",内容比较 简短,可能与在 Nostr 上使用 种子文件 (Torrents) 或 Torrent 相关 的功能有关。
* 草案性质: NIP-35 可能是一个 草案 或 实验性 的 NIP,尚未成熟和完善。
* 具体功能: NIP-35 的具体功能尚不明确,需要进一步参考 NIP 文档或相关讨论。
* 状态: 功能不明, 可能为草案。
* NIP-36: Sensitive Content (敏感内容)
* 详解: 定义了 标记敏感内容 (Sensitive Content) 的功能。
* sensitive 标签: 在事件中添加 ["sensitive"] 标签,表示内容包含敏感信息。
* 客户端处理: 客户端可以根据 sensitive 标签,对敏感内容进行 模糊处理、警告提示 或 默认隐藏,保护用户免受不适内容的影响。
* 用途: 帮助用户 过滤和管理内容,避免接触到可能引起不适或反感的内容,例如 NSFW (Not Safe For Work) 内容。
* NIP-37: Draft Events (草稿事件)
* 详解: 定义了 草稿事件 (Draft Events) 的功能。
* kind 范围: 定义了 kind 值在某个范围内的事件被视为草稿事件。
* 本地存储: 草稿事件通常 只在本地客户端存储,不会发布到 Nostr 网络。
* 编辑和发布: 用户可以编辑草稿事件,并在完成后发布到 Nostr 网络。
* 用途: 方便用户 编辑和管理未完成的内容,例如撰写长文、编辑个人资料等,提供更好的内容创作体验。
* NIP-38: User Statuses (用户状态)
* 详解: 定义了 用户状态 (User Statuses) 功能。
* kind: 30315 事件: 定义了使用 kind: 30315 事件发布用户状态。
* 状态类型: 定义了不同的状态类型,例如 "在线", "离线", "忙碌", "勿扰" 等。
* 客户端展示: 客户端可以展示用户的状态,方便用户了解其他用户的在线情况。
* 用途: 增强用户 在线状态 的可见性,方便用户进行 实时交流和互动。
* NIP-39: External Identities in Profiles (个人资料中的外部身份)
* 详解: 定义了在 个人资料 中链接 外部身份 (External Identities) 的功能。
* kind: 0 事件扩展: 扩展了 kind: 0 (个人资料事件) 的结构,允许在个人资料中添加外部身份信息,例如 Twitter 账号、GitHub 账号、个人网站链接等。
* 验证: 可能包含外部身份验证机制,例如通过验证 Twitter 账号所有权来证明 Nostr 账号与该 Twitter 账号属于同一用户。
* 用途: 将 Nostr 身份与用户在其他平台上的 身份关联 起来,方便用户 整合和展示 自己的 多平台身份,提高 Nostr 身份的可信度。
* NIP-40: Expiration Timestamp (过期时间戳)
* 详解: 为 Nostr 事件 添加 过期时间戳 (Expiration Timestamp)。
* expiration 标签: 在事件中添加 ["expiration", "时间戳"] 格式的标签,指定事件的过期时间 (Unix 时间戳)。
* 中继处理: 中继可以根据过期时间戳,在事件过期后 自动删除 事件,或标记为已过期。
* 客户端展示: 客户端可以根据过期时间戳,展示事件的剩余有效期,或标记已过期事件。
* 用途: 用于处理 临时性内容 或 限时活动,例如限时优惠信息、临时公告等,在事件过期后自动清理,保持网络数据整洁。
* NIP-42: Authentication of clients to relays (客户端到中继的身份验证)
* 详解: 定义了 客户端到中继的身份验证 (Authentication) 机制。
* AUTH 挑战: 中继服务器可以向客户端发送 AUTH 挑战消息,要求客户端进行身份验证。
* 签名验证: 客户端需要使用自己的私钥对挑战消息进行签名,并将签名结果发送给中继服务器。
* 权限控制: 中继服务器可以根据客户端的身份验证结果,进行 权限控制,例如只允许认证用户访问特定资源或功能。
* 用途: 为中继服务器添加 访问控制和安全机制,例如:
* 付费中继: 只允许付费用户连接和使用中继服务。
* 私有中继: 只允许授权用户连接和访问中继数据。
* 防止滥用: 限制匿名用户的访问频率和资源使用,防止中继服务器被滥用。
* NIP-44: Encrypted Payloads (Versioned) (加密负载 (版本化))
* 详解: 定义了 版本化的加密负载 (Encrypted Payloads) 的机制。
* payload 字段: 使用 payload 字段存储加密后的数据。
* 版本控制: 定义了版本号,用于标识不同的加密算法和格式。
* 密钥协商: 可能包含密钥协商机制,用于加密和解密负载。
* 用途: 提供一种 更灵活和可扩展 的加密数据传输方式,允许在 Nostr 协议中传输 更复杂和结构化的加密数据,并支持 加密算法的升级和演进。
* NIP-45: Counting results (计数结果)
* 详解: 定义了 计数查询结果 (Counting Results) 的功能。
* COUNT 请求: 客户端可以发送 COUNT 请求,向中继服务器请求查询结果的 数量,而不是实际的数据内容。
* COUNT 响应: 中继服务器返回 COUNT 响应,包含查询结果的数量。
* 用途: 优化查询性能,在某些场景下,客户端只需要知道查询结果的数量,而不需要获取所有数据内容,使用 COUNT 请求可以 减少数据传输量,提高查询效率。例如,客户端可以先使用 COUNT 请求获取某个标签的事件数量,再根据数量决定是否需要进一步获取事件列表。
* NIP-46: Nostr Remote Signing (Nostr 远程签名)
* 详解: 定义了 Nostr 远程签名 (Remote Signing) 协议。
* nostr+code:// URI: 定义了 nostr+code:// URI 方案,用于启动远程签名会话。
* 会话密钥: 客户端和签名器之间建立一个临时的会话密钥。
* 签名请求: 客户端向签名器发送签名请求,签名器使用私钥签名事件,并将签名结果返回给客户端。
* 用途: 将私钥管理和签名操作 分离 到 专门的签名器 (Signer) 应用 中,提高 安全性 和 灵活性。例如:
* 硬件钱包: 可以使用硬件钱包作为签名器,将私钥存储在硬件设备中,提高安全性。
* 移动钱包: 可以使用移动钱包作为签名器,方便在移动设备上进行签名操作。
* Web 钱包: 可以使用 Web 钱包作为签名器,方便在 Web 应用中使用 Nostr 功能。
* NIP-47: Nostr Wallet Connect (Nostr 钱包连接)
* 详解: 定义了 Nostr 钱包连接 (Wallet Connect) 协议,用于 应用 (App) 和 Nostr 钱包 之间的 安全连接和交互。
* nostr+walletconnect:// URI: 定义了 nostr+walletconnect:// URI 方案,用于启动钱包连接会话。
* 会话密钥: 应用和钱包之间建立一个临时的会话密钥。
* 权限请求: 应用可以向钱包请求用户的权限,例如获取公钥、签名事件、发送支付等。
* 用户授权: 钱包需要用户授权应用的权限请求。
* 用途: 允许应用 (例如 Nostr 客户端、电商平台、游戏应用) 安全地请求用户 Nostr 钱包的权限,实现 应用与钱包的互操作,例如:
* 支付: 应用可以请求钱包进行闪电网络支付。
* 身份验证: 应用可以请求钱包获取用户公钥进行身份验证。
* 数据签名: 应用可以请求钱包签名事件。
* NIP-48: Proxy Tags (代理标签)
* 详解: 定义了 代理标签 (Proxy Tags) 的功能。
* 'x' 标签: 使用 'x' 标签作为代理标签,用于在事件中 引用另一个事件,并将被引用事件的 特定标签 代理到当前事件中。
* 标签继承: 当前事件可以 继承 被引用事件的特定标签,例如 'p' 标签 (用户公钥标签)。
* 用途: 简化事件标签管理,避免在多个事件中重复添加相同的标签,提高数据效率和一致性。例如,在转发事件中,可以使用代理标签继承被转发事件的用户公钥标签。
* NIP-49: Private Key Encryption (私钥加密)
* 详解: 定义了使用 私钥加密 (Private Key Encryption) 的功能。
* kind: 4 事件扩展: 扩展了 kind: 4 (加密直接消息) 事件,允许使用 接收者的私钥 加密消息内容。
* 非对称加密: 使用接收者的公钥加密消息,只有拥有对应私钥的接收者才能解密消息。
* 用途: 提供一种 更高级别的加密 方式,确保只有 指定的接收者 才能解密消息内容,即使消息被中继服务器或其他中间人截获,也无法解密。
* NIP-50: Search Capability (搜索功能)
* 详解: 更正: NIP-50 并非 定义搜索功能,而是定义了 主题 (Subject) 功能,与 NIP-14 功能类似,但 NIP-50 定义的 subject 标签 不局限于文本事件,可以应用于 任何类型的事件。
* subject 标签: 在事件中添加 ["subject", "主题内容"] 格式的标签。
* 通用主题: NIP-50 强调 subject 标签的 通用性,可以用于各种类型的事件,例如图片、视频、音频等,用于标示事件的主题或类别。
* 用途: 提供一种 通用的主题标识机制,方便用户 组织和管理 不同类型的内容,例如对图片进行分类、对视频进行主题标记等。
* NIP-51: Lists (列表)
* 详解: 定义了 列表 (Lists) 功能,允许用户创建和管理 各种类型的列表,例如关注列表、屏蔽列表、书签列表、自定义内容列表等。
* kind: 30008 事件: 定义了使用 kind: 30008 事件发布列表。
* 列表类型: 通过 kind: 30008 事件的内容和标签,可以定义不同类型的列表,例如关注列表、屏蔽列表等。
* 列表项: 列表项可以是用户公钥、事件 ID、地址等 Nostr 实体。
* 用途: 提供 灵活的列表管理功能,方便用户 组织和管理 Nostr 网络中的各种资源和关系,例如:
* 扩展关注列表: 除了 NIP-02 的关注列表,用户可以创建自定义的关注列表,例如 "家人列表", "朋友列表", "技术专家列表" 等。
* 屏蔽列表: 用户可以创建屏蔽列表,屏蔽特定用户或内容。
* 书签列表: 用户可以创建书签列表,收藏感兴趣的事件或内容。
* NIP-52: Calendar Events (日历事件)
* 详解: 定义了 日历事件 (Calendar Events) 功能。
* kind: 31922 事件: 定义了使用 kind: 31922 事件发布日历事件。
* 日历事件属性: 日历事件包含开始时间、结束时间、标题、描述、地点、参与者等属性。
* 客户端展示: 客户端可以解析日历事件,并在日历视图中展示日历事件。
* 用途: 在 Nostr 网络上实现 日历功能,方便用户 组织和管理日程安排,例如会议、活动、约会等。
* NIP-53: Live Activities (直播活动)
* 详解: 定义了 直播活动 (Live Activities) 功能。
* kind: 30311 事件: 定义了使用 kind: 30311 事件发布直播活动。
* 直播活动状态: 直播活动事件可以更新直播状态,例如 "直播中", "已结束" 等。
* 直播聊天: 可以结合 NIP-28 公共聊天或 NIP-4 私密聊天,为直播活动提供聊天功能。
* 用途: 支持在 Nostr 网络上进行 直播 内容的发布和观看,例如 在线会议、直播课程、游戏直播 等。
* NIP-54: Wiki (维基)
* 详解: NIP-54 标题为 "Wiki",内容比较 简短,可能与在 Nostr 上构建 Wiki 系统 相关。
* 草案性质: NIP-54 可能是一个 草案 或 实验性 的 NIP,尚未成熟和完善。
* 具体功能: NIP-54 的具体功能尚不明确,需要进一步参考 NIP 文档或相关讨论。
* 状态: 功能不明, 可能为草案。
* NIP-55: Android Signer Application (Android 签名器应用)
* 详解: NIP-55 标题为 "Android Signer Application",内容比较 简短,可能与 Android 平台 上的 签名器应用 的规范有关。
* 签名器应用: 指专门用于 存储私钥和签名事件 的 Android 应用程序。
* NIP-46 远程签名: 可能与 NIP-46 远程签名协议结合使用,实现 Android 应用的远程签名功能。
* 状态: 功能不明, 可能为草案。
* NIP-56: Reporting (举报)
* 详解: 定义了 举报 (Reporting) 事件或用户的功能。
* kind: 1984 事件: 定义了使用 kind: 1984 事件发布举报事件。
* 举报对象: 举报事件需要指定举报对象,例如事件 ID 或用户公钥。
* 举报理由: 举报事件可以包含举报理由和描述。
* 中继处理: 中继接收到举报事件后,可以根据举报内容进行相应的处理,例如审核内容、限制用户账号等。
* 用途: 提供一种 内容审核和社区管理机制,允许用户举报违规或不良内容,维护 Nostr 网络的健康环境。
* NIP-57: Lightning Zaps (闪电网络 Zaps)
* 详解: 定义了 闪电网络 Zaps 功能,集成 闪电网络支付 功能到 Nostr 协议中。
* kind: 9735 事件: 定义了使用 kind: 9735 事件发布 Zap 请求。
* 闪电网络支付: Zap 请求包含闪电网络支付 Invoice,用户可以使用钱包支付 Invoice,完成 Zap 支付。
* 内容付费和打赏: Zap 功能可以用于内容付费、打赏创作者、支持项目等场景。
* 用途: 构建 Nostr 经济生态,支持 创作者经济 和 微支付 应用场景,激励优质内容创作和网络参与。
* NIP-58: Badges (徽章)
* 详解: 定义了在 Nostr 上使用 徽章 (Badges) 系统。
* kind: 30009 事件: 定义了使用 kind: 30009 事件发布徽章定义。
* 徽章定义: 徽章定义事件包含徽章的名称、描述、图片 URL、颁发条件等信息.
* 徽章颁发: 定义了徽章颁发机制,例如手动颁发、自动颁发 (根据用户行为或贡献)。
* 徽章展示: 客户端可以展示用户获得的徽章。
* 用途: 表彰用户贡献、认证用户身份 或 社区角色,增强用户 荣誉感 和 社区归属感,激励用户积极参与 Nostr 网络。
* NIP-59: Gift Wrap (礼品包装)
* 详解: NIP-59 标题为 "Gift Wrap",可能与 加密 或 封装事件 有关。
* 草案性质: NIP-59 可能是一个 草案 或 实验性 的 NIP,尚未成熟和完善。
* 具体功能: NIP-59 的具体功能尚不明确,需要进一步参考 NIP 文档或相关讨论。
* 状态: 功能不明, 可能为草案。
* NIP-60: Cashu Wallet (Cashu 钱包)
* 详解: NIP-60 标题为 "Cashu Wallet",内容比较 简短,可能与 Cashu 钱包 在 Nostr 中的 应用 相关。
* Cashu: Cashu 是一种 开源的、基于闪电网络的 eCash 系统。
* Nostr 集成: NIP-60 可能定义了如何在 Nostr 中集成 Cashu 钱包,实现更便捷的闪电网络支付和交易。
* 状态: 功能不明, 可能为草案。
* NIP-61: Nutzaps (Nutzaps)
* 详解: NIP-61 标题为 "Nutzaps",可能是一种 特定的支付 或 打赏协议,类似于 NIP-57 的 Lightning Zaps,但可能使用不同的支付方式或协议。
* 草案性质: NIP-61 可能是一个 草案 或 实验性 的 NIP,尚未成熟和完善。
* 具体功能: NIP-61 的具体功能尚不明确,需要进一步参考 NIP 文档或相关讨论。
* 状态: 功能不明, 可能为草案。
* NIP-62: Request to Vanish (请求消失)
* 详解: NIP-62 标题为 "Request to Vanish",可能与 用户请求删除所有数据或账户 有关。
* 数据删除请求: 可能定义了用户发送数据删除请求的事件类型和格式。
* 中继处理: 中继接收到数据删除请求后,需要处理用户的请求,例如删除用户的所有事件和相关数据。
* 状态: 功能不明, 可能为草案。
* NIP-64: Chess (PGN) (国际象棋 (PGN))
* 详解: 定义了在 Nostr 上使用 PGN (Portable Game Notation) 格式 记录和分享 国际象棋对局 的方法。
* kind: 1 事件扩展: 扩展了 kind: 1 (文本笔记) 事件,允许在 content 字段中包含 PGN 格式的国际象棋对局记录。
* 客户端渲染: 客户端可以解析 PGN 格式的对局记录,并在用户界面中 可视化 国际象棋棋盘和棋局。
* 用途: 方便 国际象棋爱好者 在 Nostr 网络上 分享、讨论和学习 国际象棋对局。
* NIP-65: Relay List Metadata (中继列表元数据)
* 详解: 定义了 中继列表的元数据 (Relay List Metadata)。
* kind: 10002 事件扩展: 扩展了 kind: 10002 (标签定义) 事件,允许在标签定义事件中添加中继列表的元数据,例如列表名称、描述、维护者等信息.
* 中继列表管理: 方便用户 创建、分享和管理 中继列表。
* 用途: 帮助用户 发现和选择 适合自己的中继服务器,促进 Nostr 网络的 去中心化 和 多样性。
* NIP-68: Picture-first feeds (图片优先的信息流)
* 详解: 定义了 图片优先的信息流 (Picture-first feeds) 的展示方式。
* 客户端渲染: 客户端可以根据 NIP-68 规范,在信息流中 优先展示图片,例如将图片放大显示,或者使用图片作为信息流的缩略图。
* 用途: 优化图片内容的展示效果,提高用户 视觉体验,更适合 图片社交 或 视觉内容分享 应用场景。
* NIP-69: Peer-to-peer Order events (点对点订单事件)
* 详解: NIP-69 标题为 "Peer-to-peer Order events",可能与 去中心化交易 或 市场 相关,定义了 点对点订单事件 的格式和处理方式。
* 订单事件: 可能定义了创建订单、取消订单、接受订单、完成订单等事件类型。
* 点对点交易: 旨在实现用户之间的 直接交易,无需中心化平台中介。
* 状态: 功能不明, 可能为草案。
* NIP-70: Protected Events (受保护的事件)
* 详解: 定义了 受保护的事件 (Protected Events),可能涉及 权限控制。
* 访问控制: 可能定义了如何控制事件的 访问权限,例如只允许特定用户或群组查看事件内容。
* 加密: 受保护的事件可能需要 加密 存储和传输,以保护数据隐私。
* 状态: 功能不明, 可能为草案。
* NIP-71: Video Events (视频事件)
* 详解: 定义了 视频事件 (Video Events) 的格式和处理方式。
* kind: 30015 事件: 定义了使用 kind: 30015 事件发布视频事件。
* 视频元数据: 视频事件可以包含视频标题、描述、封面图片、视频链接等元数据。
* 客户端播放: 客户端可以解析视频事件,并在用户界面中 嵌入视频播放器,方便用户观看视频。
* 用途: 支持在 Nostr 上 发布和分享视频内容,扩展 Nostr 的内容形式。
* NIP-72: Moderated Communities (审核社区)
* 详解: 定义了 审核社区 (Moderated Communities) 的功能。
* 社区管理: 定义了社区创建、管理、成员管理、内容审核等功能。
* 审核机制: 可能包含社区管理员审核机制,例如审核用户发布的内容、处理违规行为等。
* 规则和权限: 社区可以自定义规则和权限,例如内容发布规则、成员权限等级等.
* 用途: 构建 可管理的社区 功能,提供 更规范和有序 的群组交流和内容分享环境,适用于需要 内容审核和社区管理 的场景。
* NIP-73: External Content IDs (外部内容 ID)
* 详解: 定义了 引用外部内容 ID (External Content IDs) 的方式。
* 'i' 标签: 使用 'i' 标签引用外部内容 ID,例如引用其他平台上的文章 ID、视频 ID 等。
* 内容链接: 客户端可以解析 'i' 标签,并将外部内容 ID 转换为 外部内容的链接,方便用户跳转到外部平台查看完整内容。
* 用途: 方便
Author Public Key
npub1d5ygkef6r0l7w29ek9l9c7hulsvdshms2qh74jp5qpfyad4g6h5s4ap6lz