Image Credit: here
今天,不小心给一些YY股东发了两篇利息,比如 @angerlina6688 美女,
24 minutes ago Transfer 0.009 SBD to angelina6688 Thank you for supporting @justyy ! Your 70.02 SP gives you daily interests of 0.009 SBD (5% APR) - (2017-12-29): 1 STEEM = 3.233 SBD
24 minutes ago Transfer 0.009 SBD to angelina6688 Thank you for supporting @justyy ! Your 70.02 SP gives you daily interests of 0.009 SBD (5% APR) - (2017-12-29): 1 STEEM = 3.233 SBD
就算行长给大家的新年礼物!
原因
每天利息都是用 crontab 定时在凌晨00:02分的时候用程序自动发的(然后会在 01:02, 02:02 ... 每天前6个小时内再次检查补发),已经很好的运行101天了,以下是从日表 得到的数据:
YY银行一共运行了: 101 天。
YY银行一共有: 107 位股东(包括已经离开的)。
YY银行一共支付了: 222.28 SBD 的利息。
平均每天YY银行需支付: 2.20 SBD 的利息。
平均每周YY银行需支付: 15.41 SBD 的利息。
平均每月YY银行需支付: 66.02 SBD 的利息。
今天发两次的情况说来也真是有意思:
- 我记错时间了,当00:01的时候我发现利息没有发出,我以为程序挂掉了,其实程序还没开始跑呢。
- 于是我在00:01将近00:02的时候手动跑程序发利息。
- 结果在00:02分的时候有一段时间两个同样的程序都在发利息,所以有一部分是重复发的。
怎么样判断已经发过了?
我用了以下两个技巧:
fname = id + "_" + today + ".txt"
if os.path.isfile(fname):
print("transferred today already.")
else:
if steem.transfer(id, amount=x, asset='SBD', memo=interest, account='justyy') != None:
print("transfered!")
touch(fname)
两个程序都会先发完才做标记,碰巧发利息的时候 steem.transfer
是比较耗时的(需要广播到STEEM区块链上),所以两个程序就发了两次。
当然可以把 touch(fname)
做标记移到 steem.transfer
前,也就是先标记,然后再去发,不过以前试过,一旦标记上但是偶尔发不成功的话,那么在1:02, 2:02 等第二次第三次机会发利息就会以为已经发成功了。
这次就算YY银行发糖果,这个程序如果一个时候只跑一个的情况下鲁棒性还是挺强的,这次分叉从实际上证明了可能存在的问题。
AD 一波,最近SBD涨到8块钱了,SBD比SP值钱多了,所以你把钱存在YY银行是很划算的,YY银行吃的是草(借的SP),挤的是奶啊(值钱的SBD), 每日发 SBD利息,从不间断,提前祝YY股东们圣诞快乐,新年快乐,股东们都在2018里赚大钱,实现财务自由啊!
通过 SP 代理工具 成为 YY银行股东,好处多多。只要代理大于10 SP给 @justyy 即可自动成为YY股东。
SteemIt 教程、机器人、在线工具和API接口
SteemIt Tutorials, Robots, Tools and APIs