時間:2023-07-31|瀏覽:370
本文由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