IPFS操作教程10:使用IPNS发布你的网页
Online
2019-10-22
热度37990

IPFS操作教程10:使用IPNS发布你的网页

IPFS操作教程10:使用IPNS发布你的网页

在之前的课程中,我们可以将自己的数据共享到IPFS网络中,但是数据在网页被访问时使用的都是数据内容的hash值。所以当内容发生变化后,我们是不能访问到最新的数据的。

教程目标

通过本小节的学习,使你能够重新编辑发布过的数据,而不需要修改访问的hash值

学习步骤

第一步:上传一个文件到ipfs网络

根据之前的课程,我们可以将一个文件发布到ipfs网络。我创建了一个文件ipns01,内容是“chaindesk”

$ vi ipns01
$ ipfs add ipns01 
added QmTry1Hy6LJBz4uDTF6KwTnTmhAj8D15vnYyCsmhabvXaX ipns01

现在在网络中访问ipfs.io/ipfs/QmTry1Hy6LJBz4uDTF6KwTnTmhAj8D15vnYyCsmhabvXaX 。没问题

第二步:使用IPNS访问文件

如果我上一个文件内容,修改了,那么你再用上边的网址是访问不到修改过的内容的。所以就引入了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/QmTry1Hy6LJBz4uDTF6KwTnTmhAj8D15vnYyCsmhabvXaX

ok,我们使用新的网址访问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白皮书,业界知名专家学者——张默默老师!

本内容旨在传递行业动态,不构成投资建议或承诺。
为你推荐

商务合作:TG:@Lottie96