Solana 区块链上的程序执行始于交易。区块链由计算机系统网络组成,该网络可复制并在整个网络中分发交易的数字账本。链上的每个区块都包含许多交易,每个参与者的账本都会收到区块链上发生的每笔新交易的副本。
将所有这些数据存储在单独的帐户中并不免费,而且会产生一些费用。在本文中,我们将指导您了解 Solana 上的租金概念以及如何计算租金。
Solana 的租金是多少?
租金是每个 Solana 帐户为在区块链上存储数据而支付的费用,以 Lamport 计价,即用于小额支付的最小 SOL 单位。租金费用根据帐户存储的大小计算。租金越高,存储的数据量就越大。
由于Solana 节点集群必须主动维护这些数据,因此需要支付基于时间和空间的费用才能使账户及其数据在区块链上保持活跃。所有 Solana 账户都必须保持足够高的 Lamport 余额,才能获得租金豁免并留在 Solana 区块链上。垃圾收集器会将包含少量 Lamport 的账户从网络中删除。
什么时候收取租金?
租金通常在每个时期结束时收取。时期是领先验证者仍然能够生成交易区块的时间段。Solana Explorer包含最近和之前时期的数据。当交易引用账户时,也会支付租金。
在每个时段结束时,账户收取的租金的一部分将被销毁,其余部分将支付给投票账户。如果账户中没有足够的钱来支付租金,账户将被取消分配,数据将被删除。同样重要的是要记住,新账户必须是免租金的。
租金也非常重要,因为网络上的验证者必须在内存中保留此状态的工作副本;网络会针对此资源消耗收取基于时间和空间的费用。这是因为 Solana 上的帐户可能具有所有者控制的状态 (Account::data),该状态与帐户余额 (Account::lampors) 不同。
如何计算 Solana 计划的租金?
使用Solana CLI中的 Solana rent 命令可以简单地估算租金成本。您可以输入账户大小(以字节为单位)来查看每字节、每纪元的租金以及账户免租所需的最低金额。
根据租金制度,账户具有当前纪元或当前纪元 + 1 的Account::rent 纪元,并且租金为一个纪元的时间。
如果帐户处于免税制度,则帐户::rent 纪元将简单地调整为当前纪元。
如果帐户不免除,则使用Rent::due()来确定此帐户欠多少租金。此计算基于下一个纪元与 Account::rent 纪元之间的差异。这些步骤将向您展示如何计算 Solana 程序的租金价格。
步骤 1:创建新程序
首先,导航到您的终端并使用 cargo 创建一个新文件夹,这是我们的主文件存储的地方。
打开 src/main 并替换此处的代码片段
第二步:计算租金成本
文件的大小应为 906 字节,我们可以通过简单运行来计算租金:
您应该看到以下内容:
最后,没有用于租金扣除的匹配交易,因为租金的收取是根据协议级账户修改进行的,例如向验证者的租金分配。
因此,租金收取在很大程度上是不可见的,只能通过最近的交易或账户地址前缀指定的时间来隐式观察到。
如何兑换 Solana 存储费
要收回 Solana 存储费,开发人员和日常 Solana 用户可以关闭帐户以收回存储费。赎回 Solana 租金的最简单方法是使用消费者友好型工具(如Sol Incinerator (https://sol-incinerator.com/))来关闭钱包中未使用的程序帐户。
结论
目前租金成本是在创世时设定的,但未来计划变为动态的,以反映底层硬件存储的当前成本。因此,人们普遍认为,随着技术的进步和硬件成本的下降,租金成本也会下降。