概述
2021年 7 月 21 日,OpenEthereum 团队注意到他们在 Ropsten 上的节点卡在了区块 10679538 处。人们原以为这是 OpenEthereum 的问题。其实,问题真正出在 go-ethereum 实现检查 1559 交易发送方余额的方式上。一个无效交易(发送方余额只够支付交易实际使用的 gas,而非交易指定的 maxFeePerGas 总额)被打包进了区块。由于 Ropsten 矿工运行的都是 go-ethereum,这个区块随后又被其它 go-ethereum 矿工接受,但是被网络中的其它一些客户端拒绝了。具体来说,OpenEthereum 和 Besu 拒绝了这个交易/区块,Nethermind、go-ethereum 和 Erigon(这些客户端实现的部分代码来自 go-ethereum 代码)接受了它。问题的根源已经找到,相关客户端已经在新的版本中修复了该问题:
数据:以太坊伦敦升级后销毁超7万枚ETH,价值超2.2亿美元:8 月 21 日,据 ultrasound.money 数据,以太坊伦敦升级后共销毁 70043 枚 ETH,价值超 2.2 亿美元。其中,ETH 销毁数量前三位的平台分别为 OpenSea(8483 枚)、Uniswap V2(4966 枚)、Axie Infinity(3745 枚)。[2021/8/21 22:27:57]
go-ethereum: v1.10.6, fix PR;
Erigon: v2021.07.04-alpha, fix PR;
Nethermind: v1.10.79, fix PR。
问题区块的信息
网络:Ropsten
区块编号:10679538
哈希值:0x1252a34c4f2b061adc609e909d958c02e1ac39043e2e60c0ec47e565e3f625f1
BitMEX:以太坊伦敦升级期间ETH波动性可能会增加,将保留短时间内更新受影响指数的酌情权:BitMEX针对以太坊网络即将进行的伦敦硬分叉升级发表公告称,ETH相关的合约和指数将在伦敦升级期间开放交易,但是如果ETH指数成分的交易所中有任何交易所计划暂停ETH的现货交易市场,则BitMEX将在该交易市场暂停期间从指数中移除该成分。
同时BitMEX表示,在这段时间内,市场波动性可能会增加,交易者应管理自身风险,而且BitMEX保留在短时间内调整和更新受影响指数的酌情权,以保护市场的稳定性和完整性。[2021/8/4 1:33:56]
OpenEthereum debug 日志
eth_getBlock 输出 (go-ethereum)
(注:所有时间已转换成北京时间)。
以太坊客户端Erigon发布v2021.07.03版本,配置中添加伦敦升级区块:官方消息,以太坊客户端Erigon发布v2021.07.03版本,变更包括在配置中添加伦敦升级区块、EIP-1559支持eth_call和trace_*API、eth_syncing阶段性展示进度等。[2021/7/15 0:54:03]
2021 年 7月 21日
18 : 39:Ropsten 测试网上挖出区块 10679537。
21 : 53:OpenEthereum 开发者在 Ethereum R&D discord 的 #1559-dev 频道发帖称他们的节点卡在了区块 10679538 处。
21 : 58:/img/202281274105/1.jpg">
另外还要注意的是,在前几行代码(第 207 行)中,sender.balance 被修改成了减去交易量之后的部分(sender.balance -= transaction.amount)。这个参数引发了混乱,因为一些客户端团队在检查第 217 行定义的断言时使用的是全部 sender.balance(即,没有减去transactiion.amount 的发送者地址余额),而非更新后的值。
/img/202281274105/2.jpg">
因此,你需要执行 geth --whitelist 123123=0x2342fafa9af9af9af9af9af9。
所谓的白名单,就是一个 geth 节点在与另一个对等节点连接时会向对方请求区块 123123 的数据。如果该 geth 节点收到的区块头中的哈希与白名单中的不符,就会与之断开连接。这就意味着,节点将排斥错误的链上的对等节点,只与较短(但是正确的)链上的对等节点连接。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。