Namada 上的费用 (Fees on Namada)

为了解决Namada区块空间需求的市场,费用与交易相结合。为了使任何Namada交易被视为有效,必须支付正确的相应费用。确切的费用由用户设置,并且必须大于或等于由治理设置的最低 gas-price ,该价格包含在创世纪文件的gas_cost下。


如何支付费用(How fees are paid)

当明确声明时,通过--gas-payer标志支付燃气费。如果没有指定--gas-payer标志,则通过--signing-keys标志中的第一个键支付燃气费。

这意味着在交易中

namada client transfer \
  --source my-new-acc \
  --target validator-1 \
  --token NAM \
  --amount 10 \
  --signing-keys keysha

key keysha关联的账户将被要求支付费用。这意味着尽管账户accountant可能有正的NAM余额,但keysha需要有关联的NAM以支付交易费用。

用户还可以指定一个--gas-payer标志以指定不同的账户来支付费用。这在签署交易的账户没有足够的NAM支付费用的情况下很有用。例如,如果keysha的余额为5 NAM,但accountant的余额为100 NAM,则以下交易将是有效的:

namada client transfer \
  --source my-new-acc \
  --target validator-1 \
  --token NAM \
  --amount 10 \
  --signing-keys keysha \
  --gas-payer keysha2

(假设keysha2存在并且在用户的钱包中)

为了测试网目的,我们建议使用水龙头来为交易费用提供NAM。


如何计算费用(How fees are calculated)

交易的费用是通过将gas-limit乘以gas price来计算的。用户可以指定--gas-limit--gas-price。如果两者都没有指定,将使用默认的gas limit和最低gas price。任何交易的默认gas limit当前设置为20,000

最低气体价格设置在创世纪文件的gas_cost下。


如何设置燃气价格和燃气限制 (How to set the gas price and gas limit)

建议根据正在进行的交易来设置gas-limit。为了估算特定交易的gas-limit,应提供--dry-run-wrapper参数。这意味着该交易已经被模拟,但尚未发送到分类账。

例如,以下命令将模拟转账交易,并返回所用的燃气:

namadac transfer \
  --source my-new-acc \
  --target validator-1 \
  --token NAM \
  --amount 10 \
  --signing-keys keysha \
  --gas-payer keysha2 \
  --dry-run-wrapper

将输出类似于以下内容的结果:

Dry-run result: Transaction is valid. Gas used: 1785;

这意味着我们可以合理地用2000的gas-limit进行此转账交易。

因此,在进行转账时,我们可以如下所示指定gas-limit

namadac transfer \
  --source my-new-acc \
  --target validator-1 \
  --token NAM \
  --amount 10 \
  --signing-keys keysha \
  --gas-payer keysha2 \
  --gas-limit 2000

如果由于某种原因,我们想支付更高的燃气费,我们也可以如下所示指定:

namadac transfer \
  --source my-new-acc \
  --target validator-1 \
  --token NAM \
  --amount 10 \
  --signing-keys keysha \
  --gas-payer keysha2 \
  --gas-limit 2000 \
  --gas-price 0.01

这将激励验证者优先考虑那些具有较低燃气价格的交易。


使用MASP中的令牌支付费用 (Paying fees with tokens in the MASP)

还可以使用MASP支付费用。这样做的目的是确保即使用户在其透明余额中没有NAM,他们仍然可以在链上进行透明交易。这对于用户来说是将资产最大化保留在MASP中的另一个激励。

为了使用MASP支付费用,用户必须指定--gas-spending-key标志,并将其设置为钱包中的spending key的别名。这意味着费用将从spending key的隐蔽余额中扣除,并在通过--gas-payer支付之前解除到--gas-payer(或--signing-keys中的第一个key对应的地址)的透明余额。

例如,如果用户在他们的钱包中有一个spending key名为spending-key-1,并且他们想使用MASP支付交易费用,他们会运行以下命令:

namadac transfer \
  --source keysha \
  --target address-b \
  --token OSMO \
  --amount 10 \
  --gas-payer keysha \
  --gas-spending-key spending-key-1

在此示例中,keysha可能只在他们的透明余额中有OSMO余额,但spending-key-1可能在他们的隐蔽余额中有正的NAM余额。在这种情况下,NAM将被解除到keysha的透明余额中,然后用于支付交易费用。


使用一次性燃气付款人 (Using a disposable gas payer)

还可以使用一次性燃气付款人支付交易费用。这在用户不想透露--gas-payer身份的情况下很有用。为了使用一次性燃气付款人,用户必须包括--disposable-gas-payer标志,并且还必须指定一个--gas-spending-key。这意味着费用将从--gas-spending-key的隐蔽余额中扣除,并在由临时地址支付之前解除到临时透明地址的透明余额。

例如,如果用户在他们的钱包中有一个spending key名为spending-key-1,并且他们想使用一次性地址支付交易费用,他们会运行以下命令:

namadac transfer \
  --source keysha \
  --target address-b \
  --token OSMO \
  --amount 10 \
  --gas-spending-key spending-key-1 \
  --disposable-gas-payer

Last updated