來源:blog.ethereum.org
作者:Protocol Support Team
翻譯:Franci, ECN
- 提款來了! Shapella 以太坊主網升級將在epoch 194048 處激活,定在北京時間2023 年4 月13 日06:27:35
- 建議質押者和節點運行者閱讀本文以及提款FAQ
- 從現在起到4 月5 日,針對Shapella 漏洞的獎勵已翻倍,指路:Ethereum Bug Bounty
- 讀者現在可以註冊以接收這些升級通知的電子郵件了。滾動到頁面底部以訂閱📩
在順利完成了Goerli 測試網Shapella 升級之後,客戶端團隊計劃在主網激活Shapella 升級。在第157 次All Core Devs 執行層會議期間,開發者們很快就4 月12 日這個時間達成共識。
此次升級緊隨The Merge,使得驗證者可以把他們的押金從信標鏈提取回執行層。它還給執行層和共識層引入新功能,請看下文。
升級規範
Shapella 升級結合了對執行層(上海昇級) 和共識層(Capella) 的修改。用於執行層和共識層通信的Engine API 也在Shapella 升級裡有修改。
上海昇級
在上海昇級里納入的執行層的修改可以在這裡找到。作為參考,內容如下:
- EIP-3651: Warm COINBASE (降低訪問COINBASE 地址的gas 開銷)
- EIP-3855: PUSH0 instruction (新增操作碼`PUSH0)
- EIP-3860: Limit and meter initcode (對initcode 的大小設限並引入gas 計量)
- EIP-4895: Beacon chain push withdrawals as operations (信標鏈推式提款作為系統操作)
- EIP-6049: Deprecate SELFDESTRUCT (停用SELFDESTRUCT)
請注意,EIP-6049 只是一個操作碼棄用警告。客戶端團隊預計SELFDESTRUCT 語義將在未來的網絡升級中進行修改,但該操作碼的行為在上海昇級中保持不變。
此外,上海昇級的全套修改現在可以在以太坊執行層規範(EELS) 中查看,它是用於執行層的新Python 參考實現。
Capella升級
Capella 升級對共識層的修改詳情在capella 目錄的v1.3.0-rc.3 規範裡。 README 清單中列出了完整的更改集。從高層次來講,這次升級引入了:
- 驗證者的完整和部分提款
- BLSToExecutionChange消息,它允許使用BLS_WITHDRAWAL_PREFIX的驗證者把提款更新到ETH1_ADDRESS_WITHDRAWAL_PREFIX,這是提款的前提。
- 分開的狀態和區塊歷史數據累加器,取代原來的單個的歷史數據根
我們鼓勵質押者都去閱讀《提款FAQ》,以了解更多關於驗證者應該如何準備Capella 的資訊。
Engine API
對Engine API 的修改可以在execution-apis repository 的shanghai.md 文檔裡找到。簡而言之,引入了WithdrawalV1 結構,並添加了多個相關結構和方法。自Merge 以來對執行層API 的更改已經打包在倉庫的最新版本中。
客戶端版本
以下的客戶端版本支持在以太坊主網的Shanghai & Capella 升級。此前的Shapella 升級客戶端版本僅支持測試網的部署,與主網升級並不兼容。
當在選擇運行哪個客戶端時,驗證者應該特別注意在執行層和共識層運行多數客戶端的風險。關於這些風險以及他們的後果可以閱讀這篇文章了解更多。而如果想預估當前執行層和共識層客戶端的分佈,以及了解如何從一個客戶端切換至另一個客戶端,則可以閱讀這篇文章。
共識層主網升級版本
客戶端版本鏈接Lighthouse v4.0.1 https://github.com/sigp/lighthouse/releases/tag/v4.0.1 Lodestar v1.7.0 https://github.com/ChainSafe/lodestar/releases/tag/v1.7.0 Nimbus v23.3.2 https://github.com/status-im/nimbus-eth2/releases/tag/v23.3.2 Prysm v4.0.0 https://github.com/prysmaticlabs/prysm/releases/tag/v4.0.0 Teku v23.3.1 https://github.com/ConsenSys/teku/releases/tag/23.3.1
注意:運行一個驗證者時,共識層信標節點和驗證者客戶端都必須更新至最新版本。
執行層主網升級版本
客戶端版本鏈接Besu v23.1.2 https://github.com/hyperledger/besu/releases/tag/23.1.2 Erigon v2.42.0 https://github.com/ledgerwatch/erigon/releases/tag/v2.42.0 go-ethereum (geth) v1.11.5 https://github.com/ethereum/go-ethereum/releases/tag/v1.11.5 Nethermind v1.17.3 https://github.com/NethermindEth/nethermind/releases/tag/1.17.3
注意:在Erigon v2.41.0 中發現一個問題。此版本不適合Shapella 升級。 Erigon 用戶應該升級到v2.42.0。
FAQ
作為一個以太坊用戶或者ETH 持有者,我需要做什麼?
簡單來說,沒有。
如果你使用交易所、數字錢包或硬件錢包,你不需要做任何事情,除非你的交易所或錢包提供商通知你採取額外的措施。
如果你運行自己的以太坊節點,請參閱下文。
作為一個非質押的節點運營商,我需要做什麼?
為了與主網的Shapella 升級兼容,請將你的節點更新到上文表中所列的以太坊客戶端版本。
作為一個質押者,我需要做什麼?
為了與主網的Shapella 升級兼容,請將你的節點更新到上文表中所列的以太坊客戶端版本。
我們建議你閱讀《提款FAQ》。
如果我是一個驗證者或節點運行者,且不參加這次升級,會怎麼樣?
如果你使用的以太坊客戶端沒有更新到上面列出的最新版本,一旦升級發生,你的客戶端將同步到分叉前的區塊鏈上。
你將被困在一個不兼容的鏈上,遵循舊的規則,無法發送ETH 或在Shapella 升級後的以太坊網絡上操作。
作為一個應用程序或工具開發者,我應該怎麼做?
Shapella 不會為智能合約引入不兼容的修改。應用程序和工具開發人員應審閱升級修改,以確保任何問題都解決了,或了解如何使用新引入的功能。
也就是說,應用程序開發者應該意識到在上海昇級中,SELFDESTRUCT 操作碼已被棄用。雖然它的語義沒有在這次網絡升級中進行更改,但在後續的升級中可能會更改。更多信息請參考EIP-6049。
為什麼叫”Shapella”?
執行層的升級按照Devcon 舉辦城市來起名,而共識層的升級則根據恆星名字來取。 “Shapella” 是上海(Devcon 2 的舉辦地) 和Capella (Auriga 北方星座中最亮的星) 的結合。
哪裡可以觀看Shapella 升級直播?
EthStaker 和Ethereum Cat Herders 會組織Shapella 升級觀看派對,在升級差不多開始前直播。你可以在這裡收聽。
感謝所有為Shapella 升級做出貢獻的人,感謝所有新舊質押者,感謝他們幫助保護了仍處於早期階段的PoS 以太坊!
封面圖片由Yiran Ding 原創,由Tomo Saito 改編。