是否应计算交易成本



我们目前正在为基于Solana区块链的加密货币支付网关构建去中心化钱包。从以太坊网络交易的背景来看,我们知道,如果你不想大吃一惊,计算交易中使用的天然气是必不可少的。

我们应该在索拉纳保留这个委员会吗?

在将交易发送到网络之前,我需要做什么吗?

我们知道这已经很长时间了,索拉纳的佣金=5000 Lamports用于正常交易

这个值是永久固定的吗??

var tx = new TransactionBuilder().
AddInstruction(SystemProgram.Transfer(sender, toAddress, LamportsAmount)).
SetRecentBlockHash(LastBlockHash.Result.Value.Blockhash).
SetFeePayer(sender).
Build(sender);
var firstSig = await rpcClient.SendTransactionAsync(tx);

起初,最大的计算成本被认为是在签名验证中,但随着时间的推移,我们注意到一些事务的运行成本更高,尤其是那些不容易并行的事务,并且在高活动点时网络确实会拥塞,这会造成糟糕的体验。

正因为如此,人们提出了许多解决这个问题的建议。以下是其中的一些:

  • 未使用的可写帐户的费用:https://github.com/solana-labs/solana/issues/21883
  • 拥堵期间更高的费用:https://github.com/solana-labs/solana/issues/21910
  • 基于计算单元对事务进行优先级排序:https://github.com/solana-labs/solana/issues/23207

还有更多。

也就是说,如果您需要检查费用,请始终使用getFeeForMessage端点:https://docs.solana.com/developing/clients/jsonrpc-api#getfeeformessage

这是索拉纳所有工具中使用的最佳实践。

最新更新