为什么进行交易时 Total Issuance(余额托盘)会下降?

Why does Total Issuance (balances pallet) go down when making a transaction?

所以我开始建立连锁店的目的是 会有固定数量的令牌,而我这样做的方法是在创世配置中配置一个 endowed_account: Alice 和一定数量的令牌。 Alice所以恰好也是唯一的验证者,她也是唯一运行节点。当我尝试发送一些代币时,比如从 Alice 发送 10 个单位给 Bob,Bob 得到了全部金额,但总发行量下降了,大概是因为费用金额。就像 Alice 最初有 100 个,然后将 10 个发送给 Bob,区块浏览器中的总发行量显示大约 99.999 个单位。

我的直觉是 pub type TotalIssuance<T: Config<I>, I: 'static = ()> = StorageValue<_, T::Balance, ValueQuery>; 计算存在存款以上所有账户的免费和保留余额之和,然后存储该值,这就是为什么我们看不到“费用”被计入它,并且“费用”被有效地烧掉了。然而,这是我的猜测,我不确定。我最初认为 TotalIssuance 是流通代币数量的硬性上限,但真的如此吗?

除此之外,我不明白,既然 Alice 是这条链中唯一的验证者和区块生产者,那么费用应该由她承担,因为通常区块奖励会分配给区块生产者?然而,事实并非如此。

我对转账功能的第二个疑问是文件说,如果转账电话使余额低于现有存款,该账户将被“收割”。那是什么意思?他们还提供了另一种选择 transfer_keep_alive 引用:

works the same way as transfer, but has an additional check that the transfer will not kill the origin account.

我无法理解这些术语,因为我之前读到的内容说所有有效的 pub/private 密钥对都是有效的“帐户”。那么杀戮和收获在这个语境中是什么意思呢?

关于总供应量的变化,我建议阅读这篇关于失衡的文章,它直接解决了你的要求。 https://crates.parity.io/frame_support/traits/tokens/imbalance/trait.Imbalance.html

至于奖励,如果你 运行 只是一个简单的开发网络,没有内置的质押或提名,我认为可以公平地假设那些 运行 节点。 我可以看到越“基本”fee payment uses withdrawals. In the implementation for withdraw 我们可以看到它 returns 如果成功的话会出现不平衡,回到我的第一段。

关于存在性存款,在下面的常见问题解答页面中已经有一篇关于它的非常好的文章https://support.polkadot.network/support/solutions/articles/65000168651-what-is-the-existential-deposit-希望它能解决您的疑问,如果没有,我很乐意编辑此回复以添加一些信息。

但我想补充一点,收割一次只发生在一个网络上,这意味着如果一个账户被收割了中继链的状态,并不意味着失去其他 paras 上的余额对于同一个键。