IPFS最新资讯继续改善我们的IPFS网关

原文链接:https://blog.cloudflare.com/continuing-to-improve-our-ipfs-gateway/amp/

当我们启动星际文件系统(IPFS)网关时去年我们被这种积极的接待吓坏了。不计其数的人给了我们宝贵的改进建议,并做出了开放源码的贡献,使通过我们的网关服务内容变得容易(许多人在我们的开发人员文档)。从那时起,我们的网关已经发展到每秒处理一千多个请求,并且已经成为几个IPF网站的主要访问点。

我们致力于帮助成长IPF,并从我们最初发布以来学到的东西来改进我们的网关。到目前为止,我们已经做了以下工作:

自动Cache清除

当我们最初设置网关时,我们试图提高它的性能的方法之一是设置非常高的缓存TTL。毕竟,IPF的内容基本上是静态的。然而,我们听到的抱怨是,网站所有者在等待超过几个小时的时间后,他们的网站更改才得以传播,这让他们感到沮丧。

IPFS网关在接收对给定域的请求时知道要提供哪些内容的方式是查找与域相关的TXT记录的值-DNSLink记录。此TXT记录的值是全网站,这改变如果任何一个网站的一点变化。所以我们写了一个工人脚本,该脚本将DNS over HTTPS查询到1.1.1.1,如果它看到域的DNSLink记录与最初缓存内容时不同,则绕过缓存。

检查DNS会产生一个低得多的缓存TTL的假象,并且通常为一个请求添加不到5ms,而用请求对原点重新验证缓存可能需要30到300 ms不等。作为额外的可用性奖励,1.1.1.1缓存会在Cloudflare客户更改其DNS记录时自动清除。不与我们一起管理dns记录的客户可以使用这个工具.

橙对橙的测试版测试

我们的网关最初是基于一个名为SaaS的SSL..这就改变了我们的EDGE的工作方式,允许任何人,不管有没有Cloudflare客户,都可以将他们自己的域名发送到我们网络上的目标域,并让我们将我们看到的域流量发送到目标域的原点。SaaS的SSL在Cloudflare数据库中保存这些域的有效证书(因此是名称),并在这些请求到达原点之前将目标域的配置应用于这些请求(例如,强制执行页面规则)。

对于SaaS来说,SSL的好处在于它不需要在Cloudflare网络上。新的用户可以开始通过我们的网关与他们现有的DNS提供者服务他们的网站,而不是迁移所有的东西。所有Cloudflare设置都是从目标域继承的。这是一个巨大的方便,但也意味着源域无法自定义它们的设置,即使它们确实迁移了。

这可以通过Cloudflare Edge团队的一个名为“橙色到橙色”(O2O)的实验特性来改进。O2O允许Cloudflare上的一个区域将CNAME应用到另一个区域,并将两个区域的设置应用于分层。例如,CloudFlare-ipfs.com总是使用HTTPS由于各种原因关闭,这意味着每个通过我们的网关服务的网站也是如此。O2O允许站点所有者通过启用总是使用HTTPS只为他们的网站,如果他们知道这是可以的,以及添加自定义页面规则和工作脚本嵌入各种复杂的逻辑。

如果您想在您的域上尝试此方法,请打开支持票有了这一请求,我们将在未来几周内为您提供这一服务。

基于子域的网关

要在IPF上托管应用程序,很有必要为您的应用程序创建一个自定义域。我们在帖子里讨论了这一切的原因,IPF的端到端完整性-本质上说,因为浏览器只在域名级别上使用沙箱,直接从网关的URL服务应用程序是不安全的,因为另一个(恶意)应用程序可以窃取它的数据。

拥有一个自定义域为应用程序提供了一个安全的地方来保存用户数据,但也使得控制域名DNS的人能够在没有警告的情况下更改网站的内容。为了为应用程序提供一个安全的上下文以及永恒的不变性,Cloudflare在cf-ipfs.com上建立了一个基于子域的网关。

cf-ipfs.com不响应对根域的请求,只有在子域,它将子域解释为要服务的内容的散列。这意味着对https://<hash>.cf-ipfs.com的请求相当于到https://cloudflare-ipfs.com/ipfs/<hash>.唯一的技术问题是,由于域名不区分大小写,所以必须将散列从base 58重新编码到base 32。幸运的是,标准IPFS客户端为此提供了一个实用程序!

作为一个例子,我们将以关于IPF的经典维基百科镜像为例:

https:/CloudFlare-ipfs.com/IPFs/QmXoypizjW3WknFijnKLwHCnL72vedxqkDDP1mXWo6uco/wiki/

首先,我们转换哈希,QmXoyp.6 uco调至基座32:

$IPFscitybase 32 QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco

bafybeiemxf5abjwjbikoz4mc3a3dla6ual3jsgpdr4cjr3oz3evfyavhwq

这告诉我们可以去这里

https:/bafybeiemxf5abjwjbikoz4mc3a3dla6ual3jsgpdr4cjr3oz3evfyavhwq.cf-ipfs.com/wiki/

子域方法的主要缺点是对于没有加密SNI支持,哈希作为TLS握手的一部分泄漏到网络。这可能不利于隐私并启用网络级审查.

使能会议亲和力

加载网站通常需要从后端服务器获取多个资产,而且更多的情况下,“多个”更像是“十几个”。当该网站通过IPF加载时,当IPFS节点可以建立一个连接并将其用于所有资产时,它将显着地提高性能。

在幕后,我们运行了几个IPFs节点,以减少中断的可能性和提高吞吐量。不幸的是,按照最初的设置方式,每个对网站上不同资产的请求可能会转到不同的IPFS节点,所有这些连接都必须再次进行。

我们通过用我们自己的后端负载均衡器替换原始后端负载均衡器来修正这个问题。负载平衡支持会话亲和性并自动将来自同一个用户的请求定向到同一个IPFS节点的产品,最大限度地减少冗余网络请求。

连接皮纳塔

最后,我们将IPFS节点配置为维护到皮纳塔一家帮助人们将内容绑定到IPF网络的公司。有一个持久的连接大大提高了对我们的网关的请求的性能和可靠性,在他们的网络上的内容。皮纳塔写了自己的博客文章,你可以找到这里,它描述了如何将网站上传到IPF,并结合Cloudflare和Pinata将其保存在网上。

和往常一样,我们期待看到社区在我们工作的基础上建立了什么,并听到了Cloudflare如何改进互联网。

ipfs矿机投资call微信:799366390

更多资讯请关注:NewFil资讯