本文探討了以太坊歷史成長問題,指出歷史成長速度遠超過狀態成長,可能會超過節點的儲存容量。然而,借助EIP-4444提出的解決方案,只保存一年的歷史記錄可以大幅減輕歷史記錄對節點儲存負擔的影響。同時,其他EIP如EIP-7623和EIP-4488也可以幫助減輕歷史成長的壓力。透過各種方法保存歷史記錄,包括Torrents/P2P、入口網站網路和雲端主機等方式,使得歷史資料得以保存並供以太坊的驗證、統計和分析使用。整體而言,歷史成長是以太坊擴容的關鍵瓶頸,但透過有效的解決方案可以得以緩解。
內容
什麼是歷史成長?歷史發展的速度有多快?以太坊史上最大貢獻者是什麼?現在出現呢?歷史增長多少是可以接受的?成長歷史如何解決?如何保存以太坊的歷史記錄?閉幕式致謝
歷史成長是目前以太坊擴容的最大極限。有點出乎意料的是,歷史成長已經成為比狀態成長更大的問題。幾年之內,歷史資料將超過許多以太坊的儲存容量。
好消息是:
成長歷史是比成長狀態更容易解決的問題。解決方案已經在積極開發中。解決歷史成長將緩解成長狀態問題。
在本文中,我們繼續研究第1部分的以太坊擴展,現在將我們的注意力從狀態增長轉向歷史成長。使用高解析度資料集,我們的目標是1)建立對以太坊擴容瓶頸文章的技術理解,2)幫助圍繞以太坊氣體限制的最佳程度進行討論。
這裡限制是有關以太坊擴容的部落格文章系列的第2部。第1部分是關於成長狀態,第2部分是關於歷史成長,第3部分是關於狀態,第4部分是關於Gas。
什麼是歷史成長?
是歷史以太坊在其生命週期中執行的所有區塊和交易的集合。這是將鏈從創世塊同步到鏈的當前尖端所需的資料。歷史成長是隨著時間的推移新的區塊和新的交易的增持。
圖1顯示了歷史成長與各種協議指標和以太坊硬體限制的關係。歷史增長受到與狀態增長不同的一組硬體限制的限制。歷史成長給網路IO帶來了壓力,因為新的區塊和交易在整個網路中傳輸。歷史記錄的成長必須給節點的儲存空間帶來壓力,因為每個以太坊節點都儲存歷史記錄的完整副本。如果歷史成長得夠快以超過這些硬體限制,節點將不再能夠對等方達成穩定的共識。請參閱本系列文章的第1 部分,以了解狀態增長和其他擴展瓶頸的概述。
圖1:以太坊擴容瓶頸
直到最近,每個節點的大部分網路吞吐量都用於傳輸歷史記錄(例如新區塊和交易)。隨著Dencun硬分叉中blob的引入,這種情況發生了變化。 Blob現在關注了節點網路活動的很大一部分。然而,blob 不被視為歷史的一部分,因為1)它們在被丟棄之前僅由節點儲存2 週,2)它們不需要重播Genesis 中的鏈。由於(1),blob不會顯著增加每個以太坊節點的儲存負擔。我們將在本文的後面部分討論blob。
在這篇文章中,我們將關注歷史的成長,同時也帶來歷史與國家之間的關係。由於狀態增長和歷史增長共享一些重疊的硬體約束,因此它們是相關的問題,解決一個問題可以幫助解決另一個問題。
歷史發展的速度有多快?
圖2顯示了自以太坊創世以來隨時間變化的歷史成長。每個垂直條代表一個月的成長。 Y軸代表該月歷史成長的GB數。交易按其「目標位址」進行分類,並使用其RLP位元組表示確定的大小。無法輕易辨識的合約被歸類為「未知」。 「其他」類別包括基礎設施和遊戲等小類別的長尾。
從這張K線走勢圖中可以得到一些關鍵結論:
歷史成長速度比狀態快約6 倍– 8 倍:歷史成長最近達到最高峰36.0 GiB/月,目前為19.3 GiB/月。歷史成長速度比狀態快約6.0 GiB/月,目前為2.5 GiB/月。的比較,無論是成長或上漲規模,都可以在本文後面找到。 在12月之前,歷史成長正在急劇加速:雖然狀態一直處於大致線性成長(請參見第1部分),但歷史卻一直處於超線性成長。考慮到線性增加的會導致整體規模呈現二次方,因此超線性增加的出現會導致整體規模快於二次方。這股加速在登存指令卻止於此。這是以太坊歷史上首次出現,這顯然是一次。最近的歷史增長大部分來自匯總:每個L2 將其交易副本發布回主網。這產生大量的歷史記錄,並導致匯總成為去年歷史記錄的最重要貢獻者。然而,Dencun 使L2 能夠使用blob而不是歷史記錄來發布其交易數據,因此不再匯總產生大部分以太歷史記錄。我們後期將在股市中更詳細地研究總結。以太坊史上最大貢獻者是什麼?
每個指標類別產生的歷史記錄量揭示了以太坊使用模式如何隨著時間的轉變而演變。圖3顯示了各個指標類別的相對貢獻。這與圖2的數據相同,標準化為100%。
該數據揭示了以太坊使用模式的四個不同時代:
早期時代(紫色):在以太坊的最初幾年,鏈上活動很少。在這些早期標誌中,大多數現在都難以識別,並且在K線走勢圖中被標記為「未知」。 ERC-20時代(綠色):ERC20標準於2015年底最終確定,但直到2017年和2018年才獲得重大關注。 ERC-20合約在2019年成為史上最大的類別。 DEX / DeFi 時代(棕色):DEX 和DeFi 合約早在2016 年就出現在鏈上,並在2017 年開始受到關注。但直到2020 年DeFi Summer 才成為史上最大的類別。 DeFi 和DEX 合約在2021 年和2022 年部分時間達到歷史成長的50% 以上的高峰。 Rollup時代(灰色): 2023年初,L2 Rollup開始持續執行比主網更多的交易。這與他們的合約產生了大量歷史記錄一致,他們在Decun之前的幾個月產生了約2/3的以太坊歷史記錄。
每個時代都代表著比之前更複雜的以太坊使用模式。隨著時間的推移,複雜化可以被視為以太坊擴展的一種形式,它無法透過每秒交易量等簡單指標來捕捉。
在最近一個月的資料(即2024年4月)中,總結不再產生一些大部分歷史記錄。目前還慶幸未來的歷史是否會起源於DEX和DeFi,或是否會出現新的使用模式。
那麼斑點呢?
Dencun硬分叉中Blob的引入顯著改變了歷史成長動態,允許Rollups使用廉價的Blob而不是歷史來發布數據。圖4放大了Decun升級日期扭轉的歷史行動。此K線走勢圖與圖2類似,不同地點以每個垂直條代表一天而不是一個月。
從該總結可以得出幾個關鍵結論:
自Decun以來,匯總的歷史增長量下跌了約2/3:大部分匯總已從調用資料轉變為Blob,這大大減少了它們產生的歷史記錄量。但是,截至2024年4月,不再有一些匯總尚未從呼叫資料切換為blob。自登村以來,總歷史成長下跌了約1/3:登村僅減少了累積的歷史成長。其他項目類別的歷史成長將增加。即使在登村之後,歷史增長仍然是州增長的8倍(詳情請參見下一節)。
儘管blob減少了歷史成長,但它們仍然是以太坊的新成員。目前尚在伊斯蘭教中出現的情況下歷史增長將在何處穩定。
歷史增長多少是可以接受的?
因此,提高Gas限制的建議(例如Pump the Gas)必須是歷史成長與每個節點的硬體瓶頸之間的關係。
為了找到現代的歷史困境,首先檢查現代節點網路和儲存硬體困境可以維持當前現狀多長時間是有幫助的。網路硬體可能會無限期地維持生存,因為在天然氣限制增加歷史之前,成長率不太可能回到Dencun的高峰。然而,歷史記錄之前的儲存負載隨著時間的推移而不斷增加。根據目前的儲存策略,每個節點的儲存磁碟機最終都會被歷史填滿。
圖5限制顯示了以太坊節點隨時間變化的儲存負載,並且還預測了該儲存負載在未來3年內可能會如何成長。使用2024年4月的選項進行預測。隨著未來使用模式或Gas的變化,該費率可能會上漲或下跌。
從這個總結中可以得出一些關鍵結論:
佔用歷史的儲存空間大約是狀態的3倍。這種變異隨著時間的速度而增加,因為歷史的增長大約是狀態的8倍。 1.8 TiB 左右有一個臨界閾值,許多節點將被迫升級其儲存磁碟機。 2TB 是常見的儲存磁碟機大小,提供1.8TiB 的可用空間。請注意,TB(1 兆位元組)與TiB(= 1024) ^ 4 位元組)是不同的單位。對於許多節點運營商來說,「真正的」關鍵閾值甚至隊列,因為合併後驗證器必須與執行客戶端一起運行意見客戶端。 2、3年內將達到臨界限制閾值。將Gas提高任何數量都會相應地加速這一時間。達到此閾值節點運營商帶來不小的維護負擔,並且需要購買額外的硬體(例如價值300美元)的NVME驅動器)。
與狀態不同的數據,歷史數據只是附加的,並且訪問一些積極性要低分割。 ,理論上可以透過將歷史資料與狀態資料分開儲存在更便宜的儲存Medium上。這可以像geth這樣的客戶來完成。
除了儲存容量之外,網路IO是歷史成長的另一個主要硬體。與儲存容量不同,網路IO限制在短期內不會為節點帶來問題,但這些限制未來對於天然氣限制的增加將變得很長重要。
要了解以太坊節點的網路容量可以支持多少歷史成長,有必要描述歷史成長與各種網路健康指標之間的關係,例如重組率、時缺口缺失、最終性、證明缺失、同步委員會缺失、並阻止提交延遲。對這些指標的分析超出了本文的範圍,但可以在先前對共識層健康狀況的調查中找到更多信息[1] [2] [3] [4]此外,以太坊基金會的Xatu計畫一直在建立公共數據集,以加快此類分析的速度。
成長歷史如何解決?
歷史成長是一個比國家成長更容易的問題。候選提案EIP-4444幾乎完全解決了這個問題。這個EIP每個將節點從保留整個坊以太歷史更改為僅保留一年的歷史。實施EIP-4444後,即使長期來看,氣體限制大幅增加,資料儲存將不再是以太坊擴展的瓶頸。 EIP-4444 對於網路的長期持續是必要的,否則因為歷史記錄將成長得足夠快,需要定期更新網路資源的硬體。
圖6顯示了EIP-4444如何影響未來3年每個節點的儲存負載。這與圖4相同,新增的較細線代表EIP-4444後的儲存負載。
從這個總結中可以得出一些關鍵結論:
EIP-4444 承擔目前的倉儲負擔減半。倉儲負擔份額1.2 TiB 最少633 GiB。 EIP-4444將穩定歷史負擔。假設歷史速度成長恆定,歷史將產生的速度被消耗。在EIP-4444之後,4444之後的斯托負載需要很多年才能達到今天的斯托負載。這是因為狀態增長將是斯托負載的唯一因素,且狀態增長速度比歷史記錄慢。
實施EIP-4444 後,歷史記錄仍會帶來一定的儲存負擔,因為節點將儲存一年的歷史記錄。但是,即使以太坊達到全球規模,這個負擔成長也難以解決。一旦歷史保存方法被證明是可靠的,EIP-4444 長達一年的長度可能會持續到幾個月、幾週甚至更短。
如何保存以太坊的歷史記錄?
EIP-4444提出了一個問題:如果不是由以太坊節點本身應該保存歷史記錄,那麼如何保存歷史記錄。歷史在以太坊的驗證、統計和分析中發揮對坊的核心作用,因此保存它至關重要。幸運而且,歷史保存是一個簡單的問題,只需要1/n 誠實的資料提供者。這與需要1/3 到2/3 的數據參與者誠實的狀態辯論問題形成對比。節點操作員可以透過以下方式驗證任何歷史資料集的真實性:1)重播Genesis中的所有交易;2)檢查這些交易是否與目前鏈尖端的狀態根相同。
保存歷史有多種方法。其中每一個都應該配置資源,以最大限度地提高保存的可能性。
Torrents / P2P: Torrents 是最簡單、最強大的方法。以太坊節點可以定期預留部分歷史記錄並作為公共torrent 檔案共用。例如,節點可能每100,000 個區塊建立一個新的歷史torrent 檔案。像erigon 這樣的儲存節點客戶端已經以某種非標準化的方式執行這個過程。為了標準化這個過程,所有節點客戶端必須使用相同的資料格式、相同的參數和相同的P2P網路。節點將能夠根據其和頻寬能力選擇是否參與該網路。種子的優點是使用高林迪開放標準,這些標準已經得到大型資料工俱生態系統的支持。入口網站網路:入口網站網路是專門為託管以太坊資料而設計的新網路。這與下載的方法類似,同時也提供一些額外的功能使資料驗證更容易。入口網站網路的優點是這些額外的驗證層為輕客戶端提供了有效驗證和查詢共用資料集的實用程式。雲端主機:AWS的S3或Cloudflare的R2等雲端儲存服務為保存歷史記錄提供了便宜且高效能的選項。然而,這種方法帶來了更多的法律風險和業務營運風險,因為不能保證這些雲端服務始終願意並且能夠託管加密貨幣資料。
剩下的實施挑戰更多是社會性的而不是技術性的。以太社群需要圍繞具體的完全實現細節進行協調,使得它們可以直接整合到每個節點坊客戶端。特別是,從Genesis 執行同步(而不是快照同步)將需要從歷史記錄提供者而不是以太節點檢索歷史記錄。這些變化在技術上不需要硬分叉,因此它們可以比以太坊坊的下一個硬分叉Pectra更早實施。
L2 也可以使用所有這些歷史記錄保存方法來保存它們發佈到主網的blob 資料。與歷史保存相比,blob 保存1) 比較困難,總因為資料量較大;2) 較不重要,因為blob 不是重播主網歷史所必需的。不過,對於每個L2重播自己的歷史來說,blob保存仍然是必要的。因此,某種形式的blob保存對於整個以太坊生態系統來說非常重要。另外,如果L2開發的話強大的blob儲存基礎設施,他們還可以輕鬆儲存L1歷史資料。
直接比較EIP-4444 前沿各種節點配置儲存的資料集是有幫助的。圖7顯示了以太坊節點類型的儲存負載。狀態資料是帳戶和合約,歷史資料是區塊和交易,歸檔資料是一組任選的資料索引。該表中的位元組計數是基於最近的索引應該,但其他節點客戶端的數字大致可比。
圖7:以太坊節點類型的儲存負載
用語言來說,
文件儲存節點狀態資料和歷史資料以及文件資料。當有人希望能夠輕鬆查詢歷史鏈狀態時,可以使用文檔節點。完整節點僅儲存歷史資料和狀態資料。現在大多數節點都是完整節點。完整節點的儲存負載大部分是節點節點的一半。 EIP-4444之後的完整節點僅儲存狀態資料和最近一年的歷史資料。這將節點的儲存負載從1.2 TiB減少到633 GiB,清理歷史資料的儲存佔用達到穩定狀態值。無狀態節點,又稱為“輕節點”,不儲存任何這些資料集,並且能夠在鏈的尖端立即進行驗證。一旦Verkle嘗試或將其他狀態承諾方案新增至以太坊,這種節點類型就成為可能。
最後,還有一些額外的生態園區將限制歷史行為,而不僅僅是適應當前反應。這對於短期維持網路IO 限制和長期維持產業儲存限制都有幫助。儘管EIP-4444 對於網路的長期可持續性仍然是必要的,但這些其他EIP將幫助以太坊在未來更有效地擴展:
EIP-7623:對通話資料重新定價,使得某些過量通話資料的交易更加昂貴。使這些使用模式變得更加昂貴將促使其中從呼叫資料轉換為blob。這將降低歷史呼叫。 EIP-4488:對每個區塊中都可以包含的呼叫資料基線施加限制。這要求歷史成長的速度施加更嚴格的限制。
這些EIP比EIP-4444更容易實施,因此在EIP-4444準備投入生產之前,它們可能可以作為短期權宜之計。
結束語
本文的目標是形成對1) 歷史成長如何相容以及2) 解決這個問題的資料驅動類型如何理解。本文中的大部分數據傳統上難以訪問,因此我們提供這些數據將歷史增長提供問題一些新穎的意見。
歷史成長作為以太坊擴容的瓶頸並沒有受到足夠的重視。即使沒有增加Gas限制,以太坊目前保存歷史的時間也將剩下許多節點在幾年內升級其硬體。幸運的是,這並不是一件困難的事EIP-4444中已經有明確的解決方案。我們認為應該加強EIP的實施,以便為未來Gas的增加騰出空間。
如果您對以太坊擴容研究有興趣,請聯繫[email protected]和[email protected]。我們很想聽聽您如何看待這個問題以及如何進行潛在的合作。論文使用的數據和程式碼可以在Github 上找到。
致謝
感謝Thomas Thiery、Tim Beiko、Toni Wahrstaetter、Oliver Nordbjerg 和Roman Krasiuk 的審閱與回饋。感謝Achal Srinivasan 提供的圖1 和圖7 圖形。
資訊來源:0x資訊編譯自網際網路。版權歸作者Storm Slivkoff,Georgios Konstantopoulos所有,未經許可,不得轉載