熱門話題
#
Bonk 生態迷因幣展現強韌勢頭
#
有消息稱 Pump.fun 計劃 40 億估值發幣,引發市場猜測
#
Solana 新代幣發射平臺 Boop.Fun 風頭正勁
本周對 MegaETH 測試網的升級修復了一個難以捉摸的性能錯誤,該錯誤導致 miniblock 時間在 sequencer 重啟之間不斷增加。故事是這樣的。這是一個關於我們的理念的故事 - 測量,然後構建。
如果最近訪問了 MegaETH 的性能儀錶板,可能會發現在 6 月 3 日之前的一周內,迷你區塊時間一直在增加。實際上,自公共測試網啟動以來,這種趨勢會在每次 sequencer 重啟后立即開始。以前,sequencer 的頻繁升級意味著在上升趨勢重置之前, miniblock 時間不會增加任何可感知的量。然而,最近的升級不需要重啟定序器,並且這種趨勢持續了數周。6 月 3 日,miniblock 時間幾乎達到 100 毫秒。由於熱備份,未來 Sequencer 重啟的可能性越來越小,現在是時候一勞永逸地消除這個錯誤了。
由於我們經常為測試網收集大量遙測數據,因此團隊很快就開始挖掘。第一個發現是 miniblock 時間的增加隨著時間的推移而加速——不僅 miniblock 時間增加,而且增加得越來越快。通常,這種癥狀意味著隨著構建更多的miniblock ,構建每個miniblock所涉及的工作會超線性增加。然而,經過一番測量和計算后,我們否定了這個假設。我們將 miniblock 管道構建為幾乎與 EVM 完全異步,以實現任意低的 miniblock 時間。這意味著無論構建一個 miniblock 需要多少時間,EVM 都將在整個時間內執行交易。因此,較長的miniblock構建時間將導致每個miniblock的交易數量增加,但我們沒有觀察到這一點。因此,問題不在於構建 miniblocks。對規範的仔細檢查證實了這一結論——迷你塊構建過程中的任何部分都不具有超線性複雜性。
該團隊擴大了搜索範圍,真正的罪魁禍首很快就浮出水面。提交 EVM 區塊所需的時間一直在增加;此外,提交時間與自上次重啟以來產生的 EVM 區塊數量完全線性。在提交 EVM 區塊時,區塊高度等 EVM 環境會更新,因此 EVM 必須暫停並且無法執行交易,這意味著也沒有 miniblock。EVM 模組之間有固定的 1 秒間隔。在 1 秒預算內,線性增加的提交時間導致運行交易的持續時間線性減少,這反過來又導致產生的迷你區塊數量線性減少。如果我們取它的倒數,我們會得到平均 miniblock 時間,它在時間上成反比。這正是我們在性能儀錶板上看到的函數形狀。數學檢查了出來。
在這一點上,我們確切地知道要尋找什麼:在處理提交 EVM 塊的代碼的特定部分中,其工作負載隨時間線性增加的某個過程。其餘的工作很簡單。該團隊本周推動了升級,迷你塊時間並沒有悄悄地出現。
那麼,我們學到了什麼?我認為它再次展示了當工程以仔細的測量和第一原則為指導時的力量。該團隊正在以相同的理念進行其他升級。敬請期待!


14.39K
熱門
排行
收藏