2020年12月19日,filecoin网络在链上发生中断,这意味着在一段时间内可以创建新的区块,但矿工们无法就生成的状态达成共识,每个区块计算出不同的价值。由于社区成员、矿工和开发者的快速反应,修复程序在4小时内发布,网络在7小时内完全恢复。
比特币本文将详细描述这个问题,并解释中断的影响、快速响应和未来的发展。
01中断原因
潜在的问题是存储实现中对象映射的潜在不确定迭代。参与者在go中实现。众所周知,go映射的迭代是不确定的。
参与者总是在使用迭代结果之前对其进行排序(强制静态分析)。不幸的是,用于排序两个这样的映射的比较函数中的错误将导致无效排序(参见1335)。因此,不同的节点按不同的顺序处理地图条目,导致不同的结果和耗气量。
事实上,这个代码路径只能通过(a)一个miner声明多个扇区立即终止,或者(b)一个miner立即跨多个分区恢复故障来实现。(其他两个代码路径到达了这一点,但实际上不太可能)。在此之前,主网没有使用这两条路径,也没有使用多个扇区/分区作为数据来暴露不确定性。这一暂停是由于多个部门同时终止。
filecoin参与者的测试涵盖了所讨论的代码,但不包括验证不同测试运行之间确定性执行的机制。Lootusnode实现的集成测试不包括多个扇区的终止。
02中断影响
最重要的是,应该强调在大修期间没有数据丢失。虽然它无法在网络上创建新的块并临时抑制事务,但存储提供程序提供的所有数据都是安全的,并且可以在网络恢复后使用。此外,值得注意的是,即使在链中断的情况下,filecoin协议的规范也提供了数据检索。也就是说,不可能在活动期间进行连锁交易,但filecoin网络的核心功能保持不变。
此外,还采取了补救措施,以确保挖矿作业本身不会因停工而受到惩罚;相反,已暂时减少共识削减,以减少优先事项并鼓励网络恢复。
03快速反应
第一次,发现、解决和部署基本问题的速度也是显而易见的:
1事件发生后15分钟内,自动监控触发警报
2在30分钟内,矿工和开发人员齐聚一堂做出回应
3在四个小时内,开发人员确定并发布了此问题的修复程序
4在7小时内,足够多的节点采用了这种修复程序,超过了最常见的功率阈值,使网络走上了恢复之路
对于年轻的去中心化网络来说,这是一个难以置信的快速反应。即使已经建立的区块链经历了链的暂停和分叉,filecoin解决这一事件的时间也可以与已经运行多年的区块链相提并论。整个社会都应该为处理这一事件的速度感到骄傲。
只有在全球多个组织的共同努力下,才能实现这一复苏。整个生态系统中的各方共同努力实现这一目标:矿工发现并报告问题,吸引开发人员的注意;工程团队协调开发并发布针对潜在问题的同行评审补丁,并通过社区渠道沟通补丁的状态;网络参与者遍布全球全世界都在尝试应用这些补丁,让网络尽快恢复在线。我们不想重蹈覆辙,但这是filecoin生态系统参与度和专注度令人印象深刻的体现。
04下一个是什么a632
构建区块链就像构建火箭。它将结合许多复杂的技术,因此很难在第一次尝试中把每件事都做好。像真正的火箭一样,紧急情况很难预测。发生这种情况时,重要的是要有正确的基础设施,尽快解决问题,尽量减少影响,减少再次发生的可能性。
为了实现这一目标,几个团队进行了验收后的编写和实施,确定了参与者/角色的测试覆盖率,并对网络基础设施/通信警报和问题升级进行了其他改进,以帮助缓解未来的事件。
在整个filecoin社区的共同努力下,我们不断改进这项新技术。相信整个网络在发现和解决问题的过程中会不断完善,最终形成一个稳定可靠的“发射”平台。
文章链接:https://www.btchangqing.cn/181659.html
更新时间:2021年01月19日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。
不要怂~就是干
开空也是一种牛市
支持一下区块链