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

server/2024/10/18 22:36:57/

🦊原文: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/server/33442.html

相关文章

数据库面试常问3

视图的作用? 视图是一种虚拟的表,由一个或多个基本表(或其他视图)的行和列组成。它可以根据定义查询基本表,并返回所需的结果集。视图的主要作用包括: 简化复杂的查询:将多个表的关联查询合并…

麦克纳姆轮 Mecanum 小车运动学模型和动力学分析

目录 一、简介 二、运动学模型分析 1. 逆运动学方程 2. 正运动学方程 三、动力学模型 四、广泛运动学模型 一、简介 参考文献https://www.geometrie.tugraz.at/gfrerrer/publications/MecanumWheel.pdf 移动机器人的运动学模型是为了解决小车的正向运动学和逆向运动学问…

构筑稳固基石:HTML网站架构与结构设计的深度探索

构筑稳固基石:HTML网站架构与结构设计的深度探索 在万维网的广阔天地里,每一个网站都是信息的港湾,而HTML作为这一切的基础,其架构与结构设计直接决定了站点的可访问性、可维护性和扩展性。本文将带你深入HTML的架构世界&#xf…

xss注入漏洞解析(下)

DOM型XSS 概念 DOM全称Document Object Model,使用DOM可以使程序和脚本能够动态访问和更新文档的内容、结 构及样式。DOM型XSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。 HTML的标签都是节点,而这些节点组成了DOM的…

STM32串口,发送数据有几率错误的一个原因,需要避免DMA指向临时变量地址

/// brief 串口发送一条格式化数据 void send_OneWeld_list_to_uart(uint16_t id) {uint8_t char_data_uart[ONE_WEld_LIST_BYTE 2];char_data_uart[0] M;//MCU 的数据char_data_uart[1] I;//listmemcpy(&char_data_uart[2], &OneWeld_Data_new, sizeof(OneWeld_Data…

gige工业相机突破(二,c++实现)

调试通过别人的代码,gige 500万工业相机海康。 如果你下载了open gige vision 代码,你可以参考我下面的代码(可以打开相机并取像显示): /* if(argc ! 3) throw std::runtime_error(str(boost::format("Usa…

MySQL-数据缓冲池(Buffer Pool)

InnoDB存储引擎以 页 为单位管理存储空间,增删改查的本质就是访问页面。为提高查询效率,DBMS会占用内存作为缓冲池,在执行SQL之前,会将磁盘上的页 缓存到内存中的 缓冲池(Buffer Pool)后执行相关SQL语句。 …

Mybatis自定义TypeHandler

Mybatis是一个优秀的持久层框架,它提供了丰富的功能来简化数据库操作。在Mybatis中,TypeHandler是用于处理Java对象与数据库字段之间的类型转换的组件。自定义TypeHandler可以帮助我们处理一些特殊的数据类型或者自定义的数据类型。 自定义TypeHandler需…