注册
关闭
区块链大帝

区块链大帝

发布于 2019-12-17 阅读数 3187

使用IPFS、IPNS和DNSLink托管网站

编译:星际大陆

 

这是一个快速教程,将教您如何:

在IPFS上托管一个简单的静态网站;更改网站内容时,使用IPNS保留一个id(地址);使用DNSLink将IPNS ID替换为可读的地址

 

安装,初始化IPFS并将其连接到公用网络

您可以按照以下说明安装,初始化 IPFS 并将其连接到公共网络。

 

创建一个简单的静态站点

只要所有链接都是相对的,您所需要的只是一个简单的静态HTML页面。出于本教程的目的,我在gist上放置了一个简单的hello世界(直接下载,查看)。

将这些文件保存在名为site的文件夹中。

index.html

使用IPFS、IPNS和DNSLink托管网站

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 <your site hash>

这可能需要几分钟的时间。我们将在下面看到如何使用DNSLink更快地执行此操作。

使用IPNS发布网站后,您会看到一些链接。

Published to QmdZZgjYoh9sQUonNyefkMyXhEMXFC2rGvhXsJAbAPsF55: /ipfs/QmQToNGFsGMkQe76mRirCvRykJSiRB1JPpRLumyMN7N67T

这将返回您的peerID(上面的粗体文本)和要向其发布的哈希。您可以通过运行以下命令进行确认:

$ ipfs name resolve <peerId>

这也需要几分钟。执行此操作后,您将看到以下内容:

/ipfs/QmQToNGFsGMkQe76mRirCvRykJSiRB1JPpRLumyMN7N67T

或者,您可以查看https://gateway.ipfs.io/ipns/ <peerID>(注意目录是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]”

现在,请等待几分钟,以使更改生效。

还有,瞧!现在,我们可以使用漂亮的链接访问我们可爱的小网站:https://gateway.ipfs.io/ipns/simpleaswater.com

  • 0
区块链大帝
区块链大帝

0 条评论