Blockchain 自由余额、保留余额、锁定余额、归属余额等之间有什么区别。。。?

Blockchain 自由余额、保留余额、锁定余额、归属余额等之间有什么区别。。。?,blockchain,substrate,Blockchain,Substrate,在基板区块链开发框架中,框架平衡托盘参考了4种不同的平衡: 自由余额 储备余额 锁定余额 归属余额 这些不同类型的天平之间有什么区别,它们何时在基板中使用,我应该如何在我自己的运行时模块中使用它们?天平模块是一种全面的链上货币,具有提供许多不同功能的灵活性 在余额模块的存储中,只有两个余额直接存储: 自由余额 储备余额 这两个余额的总和用于计算账户的余额 额外的逻辑层放在自由平衡之上,以创建抽象,如: 锁定余额 归属余额 因此,让我们浏览一下由balances模块管理的不同类型的余额 自

在基板区块链开发框架中,框架平衡托盘参考了4种不同的平衡:

  • 自由余额
  • 储备余额
  • 锁定余额
  • 归属余额

这些不同类型的天平之间有什么区别,它们何时在基板中使用,我应该如何在我自己的运行时模块中使用它们?

天平模块是一种全面的链上货币,具有提供许多不同功能的灵活性

在余额模块的存储中,只有两个余额直接存储:

  • 自由余额
  • 储备余额
  • 这两个余额的总和用于计算账户的余额

    额外的逻辑层放在自由平衡之上,以创建抽象,如:

    • 锁定余额
    • 归属余额
    因此,让我们浏览一下由balances模块管理的不同类型的余额

    自由余额 参考文件部分:

    自由余额:余额中未保留的部分。对于大多数业务来说,自由余额是唯一重要的余额。当该余额低于现有存款时,账户的大部分功能将被删除。当它和保留余额都被删除时,则该帐户被称为已死亡

    每当启动
    转账
    取款
    、或
    准备金
    时,都会使用账户的自由余额。在这些操作成功完成之前,使用一些
    取款原因调用,并检查取款是否不会干扰一些行权余额锁定余额

    这不会阻止像斜杠这样的其他操作的发生,它不关心自由平衡上的任何抽象

    归属余额 账户余额是对其自由余额的抽象。更具体地说,拥有归属余额的账户不能从低于该金额的自由余额中支出。归属余额不关心提款原因

    amount_spendable = free_balance - vesting_balance
    
    因此,即使一个账户在查询自由余额时看起来有很多流动资金可供使用,但账户归属余额可以防止这些资金被提取

    归属平衡只能在基质链的起源处设置,并且对于
    长度
    的块,归属平衡为零的点,从一些
    起始块
    开始,每个块以线性速率减少。在自由余额被大幅削减的情况下,归属余额可以大于自由余额。在这些情况下,
    可消费金额
    饱和为零

    锁定余额 账户的锁定余额是对其自由余额的另一种抽象。在这种情况下,由于某种原因被锁定的是某个金额

    不同的退出理由是:

    • 交易支付:为了支付(系统)交易费用
    • 转让:为了转让所有权
    • 储备:为以后的返回或遣返保留一些资金
    • 费用:为了支付一些其他(更高级别)的费用
    因此,如果一个帐户通过
    取款原因::转账
    锁定了100个单位,那么它就不能进行自由余额低于100个单位的转账。但是,此帐户将能够执行另一项操作,如
    保留
    ,使其自由余额低于100个单位。锁可能有多个相关原因,在这种情况下,这些资金只能用于其他原因

    可以在一个帐户上放置多个不同的锁,但这些锁彼此重叠,而不是堆叠。这意味着,如果一个帐户有3个100个单位的锁,那么该帐户可以出于任何原因将其资金花费到100个单位,此时锁将开始发挥作用

    锁定余额也与归属余额重叠,因为这两项检查是独立进行的,但两项检查都必须通过
    以确保可以提取
    才能成功

    储备余额 本节:

    预留余额:预留余额仍属于账户持有人,但已暂停。保留余额仍然可以被削减,但只有在所有自由余额都被削减之后。如果保留余额低于现有存款,则其和任何相关功能将被删除。当它和自由余额都被删除时,账户就被称为死亡

    相对而言,保留余额比自由余额更简单,因为它没有抽象。从用户处保留的资金不应直接被余额模块之外的任何其他逻辑所触及。相反,资金应该首先
    无保留
    ,然后在
    自由余额
    中修改

    保留余额与锁定余额 保留余额和锁定余额看似相似,但本质不同。锁定余额在锁定标识符、锁定资金的原因以及锁定时间方面具有标识。保留余额没有这些特征,并且在运行时没有明确的行动来取消这些资金的保留时是不可触及的

    此外,有自由平衡与没有自由平衡可能会产生影响。例如,如果您对帐户的完全自由余额设置了锁定,它仍将有自由余额,并且不会调用
    OnFreeBalanceZero
    。但是,如果您
    保留
    所有资金,则自由余额将降至现有存款以下,并且对于已执行的模块,将触发
    OnFreeBalanceZero