Ropsten共识问题
概述
2021年7月21日,OpenEthereum团队注意到他们在Ropsten上的节点卡在了区块?10679538?处。人们原以为这是OpenEthereum的问题。其实,问题真正出在go-ethereum实现检查1559交易发送方余额的方式上。一个无效交易被打包进了区块。由于Ropsten矿工运行的都是go-ethereum,这个区块随后又被其它go-ethereum矿工接受,但是被网络中的其它一些客户端拒绝了。具体来说,OpenEthereum和Besu拒绝了这个交易/区块,Nethermind、go-ethereum和Erigon接受了它。问题的根源已经找到,相关客户端已经在新的版本中修复了该问题:
go-ethereum:?v1.10.6,?fixPR;
Erigon:?v2021.07.04-alpha,?fixPR;
以太坊伦敦升级完成后已销毁500枚ETH:8月5日消息,今晚20时33分以太坊伦敦升级完成后,成功引入EIP-1559。据etherchain.org数据显示,截止目前,已经销毁超过500枚ETH。[2021/8/5 1:37:10]
Nethermind:?v1.10.79,?fixPR。
问题区块的信息
网络:Ropsten
区块编号:10679538
哈希值:0x1252a34c4f2b061adc609e909d958c02e1ac39043e2e60c0ec47e565e3f625f1
OpenEthereumdebug日志
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开发者在EthereumR&Ddiscord的#1559-dev频道发帖称他们的节点卡在了区块10679538处。
21:58:@smixx?称他们的在Ropsten节点位于区块10680453。
以太坊测试网Ropsten激活伦敦升级后已销毁约8.44 ETH,价值超1.6万美元:数据显示,以太坊测试网Ropsten激活伦敦升级后已销毁约8.44 ETH,价值超1.6万美元。
此前消息,以太坊测试网Ropsten已于6月24日10点03分在区块高度10499401处激活伦敦升级。本次升级包括了改变以太坊1.0 Gas费用市场的的EIP-1559以及将难度炸弹推迟至 2021年12月1日等更新。[2021/6/24 0:02:57]
22:36:Besu确认他们的节点也拒绝了区块10679538。
22:51:确认挖出区块10679538的矿工是go-ethereum节点。
22:55:确认go-ethereum矿工仍继续在区块10679538上面挖矿。
22:56:确认Nethermind也接受了区块10679538。
以太坊伦敦升级已确定所有纳入的EIP,共包括EIP-1559等5个EIP:以太坊开发者Tim Beiko发文概述以太坊伦敦升级。虽然目前还未确定各网络的升级区块,但已最终确定纳入的所有EIP。根据升级规范,它们是:
EIP-1559:改变ETH 1.0链的费用市场;
EIP-3198:BASEFEE操作码;
EIP-3529:减少退款;
EIP-3541:拒绝以0xEF字节开头的新合约;
EIP-3554:难度炸弹延迟至2021年12月1日。
此前消息,对于以太坊测试网进行伦敦升级的时间,Ropsten定于区块高度10399301(6月9日),Goerli定于区块高度4979794(6月16日),Rinkeby定于区块高度8813188(6月23日),主网仍定于7月14日进行升级,在第一个测试网成功分叉后,再确定主网客户端升级区块。[2021/6/14 23:35:11]
23:08:go-ethereum已确认问题的根本原因。
TimBeiko正式将EIP-1559加入以太坊伦敦升级,暂定今年7月或8月执行:以太坊开发者、EIP-1559贡献者TimBeiko提交一份提案,该提案主张将EIP-1559加入到以太坊伦敦升级中,并暂定于2021年7月或8月执行。TimBeiko认为,该EIP提案没有什么问题,已经准备好通过正常的网络升级测试流程。下一步是让开发人员和其他网络参与者(即矿工)就此提案达成共识。注:EIP-1559是一个对以太坊交易机制进行优化的机制,旨在使以太坊网络上的交易费用更加可预测,解决当前“按需付费”的收费模式问题。其目标是创建一个更有效的收费市场,并简化客户端和应用程序软件的gas费付款流程。此前消息,绝大多数以太坊应用表示支持实施EIP-1559。[2021/2/26 17:54:54]
23:43:go-ethereum开启?pull?request,提供候选修复方案。
23:46:Erigon开启pull?request,提供候选修复方案。
2021年7月22日
00:01:更新后的go-ethereum和Besu矿工在Ropsten上重启。
00:43:EthereumJS确认与go-ethereum、Erigon和Nethermind存在同样的问题。
01:57:Nethermind开启pull?request,提供候选修复方案。
10:22:修复后的版本挖出了区块?10680804。
22:54:go-ethereum发布了修复后版本?v1.10.6。
~23:00:Nethermind发布了修复后版本?v1.10.79。
2021年7月23日
~00:00:Erigon发布了修复后版本?v2021.07.04-alpha。
纠正措施建议
提高规范中断言的清晰度
该提交新增了关于EIP1559类型交易有效性的断言。具体来说,在第217行代码新增了以下断言:
另外还要注意的是,在前几行代码中,sender.balance?被修改成了减去交易量之后的部分。这个参数引发了混乱,因为一些客户端团队在检查第217行定义的断言时使用的是全部?sender.balance,而非更新后的值。
Go-Ethereum恢复
@holiman?关于go-ethereum恢复的说明:
节点同步时跟随错误的链
假设你正在运行?geth,并处于同步中。区块?X?上发生了分叉。你的节点跟随了总难度较高的错误的链。在区块?Z,你停止了节点并将其更新至修复后版本。
问题描述:节点依然在“错误”的链上。
解决方案:执行?debug.setHead{X-1)?回到分叉发生之前。这会将节点倒回区块?X?之前的某个状态,不一定是区块?X-1?的状态,因为?geth?不一定有区块?X-1?的完整状态,但是会有其它某个区块的完整状态。通常情况下,geth大约每隔1万个区块和/或宕机时会将状态刷到磁盘。如果geth在?gcmode=archive?下运行,就会将每个区块都刷到磁盘。
当错误的链总难度较高时进行同步
假设你正在同步一个?geth?节点,区块?X?上发生了分叉。由于分叉已经发生了,再加上错误的链总难度更高,你很可能会同步错误的链,pivot区块是?X+M。在这种情况下,由于你没有区块?X+M?之前的状态,无法执行?debug.setHead?来解决这个问题。
这种情况需要重新同步。但是,你需要防止geth同步错误的那条分叉链。这可以通过?whitelist?命令行参数实现。
因此,你需要执行?geth--whitelist123123=0x2342fafa9af9af9af9af9af9。
所谓的白名单,就是一个geth节点在与另一个对等节点连接时会向对方请求区块?123123?的数据。如果该geth节点收到的区块头中的哈希与白名单中的不符,就会与之断开连接。这就意味着,节点将排斥错误的链上的对等节点,只与较短链上的对等节点连接。
标签:ETHTHEETHEETHERETH交易是什么意思ethereal最美翻译togetherbnb手游下载最新中文版togetherbnb几个女主
据外媒TheVerge报道,美国参议院正在讨论的两党基础设施法案可能会重塑加密货币世界,因为立法者对区块链系统的各个部分的新税收报告要求进行了辩论.
1900/1/1 0:00:00近日,随着相关配套政策举措渐次落地,数字化生产、数字化运营和数字化生活正在成为我国社会的新常态.
1900/1/1 0:00:00金色财经消息,Uniswap创始人正在与Paradigm两名研究院研究新的AMM模型,其研究为在以太坊上处理大额交易,可以将大额交易分成碎片在一定时间内消解.
1900/1/1 0:00:002021年全球金融市场大起大落,震荡加剧全所未有。俗话说,危机往往伴随着机遇,在这动荡的环境中金融科技公司埋头深耕、创新层出不穷,涌现诸多经济模式.
1900/1/1 0:00:00四年前,拥有多年密码行业从业经历的李明在英国孵化了一支二十几人的团队,回到中国专攻区块链技术。同年春节前夕,中国央行法定数字货币在数字票据交易平台公测,中国成为全球第一家进行此类实验的国家.
1900/1/1 0:00:00前言本文翻译整理来源于韩国新闻网Hankyungeconomy,Decenter,讨论了对于央行数字货币问世后,比特币市值是否会下降的问题,各方的不同观点.
1900/1/1 0:00:00