IPFS事件|解决Filecoin12月19日链停

以下内容源于Filecoin官方《Resolving the Dec 19 Chain Halt: Cause, Impact, & Take Aways》

2020年12月,关注Filecoin市场的目光大部分投向了社区主办为期一天的存储市场峰会。但神算矿池同时也有关注到,在2020年12月19日,Filecoin网络经历了链停,这意味着在一段时间内可以创建新的区块,但矿工无法就此结果达成共识(每个区块计算的值不同)。由于社区成员,矿工和开发人员的快速响应,修复程序在4个小时内发布,网络在7个小时内完全恢复。

本文描述了链停过程中遇到的问题,中断的影响,快速响应,以及社区接下来要做什么↓↓↓

fJsui1u7o3qcEPOBnJdL9srSD9skVu2eKKHqtZl3.png

01 原因

潜在的问题,是对存储矿工参与者实现中的对象映射进行潜在的不确定性迭代。参与者在Go中实现。对Go映射的迭代是不确定的,并且参与者在使用迭代之前总是对迭代的结果进行排序(强制执行静态分析)。不幸的是,用于对两个这样的映射进行排序的比较函数中出现了一个错误,导致排序无效(参见#1335)。因此,不同的节点处理map条目的顺序不同,导致结果和Gas消耗也会有所不同

实际上,只有通过(a)声明多个扇区同时终止的矿机,或(b)一个矿机同时恢复跨越多个分区的故障,才能到达此代码路径(其他两种代码路径会到了这一点,但在实际上极不可能)。在此之前,这些路径在主网中都没有使用多个扇区/分区作为数据,从而暴露了不确定性。链停是由多个部门同时终止而触发的

Filecoin参与者的测试涵盖了所涉及的代码,但不包括验证不同测试运行之间确定性执行的机制。Lotus节点实现的集成测试不包括终止多个扇区。

02 停机原因

庆幸的是,在中断期间没有数据丢失。虽然无法创建新的块暂时抑制了网络上的交易,但存储提供商的所有数据都是安全的,一旦网络恢复运行就可以随时使用。此外,值得注意的是,Filecoin协议的规范提供了即使在链中断的情况下也可以数据检索的功能。因此,尽管在事件持续时间内不可能进行链上交易,但Filecoin网络的核心功能仍然完好无损。此外,修复措施的实施确保了挖矿作业本身不会因停机而受到惩罚;相反,为了优先并鼓励网络恢复,共识削减被暂时搁置。

03 快速反应

首次发现、识别、修复和部署潜在问题的速度也是值得注意的:

  • 在事件发生后15分钟内,自动监控触发了警报。

  • 在30分钟内,矿工和实施开发人员聚集在一起进行响应。

  • 在4个小时内,开发人员确定并发布了该问题的修复程序。

  • 在7个小时之内,足够多的节点采用了此修复程序,从而通过了多数共识的功率阈值,使网络走上了恢复的道路。

对于年轻的去中心化网络而言,这是一个令人难以置信的快速反应速度。即使是已经建立的区块链也会不时经历链式中断和分叉,Filecoin官方解决这一事件的时间可以与已经运行多年的区块链相媲美,社区应该为这一事件的处理速度感到骄傲。

这一复苏只有通过世界各地多个团体的共同努力才能实现。Filecoin整个生态系统的各方通力合作,实现了这一目标:矿工发现并报告了问题,并让开发者注意到它;工程团队进行协调开发,并发布一个同行评审的补丁,同时通过社区渠道沟通修复的状态;全球各地的网络参与者都在努力应用补丁,使网络尽快恢复运行。虽然如此紧急的事件是不需要重复的,但这是一个令人印象深刻的展示Filecoin生态系统内的参与和关注的“机会”。

04 下一步做什么

构建一个区块链就像构建一个软件火箭一样,它们是非常复杂的技术,很难在第一次尝试中就可以将所有事情都做好。就像真正的火箭,事情可能会以意想不到的方式出错,当发生这种情况时,重要的是要有适当的基础设施,以尽快解决问题,将其影响降到最低,并降低再次发生的可能性。

为了实现这个目标,多个团队已经开始编写和执行事后分析,确定了actors/lotus之间测试覆盖范围的其他改进,以及跨网络基础设施/通信的警报和问题升级,以避免此类事件在未来再次发生。

由于Filecoin社区的耐心、辛勤工作和投入,使这项新技术的缺陷得到不断解决。随着所有问题的识别和解决,Filecoin网络将进一步成熟,成为一个稳定、可靠且经过飞行验证的平台。

Filecoin挖矿技术服务(排名服务、挖矿技术方案定制)

热门文章