使用IPFS的无服务器静态站点

TL; DR :IPFS允许您以分布式方式托管静态站点,可以通过Internet上的公共缓存门(透明反向代理)访问静态站点,而无需为访问者安装程序。 此类站点可在没有可路由(“白色”)静态IP地址的情况下分发(它将用于NAT),如果由于网关上的缓存而在短时间内(几个小时)没有分发站点,则它们仍可运行。 您可以将域随意绑定到网关,也可以将DNS记录同时添加到多个网关,以提高可靠性和负载平衡。 其他IPFS用户可以下载该站点并进行分发。
IPFS非常适合静态博客,简单站点,文件存档(作为Bittorrent的替代品),也适用于大型文件的同时传输,而无需先将其下载到任何服务中。

什么是IPFS?

IPFS是一种分散式对等文件传输系统,其原理与BitTorrent类似,但具有通过HTTP访问Web的功能。 用户下载的所有文件都会由IPFS守护程序临时缓存,并分发给其他请求它们的用户。 重要文件可以“附加”(固定)到IPFS守护程序,这样它们就不会从高速缓存中消失。
添加到IPFS的文件会收到全局哈希,当再次添加该文件时,它们不会改变。 网络中的寻址是通过内容标识符(CID)进行的 ,其中存在多现金 。 在IPFS的上下文中,它们指向不变的文件,目录,元数据或符号链接。

在目前的开发阶段,该项目仅能完全使用静态数据,但是已经对协议进行了实验性支持,例如Publisher-Subscribe(发布/订阅),以及在浏览器中可以在Javascript上使用IPFS的实现,将来将允许您创建动态站点(例如,评论博客)与实时互动(例如聊天)。

与其他类似技术相比,IPFS的主要优势之一是可通过公司和技术爱好者安装的网关从Internet访问资源。 它们使您无需在计算机上安装IPFS即可浏览站点和下载文件。 最大的大门来自Cloudflare ,它还允许您为域颁发免费的HTTPS证书。

为什么需要IPFS,在哪里使用它?

该网络使您可以高效,分布式和分散地分发和下载数据,包括从浏览器中进行下载。 我看到了该项目的以下实际应用程序:

  1. 在您的家用计算机上免费无家可归地托管静态网站,无专用IP地址(用于NAT),无域或无域;
  2. 非审查控制的高风险网站托管活动,可能会受到政府或数字千年版权法案(DMCA)内的第三方公司的阻止;
  3. 无法通过Bittorrent有效分发的定期更改或添加数据的分发(您将不得不不断重新创建torrent文件,并要求所有分发者再次下载它,这导致种子碎片化);
  4. CDN的一种替代方法,不需要在“ CDN提供程序”一侧进行设置。

如何在IPFS中创建站点?

这比常规托管更容易! 考虑使用bum托管一个简单的静态网站。

最简单的选择是使用Siderus Orion图形实用程序。
安装该实用程序,启动它,单击文件→添加目录,选择包含站点文件的目录。

稍后,将出现一个窗口,其中包含有关导入内容的信息:
图片

转到“文件”选项卡,右键单击哈希→在浏览器中打开:
图片

如果一切操作正确,该站点将通过siderus.com门打开:
https://siderus.io/ipfs/QmU8rJjkXbfkPqEE3Dr8GiUMKF1vPnnNUKWdaB5DsZDfJ7/

就是这样,在您保持程序运行或保留在Gate高速缓存中时,其他用户可以访问您的静态站点。

另一种可选的控制台选项 -下载官方go-ipfs客户端 ,解压,初始化并启动它,方法是在网站上编写
ipfs init ipfs daemon 

