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;
以太坊伦敦升级一周年,年通胀速度下降超53%:8月5日消息,据OKLink多链浏览器数据显示,时值以太坊伦敦升级一周年,截止区块高度15280850(北京时间 2022 年 8 月 5 日15:00),以太坊总销毁量达2,571,826.68枚,约 42.8亿美元。伴随EIP-1559 实施的一年来,以太坊的通胀速度下降超53%。[2022/8/5 12:04:40]
Nethermind:?v1.10.79,?fixPR。
问题区块的信息
网络:Ropsten
区块编号:10679538
哈希值:0x1252a34c4f2b061adc609e909d958c02e1ac39043e2e60c0ec47e565e3f625f1
OpenEthereumdebug日志
数据:伦敦升级以来已燃烧超25万枚ETH:9月9日,ultrasound.money数据显示,以太坊伦敦升级以来已燃烧252819.58枚ETH。当前ETH燃烧速率为每分钟5.06ETH。[2021/9/9 23:11:58]
eth_getBlock输出(go-ethereum)
测试网事故的时间线
。
2021年7月21日
18:39:Ropsten测试网上挖出区块10679537。
21:53:OpenEthereum开发者在EthereumR&Ddiscord的#1559-dev频道发帖称他们的节点卡在了区块10679538处。
Crypto.com将支持以太坊伦敦升级:Crypto.com将支持以太坊伦敦升级,在以太坊区块高度12965000前大概2小时,所有Crypto.com 交易所和APP上的ETH或者ERC20代币的存提将暂停,交易将不受影响。[2021/8/2 1:28:59]
21:58:@smixx?称他们的在Ropsten节点位于区块10680453。
22:36:Besu确认他们的节点也拒绝了区块10679538。
22:51:确认挖出区块10679538的矿工是go-ethereum节点。
22:55:确认go-ethereum矿工仍继续在区块10679538上面挖矿。
22:56:确认Nethermind也接受了区块10679538。
23:08:go-ethereum已确认问题的根本原因。
彭博社:以太坊伦敦升级可望通过销毁代币推升ETH价格:彭博社报道,以太坊伦敦升级将减少ETH的供应速度,通过销毁每天发行的1.3万枚新ETH(支付给矿工的gas费)中作为基础费用(大约占25-75%)的部分代币,可望推升ETH的价格。此举将让ETH每年的供应量减少约4%。而明年转向新的交易验证机制后,供应量还可能进一步下降。投资公司Multicoin Capital联合创始人Kyle Samani表示:伦敦升级是以太坊历史上最有趣和最重要的升级之一,通过减少代币供应量,可增加稀缺性,提高价格。伦敦升级将于8月4日或5日启动,具体取决于系统何时到达区块链上的预定高度。此外,伦敦升级还包含将在12月部署的「难度炸弹」,届时,矿工在不升级软件的情况下将无法开采ETH。(彭博社)[2021/7/30 1:24:22]
23:43:go-ethereum开启?pull?request,提供候选修复方案。
以太坊客户端OpenEthereum新版本加入主网伦敦升级区块高度:以太坊客户端OpenEthereum发布OpenEthereumv3.3.0-rc.4版本,将主网的伦敦硬分叉升级的区块高度(12965000)写入,也就是8月4日左右。[2021/7/15 0:53:30]
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节点收到的区块头中的哈希与白名单中的不符,就会与之断开连接。这就意味着,节点将排斥错误的链上的对等节点,只与较短链上的对等节点连接。
元宇宙不是一个产品,而是互联网的未来。元宇宙这个词正在成为「风口」。这是个29年前就存在的科幻概念,随着最近几年吸纳了日臻成熟的AI、AR/VR、区块链等技术成果后,突然间就占领了创业者和资本的.
1900/1/1 0:00:008月3日,去中心化衍生品交易协议dYdX宣布推出治理代币DYDX,并对此前在平台上交互过的地址进行空投。治理代币总量10亿,空投比例占7.5%,即7500万枚DYDX空投奖励.
1900/1/1 0:00:00头条▌以太坊主网已达到伦敦升级区块高度据欧科云链链上大师数据显示,以太坊主网于今日20时33分达到区块高度12,965,000,激活伦敦硬分叉网络升级.
1900/1/1 0:00:00日经新闻报道,柬埔寨央行数字货币Bakong自2020年10月正式推出以来,用户数大增,截至6月,Bakong电子钱包用户数较三个月前翻了一番,达到20万.
1900/1/1 0:00:00DeFi数据1.DeFi总市值:966.15亿美元 市值前十币种排名数据来源DeFiboxDeFi总市值数据来源:Coingecko2.过去24小时去中心化交易所的交易量:28.
1900/1/1 0:00:00交易媒介=中间化常人对于货币的理解最为常见与朴实的理解,即货币是交易的媒介。不论成为“一般等价物”或者“支付工具”,大体来说,都是这个意思.
1900/1/1 0:00:00