是否应该计算交易成本?

Should transaction costs be calculated?

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

我们是否也应该在 Solana 保留此佣金?

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

我们知道已经很久了,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);

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

正因为如此,出现了很多处理这个问题的方案。以下是其中的一些:

还有更多。

综上所述,如果您需要检查费用,请始终使用 getFeeForMessage 端点:https://docs.solana.com/developing/clients/jsonrpc-api#getfeeformessage

这是所有 Solana 工具中使用的最佳实践。