区块链 | IPFS:IPNS(实操版)

embedded/2024/9/21 12:24:05/

🦊原文:Publishing IPNS names



Publishing IPNS names with Kubo

Step1: 启动你的 IPFS 守护进程(如果尚未运行):

$ ipfs daemon

说明:以 $ 开头的是命令,以 > 开头的是执行结果。



Step2: 打开另一个命令行窗口,创建想要被 IPNS 设置的文件。我们将创建一个简单的 hello.txt 文件:

$ echo "Hello IPFS" > hello.txt


Step3: 将你的文件添加到 IPFS 中:

$ ipfs add --cid-version 1 hello.txt> added bafkreidfdrlkeq4m4xnxuyx6iae76fdm4wgl5d4xzsb77ixhyqwumhz244 hello.txt
> 11 B / 11 B [=====================================================] 100.00%

记录下 IPFS 输出的 CID bafkreidfdrlkeq4m4xnxuyx6iae76fdm4wgl5d4xzsb77ixhyqwumhz244



Step4: 使用 cat 命令以及刚刚从 IPFS 获得的 CID 再次查看该文件:

$ ipfs cat bafkreidfdrlkeq4m4xnxuyx6iae76fdm4wgl5d4xzsb77ixhyqwumhz244> Hello IPFS


Step5: 将你的 CID 发布到 IPNS:

$ ipfs name publish /ipfs/bafkreidfdrlkeq4m4xnxuyx6iae76fdm4wgl5d4xzsb77ixhyqwumhz244> Published to k51qzi5uqu5dgy6fu9073kabgj2nuq3qyo4f2rcnn4380z6n8i4v2lvo8dln6l:
> /ipfs/bafkreidfdrlkeq4m4xnxuyx6iae76fdm4wgl5d4xzsb77ixhyqwumhz244

k51...l 是你正在运行的 IPFS 的公钥或 IPNS 名称。现在,你可以反复更改文件,并且即使更改文件时 CID 发生了变化,你也可以继续使用这个 k51...l 密钥访问文件。

原文的执行结果是没有换行的,我是看这里写不下了所以才换的行😇



Step6: 你可以通过以下两种方式查看你的文件:

浏览器地址栏输入

https://ipfs.io/ipns/k51qzi5uqu5dgy6fu9073kabgj2nuq3qyo4f2rcnn4380z6n8i4v2lvo8dln6l

或者命令行窗口输入

$ curl https://ipfs.io/ipns/k51qzi5uqu5dgy6fu9073kabgj2nuq3qyo4f2rcnn4380z6n8i4v2lvo8dln6l> Hello IPFS


Step7: 更改你的文件,将其添加到 IPFS,然后更新你的 IPNS:

$ echo "Hello again IPFS" > hello.txt
$ ipfs add hello.txt> added bafkreidbbor7mvra2xzzl4kmr2sxrtkzaxlzs6rsr5ktgmbtousuzrhlxq hello.txt
> 17 B / 17 B [=====================================================] 100.00%

可以看出 CID 发生了改变,虽然前几个字母和老 CID 一模一样😇

$ ipfs name publish bafkreidbbor7mvra2xzzl4kmr2sxrtkzaxlzs6rsr5ktgmbtousuzrhlxq> Published to k51qzi5uqu5dgy6fu9073kabgj2nuq3qyo4f2rcnn4380z6n8i4v2lvo8dln6l:
> /ipfs/bafkreidbbor7mvra2xzzl4kmr2sxrtkzaxlzs6rsr5ktgmbtousuzrhlxq

IPNS 名称没有发生变化。话说它是怎么知道这个文件就是之前那个文件的?根据 hello.txt 这个文件名吗?



Step8: 你现在可以使用相同的地址去查看更新后的文件:

https://ipfs.io/ipns/k51qzi5uqu5dgy6fu9073kabgj2nuq3qyo4f2rcnn4380z6n8i4v2lvo8dln6l

或者

$ curl https://ipfs.io/ipns/k51qzi5uqu5dgy6fu9073kabgj2nuq3qyo4f2rcnn4380z6n8i4v2lvo8dln6l> Hello again IPFS

你可以使用以下命令查看与你的 k5 密钥相关联的文件的 CID:

