newsence

執行層與共識層監控儀表板:Nimbus 案例研究

ethresear.ch·大約 1 個月前

本文探討 StereumLabs 開發的全面性 Grafana 儀表板如何透過跨客戶端的比較分析,有效識別出 Nimbus 共識客戶端的程式錯誤以及指標支援的退化問題。

StereumLabs 與 MigaLabs 合作,主導開發了一套全面的 Grafana 儀表板,旨在監控多個共識層(Consensus)與執行層(Execution)客戶端的指標。目前有超過 70 種客戶端組合(包括超級節點)在持續運行與觀測中,為真實網路環境下的客戶端行為提供了廣泛且具代表性的視角。

理解客戶端指標的含義及其對運行的影響通常具有挑戰性,特別是在區分正常波動與實際故障時。在本文中,我們將探討一個影響 Nimbus 共識客戶端的錯誤如何透過這些儀表板被清晰且快速地識別,藉此說明它們在現實監控場景中的實用價值。

此分析的目的並非針對特定客戶端,而是展示有效的可觀測性工具如何讓異常行為立即顯現。該狀況在幾小時內便恢復正常,且事件的整體影響有限。同時,這也提醒了在以太坊生態系統中保持客戶端多樣性的重要性。

次要發現——在隨後的 Nimbus 版本中無意間丟失的指標支持——是在與 Nimbus 團隊的協作審查會議中浮出水面的,這進一步凸顯了持續可觀測性和跨團隊溝通的價值。

此外,本文還介紹了 Nimbus 普通節點與超級節點之間的對比分析,利用儀表板的並排對比功能來展示 PeerDAS 規範所引入的運行差異。


Nimbus 共識客戶端中斷 — 2026 年 2 月 8 日

2026 年 2 月 8 日,UTC 時間 01:00 至 02:00 之間,Nimbus 共識客戶端遇到了一個嚴重的錯誤,導致其在以太坊主網上的參與暫時中斷。

根據官方的事後分析:

「Nimbus 客戶端錯誤地將一個主網區塊判定為無效並導致分叉。Nimbus 實作中的 Merkle 樹雜湊快取損壞導致了此問題,起因是主網上出現的某些 SSZ 列表對象的大小變化繞過了正確的快取失效機制……由於無法在不違反協議的情況下處理被誤判為無效區塊的後續區塊,Nimbus 在重啟節點之前無法繼續跟隨主網的規範鏈(canonical chain)。」

節點層級的可觀測影響

儘管網路參與在幾小時後恢復正常,但對於輸出 Nimbus 指標的監控系統來說,運行影響是立即顯現的。雖然僅憑指標視覺化不足以確定根本原因,但它能快速且明確地指示異常行為正在發生——即使對於缺乏深厚協議專業知識的營運者也是如此。

最顯著的指標之一是「落後槽位(Slots Behind)」指標。在 UTC 約 02:00 時,本範例中受影響的節點(Nimbus/Nethermind)被觀察到落後時鐘槽位 171 個槽位,清楚地表明已失去與規範鏈的同步。

雖然許多專業質押者運行自己的儀表板,但他們無法看到自己未運行的部分。換句話說,他們只能看到自己運行的節點數據,而無法與未運行的其他客戶端進行比較。這是一個關鍵差異

由於 StereumLabs 運行大量的節點組合,因此可以非常容易地快速驗證其他節點是否也受到影響以及哪些節點受到影響。事實上,總覽同步狀態表儀表板立即揭示了一個清晰的模式:所有運行 Nimbus 共識客戶端的實例都落後於時鐘槽位,而其他「共識-執行」客戶端組合則繼續正常運行。這種並排對比使異常情況一目了然且易於歸因,無需深入檢查日誌或手動進行跨節點關聯。

這一觀察結果進一步得到了其他共識客戶端專用儀表板的證實,這些客戶端的同步、區塊處理和網路指標在同一時間段內保持穩定。

與此同時,區塊處理實際上停止了。新處理區塊的缺失直接反映在區塊導入指標中,從運行角度來看,問題顯而易見。

網路與節點連接性退化

不穩定性也表現在網路層。當客戶端偏離規範鏈時,它會反覆嘗試建立有效的節點連接。這種行為可以透過以下指標清楚地觀察到:

https://ethresear.ch/t/el-cl-monitoring-dashboards-a-study-with-nimbus/24282