# 去中心化协议Nostr-系列004

By [hoodrh](https://paragraph.com/@hoodrh-2) · 2023-02-21

---

> 因为在中文区没有搜到较为详细的对于Nostr协议网络的文章，所以准备自己写一个系列。这是本系列文章的第四篇，讲一下Nostr网络中域名Nip-05的配置方法及NIP标准。

在[第二篇](https://mirror.xyz/hoodrh.eth/To9zIrUwS7Je29ZrCJJ4WE3g25GnPXkPW3N6EFRgsDs)中我们讲了一下新手入门Nostr网络时如何使用社交应用，为了让大家先用起来，在实际的操作中去感受nostr网络上的气氛，同时也降低大家的准入门槛，所以对NIP-05只是提了一下（个人主页信息设置那里），今天就专门来讲一下NIP-05是什么以及如何设置，在此基础上也会对NIP标准进行简单的介绍。

NIP-05
------

### NIP-05是什么？

**简单点来说**，NIP-05就是给每个用户设置的相比于公钥更容易识别的ID名。

我们知道在Nostr网络中每个用户的ID是一长串不规则的文字，也就是公钥。如果我要在Nostr网络中寻找用户A，必须搜索A的公钥才能找到Ta。但是公钥太长了，不方便保存和传播，同时也不便于人类对其进行辨识，于是便出现了解决方案-用一个更为人类可读的名字绑定在公钥上。

**专业点说**，NIP-05 使 Nostr 用户能够将自己的公钥映射到基于 DNS 的互联网标识符。验证机制类似于 Google 要求您使用 DNS 记录验证您对域的所有权的方式。 验证的主要好处是它允许通过人类可读的名称来识别 Nostr 用户，而不是通过长而难以记住的公钥。这使经过验证的 Nostr 用户能够轻松地与他人分享他们的身份。

### NIP-05设置方法

为了拥有一个NIP-05的域名，我们可以通过两种方式来获得它。

1.  在应用端，找到NIP-05的设置框（一般位于个人主页的编辑页面），然后购买官方提供的域名（没买过）。
    
2.  如果你有自己的域名，那你可以把它验证后绑定到Nostr网络。下面主要是对这种方式的介绍。
    

比如我的域名是[www.hoodrh.top](https://www.hoodrh.top)，我的个人站点是用hexo建立的，所以我会在hexo 的

\_config.yml文件中的**_include_**下添加“well-known/\*\*”，然后在source文件下建立文件夹“well-known”（官方说建立“.well-known”但是Mac系统的点文件是留给系统的），然后在“well-known”文件夹下建立一个“nostr.json”文件即可。JS文件的内容为：

    {
      "names": {
        "hoodrh": //你自己的nostr网络username
    "npub1e9euzeaeyten7926t2ecmuxkv3l55vefz48jdlsqgcjzwnvykfusmj820c" //你的公钥ID
      }
    }
    

然后将文件保存并上传hexo即可。然后我就得到了NIP-05的地址：[hoodrh@www.hoodrh.top](mailto:hoodrh@www.hoodrh.top)，也就是“usernam@自己的域名”。

![](https://storage.googleapis.com/papyrus_images/9906a8dc56654b77c02b7456774aca42f7c911e9a7452888b099349acec2e968.png)

### 可以不设置NIP-05吗？

当然可以，如果你没有自己的域名，又不想买，那就完全没必要去设置它。目前来看设置NIP-05的作用就是显示一个认证的标识而已。基本上日常关注好友之类的操作，完全可以通过复制公钥来实现。相信随着各种应用端搜索技术的增强，也可以支持搜索username来查找用户了。（我就要紫标认证✅！

NIP标准
-----

### 什么是NIP标准

NIP是一系列的协议接口标准，统一规定了各种常用功能使用时的接口元素和细节，这样有利于整个网络上不同应用之间建立通道，从而让一个用户发送的内容可以在nostr网络上的所有应用之间都被识别和传播。

### NIP详细分类介绍

这里大概讲一下不同NIP标准所支持的 nostr 功能，更技术性的说明在[这里查看](https://github.com/nostr-protocol/nips)

1.  NIP-01 - 基本协议流程描述，是用于客户端和中继之间通信的协议。它涉及事件的交换，事件是包含各种信息的对象，例如唯一 ID、时间戳和标签。
    
2.  NIP-02 - 联系人列表和昵称
    
3.  NIP-03 - 事件的 OpenTimestamps 证明 \[未计划\]
    
4.  NIP-04 - 加密私信
    
5.  NIP-05 - 将 Nostr 密钥映射到基于 DNS 的互联网标识符
    
6.  NIP-06 - 从助记种子短语推导基本密钥
    
7.  NIP-07 - 网络浏览器的 window.nostr 功能 \[不适用\]
    
8.  NIP-08 - 处理提及
    
9.  NIP-09 - 事件删除 \[部分\]
    
10.  NIP-10 - 客户端在文本事件中使用 e 和 p 标签的约定
    
11.  NIP-11 - 中继信息文件
    
12.  NIP-12 - 通用标签查询
    
13.  NIP-13 - 工作量证明
    
14.  NIP-14 - 文本事件中的主题标签
    
15.  NIP-15 - 存储事件结束通知
    
16.  NIP-16 - 事件处理
    
17.  NIP-19 - bech32 编码的实体
    
18.  NIP-20 - 命令结果
    
19.  NIP-21 - nostr：URL 方案
    
20.  NIP-22 - 事件 created\_at 限制
    
21.  NIP-25 - 反应
    
22.  NIP-26 - 委托事件签名
    
23.  NIP-28 - 公开聊天
    
24.  NIP-33 - 参数化可替换事件
    
25.  NIP-36 - 敏感内容
    
26.  NIP-40 - 过期时间戳
    
27.  NIP-42 - 客户端到中继的身份验证
    
28.  NIP-50 - 关键字过滤器
    
29.  NIP-56 - 报告
    
30.  NIP-65 - 中继列表元数据
    

好了，今天就到这里，明天再见。祝你在Nostr网络中玩得愉快。

---

*Originally published on [hoodrh](https://paragraph.com/@hoodrh-2/nostr-004)*
