• 手机下载链向财经官方IOS和安卓版APP

      链向财经APP下载

      使用环境
      iOS 9.0及以上
      Android 4.3及以上

    • 链向财经官方微信公众号

      链向财经官方微信公众号

      微信号:chainfor

    • 链向财经官方QQ群

      链向财经官方QQ群

      群号:570828491

    • 意见反馈
    • 回到顶部
    • 13703
    • 评论
    • 喜欢
    • 举报
    Hardcore | 如何利用IPFS和ENS去中心化一个网站?

    01-16 23:50

    标签区块链IPFS

    来源:金色财经

    eJdHwbJrpjp8S66QLMElasyWy2XNDlbJOnxD6M87.jpeg

     

    金色财经近期推出Hardcore栏目,为读者提供热门项目介绍或者深度解读。

     

    人们发明互联网的目的本事为了信息的自由流动和传播,然而互联网发展的结果却是越来越中心化,比如DNS解析服务集中在几个机构手中,网站越来越集中托管在Google、Amazon、阿里云等少数几个托管服务商手中。互联网怎么摆脱这种处境,是很多密码朋克的目标。IPFS就是一个去中心化点对点的超媒体协议,ENS则基提供用域名方式链接至加密货币地址或者IPFS哈希,IPFS+ENS可以用来去中心化某个网站。本期Hardcore用一个案例来解释怎么用IPFS和ENS来去中心化一个网站,编译自Medium。

     


    人们需要托管网站的时候,通常使用专用的VPS,例如Digital Ocean,Linode,Google或Amazon。设置好服务器后,您可以在Google Domains或NameCheap中注册域名。最后一步是编辑DNS以将域名指向服务器。然后您就可以通过域名来访问您的网站了。

     

    然而,这里有一个问题。您的VPS托管控制着您的网站,您使用的域名服务控制着您的域名。如果您的VPS出现故障或提供VPS的公司突然把您的国家/地区列入黑名单,该怎么办呢?如果ICANN从您那里夺走您的域名怎么办?或者您的域名服务商倒闭怎么办?

     

    尽管这些可能性很小,但它们很重要,让你思考如果你的网站没人托管或域名被拿走该怎么办。

     

    使用IPFS(星际文件系统)和ENS(以太坊名称服务),你可以完全去中心化地托管你的网站。

     

    IPFS被描述为

     

    一个点对点的超媒体协议,旨在使网络更快,更安全,更开放

     

    你可以将IPFS视为HTTP或CDN(内容分发网络)。这是一种查找资源的方法,文件去中心地托管在世界上任何人都可以运行的节点上,而不是将资源托管在由Google,Amazon等控制的大型数据中心。

     

    HTTP根据URL查找资源,但是IPFS使用哈希在其网络上查找资源。

     

    IPFS哈希的一个示例是QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv,可以通过诸如Cloudfare之类的网关(如cloudflare-ipfs.com/ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcV4X)访问。

     

    此哈希指向用于托管您自己的IPFS节点的起始文件,并且如下图所见,它仅显示指向其他文件的链接。

     

    t7CCB2Z2hmft83Pqz0cPolXtDE3PTmLdDUJbOwL0.png

     

    QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv

     

    但是,IPFS哈希还可以指向网站,比如tornado.cash(这是一个加密货币混币器),它最近刚部署到IPFS上。

     

    nL4iRRjPhwsAHUEa2t4g1EJhceXJiW9uZefE6h6j.png您可以通过ipfs.io网关ipfs.io/ipfs/QmRvFZwyoJeMDCcdSiK15m7Vn2n1BFnz14WNwVxrhizzX5/访问这个网站。

     

    总之,IPFS具有一些重要优点

     

    去中心化内容网络

     

    不可篡改性

     

    抗审查性

     

    怎么部署到IPFS

     

    您可以通过运行自己的节点将网站部署到IPFS。首先下载IPFS go实现,然后打开一个终端并运行

     

    ipfs daemon

     

    您会看到以下输出:

     

    Initializing daemon...
    go-ipfs version: 0.4.22-
    Repo version: 7
    System version: amd64/darwin
    Golang version: go1.12.7
    Swarm listening on /ip4/127.0.0.1/tcp/4001
    Swarm listening on /ip4/192.168.1.7/tcp/4001
    Swarm listening on /ip6/::1/tcp/4001
    Swarm listening on /p2p-circuit
    Swarm announcing /ip4/127.0.0.1/tcp/4001
    Swarm announcing /ip4/192.168.1.7/tcp/4001
    Swarm announcing /ip6/::1/tcp/4001
    API server listening on /ip4/127.0.0.1/tcp/5001
    WebUI: http://127.0.0.1:5001/webui
    Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
    Daemon is ready

     

    现在您可以固定您的网站了

     

    ipfs add index.html

     

    added QmY9cxiHqTFoWamkQVkpmmqzBrY3hCBEL2XNu3NtX74Fuu index.html

     

    6 B / 6 B [=========================================================] 100.00%

     

    为了确保您的站点保持在网络上,可以将其固定到本地节点

     

    ipfs pin add QmY9cxiHqTFoWamkQVkpmmqzBrY3hCBEL2XNu3NtX74Fuu

     

    pinned QmY9cxiHqTFoWamkQVkpmmqzBrY3hCBEL2XNu3NtX74Fuu recursively

     

    现在,您可以通过网关导航到输出的哈希,并查看您的站点ipfs.io/ipfs/QmY9cxiHqTFoWamkQVkpmmqzBrY3hCBEL2XNu3NtX74Fuu

     

    固定到自己的节点上很棒,但是,如果节点掉线或您托管的文件被删除而文件尚未通过网络传播出去,怎么办呢?

     

    一个好的经验是将您的站点添加并固定到三个IPFS节点。您可以通过创建自己的IPFS cluster(群集)或使用已经设置了节点的流行固定服务来实现。例如Pintra或Temporal。

     

    为了举例说明,我们将使用Pintra。首先,导航到pintra.cloud,注册并导航到上传标签

     

    Q9E70jf3rwAmImWSn1aOp9FrELiFAavI2Ktn6XBs.png

     

    pinata.cloud/pinataupload

     

    上传单个文件或多个文件的目录。您还可以将添加时的哈希值固定在文件中并将其固定到本地节点,以确保其在整个网络中的传播。

     

    如果要使用React或Gatsby等框架创建Web应用程序,则可以将build或public文件夹上载到Pintra。或者您也可以签出IPFS-Deploy,以将您的站点一次性部署到IPFS。

     

    现在,我们的网站托管在抗审查的去中心化的IPFS网络上。但浏览ipfs.io/ipfs/QmY9cxiHqTFoWamkQVkpmmqzBrY3hCBEL2XNu3NtX74Fuu非常困难,我们需要一个域名。

     

    注册ENS域名

     

    以太坊域名服务(ENS)提供

     

    一种安全且去中心化的方式,使用简单易懂的名字来处理区块链链上链下的资源。

     

    不同于在Google Domains这样的网站上注册域名,ENS是一个非营利组织,提供在以太坊区块链上注册的、不可改变的.eth域名。

     

    .eth域名的主要目标是使加密货币地址易于阅读。但是,ENS增加了将域名链接到IPFS哈希的支持,因此,当将.eth域名输入浏览器时,它将解析到IPFS上的网站。

     

    例如,我的.eth域名是kohorst.eth,如果您将该域名输入到加密货币钱包中(如果它具有ENS解析器),它将解析为我的ETH地址。更重要的是,如果您在浏览器中键入kohorst.eth /(如果它具有ENS解析器比如Brave浏览器,如果没有则可以键入kohorst.eth.link将它解析),将转向我的个人网站(托管在IPFS上)。

     

    第一步是购买您的ENS域名。浏览app.ens.domains并搜索您的域名。

     

    MyYTqDfaCdr271gZWAkwESWby9H9599ZJeEFR0W9.png

     

    注意:您需要Ether和与Web3兼容的浏览器/扩展,才能购买ENS域。我个人使用Metamask,并推荐这个教程入门。

     

    选择您要购买域名的年数,然后按照步骤购买操作。

     

    在签名并验证交易后,您得等待以太坊区块链验证这笔交易。交易完成后,您可以单击您的域名进行管理。

     

    它看起来像这样

     

    qkEsegD0PFkskT9mEZa0JGRcJHz00YYu4rFftcDt.png

     

    app.ens.domains/name/kohorst.eth

     

    您可以将ETH地址以及其他加密货币(如BTC或LTC,您的电子邮件,Github甚至Twitter用户名)添加到ENS域名中。最重要的是,您可以添加IPFS哈希。

     

    单击添加按钮,然后在“内容”下添加您网站的IPFS哈希

     

    MdJ68QWABJe4mEMgFFb7rfg5hRy1Sly2ERZ5RHJt.png

     

    您需要支付gas费才能将内容写入区块链,并且在验证交易之后,您能够导航至yourdomain.eth.link并查看您的IPFS网站!

     

    IPFS和常规域名服务

     

    如果你没有任何以太币或者不希望您的域名以.eth结尾,您可以将传统DNS指向IPFS哈希,以便保留.com域名。你可以在这里读更多关于它的内容。

     

    在DNS中的Google Domains上,您需要注册一个A和AAAA记录,该记录指向IPFS网关的IP地址。您可以使用nslookup查找IPFS网关的IPv4和IPv6记录(此处提供了可用网关的列表)。

     

    我使用了ipfs.io网关,其记录是

     

    A 209.94.90.1

     

    AAAA 2602:fea2:2 :: 1

     

    在您的DNS上注册这些,然后用TXT记录创建“dns link”值,例如

     

    “ dnslink = / ipfs / <哈希>”

     

    0HWD6310yEXIT7GSePX5veqJ3iFDfnWmtxL0MRHS.png

     

    lucakohorst.com的DNS记录

     

    完成!现在,您的域名将指向您的IPFS网站。

     

    原文:Decentralizing your Website

     

    https://towardsdatascience.com/decentralizing-your-website-f5bca765f9ed

     

    已有0人喜欢

    本文经授权发布,不代表链向财经立场。如若转载请标注文章来源:链向财经(www.chainfor.com)

    为了您能更及时的获取到最新热门资讯,请关注链向财经微信公众号:LXcaijing

    发表评论
    请先 注册 / 登录 后参与评论
    已有0发布
      已查看全部
      举报
      • 内容涉嫌抄袭,代表月亮消灭他/她
      • 发布不实消息,画个圈圈诅咒他/她
      • 诱导投资,放毛毛,揍他/她
      • 侵犯名誉、隐私,这个借一步说话
      • 其他
      具体描述(选填):
      取消提交