接下来,添加包含站点文件的目录:
 ipfs add -r ./www.uncleoutrage.com … added QmXdaairbPoSGV98sQ3GsEuevVTE1EBUzZ4PhbLfKVh1nX www.uncleoutrage.com/images/fanart added QmdFbHdzzB4qBBkn8UsyHnjg1BKEtm9d5LaTyv5aZd8bbE www.uncleoutrage.com/images/gigs/thumbs added QmVPJ3Mr8gZL5x15A9XARC1uHASqb2JMsKTT7mWs37UmBo www.uncleoutrage.com/images/gigs added Qmd3AbVwMVE9W6ZSEuax96Xnymbnic4XVCdNEKBPZcWi5c www.uncleoutrage.com/images/live/thumbs added QmebUfmT2wmZMbJcAmSMS4cZJr4guTqV67xNJ3hiQGsLYx www.uncleoutrage.com/images/live added QmaEVaRiUUXfDnjjuXHGGsg7jDaFrCaxS7wi6q83q4N1uu www.uncleoutrage.com/images/misc/thumbs added QmW2ZivQF5eh5LHSLet298AhKCHiQsFV6rvUFvMcCkLopo www.uncleoutrage.com/images/misc added QmZXXn7abBvj7SvYJoYMAXUeajP6A1UABKENrNwuhKqofk www.uncleoutrage.com/images/promo/thumbs added Qmcx6bMKur4Anzh91bJC6o5vMPftzocSMmd7iYxoGwQrNX www.uncleoutrage.com/images/promo added QmW8P3ZnvKUytCWJF6y6wvBD8XAkk4bvJoVK8j3apokzLS www.uncleoutrage.com/images added QmXG1QjfpCjErQBGZvF6VWBryXe9WFLPqhrsGWtikACVwR www.uncleoutrage.com/js added QmYGXwLJBnqXwWYGKVtjZtmwncgwNoqNmnYqo1NTinTGBp www.uncleoutrage.com/theband/misc/pages added QmWg4JyZ4ox9hcHt6JGBfzUm5CqWsb6DixUksamFvbirH4 www.uncleoutrage.com/theband/misc added QmPtn9XBhWqe7A1z3ikktWExSPSM27LTzUL3US9N5xcAPB www.uncleoutrage.com/theband/redsaug21/pages added QmaGV6kfLdL1bKGBBHYJLDVstiejAANayBZt16NMF9g9j9 www.uncleoutrage.com/theband/redsaug21 added QmScmcUAdC5pinMxaoLuXSy3FDUAX5E68dADnGjYZbPUiY www.uncleoutrage.com/theband added QmU8rJjkXbfkPqEE3Dr8GiUMKF1vPnnNUKWdaB5DsZDfJ7 www.uncleoutrage.com 

最后一个哈希是目录的哈希,我们需要它。

我们编译一个链接以手动通过门打开目录,格式为:
 https:///ipfs/ 

例如:
https://cloudflare-ipfs.com/ipfs/QmU8rJjkXbfkPqEE3Dr8GiUMKF1vPnnNUKWdaB5DsZDfJ7

如何将IPFS哈希绑定到域?

为了使网站可以通过域https://uncleoutrage.com/而不是冗长而丑陋的链接访问,您需要添加一些DNS记录:

  1. A和AAAA记录指向网关IP地址,或CNAME记录指向网关域名;
  2. TXT记录“ _dnslink”,内容类似于“ dnslink = / ipfs / HASH”。

就我而言,我添加了A和AAAA记录,它们指向cloudflare-ipfs.com的IP地址,而TXT记录是“ _dnslink.uncleoutrage.com”:
 uncleoutrage.com. IN A 104.18.252.167 uncleoutrage.com. IN A 104.18.255.167 uncleoutrage.com. IN AAAA 2400:cb00:2048:1::6812:fda7 uncleoutrage.com. IN AAAA 2400:cb00:2048:1::6812:40a8 _dnslink.uncleoutrage.com. IN TXT "dnslink=/ipfs/QmU8rJjkXbfkPqEE3Dr8GiUMKF1vPnnNUKWdaB5DsZDfJ7" 

您可以从Cloudflare获得链接域的HTTPS证书,需要在特殊证书接收页面上进行请求。
如果不需要HTTPS支持,则可以一次将多个A / AAAA记录添加到不同的闸门,当前工作闸门列表可在项目论坛上获得
如果要更新站点,则必须更新域的TXT记录。

如何不通过网站更新来更新TXT记录?

IPFS允许您生成一个特殊的静态哈希标识符,该标识符指向不断变化的哈希-IP NS 在图形客户端中,只需单击文件→发布到IPNS,然后在链接或域的TXT记录中指定您的对等ID,而不是添加目录时获得的哈希。 例如:
 https://cloudflare-ipfs.com/ipns/QmV97DGqaaTVn54RH9CLTi9hxXfr57gJQ4zGtyHcVbtfH6 

但是,IPNS记录需要每隔几个小时手动更新(发布),因此解析/ ipfs /的速度要慢得多。

顺便说一句,IPNS不仅可以解析域的CID,还可以解析dnslink记录-可以使用https://cloudflare-ipfs.com/ipns/uncleoutrage.com之类的链接来打开站点。

结论

如果您想了解有关IPFS的更多信息,请阅读一系列出色的 ivan386 文章 。 他们很讨厌,他们几乎从不说出普通人为什么需要IPFS(否则这篇文章就不用了)。

想要帮助分发IPFS站点,还是被告知域绑定到IPFS门? 安装浏览器插件(对于Firefox ,对于Chrome ),将IPFS站点重定向到您的本地节点。

几个月来, Anti-Ban一直通过Cloudflare门通过IPFS每天分发TB的TB文件。 它工作稳定,大大节省了服务器流量。

Source: https://habr.com/ru/post/zh-CN430172/


All Articles