摘要:
Medalla 順利推進客戶端多樣化勢在必行Eth 1 + ETH 2(Phase 1.5)的端到端DemoPhase 0 上線臨近,測試和審計工作持續進行(經歷過一些波折後)Medalla 表現良好
越是風平浪靜的測試網越令人擔憂。
如果過去幾週來,你有在關注Medalla 測試網的話,一定知道8 月15 日(北京時間)發生了一場持續5 天的全網絡故障。事後,Prysm 發布了一篇文章,詳細闡述了技術細節和時間線;Ben 也在最近發布的博客文章([1]、[2])中進行了更深層次的分析。故障發生後的那個週末,客戶端團隊加班加點部署了同步和修補程序,幫助支離破碎的網絡恢復原狀。
雖然這次故障給測試網帶來了巨大的壓力,但是這對所有客戶端來說,都是一次應對極端情況的歷練。說句真心話,經過這次事件後,客戶端軟件的健壯性強多了。我晚上睡覺都安心一點了。
事後,Medalla 測試網一直都很順利:現在已經有3.9 萬名活躍的驗證者,還有1.2 萬名准驗證者在排隊(要等待12 天)!
客戶端多樣化勢在必行
雖然現在有許多(卓越的、可行的、健壯的、實用的……)Eth2 客戶端在積極開發中,但是目前整個網絡中還是Prysm 一家獨大。
這是有歷史原因的:一年多來,Prysm 始終將早期測試網、社區參與和可用性放在第一位。向Prysmatic 團隊致敬。同時,社區建設可謂困難重重,但是對我們行業來說至關重要。
儘管如此,由於Medalla 測試網上絕大部分驗證者節點都使用Prysm 客戶端,這次故障帶來了成倍的破壞。隨著主網上線臨近,作為社區的一份子,我們必須尋求解決方案。作為一個已經在Medalla 上嘗試過所有ETH 2 客戶端的人,我可以以我的親身體驗告訴你,大多數客戶端的功能都很強大,而且有詳細的文檔說明。所有客戶端團隊都活躍在discord 和github 上,積極幫助用戶解決任何問題。
多客戶端更能保護驗證者
客戶端多樣性不僅能讓Eth2 共識變得更強健,還能在極端情況下保護驗證者:鑑於Eth2 的反相關激勵機制,同一時間犯錯的驗證者越多,每個驗證者受到的懲罰就越重。
假設A 客戶端出現故障,全網60% 的驗證者節點掉線了好幾天,但是運行B 客戶端和C 客戶端的驗證者節點穩定在線。雖然運行B 和C 客戶端的驗證者會繼續出塊,但是由於離線節點超過全網33% ,網絡將無法敲定區塊。如果你運行的是A 客戶端,只要網絡一直無法敲定區塊,每過一個epoch(時段),你所受到的懲罰就會增加,這就是所謂的“inactivity leak(怠工懲罰)”。然而,如果你運行的是B 或C 客戶端,由於你一直處於現在狀態,就能免於受罰。 (注:怠工懲罰比普通的離線懲罰高得多。)
假設小眾的B 客戶端(全網佔比20%)出現嚴重錯誤,導致客戶端崩潰。在這種情況下,網絡依然能敲定區塊(因為全網參與率有80% )。在這種情況下,離線驗證者只會受到普通的離線懲罰,而非怠工懲罰。因此,相比第一種情況,那些運行B 客戶端的驗證者的損失要小得多。
正在讓切換客戶端變得更容易
除了社區成員在嘗試新客戶端之外,客戶端團隊也在努力讓客戶端切換變得安全簡單。新增了一些跨客戶端標准後,不久的將來,你就能從一個客戶端快速切換到另一個客戶端上,也沒有任何意外罰沒的風險。
跨客戶端標準可以防止客戶端中心化,對Eth 2 網絡的健壯性至關重要。如果某個客戶端出現故障,客戶端切換能讓社區更加快速地解決問題,以防Medalla 事故重現。
Eth 1 + ETH 2 的端到端Demo
Eth2 的主要目標之一是實現Phase 1.5(即,“合併”)。屆時,現有的Eth 1 的共識將整合到Eth 2 中。也就是說,以太坊會從PoW 共識機製完全過渡到PoS 共識機制。
從設計上來說,現有用戶和客戶端會盡可能無縫過渡至Phase 1.5 。狀態、交易和執行依然由ETh1 客戶端來承擔。由於用戶層基本保持不變,以太坊能夠利用現有工具和API 來支持交易和dApp,就像現在這樣。
為此,TXRX 團隊的Mikhail 和geth 團隊的Guillaume 最近發布了多分片信標鏈的端到端Demo(Eth1 區塊鏈會變成其中一個分片)。在已發布的Demo 演示視頻中,Mikhail 使用未修改的metamask 錢包向Eth1 分片發送了一些交易。
點擊此處,即可體驗Eth1 + Eth2 Demo 的dockerized 版本。如果你想更深入了解,可以從源代碼開始構建並運行。
繼續進行測試和審計,朝Phase 0 主網邁進
測試和審計照常進行。
客戶端團隊正在努力開發,審計人員也在對代碼進行全面審計。大家都在為主網上線緊鑼密鼓地籌備中?。
原文鏈接:
https://blog.ethereum.org/2020/09/01/eth2-quick-update-no-15/
作者: Danny Ryan翻譯: 閔敏