时间:2023-07-31|浏览:297
本文由IPFS中国社区编译整理
免责声明:我在协议实验室工作了6个月,现在已经不再在那里工作了。
性能是IPFS的一个重要问题,有许多探索这个更广泛问题的不同途径。
我决定选择的途径:IPFS网关。什么是IPFS网关?这是浏览器用户无需运行守护程序即可访问IPFS托管内容的方式。换句话说,它有助于创建从今天的Web到DWeb的无缝桥梁。
那里不乏社区提供的网关,最常见的是ipfs.io,因为协议实验室(创建IPFS的公司)运行它。但其他强有力的竞争者仍然存在,包括Cloudflare。
看看可用的选项,脑子里出现了一个想法:哪一个最适合我的日常使用?
我决定找出答案。
测试概述
我想让这个测试保持简单。
话虽如此,测试包括调用三个不同的文件:
1. 文本文件(~1.3KB) 2. 图像文件(~3.6MB) 3. 视频文件(约153.3MB)
你可以用上面的超链接访问它们。我把它们托管在Pinata的固定服务上,并计划在可预见的未来保持它们的正常运行。
我从七个不同的网关提供商的地址中调用每个文件:
1. Protocol Labs (https://ipfs.io/ipfs/) 2. Cloudflare (https://cloudflare-ipfs.com/ipfs/) 3. Infura (https://ipfs.infura.io/ipfs/) 4. Pinata (https://gateway.pinata.cloud/ipfs/) 5. Eternum (https://ipfs.eternum.io/ipfs/) 6. Siderus (https://siderus.io/ipfs/) 7. Temporal (https://gateway.temporal.cloud/ipfs/)
我还提出了另一个问题:在不同的地理位置运行该测试
- US-East - US-West - EU-London - EU-Frankfurt - AP-Tokyo - AP-Mumbai - AP-Sydney - SA-SaoPaolo
为了测试这些不同的地理位置,我使用了AWS的t2.micro实例。
如果你对运行这些测试的代码感兴趣,我已将其上传到GitHub。你可以按照自述文件在自己的机器上启动。
确定获胜者的方法
在分享我的方法之前的一点说明:我不是在寻找最快的网关,或者性能差异最小的那个。我正在寻求速度和一致性之间的平衡。
为此,我确定了四个子类别的胜利者。然后我使用了第五个子类来打破平局。这些类别是:
1. 10次尝试的最低速度 2. 10次尝试的最高速度 3. 10次尝试的最低平均速度 4. 通过10次尝试的最低中位值 5. 仲裁:10次尝试的最低标准偏差
结果
接下来的几个表都是很详细的。
对于寻找通用答案的人来说,Cloudflare获胜。
下表中字母的简短说明:
- PL=ProtocolLabs - C=Cloudflare - I=Infura - P=Pinata - E=Eternum - S=Siderus - T=Temporal
文字结果 图像结果 视频结果 *StdDev仅打破平局
讨论结果
一般来说,Cloudflare的网关是一个安全的选择。它提供了跨地理和文件类型的可靠性能。如果你在孟买,悉尼或圣保罗地区,无论文件类型如何,它们也是最好的网关。
排名第二和第三的是ProtocolLabs和Pinata。前者是IPFS旗下的公司。后者一个在社区中有固定服务的公司。对我来说似乎很有意义。
关于这些结果的最后一点说明。在查看这些性能指标时,我忽略了一个大数据点:每个网关上的流量。我的假设是协议实验室在其网关上获得更多流量。毕竟,大多数人默认使用他们的网关地址。
更多流量=更多问题。并且我的数据中的任何地方都没有捕获该变量。但是,我希望这种分析最终会引起对备用网关的关注,以此值得一提的是我的想法,我以前在Serverless的世界里看到过。
冷启动问题
在Serverless的世界环境中,Mike Roberts将冷启动问题描述为:
在每个事件之前,FaaS平台都需要一些时间来初始化函数的实例。这种启动延迟可能会有很大的差异,甚至对于一个特定的函数也是如此,具体取决于很多因素,并且可能在几毫秒到几秒的范围内……
Lambda函数的初始化将是“热启动”-(重用Lambda函数的实例及其来自以前事件的宿主容器),也可以是“冷启动”(创建新的容器实例,启动函数宿主进程),等等。毫不奇怪,在考虑启动延迟时,这些冷启动引起了最多的关注。
–Mike Roberts,Serverless的世界体系结构
在IPFS网关的背景下,这个问题似乎存在(至少在某种程度上)。例如,按地理位置查看Cloudflare在文本文件(~1.3KB)上的表现:
冷启动问题全面展开
很清楚。在尝试1和尝试2-10之间,每个地理位置都有很大的性能改进。但是,我不确定这是一个IPFS问题。为了说明–除了Infura的表现之外,这里的剪辑相同:
也许不吧?
我不太清楚存在冷启动的问题,坦率地说,我不确定这种差异来自何处。是IPFS本身吗?是网关的架构吗?难道
热点:ipfs