查看原文
其他

Sepolia 合并公告

以太坊基金会博客 ETH中文 2022-07-01

来源 | Ethereum Foundation Blog

作者 | Protocol Support Team



  • Sepolia 将是进行合并的三个公共测试网中的第二个

  • 当 Sepolia 测试网 PoW 链的总难度超过 17,000,000,000,000,000 时,网络将过渡到 PoS,预计在接下来几天内发生

  • 合并后,Sepolia 将会有一个需要许可的验证者集,就像现有的 PoA 测试网一样。而 Goerli/Prater 测试网将在晚些时候合并,并且会开放验证者集,允许质押者测试 PoW -> PoS 过渡。


背景


经过多年的努力以将 PoS 引入以太坊,我们现在已经进入了最后的测试阶段:测试网的部署!


随着 Ropesten 已经过渡到 PoS 并且影子分叉也在定期进行,Sepolia 现在也已经为合并做好准备。Sepolia 合并之后,还剩 Goerli/Prater 合并就可以推进主网合并。而其他测试网 (Ropsten、Rinkeby 和 Kiln) 将在合并后逐渐关停,详情请读文章《Ropsten、Rinkeby 和 Kiln 测试网弃用公告》


合并在两个方面与以前的以太坊升级不同。首先,节点运行者需要同时更新他们的共识层 (CL) 和执行层 (EL) 客户端,而不是只更新其中之一。其次,升级分两个阶段激活:首先是在信标链的一个 epoch 高度上 (Bellatrix 升级),然后是在执行层达到总难度值时激活。


Sepolia 已经进行了信标链上的 Bellatrix 升级。我们现在公布第二阶段的细节:达到终结总难度值


升级信息


时间


合并分两步进行。从共识层的网络升级开始,由一个 epoch 高度触发。随后是执行层从 PoW -> PoS 的过渡,由一个特定的“总难度”阈值触发,称为终结总难度 (Terminal Total Difficulty, TTD)。


2022 年 6 月 20 日,在 epoch 100,  Bellatrix 升级为 Sepolia 信标链的合并做准备。这时 CL 客户端开始监视 PoW 链的 TTD 值被触发。


因为 PoW 测试网的哈希率非常不稳定, TTD 值在刚开始会被设置地非常高:100000000000000000000000。按照 Sepolia 目前的哈希率,得花几百年得时间才能达到这个值。


Bellatrix 升级上线后,此次向 PoS 过渡的 TTD 值更新为 17000000000000000。预计在未来几天内达到这个值。达到或超过这个新的 TTD 值之后,过渡过程的执行层部分 (代号为 Paris) 将会启动。再次注意,Sepolia 上的哈希率是出了名的不稳定,所以 "终结总难度" 发生的实际时间可能会有波动。


一旦执行层超过了 TTD 值,下一个区块将完全由信标链验证者产生。一旦信标链敲定了这个区块,我们就可以认为合并已经完成了。假设网络条件正常,达到 TTD 值之后的首个区块产生后约 2 个 epoch 或者大概 13 分钟之后,这个区块就会被敲定。


一个新的 JSON-RPC 区块标签 finalized 返回最新的敲定区块,或者如果不存在这样的合并后区块,就会反馈错误。这个标签可用于应用程序检查合并是否已经完成。同样,智能合约可以查询 DIFFICULTY 操作码 (0x44),合并后改名为 PREVRANDAO,以确定合并是否已经发生。我们建议基础设施提供商除了监测敲定状态之外,还要监测整个网络的稳定性。


客户端版本发布


以下客户端版本支持 Sepolia 测试网的合并。节点运行者必须同时运行执行层和共识层客户端,以便在合并后维持运行。


在选择运行哪个客户端时,验证者应该特别注意在执行层和共识层上运行多数客户端的风险。关于这些风险及其后果的解释可以在这里找到。关于目前执行层和共识层客户端分布的估计以及从一个客户端切换到另一个客户端的指南可以在这里找到。


共识层

⋄ Lighthouse 2.3.2-rc.0

https://github.com/sigp/lighthouse/releases/tag/v2.3.2-rc.0


⋄ Lodestar 0.39.0-rc.2

https://github.com/ChainSafe/lodestar/releases/tag/v0.39.0-rc.2


⋄ Prysm 2.1.3-rc.4

https://github.com/prysmaticlabs/prysm/releases/tag/v2.1.3-rc.4


