____  ___    _  _     _   _ _____     _______
 / ___|/ _ \  | || |   | | | |_ _\ \   / / ____|
| |  _| | | | | || |_  | |_| || | \ \ / /|  _|
| |_| | |_| | |__   _| |  _  || |  \ V / | |___
 \____|\___/     |_|   |_| |_|___|  \_/  |_____|

 --- A GOPHER-LIKE INTERFACE FOR HIVE BLOCKCHAIN ---

见证人收益有几何?

BY: @oflyhigh | CREATED: April 4, 2018, 2:18 p.m. | VOTES: 149 | PAYOUT: $93.69 | [ VOTE ]

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

[IMAGE: https://steemitimages.com/DQmWFkBr4DYg3RXfbNKNRiRhw3YvfW1CS129eoiDCnDLsDm/image.png]
(图源 :pixabay)

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

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

见证人总日收入

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

新的数据如下:
[IMAGE: https://steemitimages.com/DQmNkZWqT9fwFjeRsdMsTK66ecQFDfEEf9qSMR9Kb9vYxb3/image.png]

以上数据是每块的数据,STEEM目前每三秒一个块,我们可以据此计算出每日收益
[IMAGE: https://steemitimages.com/DQmV9PWbrf2yFx9Jvqh1CFPT8ErHFrJJcTCUgdycoWm5wqd/image.png]
所以,所有见证人每日见证人总收入约为:6701个STEEM

见证人收益的分配算法

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

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

首先需要获得witness_schedule对象
[IMAGE: https://steemitimages.com/DQmcTcaf2ikNUVSfrbrvprVaaQ7BbGkkGGUDPe1hvMzz7NK/image.png]
我们用API获取一下,大致是这个样子
[IMAGE: https://steemitimages.com/DQmRNNYuotmPiS3BWCP2xPN4sna9uCguVy4d3auYvgGSMLk/image.png]

然后再看这段代码就好理解了
[IMAGE: https://steemitimages.com/DQmNqHjeYqXihC5TATymVyystnoV9ekuv5fxkHJfazE38kG/image.png]
其中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

按这个我们计算一下分配,得出如下数据:
[IMAGE: https://steemitimages.com/DQmeWH7198eBkV3zQHNNhCySTAnaipmWYcDM8hHwRp1GiUB/image.png]

见证人日收益

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

计算结果如下:
[IMAGE: https://steemitimages.com/DQmUC6LpMTFoVxybLPHN8g1SUkuahV5xMkZvkRSHfKnWiPm/image.png]
注意,其中TOP20奖励是每人奖励,随机见证人奖励是总奖励

总结

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

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

TAGS: [ #witness ] [ #reward ] [ #steem ] [ #cn-programming ] [ #cn ]

Replies

@tvb | April 4, 2018, 3:36 p.m. | Votes: 0 | [ VOTE ]

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

@lanhange | April 4, 2018, 4:23 p.m. | Votes: 0 | [ VOTE ]

真专业,学习了

@bluelion | April 4, 2018, 4:51 p.m. | Votes: 0 | [ VOTE ]

top20是中文区还是全网

@antonsteemit | April 6, 2018, 4:58 a.m. | Votes: 0 | [ VOTE ]

全網吧

@tumutanzi | April 5, 2018, 12:10 a.m. | Votes: 2 | [ VOTE ]

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

@fanyidan | April 5, 2018, 12:18 a.m. | Votes: 0 | [ VOTE ]

分析的很详细。

@hannahwu | April 5, 2018, 8:53 a.m. | Votes: 1 | [ VOTE ]

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

@anwei | April 5, 2018, 11:39 a.m. | Votes: 3 | [ VOTE ]

太专业了 长知识

@antonsteemit | April 6, 2018, 4:58 a.m. | Votes: 0 | [ VOTE ]

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

[ BACK TO TRENDING ] [ BACK TO MENU ]
CMD>