什么是 ipns
ipns 全称是 InterPlanetary Name System,是 IPFS 的命名系统,它可以用来为 IPFS 内的内容分配唯一的、可变的名称。
使用 ipns 可以实现以下功能:
- IPFS 内容的可变地址,不过 ipfs 本身已经有多哈希的支持了
- 完全去中心化的域名解析,可以自定义域名将其解析为 ipfs 的内容
- 可以为内容添加自定义的结构数据
ipns 的实现基于公钥加密算法,为每个节点(包括文件和文件夹)生成一个私钥和公钥对,并将公钥作为节点的唯一标识。
ipns 的命名规则为 /ipns/PEER_ID
,其中 PEER_ID 是节点的公钥所生成的 CID。
安装 ipns
ipns 已经成为了 IPFS 的一部分,所以只需要安装 IPFS 即可使用 ipns。
--- ------- -- ----
安装完成后,可以通过 ipfs version
查看 IPFS 版本信息。
使用 ipns
1. 获取私钥
在使用 ipns 之前,需要获取到你的私钥。
- 启动 IPFS 节点
使用以下命令启动 IPFS:
---- ------
- 获取私钥
在启动的节点中使用以下命令获取私钥:
---- --- --- ---------- ----------- -----
此时,你的私钥已经存储在了 IPFS 节点中。
2. 发布内容
接下来,我们需要将内容发布到 ipfs 上,并且生成一个唯一的 CID。
---- ------ ------- - ---- --- --
此时,会输出一个 CID,如 QmP6FPpkr6kaZuJ9pKGkktzGd1YJdtHcCa6Jn2wZwhpiDZ
。
3. 将内容发布到 ipns
将内容发布到 ipns 前需要先将 CID 打包成 DNS TXT Record:
---- --- -- --- ---- ----- ----------------------------------------------
其中 mykey
是第一步中生成的私钥名称。
最后,你需要将 DNS TXT Record 发布到 DNS 服务器上。
4. 解析 ipns
接下来,我们来测试一下 ipns 是否能够正常解析。
在命令行中执行以下命令:
--- --- ----------------
其中 <your-ipns-link>
是 IPNS 链接,如 dnslink=/ipns/mykey.ipns
。
如果解析成功,会返回类似以下内容的信息:
- ---- --- ------------------------- ---- --- ------------------------ -- ------ -------- ---- -- --- ------- -- ------------ ------- ------ ------- -------- --- ----- -- ------ -- -- --- ------ -- ------- -- ---------- -- ----------- - -- --- -------------- - ----- -------- -- ------- ---- ----- - ---- -- -- -- -- -- -- -- -- -- -- -- -- - -------- -------- ------------ -- --- -- ------ -------- ----------- ---- -- --- ------------------------------------------------------------ -- ----- ----- --- ---- -- ------- --------------------- -- ----- --- --- -- -------- --- ---- -- --- ---- ----- ---
小结
本文主要介绍了 npm 包 ipns 的使用教程,包括了 ipns 的介绍、安装、使用步骤以及示例代码等内容。
在使用 ipns 的过程中,我们发现它具有可变的地址、域名解析和自定义结构数据等功能。这使得我们在构建去中心化应用中能够更自由地进行资源映射和交换。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/5eedcc4fb5cbfe1ea0612741