当前位置:首页 > 区块链新闻 > 正文

操作指南 | 使用IPFS+ENS托管您的Dapp并访问它

来源: 互联网时间:2019-07-17 15:46:06

—  介绍  —


人们经常问我,ENS是否可以指向一个IP地址来承载你名下的网站。我通常建议的是把你的网站上传到一个分布式的内容系统,比如IPFS或Swarm,然后通过ENS来实现。

我自己从来没有这样做过,所以我把 ENS manager 复制到IPFS中,设置ensmanager.matoken.eth解决此问题,并通过一个不太为人所知的ENS gem(称为EthDNS)链接在http://ensmanager.matoken.eth.link下提供服务。

我是这样做的: 

①步骤1:修改你的应用程序

我们的应用程序基于create- response -app。除了大量使用GraphQL外,我认为它是一个非常标准的React应用程序。我们没有使用任何dapp框架(比如Embark 或 Truffle),因为前端应用程序通过npm包导入所有智能的合同ABI。

您需要做的唯一大的更改是将路由从BrowserRouter更改为HashRouter,这样URL将变成/#/name/matoken.eth而不是/name/matoken.eth。此更改不仅适用于通过IPFS提供服务,还适用于任何无法设置动态路由规则将任何url重定向到/ for SPA(单页面应用程序)的主机环境。


一旦更改完成,请确保应用程序运行yarn启动或npm运行启动。如果您的应用程序没有损坏,那么您可以像运行任何其他项目一样运行构建脚本。


我经常做的一件事是,尝试在react项目外的build目录下提供已构建的资产文件,以确保其工作正常。最简单的检查方法是通过python内置的http服务器提供服务


如果您的应用程序正在工作,那么它应该准备好发布到IPFS。

②步骤2:将构建文件发布到IPFS 

我没有详细介绍如何设置和运行IPFS守护进程(但这应该只是IPFS守护进程的问题)。

完成所有设置之后,添加刚才编译到IPFS中的构建目录。


最后一个哈希值qmsgkpturdhsvqmz2kfmgsnffaoxp6qtbvzafknucjkrz是您的项目的根哈希。让我们确保它有所有的文件。


③步骤3:设置contenthash为ENS 

如果你现在没有ENS的名字,这是一个很好的机会注册一个。只需到ENS Manager注册一个新名称,设置公共解析器,并通过选择“Content”记录类型将IPFS添加到ENS记录中。


一旦设置好,它应该显示指向IPFS网关地址的链接。


点击链接,然后…它显示了我们的ENS管理应用。


④步骤4:通过EthDNS访问它

如果您通过ENS contenthash支持的浏览器/钱包(例如Status)打开它。您应该能够在ensmanager.matoken.eth下看到相同的内容。然而,你不能指望所有的朋友和家人都能在ENS支持的浏览器中看到你的内容,这就是EthDNS的作用。

EthDNS是Jim McDonald正在开发的一个项目,它得到了协议实验室的开发资助。它是coreDNS服务器的一个分支,它连接到ENS,检查ENS记录中是否有给定ENS名称的contenthash记录,然后通过IPFS网关提供内容。

ENS团队获得了eth.link域并将其DNS名称服务器指向EthDNS服务器。作为dapp开发人员,您不需要做任何设置,您所需要做的(作为一个用户)就是在您的浏览器中添加.link到您的ENS名称(例如,http://ensmanager.matoken.eth.link)。


——全文完——


本文由IPFS原力区收集译制,版权所属原作者

免责声明:

1.本文内容综合整理自互联网,观点仅代表作者本人,不代表本站立场。

2.资讯内容不构成投资建议,投资者应独立决策并自行承担风险。