⋄ Nimbus 22.6.1

https://github.com/status-im/nimbus-eth2/releases/tag/v22.6.1


⋄ Teku 22.6.1

https://github.com/ConsenSys/teku/releases/tag/22.6.1


执行层

⋄ Besu 22.4.3

https://github.com/hyperledger/besu/releases/tag/22.4.3


⋄ Erigon v2022.06.06

https://github.com/ledgerwatch/erigon/releases/tag/v2022.06.06


⋄ go-ethereum (geth) v1.10.20

https://github.com/ethereum/go-ethereum/releases/tag/v1.10.20


⋄ Nethermind 1.13.4

https://github.com/NethermindEth/nethermind/releases/tag/c


Besu 客户端注意事项:为了与 Sepolia 合并兼容,Besu 用户将需要手动覆盖所要求的 TTD 值。为此,用户需要运行最新的 Besu 客户端版本,截至本文发布为 v22.4.3,并按下述步骤操作:


  • 如果使用 TOML 配置文件,添加以下命令行:override-genesis-config=["terminalTotalDifficulty=17000000000000000"]


  • 当使用这个客户端启动节点时,添加这个 flag:-override-genesis-config="terminalTotalDifficulty=17000000000000000"


Erigon 客户端注意事项:为了与 Sepolia 合并兼容,Erigon 用户将需要手动覆盖所要求的 TTD 值。为此,用户需要运行 2022.06.06-alpha 版本,并且当启动节点时添加这个 flag:--override.terminaltotaldifficulty=17000000000000000 should be good for Sepolia.


关于覆盖 TTD 值的更多信息可以阅读文章《Ropsten TTD 公告》


升级规范


对于合并的共识关键改变在两个地方进行了说明:


  • 共识层改变,在共识规范库里的 bellatrix 目录内做了修改


  • 执行层修改,在执行规范库里的 Paris 规范内做了修改


除此之外,另外两个规范涵盖了共识层和执行层客户端如何交互:


  • 引擎 API (在执行层 api 库中进行了说明) 用于共识层和执行层之间的通信


  • Optimistic Sync (在共识规范库的 sync 文件夹中进行了说明) 被共识层用来在执行层客户端同步时导入区块,并从共识层中向执行层提供链头的部分视图。


常见问题解答


作为节点运行者,我应该做什么?


合并后,一个以太坊全节点将结合一个共识层客户端 (运行 PoS 信标链) 和一个执行层客户端 (管理用户状态和运行与交易相关的计算)。它们通过一个已认证的端口进行通信 (使用一套新的 JSON RPC 方法,称为 引擎 API)。执行层客户端和共识层客户端使用一个加密 JWT 来验证对方。节点运行者需要对照他们的客户端文档,了解如何生成和配置这些信息。


换句话说,如果你已经在信标链上运行了一个节点,你现在还需要运行一个执行层客户端。同样地,如果你在当前的 PoW 网络上运行着一个节点,那么你将需要运行一个共识层客户端。为了使它们能够安全地进行通信,必须向每个客户端传递一个 JWT 通证。


值得强调的是,虽然信标链节点和验证者客户端都是共识层客户端的一部分,但是运行一个信标链节点和运行一个验证者客户端是不一样的。验证者必须运行两者,而节点运行者只需运行信标链节点。这篇文章更详细地解释了这两个组件之间的区别:https://docs.ethhub.io/ethereum-roadmap/ethereum-2.0/eth-2.0-client-architecture/


另外,请注意,共识层和执行层都会维护一个独立的对等点集,并公开它自己的 API。Beacon 和 JSON RPC 的 API 都将按预期继续工作。


作为质押者,我应该做什么?


Sepolia 的验证者集是需要许可的,所以除非你已经成为 Sepolia 验证者,否则不需要采取任何行动。


Goerli/Prater 转向 PoS 的相关事宜将在以后公布,且对所有验证者开放。下文是一些准备工作的说明。同样,现在不需要采取任何行动。


如上所述,合并之后,信标链上的验证者除了运行他们的共识层客户端之外,还需要运行一个执行层客户端。我们强烈建议大家在合并前就这样做,但是验证者可以将这些功能外包给第三方提供商。这是有可能的,因为执行层需要的唯一数据就是对存款合约的更新。


