Substrate Balances模块主要提供处理账户和余额的功能。本文主要整理了Balances模块的以下内容: 主要术语 实现的功能 实现的trait SRML中的示例 主要术语 具体涉及到的术语如下: 最少存款或押金(Existential Deposit):创建或开设帐户所需的最低余额。这样可以防止“粉尘帐户”填满存储。 总发行量(Total Issuance):系统中存在的单位总数。 回收帐户(Reaping an account):通过重置其nonce值来删除帐户的行为,在其余额置为零后发生。 可用余额(Free Balance):余额中未储备的部分。可用余额是大多数操作中唯一重要的余额。当该余额低于最少存款时,该帐户的大多数功能将被删除。当它和储备余额都被删除时,该帐户被视为已失效。 储备余额(Reserved Balance):储备余额仍属于帐户持有者,但被暂停。储备余额仍然可以削减,但前提是必须已削减了所有的可用余额。如果储备余额低于最少存款,则将删除所有相关功能。当它和可用余额都被删除时,则该帐户被视为已失效。 任何账户的可用余额或储备余额都不得在0和最少存款(不包括)之间。如果发生这种情况,则表明该模块存在错误或存储的原始突发错误。 不平衡(Imbalance):一些资金借贷不相等或相反的会计情况(比如,总发行额与帐户余额之间的差额)。导致不平衡的函数将返回Imbalance trait的对象,该对象可以在 Runtime 逻辑中进行管理。如果只是减少不平衡,应该自动维护所有记账,例如总发行。 锁定(Lock):是指冻结帐户指定数量的可用余额,直到指定的区块号。对同一笔资金进行多个锁定操作,它们是“重叠”而不是“堆积”。 授予(Vesting):类似于锁定,这是另一个独立的流动性限制,随时间线性减少。 实现的功能 在pallet_balances::Module中提供的接口有: transfer,将一些流动的可用余额转入另一个帐户。 #[weight = SimpleDispatchInfo::FixedNormal(1_000_000)] set_balance,设置给定帐户的余额,此调用的origin必须是root。 #[weight = SimpleDispatchInfo::FixedOperational(50_000)] 具体功能包括: 获取并设置可用余额。 检索总余额,储备余额和可用余额。 将储备的余额返还至现有的受益人帐户。 在帐户之间转移余额(未储备时)。 削减帐户余额。 帐户创建和删除。 管理总发行量。 设置和管理锁定。 实现的trait 提供并实现的trait包括frame_support::traits中的: Currency:处理可替代资产(fungible assets)系统的功能。 ReservableCurrency:处理可以从帐户中储备资产的功能。 LockableCurrency:处理允许流动性限制的帐户的功能。 Imbalance:用于处理系统中的总发行量与帐户余额之间不平衡的功能。创建新资金(例如奖励)或销毁一些资金(例如系统费用)时必须使用。 以及frame_system中的: IsDeadAccount:检测程序,用于说明给定帐户是否未使用。 SRML中的示例 来自SRML中的示例,展示了如何在自定义模块中使用Balances模块。 // bin/node/runtime/src/lib.rs Contract模块使用Currency trait来处理Gas的支付,其类型继承自Currency。 // frame/contracts/src/lib.rs Staking模块使用LockableCurrency trait来锁定stash帐户的资金。 // frame/staking/src/lib.rs 希望可以帮助大家更好地理解和使用 Balances 模块进行 Runtime 开发。 参考文档:https://substrate.dev/rustdocs/pre-v2.0-3e65111/pallet_balances/index.html 点击【阅读原文】可查看知乎专栏更多内容。 —- 编译者/作者:知行之录 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
如何使用SubstrateBalances模块?
2020-03-08 知行之录 来源:区块链网络
- 上一篇:韩国BTC合法化市场为何不领情?
- 下一篇:3.8最新比特币/以太坊/柚子等行情分析
LOADING...
相关阅读:
- 和东北大哥聊密码学终于懂了2020-07-31
- 恶意软件使用Dogecoin区块链进行隐藏的加密货币挖矿2020-07-31
- 区块链3.0大潮,国产去中心化稳定币的推出至关重要2020-07-31
- 携手共进,战略助推,在paydex的世界中一切皆有可能2020-07-31
- 7月31日夜盘BTC行情分析2020-07-31