以太坊主网 “伦敦” 升级公告

Lilying 2021-08-01 18:35:47

  斑马投诉报道:

  编者注:感谢ETH中文站翻译了以太坊基金会发出的“伦敦”升级公告以及Geth客户端团队的版本更新声明。需要补充的是:

  1.原公告发布于7月15日,而7月21日Ropsten测试网上出现了共识事故,因此,本文内建议的客户端版本已经过时,运行节点的朋友应该获得自己所用客户端的最新版本。

  2.以13.5的平均出块时间计算,“伦敦”升级将在北京时间8月5日晚上7时许激活。

  3.以太坊区块的Gas Limit是出块节点在本地设置参数博弈出来的,设置低于/高于当前大小的值即表示支持减小/增大区块,并会在自己所出的区块中反映出来。在EIP-1559通过之后,Base Fee的调整将总是以50%的区块利用率为目标,因此,如果你作为出块节点,你认为合适的单块Gas消耗量是100,就应该在本地把gas limit设为200,以此类推。公告和Geth团队建议的数值仅有说明意义。不论节点具体设置了什么值,都不会因此进入另一个分叉。

  译者按:除了伦敦主网升级的公告外,ECN还翻译了Geth客户端v1.10.5里关于此次伦敦升级,不同相关行动者需要注意的代码变更。

  伦敦升级的测试网成功部署后,现在已经准备好在以太坊主网上激活了。它将在区块高度12 965 000激活,时间大概在2021年8月3-5日。

  客户端版本 

  为了与伦敦升级兼容,节点运营者将需要升级其运行的客户端版本。下面列出的每个客户端版本支持以太坊主网的伦敦升级。注意:下列版本不同于《伦敦测试网公告》中所列出的客户端版本,测试网的客户端版本并不支持主网伦敦升级的客户端版本。

  注意:OpenEthereum客户端将伦敦升级后弃用。OE团队正在与Erigon合作,为用户提供一个平稳的过渡路径。

  矿工请注意:伦敦升级将改变在网络如何处理gas limit目标的方式。请参阅下文中“作为一名矿工,我需要做什么?”的部分了解详情。

  伦敦EIPs 

  下列EIPs是伦敦升级的内容:

  EIP-1559:ETH 1.0费用市场变更

  EIP-3198:BASEFEE操作码

  EIP-3529:减少gas返还

  EIP-3541:拒绝以0xEF字节开头的新地址

  EIP-3554:难度炸弹延迟至2021年12月

  Ethereum Cat Herders发布了一篇博客文章,讨论了这些EIPs的细节。

  值得注意的是,虽然EIP-1559可以与当前的交易格式向后兼容,但是它引入了对区块头的更改,添加了新的交易类型,提供了新的JSON RPC端点,并在几个方面改变了客户端的行为(挖矿、交易池等等)。强烈建议各个项目熟悉这个EIP。

  寻bug赏金

  为了让更多人关注即将到来的伦敦升级,所有与伦敦升级相关的bug的奖金都会翻倍,直到升级开始。可以领取双倍赏金的例子有以下这些客户端之间的跨客户端共识问题:Geth、Besu、Nethermind、OpenEthereum和Erigon。有关bug赏金范围和限制完整详细信息,请参阅:https://bounty.ethereum.org/#rules。

  FAQ

  Q:作为以太坊的用户或ETH持有者,我有什么可以做的吗?

  如果你使用交易所(比如Coinbase、Kraken或Binance)、网页钱包服务(比如Metamask、MyCrypto、或MyEtherWallet),移动端的钱包服务(比如Coinbase Wallet、Status.im、或Trust Wallet)、或硬件钱包(比如Ledger,Trezor,or KeepKey),你不需做任何事情,除非你的交易所或钱包服务商通知你采取额外步骤。如果你运行自己的以太坊节点,你需要升级你的节点。请看下文“作为一个非挖矿节点,我需要做什么?”部分。

  Q:作为一个非挖矿节点,我需要做什么?

  下载以太坊客户端的最新版本,已在上文表格中列出。

  Q:作为一个矿工,我应该做什么?

  首先,下载你的以太坊客户端最新版本。然后,你需要手动把gas limit目标设为现在的两倍。这是因为一旦伦敦升级部署了,区块大小会变成现在的两倍,而EIP-1559会保持区块容量大约50%满。这可以在所有提供与主网兼容挖矿的客户端上通过JSON-RPC来实现,无须重启你的节点。

  例如,如果伦敦升级以前你把区块大小设为15m gas,你将需要把gas limit设为30m,以维持平均每个区块的交易数量一致。如果你不在区块12 965 000修改gas limit目标,你便会开始在网络里降低你的区块大小。下表提供了每个客户端的特定API,你需要用它们来更新你的gas limit目标。

  注意:Nethermind、Erigon和EthereumJS目前还不支持在以太坊主网上挖矿。

  Q:如果我是一个矿工或节点运行者且不参与升级,会怎么样?

  如果你正在使用以太坊客户端但不升级到(上文所列的)最新版本,升级后你的客户端同步的是分叉前的区块链数据。你会停滞在一条遵循旧规则的、不兼容的链上,且将无法发送ETH或在升级后的以太坊网络上操作。

  Q:在以太坊上网络升级意味着什么?

  网络升级意味着以太坊底层协议的一次变更,创建新规则来完善系统。区块链系统的去中心化本质使得网络升级变得更难。区块链网络升级的顺利进行需要与社区以及各个以太坊客户端开发者进行协作和沟通,以使过渡顺利进行。

  Q:网络升级过程会发生什么?

  当社区就哪些变更需要被纳入到升级上达成共识时,这些对协议的变更会被写入各个以太坊客户端,例如geth、Erigon、Besu和Nethermind。协议变更会在一个特定的区块高度上启动。任何没有升级到新规则的节点将在旧链上被遗弃,而旧链继续保有之前的规则。

  Q:为什么是“伦敦”?

  在伊斯坦布尔升级后,我们定下来的网络升级名字都用完了。有人建议我们用举办Devcon的城市命名,于是我们就用了。柏林是举办Devcon 0的城市,下一次升级的名字是举办Devcon 1的城市——伦敦。

  致谢

  特别感谢参与到伦敦升级的研究、计划、实现、测试、修复、再测试、部署、压力测试,以及以其他任何形式帮助伦敦部署的每个人???

  还有提供封面图的Benjamin Davies!

  免责声明

  这是一个新兴且不断发展的高科技领域。如果读者们选择实施本文中的建议并继续参与,请确保您已充分了解您的选择会带来什么影响。读者们应该了解所涉及的风险,包括但不限于出现意外bug等风险,请读者独自承担风险。这篇文章及其建议不是任何形式的销售,也不提供任何形式的保证,包括但不限于与以太坊网络或此处提及的以太坊客户端有关的任何东西。

  Geth Exodus Cluster(v1.10.5)节选

  Geth客户端关于伦敦升级变更的说明:

  此版本包含伦敦硬分叉的主网启动区块高度。(#23176)

  如之前所有的分叉相关版本,我们添加了一个重载标记,用来设置启动区块。这个标志是暂时的,在主网分叉区块成功启动后会被删除。(#22822,#22972)

  为了配合EIP-1559所创造的新费用市场,Geth客户端的交易池已经重新设计了。我们的新交易池设计旨在满足用户的需求——及时打包交易——根据他们的有效挖矿奖励实现高效的交易排序。你可以在交易池设计文档里了解更多新交易池的工作逻辑。(#22898)

  对于矿工:Geth提供的交易选择算法专门挑选具有最高有效奖励的交易。如果用--miner.gasprice命令行标志设置了一个最低价格,那么提供低于最低价格的矿工小费的交易将不会被打包到区块里。(#22896,#22995)

  EIP-1559还会改变gas limit的投票系统。在伦敦分叉后,可用于交易的区块gas量是基于需求来调整的。区块容量被称为gas target,EIP-1559将这个target定义为gas limit的一半。

  为了确保可用于交易的gas与分叉前一样,分叉区块的gas limit是加倍的。如果你正在使用--miner.gaslimit标记来参与投票,你需要将这个标记的值变成原来的两倍,以保持投票的值与之前的相同。你可以使用miner_setGasLimit RPC API来升级target而不需要离线,但要注意,这不会在重启后继续有效。之前的--miner.gastarget标记在伦敦升级后会被弃用,它的值会被忽略。

  举例:如果你正在使用--miner.gaslimit对gas limit为20M投票,而实际的区块gas limit是20M。当伦敦升级启动了,区块gas limit会调整到40M,但如果你继续使用同一个--miner.gaslimit设置的话,你还将对20M投票。因此在分叉后的某个时间点,你需要将你的--miner.gaslimit的值设为原来的两倍,以确保gas limit保持在40M gas。

  对于钱包提供商:EIP-1559的交易价格默认计算算法(eth_maxPriorityFeePerGas)还是遵循旧机制,把max priority fee设为在网络上支付的effective price减去当前的base fee;把max fee设为priority fee+2x base fee。这确保了在伦敦过渡期后,如果用户没有明确反对意见,按每gas支付的总价格保持不变。

  另外,Geth发布了一个新的eth_feeHistory(blocks,head,percentiles)API终端,用户可以用它来询问关于支付给矿工小费和交易烧毁费用数量的最近数据信息。建议钱包使用这个终端给用户多个费用选项(#23033)。

  JSON-RPC用户注意:分叉启动后,eth_sendTransaction和eth_fillTransaction会默认创建EIP-1559式交易。

  Go/Java/ObjC合约绑定的用户注意:分叉启动后,accounts/abi/bind会自动创建1559式交易。要在Go语言写的应用里用EIP-1559,请记得在你应用的go.mod文件中把go-ethereum模块依赖升级到v1.10.4。(#23038)

  ethclient用户注意:如果你用ethclient包发送交易并想用EIP-1559带来的的新费用模式,你必须修改你的代码,用types.NewTx(&types.DynamicFeeTx{...})来创建交易。为了了解分叉是否已经启动和新交易类型是否可用,只需检查最新区块头的BaseFee字段是否非零。

  以上是斑马投诉的详细报道,如需了解更多看着评论区下方留言。

http://www.ban8.com.cn/

声明:本文内容不代表斑马投诉网站观点,内容仅供参考,不构成投资建议。投资有风险,选择需谨慎! 如涉及内容、版权等问题,请联系我们,我们会在第一时间作出调整!

相关文章