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

🦊原文: Publishing IPNS names

Publishing IPNS names with Kubo

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

bash 复制代码
$ ipfs daemon

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

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

bash 复制代码
$ echo "Hello IPFS" > hello.txt

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

bash 复制代码
$ ipfs add --cid-version 1 hello.txt

> added bafkreidfdrlkeq4m4xnxuyx6iae76fdm4wgl5d4xzsb77ixhyqwumhz244 hello.txt
> 11 B / 11 B [=====================================================] 100.00%

记录下 IPFS 输出的 CID bafkreidfdrlkeq4m4xnxuyx6iae76fdm4wgl5d4xzsb77ixhyqwumhz244

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

bash 复制代码
$ ipfs cat bafkreidfdrlkeq4m4xnxuyx6iae76fdm4wgl5d4xzsb77ixhyqwumhz244

> Hello IPFS

Step5: 将你的 CID 发布到 IPNS:

bash 复制代码
$ ipfs name publish /ipfs/bafkreidfdrlkeq4m4xnxuyx6iae76fdm4wgl5d4xzsb77ixhyqwumhz244

> Published to k51qzi5uqu5dgy6fu9073kabgj2nuq3qyo4f2rcnn4380z6n8i4v2lvo8dln6l:
> /ipfs/bafkreidfdrlkeq4m4xnxuyx6iae76fdm4wgl5d4xzsb77ixhyqwumhz244

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

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

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

浏览器地址栏输入

复制代码
https://ipfs.io/ipns/k51qzi5uqu5dgy6fu9073kabgj2nuq3qyo4f2rcnn4380z6n8i4v2lvo8dln6l

或者命令行窗口输入

bash 复制代码
$ curl https://ipfs.io/ipns/k51qzi5uqu5dgy6fu9073kabgj2nuq3qyo4f2rcnn4380z6n8i4v2lvo8dln6l

> Hello IPFS

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

bash 复制代码
$ echo "Hello again IPFS" > hello.txt
$ ipfs add hello.txt

> added bafkreidbbor7mvra2xzzl4kmr2sxrtkzaxlzs6rsr5ktgmbtousuzrhlxq hello.txt
> 17 B / 17 B [=====================================================] 100.00%

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

bash 复制代码
$ ipfs name publish bafkreidbbor7mvra2xzzl4kmr2sxrtkzaxlzs6rsr5ktgmbtousuzrhlxq

> Published to k51qzi5uqu5dgy6fu9073kabgj2nuq3qyo4f2rcnn4380z6n8i4v2lvo8dln6l:
> /ipfs/bafkreidbbor7mvra2xzzl4kmr2sxrtkzaxlzs6rsr5ktgmbtousuzrhlxq

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

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

复制代码
https://ipfs.io/ipns/k51qzi5uqu5dgy6fu9073kabgj2nuq3qyo4f2rcnn4380z6n8i4v2lvo8dln6l

或者

bash 复制代码
$ curl https://ipfs.io/ipns/k51qzi5uqu5dgy6fu9073kabgj2nuq3qyo4f2rcnn4380z6n8i4v2lvo8dln6l

> Hello again IPFS

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

bash 复制代码
$ ipfs name resolve

> /ipfs/bafkreidbbor7mvra2xzzl4kmr2sxrtkzaxlzs6rsr5ktgmbtousuzrhlxq

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

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

bash 复制代码
$ ipfs key gen SecondKey

> k51qzi5uqu5dh5kbbff1ucw3ksphpy3vxx4en4dbtfh90pvw4mzd8nfm5r5fnl

$ ipfs name publish --key=SecondKey /ipfs/bafybeicklkqcnlvtiscr2hzkubjwnwjinvskffn4xorqeduft3wq7vm5u4

> Published to k51qzi5uqu5dh5kbbff1ucw3ksphpy3vxx4en4dbtfh90pvw4mzd8nfm5r5fnl:
> /ipfs/bafybeicklkqcnlvtiscr2hzkubjwnwjinvskffn4xorqeduft3wq7vm5u4

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

相关推荐
devmoon1 小时前
运行时(Runtime)是什么?为什么 Polkadot 的 Runtime 可以被“像搭积木一样”定制
开发语言·区块链·智能合约·polkadot·runtmie
暴躁小师兄数据学院4 小时前
【WEB3.0零基础转行笔记】Rust编程篇-第一讲:课程简介
rust·web3·区块链·智能合约
devmoon4 小时前
在 Paseo 测试网上获取 Coretime:On-demand 与 Bulk 的完整实操指南
开发语言·web3·区块链·测试用例·智能合约·solidity
devmoon10 小时前
在 Polkadot Runtime 中添加多个 Pallet 实例实战指南
java·开发语言·数据库·web3·区块链·波卡
Web3VentureView12 小时前
SYNBO Protocol AMA回顾:下一个起点——什么将真正推动比特币重返10万美元?
大数据·人工智能·金融·web3·区块链
软件工程小施同学12 小时前
区块链论文速读 CCF A--VLDB 2025 (1) 附pdf下载
pdf·区块链
blockcoach13 小时前
比特币撕裂,以太坊削藩
区块链
devmoon14 小时前
在 Polkadot 链上添加智能合约功能全指南
安全·区块链·智能合约·polkadot·erc-20·测试网·独立链
TOPGUS1 天前
谷歌SEO第三季度点击率趋势:榜首统治力的衰退与流量的去中心化趋势
大数据·人工智能·搜索引擎·去中心化·区块链·seo·数字营销
中金快讯1 天前
区块链宕机致爆仓提现延迟成常态,Matrixdock交易平台能扛住重压吗?
区块链