合并后,验证者需要确保他们创建和证明的区块中的交易是有效的。为了做到这一点,每一个信标节点必须与一个执行层的客户端配对。请注意,多个验证者仍然可以与一个信标节点和执行层客户端组合配对。虽然这增加了验证者的责任,但它也使得提议区块的验证者有权获得其相关交易的优先费 (目前这笔费用由矿工获取)。


虽然验证者的奖励在信标链上累积,并且要在随后的网络升级才能提出来,但交易费将会继续在执行层支付、销毁以及分配。验证者可以指定任何以太坊地址作为交易费的接收者。


在更新你的共识层客户端之后,请确保在设置验证者客户端时设置了 fee recipient (费用接收方),以确保交易费用能够发送到你所控制的地址中。


如果选择了第三方提供商来质押,由你选择的提供商来指定这些费用的分配方式。


如果你想在合并后的以太坊上测试运行验证者,在 Ropsten staking launchpad 上有操作说明。


作为一个应用和工具开发者,我应该要做些什么?


如之前的博文所述,合并只会对以太坊上部署的合约子集产生非常微弱的影响,应该不会破坏任何合约。此外,大部分用户的应用程序接口 (API) 端点仍将保持稳定 (除非使用 eth_getWork 等工作量证明的特定方法)。


尽管如此,以太坊上的大多数应用程序涉及的远不止链上合约。现在您要确保前端代码、工具、部署管道和其他链下组件能够按预期运行。我们强烈建议开发者在 Ropsten(或 Kiln)上执行一个完整的测试和部署周期,并向这些项目的维护者报告任何工具或依赖项存在的问题。如果不确定在哪里创建一个 issue,请使用此资源库。


此外,你需要注意的是,除了 Sepolia 和 Goerli 之外的所有测试网都会在合并后关停。如果你是 Ropsten、Rinkeby 或者 Kiln 测试网的用户,你应该计划迁移到 Goerli 或者 Sepolia 测试网。更详细的信息请阅读文章《Ropsten、Rinkeby 和 Kiln 测试网弃用公告》


作为以太坊用户或 ETH 持有者,我需要做什么?


不需要。以太坊主网不受此测试网的影响。在主网过渡之前,我们将在此博客中发布后续公告。


作为矿工,我需要做什么?


不需要。如果你在以太坊主网或者 Sepolia 测试网上挖矿,你需要知悉合并后每个网络都将完全在 PoS 共识下运行。届时,在该网络上无法再进行挖矿。


预计在接下来的几天之内 Sepolia 就无法挖矿,今年晚些时候主网也不能挖矿了。


作为验证者,我可以提出我的质押资产吗?


不能。合并是迄今为止以太坊最复杂的升级。为了最大限度减少网络中断的风险,我们采取了最小可行的方法,也就是说在此次升级中,我们将所有与 PoW->PoS 过渡无关的变化先放一边。


从信标链上提款的功能可能会在合并后的第一次升级中引入。共识层和执行层的规范推动中。


我有更多问题,可以去哪里问?


一个合并社区会议定于 UTC 时间 7 月 15 日。客户端开发者和研究员将回答来自节点运行者、质押者、基础设施和工具提供商以及社区成员的问题。


什么时候合并?


截至本文发布,以太坊主网合并的日期尚未确定。任何给出合并日期的相关言论都可能是一个骗局。更新内容将发布在以太坊基金会博客中,请关注!


假设 Sepolia 合并中不会出现问题,一旦客户端测试完成,以太坊的其他执行层测试网 Goerli 将与共识层测试网 Prater 进行合并。一旦 Goerli/Prater 成功合并并且稳定下来了,将为主网信标链上的 Bellatrix 升级选择一个 epoch 高度,并且设定主网合并的终结总难度 (TTD) 值。然后,客户端将发布在主网上支持合并的版本。我们将在此博客以及其他社区平台上宣布相关消息。


以上均以未发现问题作为前提。如果在此过程的任何时间点发现问题,或测试范围被判定不够全面,我们将解决这些问题,然后再继续推进部署进程。


只有到这时,才可能估计合并的确切日期。


也就是说,我们会快马加鞭🔜。



点击“阅读原文”获取文章内部链接!

原文链接:https://blog.ethereum.org/2022/06/30/sepolia-merge-announcement/


ECN的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ETH中文站。若需长期转载,请联系eth@ecn.co进行授权。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存