修复见证人列表收益估算功能 / Fixed revenue estimation function of the witness list

修复见证人列表收益估算功能 / Fixed revenue estimation function of the witness list

在之前的帖子《关于见证人收益估算功能出错的说明》中,我提到由于节点api.steemit.com升级到0.21.0导致了我见证人列表收益估算功能出错。

具体的出错原因是,API节点0.21.0版本中,移除了如下两个参数:

STEEM_CONTENT_REWARD_PERCENT
STEEM_VESTING_FUND_PERCENT

程序去读取这两个参数,又读取不到,所以导致收益估算功能严重偏差。

在0.21.0版本的API节点中,这两项内容被更新为:

STEEM_CONTENT_REWARD_PERCENT_HF16
STEEM_VESTING_FUND_PERCENT_HF16

所以如果仅仅是为了让程序可以正常运作,只需使用上述参数名替换之前的参数名即可,如此我们得出的STEEM每个区块的通胀以及分配如下:

但是事情到此为止的话,当硬分叉21启动后,程序估算功能又会出错,为何?因为HF21以后,每块通胀产生的收益,又多了一个分配者,那就是SPS ( @steem.dao):

The inflation budget has been changed to fund the SPS. The content rewards are being reduced from 75% of the budget to 65% to give 10% of the inflation budget to the SPS.

而HF21后,实际起作用的参数应该是:

STEEM_CONTENT_REWARD_PERCENT_HF21
STEEM_VESTING_FUND_PERCENT_HF16
STEEM_PROPOSAL_FUND_PERCENT_HF21

所以正确的做法应该是调用get_hardfork_version获取硬分叉版本,如果是HF20,则使用之前的参数,否则则使用新的参数组合,调用的JSON如下:

{"jsonrpc": "2.0", "method": "condenser_api.get_hardfork_version", "params": [], "id": 1}

当前还没有硬分叉,所以返回值如下:

其实无论是HF20还是HF21,对于见证人收益来讲并没有变化因为:

STEEM_CONTENT_REWARD_PERCENT_HF16 = STEEM_CONTENT_REWARD_PERCENT_HF21 + STEEM_PROPOSAL_FUND_PERCENT_HF21

如果再想完善些,应该用get_version获取API节点的版本,再做对应处理,不过我懒,好用就算啦,哈哈。

相关链接


Vote For Me As Witness
https://steemit.com/~witnesses type in oflyhigh and click VOTE

Vote @oflyhigh via Steemconnect
Thank you!

This page is synchronized from the post: ‘修复见证人列表收益估算功能 / Fixed revenue estimation function of the witness list’

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×