喜欢记得点个赞 😃
距离8月15日Epik主网上线已经快10天了,很多用户不知道怎么去评估自己的矿机效率,还在迷惑于有些节点为啥就是不爆块,所以今天来聊一下如何评估自己的挖矿效率。
01 什么是理论产出期望值?
理论产出期望值是指根据全网节点数和全网有效算力的实时值计算得出单个矿工节点或单位有效算力在一定周期内平均产出EPK代币数量的理论值。
其中:
单个矿工节点在一天内产出EPK代币的数量,我们可以称为单节点平均每日出币量,
单位有效算力(即1MBi有效算力)在一天内产出EPK代币的数量,我们可以称为1M算力平均每日出币量,
这两个期望值可以通过以下区块浏览器地址查询:https://epkscan.com/#/
依据目前全网情况举例,Epik全网在24小时内的出块数量为2880个,换算成矿工所得EPK数量为248832个EPK,全网活跃节点为23864个,那么:
单节点平均每日出币量的理论奖励即为248832/23864=10.427 EPK/节点。
同理,全网有效算力为388.151GBi,那么:
1M算力平均每日出币量的理论奖励即为248832/(388.151*1024)=0.626 EPK/MBi。
若你的实际产量值低于以上两个理论值,那么你的挖矿效率较低,若你的实际产量值高于以上两个理论值,那么你的挖矿效率高
02 如何计算自己的实际产量值
刚才第一点介绍了理论期望值的计算,那么如何计算自己的实际产量值呢?
实际产量值包括单节点实际每日出币量和1M算力实际每日出币量,计算公式如下:
1、单节点实际每日出币量=统计时间差内产币数/(统计节点时间差*当前节点数)
2、1M算力实际每日出币量=统计时间差内产币数/(统计节点时间差*当前统计钱包算力值)
以下为统计示例数据:
统计日期 | 统计时间 | 距离上一个统计节点时间差(天) | 当前节点数 | 当前统计钱包算力值(MBi) | 统计时间差内产币数 | 单节点实际每日出币量 | 1M算力实际每日出币量 |
20210815 | 20:00:00 | | 0 | 0 | 0 | 0 | 0 |
20210824 | 20:00:00 | 9 | 100 | 1700MBi | 9900 | 11 | 0.647 |
03 有效算力与实际出块奖励
参考Filecoin的出块Token激励逻辑,EPK矿工成功获取出块奖励(即成功挖出EPK代币)同样需要经历3个阶段
PART 1:
每轮挖矿周期(每30s一次)开始后,矿工从主网其他节点接收上一轮的最新区块消息广播。当到达一个特定的接收截止时间时,矿工在已经接收到的区块消息中,根据权重选择一个TipSet作为主链,然后基于该主链计算出块权。出块权的计算参数包括主链TipSet中的随机数,以及矿工当前的有效算力与全网有效算力的比重。从统计意义上说,矿工的有效算力与全网有效算力的占比越大,矿工获得出块权的概率就越大。
PART 2:
如果矿工在主链上获得出块权,矿工就会进入WinningPoSt环节。系统会根据链上获取的抽查参数,去寻找需要抽取的扇区,以及扇区内某段随机的数据。
PART 3:
抽取数据后,节点需要进行一次简单的运算,算出结果并把结果广播出去,该广播被主网认可后,即可获取出块奖励。根据Epik治理白皮书,平均同一个Tipset可同时获得出块奖励的节点数为5个。
需要注意的是,WinningPoSt及计算环节中的任何一个步骤都不能出错,且需要在30秒之内完成。如果在进行任一步骤时出现机器故障,离线或运算错误等问题,或完成时间超过30秒,都会导致出块失败。
综合上述内容来看,矿工的实际出块数量决定于四个因素:
1、有效算力决定了矿工获得出块权的概率。从长期来看,节点获得的出块权占比趋近于其有效算力与全网有效算力的比重。
2、由于爆块权的获得依赖于主链的随机数,而随机数在较短的周期(比如24小时)内是有比较大的随机性的,同时获得出块权后有可能出现独占或与多个节点分享当前Tipset奖励的可能性,会进一步扩大随机数在短周期内的影响,因此,矿工在较短周期内明显高于或低于理论产出期望值也是正常的,不必担心。建议尽量采用周期在7-15天以上的全部节点的统计数据进行分析,这样减少单节点产币量随机变化大带来的误判,让你误以为自己的挖矿效率低。
3、存储和计算性能矿工获得爆块权后,需要在30s内完成存储抽查和证明计算,并且把区块广播给其他节点,才能成功爆块。如果未完成,矿工即便手握出块权也拿不到区块奖励。(Epik的扇区较小,受这种情况影响的可能性较小)
4、网络延迟如果网络延迟比较大,那么在截止期到来时,矿工有可能还没接收到全部的主链区块消息,如果矿工基于不完整的主链进行爆块计算,那么也会被其他节点拒绝,导致爆块失败。另外一种情况是,矿工基于正确的主链并且成功完成了存储抽查和证明计算,但是由于网络延迟大,区块没有被即时广播到其他节点,导致爆块失败。(Epik的扇区较小,受这种情况影响的可能性较小)
04 如何提高爆块效率?
矿工的”运气”取决于其碰上随机数的次数,既然是“随机”,那么在一个较长的时间周期内,节点获得的出块权占比将无限趋近于有效算力在全网算力的占比,“运气”对爆块效率的影响可以说是比较小的。
所以为了确保相对较高的爆块效率,
首先是保证节点的基础环境:
1、 良好的网络状态,顺畅的网络传输可以确保节点的计算结果第一时间被广播到Epik网络上,得到更多的节点承认,缩短出块奖励获取时间,同时还能维持节点与区块高度的同步,避免广播时出现异常。
所以确保miner节点的日志无明显ERROR级别的持续性报错,偶发的Debug/Warn/Error级别的日志一般性问题不大,大部分都是因为网络不稳定造成的,有可能是你的节点网络不稳,也有可能是别人的节点网络不稳,只要不是持续出现就不用管。
对于有条件的矿工,建议使用BGP(边界网关协议)网络来搭设Epik节点集群。
2、 优秀的存储读写速度,获得出块权后,需要抽取扇区数据。因存储硬件或软件异常导致的读写不稳定及读取速度缓慢会使数据抽取失败,直接导致无法出块。
3、 强大的瞬时运算能力,WinningPoSt时间极短,而运算超时也将导致无法获得出块奖励。
其次是增加节点数量:
建议solo的矿工总节点数和有效算力占全网节点和全网有效算力的比例尽量大于0.1%,这样会令你的产量变得比较平滑,不至于偏离理论产出期望值太多。
低于此比例的用户可以考虑加入矿池联合挖矿,同样可以令你的收益变得平滑,不然就有可能因为脸丑(运气差)的原因导致你每天的产量差异特别大,最后偏离理论产出期望值比较多。