

IPFS操作教程10:使用IPNS发布你的网页
在之前的课程中,我们可以将自己的数据共享到IPFS网络中,但是数据在网页被访问时使用的都是数据内容的hash值。所以当内容发生变化后,我们是不能访问到最新的数据的。
通过本小节的学习,使你能够重新编辑发布过的数据,而不需要修改访问的hash值
根据之前的课程,我们可以将一个文件发布到ipfs网络。我创建了一个文件ipns01,内容是“chaindesk”
$ vi ipns01
$ ipfs add ipns01
added QmTry1Hy6LJBz4uDTF6KwTnTmhAj8D15vnYyCsmhabvXaX ipns01现在在网络中访问ipfs.io/ipfs/QmTry1Hy6LJBz4uDTF6KwTnTmhAj8D15vnYyCsmhabvXaX 。没问题
如果我上一个文件内容,修改了,那么你再用上边的网址是访问不到修改过的内容的。所以就引入了IPNS。 在IPNS中,允许我们节点的域名空间中引用一个IPFS hash,也就是说我们可以通过节点ID对项目根目录的IPFS HASH进行绑定,以后我们访问网站时直接通过节点ID访问即可,当我们更新文件时,重新发布到IPNS`即可。
使用命令是ipfs name publish 文件hash,操作如下:
$ ipfs name publish QmTry1Hy6LJBz4uDTF6KwTnTmhAj8D15vnYyCsmhabvXaX
Published to QmXdSpUBx9Ut6q8LF8Wyt1Wi2wxmob6qnnT11uV3SmvUP3: /ipfs/QmTry1Hy6LJBz4uDTF6KwTnTmhAj8D15vnYyCsmhabvXaX我们再查看下我们的ipfs节点IDhash,是不是和上边的hash一样呢?
$ ipfs id
{
"ID": "QmXdSpUBx9Ut6q8LF8Wyt1Wi2wxmob6qnnT11uV3SmvUP3",
"PublicKey": "CAAS...
一样的。
通过命令ipfs name resolve <IDhash>验证该hash解析的值,操作如下:
$ ipfs resolve QmXdSpUBx9Ut6q8LF8Wyt1Wi2wxmob6qnnT11uV3SmvUP3
/ipfs/QmTry1Hy6LJBz4uDTF6KwTnTmhAj8D15vnYyCsmhabvXaXok,我们使用新的网址访问ipns01文件,网址是:ipfs.io/ipns/QmXdSpUBx9Ut6q8LF8Wyt1Wi2wxmob6qnnT11uV3SmvUP3 。注意网址中ipns,不是ipfs字样。

访问到的内容是一样的。
记住,每次修改文件内容,发布到ipfs网络后,都需要执行ipfs name publish 新返回的hash,使最新内容发布。这样ipns访问到的都是最新的内容。
$ vi ipns01
localhost:IPFS zhanghengxing$ ipfs add ipns01
added QmU8cbkwRq9V6t39NFQ1BWxjf4EksmfxFenNPdREtazc7h ipns01
23 B / 23 B [=========================================================] 100.00%localhost:IPFS
$ ipfs name publish QmU8cbkwRq9V6t39NFQ1BWxjf4EksmfxFenNPdREtazc7h
Published to QmXdSpUBx9Ut6q8LF8Wyt1Wi2wxmob6qnnT11uV3SmvUP3: /ipfs/QmU8cbkwRq9V6t39NFQ1BWxjf4EksmfxFenNPdREtazc7h
再次访问
区块链高级工程师、go语言工程师、IPFS早期研究者。网络著书有《IPFS一问一答》、《IPFS操作教程》、《区块链密码学》、《区块链共识算法》;跟踪并翻译报道《IPFS Weekly》,研究并翻译IPFS、Filecoin白皮书,业界知名专家学者——张默默老师!