时间:2023-04-22|浏览:183
建议质押者和节点运行者阅读本文以及提款 FAQ。
针对 Shapella 漏洞的奖励已翻倍,注册以接收这些升级通知的电子邮件,滚动到页面底部以订阅。
在顺利完成了 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 只是一个操作码弃用警告。客户端团队预计 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、Lodestar v1.7.0、Nimbus v23.3.2、Prysm v4.0.0、Teku v23.3.1。
注意:运行一个验证者时,共识层信标节点和验证者客户端都必须更新至最新版本。
执行层主网升级版本
Besu v23.1.2、Erigon v2.42.0、go-ethereum (geth) v1.11.5、Nethermind v1.17.3。
注意:在 Erigon v2.41.0 中发现一个问题。此版本不适合 Shapella 升级。Erigon 用户应该升级到 v2.42.0。
FAQ
作为一个以太坊用户或者 ETH 持有者,我需要做什么?
简单来说,没有。如果你使用交易所、数字钱包或硬件钱包,你不需要做任何事情,除非你的交易所或钱包提供商通知你采取额外的措施。如果你运行自己的以太坊节点,请参阅下文。
作为一个非质押的节点运营商,我需要做什么?
为了与主网的 Shapella 升级兼容,请将你的节点更新到上文表中所列的以太坊客户端版本。
作为一个质押者,我需要做什么?
为了与主网的 Shapella 升级兼容,请将你的节点更新到上文表中所