想必STEEM HF20以来最让人又爱又憎的东西莫过于RC系统了(Resource Credit System),爱它是因为它的引进会防止STEEM网络被滥用,为STEEM的可持续发展铺平道路;恨它是因为它曾给我们很多人带来困扰,尤其是对于一个SP小户而言,这个困扰可能至今尚未消除。
(图源 :pexels.com)
为了搞明白RC系统到底是啥玩意,我准备去刻苦学习一下,请不要鄙视我用刻苦这个词,因为对于一个半吊子程序员,要搞明白这个复杂系统的那怕一小小丁点功能,其实也是很困难的。
闲话少叙,之前STEEM的带宽系统(bandwidth)中,用户有一个可用带宽概念,简单来讲,就是对于某个用户而言系统中有多少带宽可以被使用。在RC系统中也有一个类似的概念,它的名字叫做max_mana
。
以我的账户 @oflyhigh 为例,可以在steemd.com中查询到如下内容:
其中
max_mana 164,858,794,024,586
看起来好长一串数字(是不是代表我有好多资源可用😀),那么这个max_mana
是如何计算出来的呢?
通过阅读代码,我发现max_mana
使用如下代码获取:
mbparams.max_mana = get_maximum_rc( account, rc_account );
而get_maximum_rc
的代码如下:
Reveal spoiler
从中我们不难看出max_mana的计算规则
:
- 当前用户持有的vesting_shares
- 减去用户代理出去的vesting_shares
- 加上用户收到的vesting_shares代理
- 加上
max_rc_creation_adjustment
- 减去下次Powerdown要变现的vesting_shares
其它几项都好理解,但是max_rc_creation_adjustment
这个是什么鬼?通过阅读代码我们不难发现,这个值是在创建RC账户时就被确定的了create_rc_account
Reveal spoiler
Reveal spoiler
在create_rc_account
的实现中
Reveal spoiler
通过上述分析,不难得出结论,max_rc_creation_adjustment
就是注册RC账户时注册费(STEEM形式)按当时状况计算的vesting_shares
。(这个也解释了为何有的用户持有0SP,但是RC还不少,因为注册费高呀)
所以max_mana的计算规则
简单来讲就是:
用户vests - 代理出去的vests + 收到代理的vests + 注册费vests + 下次power down vests
(图源 :pexels.com)
所以如果RC不够用,如何提升max_mana
的方法就显而易见了(当然了,你RC够用就随便喽)
- Power up SP
- 减少对外代理
- 避免Power Down
感謝o哥的解說。我初步看sp有三位數字,就和沒有限制錯不多。
Posted using Partiko iOS
Thank you for using @sleepagent bid bot serves.
This post has received a 100 % upvote from @sleepagent.
谢谢O哥~ 你知道rc的恢复速度是怎么计算了吗?感觉不是线性的
应该是和之前的BANDWIDTH以及Voting Power类似的算法
回头我确认一下
的确,这几天我弄个小号玩机器人,玩了几下RC不够用了。
什么时候这RC能代理能买卖?
自己玩的话,代理SP就好啦:)
感谢O哥"刻苦"学习为我们分析RC系统。感觉我还是没有听明白,呵呵。
哈哈,是我讲得不好😳
好好了解了, 但解決的方法不容易...
两个字:
充钱
我記得我有加上充錢這句,但好像沒上傳😂
Posted using Partiko iOS
干货满满!
Posted using Partiko Android
过奖啦:)
辛苦了! 👍 谢谢分享!
这个 RC 是防止垃圾泛滥的,但也限制了大家在Steem平台上的交互体验。一日一文,多次点赞是没问题,但是,发读文阅评就它就猛吃 RC。😢
good job