一段对话告诉你FIL网络升级之后有什么改变。

[复制链接]
12853 |0
发表于 2021-5-12 17:36:17 | 显示全部楼层 |阅读模式

一段对话告诉你FIL网络升级之后有什么改变。

 

请问4月29日,FIL网络升级至版本12,主要升级的是什么?

 

此次升级引入了specs-actors的第四版本。该版本是指定FIL协议的一组内置actor,新版本的specs-actor性能更高,验证时间更快,Lotus,Venus和Forest的FIL核心开发人员一起,在短短几周内执行并完成了此次升级!

 

此次升级的动机是什么?

 

对于所有区块链项目而言,重要的是要确保区块验证所需的时间少于区块生成的频率。在FIL网络上,每30秒生成一次块,因此很重要的一点是,块验证所用的时间必须少于30秒。当然,块验证取决于多种因素:节点的硬件规格,链数据库的大小,节点上正在运行的其他进程等等。

 

在v12升级之前,中等质量节点运行平稳,块验证时间不到30秒。但是,速度较慢的节点以及保留了完整链历史的节点(具有非常大的数据库)的验证时间也更长,从而使它们有在速度下降的情况下不同步的风险。尽管大多数使用高性能硬件和较小链数据库的矿工不会受到影响,但是生态系统中的其他重要成员,包括交易所和档案节点,都开始遇到一些速度变慢和偶尔的同步问题-对整个网络的健康产生了负面影响。

 

同步时间缓慢的原因之一是actor代码在处理新创建的节点时效率低下。过去几个月里,网络经历了一些垃圾信息浪潮,从而在链上创建了矿工,产生了过多的空矿工条目。使得可以大幅提升性能,因为减少处理空矿机所花费的时间可以大大降低块验证时间。在v12网络升级中推出此改进措施还可以主动防止将来的CreateMiner垃圾信息转变为针对速度较慢的节点的攻击媒介。

 

性能可以提升多少?

 

要知道版本12中改进的性能,我们先来了解系统的一些细节。FIL cron actor,位于地址f03处,是网络在每个时期运行的系统actor。运行状态转换可以保持fileDAC网络平稳,正确地运行。Cron actor每60个区块高度(30分钟)处理一次矿工actor,以验证矿工对要检查的部分扇区是否有正确的存储证明。通过cron actor的处理,FIL协议可以确保:整个FIL网络每24小时自动检查一次存储情况,任何丢失或损坏数据的矿工将被惩罚。

在网络版本12之前,cron actor处理单个矿工actor。FIL版本12更改了cron actor,使其仅对需要它的矿工actor进行处理。如果矿工正在积极证明其存储,则“需要” cron工作。具体而言,以下条件中的任何一个都需要每60个区块高度进行一次cron工作:1)具有活跃的PreCommit;2)具有活跃的扇区;3)有质押的奖励。不满足以上任何条件的矿工actor在cron工作期间无需做不必要的工作,可以放心跳过。特别是,新创建的矿工节点将不会立即请求cron作业,只有在它第一次开始向网络保证存储时才会需要。

这项优化措施生效后,FIL网络已从每60个区块高度处理约375,000个矿工到现在的2,000多个区块高度。这使得块平均同步时间大约快了一倍,并且每日状态快照的大小减少了20GB以上,几乎提高了2倍!平均和最长块同步时间明显减少,并且几乎完全消除了大型归档节点不同步的情况。

v12升级后减低了同步时间,减少了不同步的实例(以区块高度为单位)

 

该版本运行,能带来什么改变?

 

Lotus v1.8.0和venus v0.9.5中发布了网络v12升级,此次升级包含v4 actor。Lotus团队在较短的时间内发布了该版本,从发布到网络升级只有大约48小时,所有节点运营商必须在48小时内完成升级。社区能够快速完成升级非常重要,因为可能需要在很短的时间内解决关键安全问题。为应对此类事件,网络在2020年9月的太空竞赛中(主网上线前不久)测试了各种 “war game” 场景。

社区在48小时内快速完成了v12升级,证明了其将来需要时可以快速升级的能力。诸如此类的快速升级依赖于FIL执行团队与各节点运营商(包括存储矿工,存储客户端和交易所)之间有效的通信渠道。为了使每个人都能参与其中,FIL社区工程师在社区论坛中宣布了升级的详细信息,包括升级要点,升级区块高度以及发布时间表的链接,并更新了FIL网络状态页面,使其通知可订阅。然后,开发团队快速响应,以确保每个人都能通过多个支持渠道(包括论坛,Slack频道等)及时顺利地升级其节点。

在较短的时间内正确执行此类改动还需要经过严格的测试和发布流程。Lotus团队能够使用过去几个月开发的新计划清单来做到这一点。另外,为了响应社区的反馈,Lotus团队确保在这种强制性发行版中没有引入未经测试的可选功能。相反,此次网络升级更改是在Lotus v1.6.0之上发布的,Lotus v1.6.0是Lotus最新的稳定版本,已经过测试。对于需要最新功能并愿意承受更大风险的用户,可以选择升级候选版本Lotus v1.9.0-rc1,该版本包含了此次网络升级内容以及更多其他新功能。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表