Category: STEEM 区块链
我打算写几篇文章来分享这些年来我在STEEM区块链上的一些有趣玩法。我是在2016年8月20日首次注册STEEM账号 @justyy 的(至今已有8.2年),后来发现区块链真的很有趣,特别适合程序员,因为它开放、透明、强大并且充满自由。 我还有一个外号“行长”,这个称号源于我在STEEM上创建了第一个银行。最初,我的业务是收取存款并支付利息,后来逐渐扩展到了代币兑换服务等。存折腾,用爱发电,(扣掉每个月昂贵的服务器运维成本)基本不挣钱,就交个朋友.jpg 在2018年2月25日(至今6.7年)我成为了STEEM见证人/Witness,也就是出块打包的矿工。一路走来,从2020年3月18日左右开始进入全球前20名,并一直保持未掉出前20,甚至长期位居STEEM见证人排行榜的首位,目前排名第二。STEEM区块链采用的共识算法是DPOS,即 Delegated Proof of Stake / 委托权益证明算法。 今天我要分享的是今年8月1日左右我推出的一项服务。当时我在村里跑步,一边跑步一边构思。回家后,我当天加隔天写好了代码,测试完毕后上线。 SP租赁服务 在STEEM区块链上,有STEEM和SBD两种代币/Token,SBD(Steem Dollar)是锚定1美元的代币,而STEEM目前约值0.16美元。区块链上的代币主要用于激励,例如奖励矿工、点赞文章获得收益等。 STEEM可以锁定(Stake)成Steem Power(解锁需要4周)。锁定的能量越多,账号的权力越大,比如投票权和点赞能力。我的SP租赁服务的原理非常简单:用户先将利息(STEEM)转账到账号@rentsp,并在备注(MEMO)中注明租赁天数。程序会计算所需的SP并自动借给指定账号。查看当前的借款人。 这是预付利息的形式,用户先支付利息,区块链上没有退款功能,资金到账后不可逆转。当SP代理(租出)后,借款人仅在取消代理前拥有使用权。等到期后,程序会自动收回SP代理。这遵循STEEM区块链的规则(代码即法律,Code is Law),因此不必担心用户卷款跑路。 用户A将SP借给用户B,用户B仅拥有SP的使用权。用户A可以随时收回借出的SP,完全不必担心资金的丢失。这就好比用户A把一只会下蛋的母鸡借给用户B,用户B在租借期间只能获取母鸡下的蛋,而用户A随时可以收回这只母鸡。 由于STEEM目前没有智能合约,理论上我是可以卷款跑路的,但不值得为了些许利息而影响长期信用。我在STEEM上活跃多年,各项指标如声誉(Reputation)、见证人排名和STEEM POWER(可直接借出的资金)等都较强。 上线三个月来,该服务累计使用49次,总共收取利息XXXX个STEEM。没多少,用爱发电/折腾。这算不上是被动收入,因为每隔几天才会有一单,好在不需要太多的维护。 有兴趣的可以查看详情:STEEM区块链SP租赁服务 本文一共 890 个汉字, 你数一下对不对. …
去年上线了STEEM兑换波场USDT,今年又撸了STEEM兑换TRX,还有STEEM兑换BTS,两个月前有网友建议搞个STEEM兑换ETH,还有STEEM兑换BTC。我想着手头上有些ETH,所以就很快开撸测试了一下就上线了(点我访问这个DApp:STEEM兑换ETH)。 没想到还是挺受欢迎的,上线两个月,大约90笔兑换记录,流水大概91130个STEEM,兑换了10.49个ETH。在美国的朋友们这下方便可以把STEEM出金了。因为在美国,交易所好像不支持STEEM变现/出金,但是像BTC和ETH这种大币种在美国交易所(如 coinbase)应该都是支持的。 兑换工具并不是交易所 兑换工具并不是交易所,目前只是单方向的兑换,也许之后会弄一个ETH或其它币兑换到STEEM,不过感觉需求并不是太大。 交易所是有买单的卖单来匹配订单簿(Order Book),而兑换工具(Swap)是按照实时兑换比例来从自己提前设置好的钱包里兑换,也就是一个钱包收STEEM,另一个钱包根据比例转ETH。由于交易所暂时没有直接STEEM到ETH的配对,所以实际上这个兑换工具还是给予了一定的便利性。STEEM得先卖成USDT或者是BTC比特币,然后再买成ETH。 做STEEM兑换工具的初衷:作为STEEM排名前20主见证人(现在是暂时排名第一),为了STEEM的发展,STEEM出金方便也能带动STEEM社区的发展和吸引投资者进来! PS:据说之前搞交易所的Blocktrades由于不想被美国监管,现在也只是搞搞简单的兑换工具了。 STEEM-ETH兑换的简单步骤 使用过程很简单:就是把需要兑换的STEEM发到 @steem2eth 记得附言/MEMO 写上你的ETH钱包地址。然后等个几分钟就可以在ETH钱包地址查看你的币了。转帐兑换前请在STEEM兑换ETH页面查看当前以太网上Gas的费用,还有就是工具兑换钱包的ETH余额,如果余额不够,兑换的STEEM会被原如返回。使用前可以用页面上的估计按钮来估计一下能收到多少ETH。 然并卵,亏麻了 小打小闹,虽然设置了1%的手续费,但是由于STEEM和ETH并不是稳定币(stable coins),每天甚至是每分钟价格都会波动,所以有交易的时候,我即使及时的(最快几分钟/最慢一两天)发STEEM币到交易所,然后先兑换到USDT,再通过ETH/USDT交易对把ETH以太网币买回来。算上交易所交易手续费还有就是价格波动,其实并不赚钱,但主要就是为爱发电加上有个项目能折腾学习。折腾快乐,快乐是无价的。 对于另一个兑换工具STEEM-USDT,亏老了,因为之前支持SBD兑换,但SBD在交易所支持的少(HTX火币,币安Binance和MXC抹茶都不支持,小众交易所Iomony有但是没交易深度),而且API返回的数据波动比较大。我拿到SBD就只能在STEEM内部市场(market)换成STEEM才发到交易所,有一次有700刀左右的兑换,我至今挂着一个0.33卖STEEM的单才能回本,现在价格不到0.25,亏麻了。 正常来说,需要配置ETH和STEEM两边的池,然后通过两个方向的兑换进行动态的平衡,不过目前实在是没有精力,以后再说吧。 英文:Milestone: STEEM-TO-ETH Swap Total Over 10 ETH Swapped! 本文一共 1009 …
我在STEEM区块链上部署了ChatGPT机器人:系统设计: Steem区块链ChatGPT机器人,这个系统设计同时还跑了其它类型的机器人,原理就有一个读进程监听链上的操作,发现是相关的操作就把数据写到数据库中,然后由相关机器人的进程(比如ChatGPT)把数据再取出来,进行处理,然后再相应的写到数据库中的另一个表中。这里的数据库就类似中消息中间件 Message Queue,用来解耦不同的组件。 单点故障 Single Point of Failure,指得是系统中的一些零件如果损坏不能用了,整个系统也就变得不能用了。这里的读取进程就是单点故障,因为如果该进程崩溃了,再重新启用的时候也无法回溯过去区块链上的信息,这个进程实时监听链上的操作,如果错过了就是错过了。而这个系统设计其它的零件则没有这个问题,毕竟是处理数据库中的数据,进程崩溃会被自动重启,然后继续处理数据库中未被处理完的数据。 解决这个问题也不难,只要在不同的服务器上多跑几个读进程即可。不过这里需要保证数据库表里有唯一的限制,这样多台服务器在同时往同一数据库表格写数据的话只会有一条成功,而其它则会失败。 下面SQL给表格加个唯一的限制: alter table blockchain add unique key (block, ...); 英文:Avoid Single Point of Failures by Introducing Multiple Master Backup …
判断一个区块链是否靠谱有一个指标就是看链跑的时间久不久, 还有就是上线率/Uptime和宕机时间/Downtime, 有点类似计算服务器的上线时间. 不靠谱的链一般没几多久就停了(Halted). STEEM区块链不算新链了, 已经跑了有7年之久, 我很好奇STEEM链的上线时间和故障率, 本文就来计算一下. STEEM在过去因为链的BUG停过几次, 我记得有一次是STEEM在硬分叉的时候引起了新的资源计算模型, 但有BUG, 导致链停了, 虽然当时Steem Inc组织程序员紧急改BUG, 再号召见证人同时重启链, 不过那几天折腾过程中停了有2-3次吧. 比特币BTC据说到现在为止历史上一共停过两次. 创世纪块和时间 Steem Genesis Block and Time 每条区块链都有一个创世纪块, 也就是第一块, STEEM上的创世纪块是在 2016-03-24 16:05:00. 产生一块所需要的时间 …
前几天, 把ChatGPT整合到了STEEM区块链上, 但最初的设计存在缺陷. 我发现其它机器人命令(!bing, !thumbup, !price, !info) 同样也有问题, 所以就借此机会重新设计重构了一下代码和结构. 这个DApps (ChatGPT机器人) 是使用JS (Node)编写的, 并由pm2管理器托管运行在一台云服务器上(VPS Server). STEEM区块链ChatGPT DApps设计缺陷 原先的设计: 进程(Blockchain)监听STEEM区块链上所有的帖子, 把满足条件的评论(含有 !ask 命令)的操作入数据库. 进程(ask) 或其他命令从MySQL中获取相应的记录, 并立即处理它们, 然后在同一进程中同步地发布到STEEM区块链. 这里会有一个问题, 确实来说, 大量并发会有问题. …
前两天 STEEM帐号过100万SP了, 这个是帐号自身的 Steem Power, 并不包括代理的. 也刚好前不久, 帐号等级也正式过80级了(不过等级在STEEM区块链上并没有多大卵用). 玩STEEM已经有7年了(@justyy 注册时间2016年8月20日 18:36:21) 玩见证人(出块, 也称为 Block Producer 矿工)也有5年多了(从2018年2月25日 22:17:18). 见证人也暂时排名第一了! 在这个平台混得越久 终于感觉混成主人了, 至少从三个角度(见证人, 帐号SP, 等级)来看应该是大鲸了. 不过, 现在的STEEM可能没有很多人玩了(昨日黄花), 大部分还在玩的也是在撸币而已. 很多以前的大鲸鱼(Big Whale, 也就是STEEM区块链上SP比较多的帐号)也很多都不玩了. …
虽然现在在STEEMIT上转帐到交易所的时候如果没有填写 MEMO, 是会提示的, 但是有时候你手快, 可能把你的帐号地址给复制过去然后就点发送了, 这时候就悲剧了. 很久之前, 我误操作100 SBD到 @blocktrades 就是把MEMO填成帐号地址了, 幸运的是通过各方途径联系了官方, 几个小时内收到了退款. 但是别的交易所, 如 bittrex 可能就不是这么的幸运了, 转帐转错了有时候权当捐款了. 是不是每次转帐的时候都提心吊胆, 生怕转没了? 其实你只要懂一点程序, 完全可以通过程序的方式来转帐, 程序只要调通了第一次, 之后再执行出错的可能性几乎没有了. 比如, 我的自动转帐脚本如下 (Python) from steem …