Conflux交易Gas费科普

Spread the love

Conflux 用户在使用钱包(Fluent)或 SDK 发送交易时,经常会看到 gasFee(燃气费), gas(燃气上限)gasPrice(燃气价格) 那这些概念的具体含义是什么,又该如何合理的设置 gas 和 gasPrice,本文将会为你做详细讲解。

GasFee

现实世界中我们去银行办理转账业务的时候通常需要支付一定的手续费,在区块链世界(比特币,以太坊,Conflux)中发送交易也是如此,gasFee 即是交易发送的手续费, 通常手续费需要使用区块链的原生代币来支付,比如在 Conflux 发送交易,需要使用 CFX 来支付交易手续费(燃气费)。

为什么要支付手续费

众所周知区块链是一个去中心化账本,而账本的维护工作是由矿工来完成的。而矿工存储数据,参与出块(计算哈希)是有一定成本的。为了激励矿工积极参与维护账本,并保护网络的安全,区块链共识系统在设计时即包含了对矿工的奖励机制,而交易手续费即是矿工的奖励之一,会被支付给参与出块的矿工。该机制可以保证整个去中心化网络的持久健康发展。

另外手续费机制也可以防止滥发交易,提高区块链网络资源的有效利用。

gas 燃气

gas 按字面意思来看是燃气,汽油。汽车燃烧汽油来提供动力来完成行驶和移动。汽车行驶的距离越远,所消耗的汽油越多。EVM 区块链世界中借用了该概念来用于表示交易执行所需付出工作量的多少,所以 Gas是一个单位,用于测量执行某些操作所需的计算量。

更详细的来讲,Conflux 的所有交易都是由 EVM 来完成执行的,包括普通的 CFX 转账以及智能合约方法调用。而这些操作最终执行时,会被编译为一个个 OPCode 来被执行,不同的 OPCode 执行所需要的工作量也不同,具体各 Opcode 执行所花费燃气量可参看 https://ethereum.org/en/developers/docs/evm/opcodes/

通常普通 CFX 转账交易消耗的 gas 为 21000, 智能合约交互交易所需 gas 通常比较多,为几万到几十万不等,跟合约执行的复杂程度有关。

gas 上限

构造交易时, gas 字段非常重要,该字段的本身含义是本笔交易执行所能消耗的 燃气上限

交易 gas 的正确填写非常重要,如果设置的 gas 上限比实际执行所需燃气量小的话,交易会执行失败。如果 gas 上限设置过大,则有可能会导致支付比实际所需更多的燃气费

在 Conflux 网络单笔交易的最大燃气上限为 1500w, 该机制保证了交易不会无限制占用 EVM 计算资源。