zoukankan      html  css  js  c++  java
  • 勘误:EOS资源抵押退还

    关键字:勘误,delegatebw,undelegatebw,listbw,资源管理,抵押,解抵押,返还资源

    EOS中,资源抵押与解抵押是通过一对命令完成的:delegatebw,undelegatebw。

    准备

    首先我们准备两个账户,分别是test11111111(以下简称账号A)和test11111112(以下简称账号B),他们的余额均为10 SYS,资源情况均为1 SYS的cpu,1 SYS的net,1 SYS的内存容量。如下图所示。
    image
    image

    抵押

    下面我们让账号A给B分别抵押2 SYS cpu和2 SYS net资源。这时候我们再观察两个账户的变化情况。如下图所示。
    image
    image

    注意红圈标识出来的是发生变化的位置。所以此时我们可以说:
    账户A给B抵押资源共账户B使用,但这部分抵押仍旧属于账户A的资产,这个内容可以通过命令listbw来体现。
    image

    解抵押

    这时候我们再尝试通过undelegatebw命令将账户A的这部分资产从账户B中解除返还给账户A。此时注意undelegatebw命令的说明是:
    image
    注意receiver的确定是关键(这也是之前引起我失误的原因),现在是给账户A退款,结合上面listbw的结果,receiver应该确定为账户B。
    image
    执行成功以后,我们再来观察账户A和B的变化。
    image
    image

    下面这张截图中的账户B的变化很容易理解,由于上面我们执行了将账户B的资源退还给账户A,因此它的net和cpu资源均减少了1 SYS,数据核对成功。

    主要看账户A的变化,红色圆圈的内容是账户A得到了一笔2 SYS的抵押退款,但不是实时到账,需要一定时间才能合并到liquid字段,也就是余额字段。红框的内容就是解除抵押的具体信息,里面有解除抵押的具体时间,cpu和net的解除数量,总额。

    结论

    所以,书中介绍的自我抵押的内容进到staked字段是没问题的,但他人帮忙抵押的情况出现了谬误。他人抵押是可以返还的,注意receiver字段的赋值即可。

  • 相关阅读:
    Delphi中的构造函数的override的问题
    一个很初级的错误 Destructor忘记override导致内存泄露
    WPF 详解模板
    再说WCF Data Contract KnownTypeAttribute
    ADO.NET Data Service
    Using ADO.NET Data Service
    资源:Localization – 本地化
    Dynamic Resource – 动态资源
    应用开发之Linq和EF
    语法之多线程
  • 原文地址:https://www.cnblogs.com/Evsward/p/undelegatebw.html
Copyright © 2011-2022 走看看