见证人收益有几何?

in #witness7 years ago

在之前的帖子《STEEM是如何产出以及如何分配的》我曾提到每天系统产生的STEEM,有10%会分配给区块制造者(block producers)。


(图源 :pixabay)

HF17以后,STEEM系统取消了矿工挖矿,区块制造者体系由19+1+1改成20+0+1,亦即得票数TOP20的见证人,和随机选择的见证人。

我们好奇见证人收入到底有多少呢?所以就探究了一下,顺便记录下来供大家参考。

见证人总日收入

前边的文章中我们已经计算出每个区块的见证人收入,但是每250K个区块,通胀率是缩减的,不巧刚刚计算一下,通胀率由8.94%变成了8.93%,尽管差异不大,但是数据要更新一下喽。

新的数据如下:

以上数据是每块的数据,STEEM目前每三秒一个块,我们可以据此计算出每日收益

所以,所有见证人每日见证人总收入约为:6701个STEEM

见证人收益的分配算法

以上计算仅仅是为了阐明问题,实际上见证人收益是按块发放的,亦即见证人每生成一个块,就会获得对应的奖励。

那么具体是如何发放的呢?大致看如下代码就清楚了:

首先需要获得witness_schedule对象

我们用API获取一下,大致是这个样子

然后再看这段代码就好理解了

其中STEEM_MAX_WITNESSES值为21

#define STEEM_MAX_WITNESSES 21

也就是说,

  • TOP20见证人,每块拿到见证人收益的21/25
  • 随机选出的见证人,每块拿到见证人收益的21*5/25

总量其实没有变化,但是在TOP20和随机见证人奖励分配之间做个很好的权衡。
注1:代码中虽然有矿工,但是'max_miner_witnesses': 0所以没矿工啥事
注2:代码中写着top19,应该是历史遗留问题,HF17之后是TOP20

按这个我们计算一下分配,得出如下数据:

见证人日收益

知道上述分配比例后,计算见证人日收益就很好计算啦。
每3秒一个块,每轮21个见证人,需要63秒,也就是说TOP20见证人63秒轮到一次,我们可以用每天总秒数来计算出块奖励。

计算结果如下:

注意,其中TOP20奖励是每人奖励,随机见证人奖励是总奖励

总结

  • 见证人组成 TOP20 + 1随机
  • TOP20 每人每天奖励:268.04个STEEM
  • 随机见证人,大家一起分:1340.21个STEEM
  • 每日见证人总奖励约为:6701个STEEM

问题,随机见证人单个块奖励没啥疑问,总奖励咋分配呢?是平分1340STEEM吗?叫随机见证人妥当吗?是不是该叫备选见证人或者分时(timeshare)见证人? 备选见证人奖励和见证人得票数之间又有什么关系?

我会在后续文章中和大家一起分享学习成果,这篇就这样了,暂且留些悬念。

Sort:  

感觉做这个还是高门槛的事情,并且不见得会赚太多……

太专业了 长知识

一直都没搞清楚见证人是做什么的。

一直不明白o哥为何不做见证人,看来是算计过的哈哈哈

真专业,学习了

top20是中文区还是全网

分析的很详细。

感覺這樣算起來CP值好像不是特別高阿...
考慮到見證人需要這麼高的SP 的話