$ ipfs name resolve> /ipfs/bafkreidbbor7mvra2xzzl4kmr2sxrtkzaxlzs6rsr5ktgmbtousuzrhlxq

貌似 IPNS 名称都是以 k5 开头,所以被称为 k5 密钥?

要使用不同的 k5 密钥,请首先使用 key gen 命令创建一个密钥,并在 name publish 时使用 --key 标志:

$ ipfs key gen SecondKey> k51qzi5uqu5dh5kbbff1ucw3ksphpy3vxx4en4dbtfh90pvw4mzd8nfm5r5fnl$ ipfs name publish --key=SecondKey /ipfs/bafybeicklkqcnlvtiscr2hzkubjwnwjinvskffn4xorqeduft3wq7vm5u4> Published to k51qzi5uqu5dh5kbbff1ucw3ksphpy3vxx4en4dbtfh90pvw4mzd8nfm5r5fnl:
> /ipfs/bafybeicklkqcnlvtiscr2hzkubjwnwjinvskffn4xorqeduft3wq7vm5u4

这里的 CID 和上述两个 CID 不同,应该就是举的例子不同罢了。




http://www.ppmy.cn/embedded/33022.html

相关文章

Wpf DataGrid ComboBox 列

遇到的问题 最开始找到的例子要写 Convert, 感觉和 Vue-Elment 的差别比较大后面找到类似与 Vue-Element UI 的写法&#xff0c;开始时数值不更新 关键代码 <DataGridTemplateColumn Header"Digit" Width"100"><DataGridTemplateColumn.CellTem…

《QT实用小工具·五十四》果冻弹出效果的动画按钮

1、概述 源码放在文章末尾 该项目实现动画按钮&#xff0c;鼠标放在按钮上可以弹性拉出的三个按钮&#xff0c;使用贝塞尔曲线实现&#xff0c;项目demo显示如下所示&#xff1a; 项目部分代码如下所示&#xff1a; #ifndef WATERCIRCLEBUTTON_H #define WATERCIRCLEBUTTON…

MLP一夜被干掉?革命性新网络KAN【第一篇-base】

要看完哦&#xff0c;文末彩蛋&#xff01; 用“极市平台”的导读语来说&#xff1a;新网络KAN基于柯尔莫哥洛夫-阿诺德定理&#xff0c;带着更少的参数、更强的性能、更好的可解释性来了&#xff0c;深度学习架构革新进入新时代&#xff01; 目录 导语 ​编辑 KAN的基础理论…

公考学习平台|基于SprinBoot+vue的公考学习平台(源码+数据库+文档)

公考学习平台目录 目录 基于SprinBootvue的公考学习平台 一、前言 二、系统设计 三、系统功能设计 5.1用户信息管理 5.2 视频信息管理 5.3公告信息管理 5.1论坛信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&…

系统如何做好数据质量管理

对数据从计划、获取、存储、共享、维护、应用、消亡生命周期的每个阶段里可能引发的各类数据质量问题&#xff0c;进行识别、监控、预警、处理等一系列管理活动&#xff0c;并通过改善和提高管理水平使得数据质量获 得进一步提高。 2术语和定义 2.1数据质量 data quality 2.2…

QSqlDatabase的数据库路径或名称问题

在Qt的数据库编程中&#xff0c;先是设置数据库的类型&#xff0c;然后是设置数据库文件的路径&#xff0c;或者数据库名称。若有数据库的用户名、密码&#xff0c;则分别调用setUserName(“”)、setPassword(“”)来设置用户名和密码&#xff1b;若没有&#xff0c;则省略用户…

Redis与Mysql双写一致性如何保证

前言 之前我就在面试被问到Redis与MySQL双写一致性如何保证&#xff1f;当时没答出来,回去做了复盘。下面这些引用了网络上给出的方案&#xff0c;加上了我自己的理解&#xff0c;希望对大家有帮助。 这道题其实就是在问缓存和数据库在双写场景下&#xff0c;一致性是如何保证…

40道Linux结业测试题,有解析,有答案

1.若root登录操作后的当前目录为&#xff1a;/usr/local&#xff0c;键入cd ~命令后&#xff0c;其当前目录变为&#xff08; &#xff09;。 A. /home/root B. /usr/local C. /root D. /home 2.如果当前目录为/home&#xff0c;进入目录/home/stu/test的命令是&#xff08; &a…