算力不等于收益,李白教你怎么提高“幸运值”、多赚FIL

2020-07-11 15:20 来源:6block 阅读:7432
算力不等于收益,李白教你怎么提高“幸运值”、多赚FIL

————————

分享者:币圈李白

职位:6block 核心开发工程师

(下面正文摘自6Block核心工程师“币圈李白”的视频直播分享,相应视频请见文末)

最近社区有很多成员谈及爆块这一问题,我们石榴矿池针对社区提出的问题,在近两周的时间里面对于爆块进行了深入的测试和研究。(在不利用任何bug的情况下)

现在市场上普遍认为爆块是个概率性的问题,其概率会围绕算力占比而上下波动。但事实不是这样, 这里面其实还有很大的优化空间,本文将会涵盖爆块的优化空间以及爆块方面常见的一些问题。

对于Filecoin挖矿,大家一般都会比较关注以下几个方面:

  • 有机器不一定能有算力

  • 有算力不一定能有爆块 TB->FIL

  • 有爆块不一定能有解锁

今天我们就从后面两个点来展开,第一点我之前谈过很多了,所以就不多说了。那么这个爆块究竟是怎么回事呢?其实很简单,爆块其持续时间为25秒,在25秒内能完成系统分配的计算,就能实现爆块。

在Filecoin里面有两个算法,爆块属于PoSt算法。简单来说会有以下几个步骤:

  1. 需要保证获得上一高度的所有block

  2. 计算出随机数,得到随机数后便可以判断自己是否中奖,并且得到中奖的sector序号和sector的数据序号

  3. 读取sector的数据,这里会需要消耗一定的时间

  4. 计算零知识证明得出结果

  5. 通过得到的结果构建block并广播block

获得上一高度的所有区块,官方默认给出的的时间是6秒,也就是说默认6秒内全部同步了。所以在6秒的时候就会进入挖矿的步骤了,开始计算拿到随机数。这要求我们节点的网络延迟要足够的低,并和多同步节点,同时还要进行同步节点的排序筛选。所以获得上一高度的所有区块的限制主要在于网络。

当你有生成新的区块权利的时候,就要读取sector的数据,比较重要的是你需要一个低延时的存储,能让miner在最短的时间内从sector上得到数据。石榴矿池将存储和计算进行了分离,Worker设置成无状态,这样卡了出问题了可以随时重启或拿去维修,不会影响整个系统。同时,我们的存储始终处于低负载的状态,这样的状态下存储的响应速度会非常的快,当存储和miner相连之后,便能很快的生成证明。另外,Lotus和miner最好要放在一个局域网上或一个电脑上,Lotus对外要去连接其他大量的Lotus节点,保证广播足够的快,以上这些就是我们石榴矿池的架构。

这里也再谈一些常见的问题:

首先是计算和存储不分离,在这样的架构下,数据抽取速度很有可能受到影响,并且很难优化,很难做到大量的爆块。

其次就是冗余和备份带来的存储负载,如果盲目的去做冗余和备份,就会影响读写性能从而影响爆块。

再者是读写过程中会互相抢资源,最好的解决方式是读写分离。

然后是多miner的问题,这是一个很有创意的想法,主要目的是为了把算力集中在一个账户下,比较好宣传。但多miner会影响爆块,其读取数据可能会受到一定的影响。

最后说一下计算零知识证明,它也占一定的时间,大概几秒钟的时间,但可以通过在miner上配显卡来节省一定的时间。本身零知识证明的计算也是可以优化的,在bellman的库里面,优化它就可以节省时间了。

爆块所存在的问题和解决的思路大概就是以上这些了,最后展示下我们两周测试努力的成果吧:

可以看到优化后的成果,爆块出块的时间降到了1.7秒。

总体来说,想要减少爆块的时间,你需要一个低延迟的网络,一个响应及时的存储系统,还有一个能快速算出Wining PoSt的零知识证明计算系统。

好了,今天的分享就到这里了,谢谢大家!


声明:此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网站所提供的信息,只供参考之用。

点击阅读全文