关键字:勘误,delegatebw,undelegatebw,listbw,资源管理,抵押,解抵押,返还资源
EOS中,资源抵押与解抵押是通过一对命令完成的:delegatebw,undelegatebw。
首先我们准备两个账户,分别是test11111111(以下简称账号A)和test11111112(以下简称账号B),他们的余额均为10 SYS,资源情况均为1 SYS的cpu,1 SYS的net,1 SYS的内存容量。如下图所示。
下面我们让账号A给B分别抵押2 SYS cpu和2 SYS net资源。这时候我们再观察两个账户的变化情况。如下图所示。
注意红圈标识出来的是发生变化的位置。所以此时我们可以说: 账户A给B抵押资源共账户B使用,但这部分抵押仍旧属于账户A的资产,这个内容可以通过命令listbw来体现。
这时候我们再尝试通过undelegatebw命令将账户A的这部分资产从账户B中解除返还给账户A。此时注意undelegatebw命令的说明是:
注意receiver的确定是关键(这也是之前引起我失误的原因),现在是给账户A退款,结合上面listbw的结果,receiver应该确定为账户B。
执行成功以后,我们再来观察账户A和B的变化。
下面这张截图中的账户B的变化很容易理解,由于上面我们执行了将账户B的资源退还给账户A,因此它的net和cpu资源均减少了1 SYS,数据核对成功。
主要看账户A的变化,红色圆圈的内容是账户A得到了一笔2 SYS的抵押退款,但不是实时到账,需要一定时间才能合并到liquid字段,也就是余额字段。红框的内容就是解除抵押的具体信息,里面有解除抵押的具体时间,cpu和net的解除数量,总额。
所以,书中介绍的自我抵押的内容进到staked字段是没问题的,但他人帮忙抵押的情况出现了谬误。他人抵押是可以返还的,注意receiver字段的赋值即可。