來源: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 改編。