幸运值不可控前提下,如何提升挖矿效率?

[复制链接]
19866 |0
发表于 2021-3-6 21:00:00 | 显示全部楼层 |阅读模式

长期关注FIL挖矿的矿工,一定会对“幸运值”这个概念印象深刻。这个值仿佛直接标识了周期内的挖矿收益多少。那么,“幸运值”是一种完全靠“好运”的概率性指标吗? x2258j

wk588_com_ls3sn2r31s1.jpg

wk588_com_ls3sn2r31s1.jpg

编辑搜图一、幸运值的影响因素

首先,我们复习一下幸运值是什么。

幸运值反映的是一个统计周期内实际出块数量与该统计周期内理论出块数量的比值。

实际奖励:某节点当前算力运行FIL的EC共识机制,在24小时内实际打包获得的区块奖励;

理论奖励:节点当前有效算力占据全网有效算力的比值乘以24小时全网的区块奖励。x2258j

如果实际奖励高于理论奖励,则幸运值高;反之,幸运值低。

从理论奖励到实际奖励中,经过了以下步骤:

1. 节点每天,每一个高度,都会计算一个随机数。这个随机数的参数包含节点的算力占比,和一些其他的数值。如果计算得出的随机数符合一个条件,则爆块。这个步骤,叫“获取出块权”。其中可控的变量,就只有算力占比;

2. 获取出块权以后,开始完成winningPoSt,首先根据链上获取的抽查参数,去找到需要抽取的扇区,以及扇区的某段位置的数据(具体位置,也是随机);

3. 抽取数据完成以后,进行运算,算出结果,且把结果广播出去,并被认可。则出块成功;

4. 整个过程,需要在30秒内进行。这中间,抽取数据失败,计算数据失败,同步消息失败,都会导致拿到出块权后而出块失败。

以上步骤可以总结为两点:

步骤1,描述了节点获得出块权的步骤。FIL挖矿是一个高频且重复的过程,如果监测时间够长,节点获得的实际收益将无限趋近于理论奖励收益。但是实际上,周期内各节点能够获得多少出块权,是一件仍具有概率性和波动性的事情。监测时间越短,概率性和波动性越大,即对“运气”的依赖程度越高。

步骤2-4,描述了获得出块权后,矿工在30s内要完成的WinningPoSt步骤。如果未完成,矿工将失去区块奖励。

假设,当前时段,某节点的有效算力占据全网有效算力的比值约为1%,但该节点当前时段获得出块权占全部出块权的比值仅有0.9%,在winningPoSt全部完成的前提下,该节点当前幸运值也将只有90%;

反之,当前时段“运气”爆棚,获得出块权占全部出块权的比值达到1.5%,如果winningPoSt不失败或少失败,幸运值将远远高于100%。

这里,已经可以明确,幸运值的第一影响因素:同等算力占比前提下,出块权的获得概率,是真正具有概率性和“运气”的因素。

我们要做到的,是在周期内出块权获得概率不可控的前提下,提升有效算力占比,提升长期周期的出块权获得概率;同时在获得出块权后,避免winningPoSt出错,将实际奖励拿到手。x2258j

二、如何提升WinningPoSt成功率?

大家从WinningPoSt步骤已经可以看出,出块只有30s,时间短,任务重。将每个步骤中可能出错的原因一一总结研究,才能最大限度提升winningPoSt成功率:

1、首先,要保证完整获得上一高度的所有区块,这需要节点的网络延迟足够低,链同步足够及时。然而,很不幸的是,目前FIL官方链程序因各种原因,时常出现高度不够甚至链程序崩溃,区块文件损坏的情况;

2、其次,获得出块权后,需要抽取扇区数据。此处,存储的任何异常都会使数据抽取失败,进而导致计算出错,所以需要存储的快速响应;

3、抽取后计算零知识证明得到结果。时间窗口过短,一旦因各种原因导致计算没有及时开始,再加上如果计算速度的过慢,很容易导致计算超时;

我们来个进行深入分析和实践,在长期的跟踪优化中,总结出从以下四个方面不断提升winningPoSt的正确性:数据抽取提速、计算速度提速、链程序稳定性改进、链同步速度优化等。现已将两套系统成功投入实际生产环境。

1.主动爆块技术

通过技术手段,对出块各个步骤进行技术修正和提速,基本解决了大部分除存储故障、网络故障和少数因链过于延时以外的出块失败。

2.出块校验监控、报警系统

随时测算每个节点应该在哪个高度出块,同时去链上获取出块结果进行对比。失败则报警,提醒运维团队及时关注、解决问题,避免连续失败。同时雅典娜云池的运维团队依托这一监控系统还建立了7*24小时应急处理机制,密切关注出块情况,随时应对各种突发事件。

综上,出块权靠运气,成功出块靠实力。获得出块权后的工作,才真正考验一家矿商的技术实力。x2258j


回复

使用道具 举报

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

本版积分规则

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