关于收益分享功能理解的终极版(专家指点 & 代码核证)

关于收益分享功能理解的终极版(专家指点 & 代码核证)


昨天发了个帖子

讲了对帖子使用收益分享功能发奖后金额的一些疑问,主要有两个方面:

  • 收益分享,分享的是去除点赞者收益后作者实际收益的百分比吗?
  • 收益分享的SP核算价格,是current_median_history_price 还是市场价格?

收益分享功能没问题

然后经过专家级人物耐心细致的指点,大致搞明白了这个问题

其核心就是: 我看到的帖子金额,是收益分享的剩余金额

所以,就我的那个帖子而言:

  • 分给受益者(Beneficiaries):3.504 * 5 = 17.52 占了25% (5%*5)
  • 分给作者(Author): 3.504*15 = 52.56 占75% (100%-25% = 75%)
    分两部分发放, SP 26.28 , SBD 43.177
  • 分给点赞者(Curators): $20.64

一切没毛病,如果一定要找出毛病,那就是steemit UI上少显示了一部分内容,总奖励应该包含:

  • 点赞者 / Curators
  • 受益人 / Beneficiaries
  • 作者 / Curators

而STEEMIT UI上只显示了两项,造成我巨大的误解,也耽误了专家大量时间。😡

从代码上验证这个问题

尽管专家已经帮我找出了问题所在
但是今天还是粗略浏览了一下代码,看看是否真的如此

代码真的好复杂,吐血
发奖代码在process_comment_cashout()这个函数
大致就是做一些准备和判断工作,然后遍历每个Comment调用:
auto reward = cashout_comment_helper( ctx, comment );
所以这个就是为帖子发奖的代码啦: cashout_comment_helper()

其中我们需要知道是,comment.net_rshares 决定你的帖子有多少钱。
除去一些设置和初始化之类的:

这个就是帖子的总收益/代币tokens

代币分为作者的以及点赞者的,按比例分配

发放点赞者代币,但是呢,因为有些有早鸟惩罚,所以会剩一些,统统奖励给作者

这部分就是给受益人发放奖励啦
由此可见,它是以刨除点赞者收益以后的作者总收益为基础按比例发放。

最终给作者的收益(减掉了受益人部分),根据设置,按比例发放

通过这部分代码,我们得知:

  • 帖子的收益,除去其它一些因素,由comment.net_rshares决定
  • get_rshare_reward 根据系统因素以及comment设置(拒绝收益,最大收益等)计算帖子总应得代币
  • 总应得代币按比例分成作者以及点赞者代币
  • 点赞者代币发放的剩余部分(早鸟惩罚),增加给作者
  • 作者总应得代币(作者部分+早年惩罚剩余部分)按比例分给受益者(Beneficiaries)
  • 分给受益人以后的剩余部分,按照设置发放给作者

再回头看我在专家指点下对帖子收益分享功能的理解,没毛病。

另外,经过分析,我们回头看昨天提出的问题,答案已经不言而喻了。

STEEM 以及 STEEM UI 需要改进的地方

STEEM在计算和发放奖励后,会对帖子执行一些更新操作,比如加上发奖时间,以及分给点赞者和作者的实际收益等等。但是却没有加上给受益人的收益这一信息

而STEEMIT UI上,更是只显示了

  • 作者/Author收益
  • 点赞者 / Curators 收益

并且粗暴的把这两项加到一起,显示为帖子收益(总奖励)
这能不让人误会嘛,害我拿小算草本计算半天😡

所以建议如下:

  • 链上对结算后的Comment 加上
    beneficiaries_payout_value

  • UI上对结算的帖子,加上
    受益人 / Beneficiaries 收益

顺便补充一个最重要的结论: 收益分享功能不会倒搭钱的😭


感谢阅读 / Thank you for reading.
欢迎upvote、resteem以及 following me @oflyhigh 😎


This page is synchronized from the post: 关于收益分享功能理解的终极版(专家指点 & 代码核证)

Your browser is out-of-date!

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

×