2019-12-17 17:37:29
在IPFS上托管一个简单的静态网站;更改网站内容时,使用IPNS保留一个id(地址);使用DNSLink将IPNS ID替换为可读的地址
这是一个快速教程,将教您如何:
在IPFS上托管一个简单的静态网站;更改网站内容时,使用IPNS保留一个id(地址);使用DNSLink将IPNS ID替换为可读的地址
安装,初始化IPFS并将其连接到公用网络
您可以按照以下说明安装,初始化 IPFS 并将其连接到公共网络。
创建一个简单的静态站点
只要所有链接都是相对的,您所需要的只是一个简单的静态HTML页面。出于本教程的目的,我在gist上放置了一个简单的hello世界(直接下载,查看)。
将这些文件保存在名为site的文件夹中。
index.html
style.css
h1 { color: #3f51b5; }
添加到IPFS
接下来,您需要将站点添加到IPFS。
$ ipfs add -r site/
您应该会看到以下内容:
added QmaL9R8Mxpgn7gxiqYytccM3BWX1FZfSRNGPJChu62Xe2B site/index.html added QmazEzEvcnQ6QRdMCMYPMFphen85G93x7qKpxgeCH2FFmu site/style.css added QmQToNGFsGMkQe76mRirCvRykJSiRB1JPpRLumyMN7N67T site
最后一行的哈希是您网站的根,您可以通过打开http:// localhost:8080 / ipfs / <您的哈希在此处>来访问。 您也可以从公共IPFS网关查看网站,但是该网站可能需要几分钟到几小时才能在公共网关上可用。
https://gateway.ipfs.io/ipfs/QmQToNGFsGMkQe76mRirCvRykJSiRB1JPpRLumyMN7N67T
发布到IPNS
现在,您在IPFS上托管了一个简单的静态站点。问题是,每当您更新站点时,哈希值都会更改,并且您共享的任何链接将继续指向旧版本。
您需要一种始终共享最新哈希的方法。这就是IPNS的用处。它允许您将对IPFS哈希的引用存储在peerID的名称空间(公共密钥的哈希)下。
$ ipfs name publish
这可能需要几分钟的时间。我们将在下面看到如何使用DNSLink更快地执行此操作。
使用IPNS发布网站后,您会看到一些链接。
Published to QmdZZgjYoh9sQUonNyefkMyXhEMXFC2rGvhXsJAbAPsF55: /ipfs/QmQToNGFsGMkQe76mRirCvRykJSiRB1JPpRLumyMN7N67T
这将返回您的peerID(上面的粗体文本)和要向其发布的哈希。您可以通过运行以下命令进行确认:
$ ipfs name resolve
这也需要几分钟。执行此操作后,您将看到以下内容:
/ipfs/QmQToNGFsGMkQe76mRirCvRykJSiRB1JPpRLumyMN7N67T
或者,您可以查看https://gateway.ipfs.io/ipns/(注意目录是ipns而不是ipfs)。这也需要几分钟。 几分钟后,您将能够看到您的网站:
https://gateway.ipfs.io/ipns/QmdZZgjYoh9sQUonNyefkMyXhEMXFC2rGvhXsJAbAPsF55 IPNS在大约12个小时后忘记了(Time to Live System)发布的名称。您可能要运行cron作业以在12小时内重新发布。
使用DNSLink
您必须将网站托管在AWS,GoDaddy等托管服务上,才能完成本教程的其余部分。否则,您可以在这里结束教程:)
IPNS不是在IPFS上创建可变地址的唯一方法。您还可以使用DNSLink,它现在比IPNS快得多,并且还使用更易读的名称。
DNSLink地址看起来像IPNS地址,但是它使用域名代替哈希公钥:
/ipns/simpleaswater.com
漂亮吧 让我们看看它是如何完成的。
我正在使用GoDaddy托管我们的静态网站。您也可以使用任何其他托管服务。
您必须添加DNS TXT记录,如下所示。
如果您不知道如何添加TXT记录,只需搜索“将DNS txt记录添加到<您的托管服务名称>”。
名称记录类型值
simpleaswater.com文本“ dnslink = / ipns / [peerID]”
现在,请等待几分钟,以使更改生效。