交易费用
在Conflux网络的核心空间中,交易由矿工处理,矿工为其服务收费。 这个费用激励矿工参与网络并保持其顺畅运行。 这些费用是用CFX支付的,并由交易发起者通过交易中的gas
, gasPrice
and storageLimit
字段指定。
交易中的燃气费
在Conflux中,交易的燃气费由两个关键字段确定:gas
and gasPrice
。
gas
: 该字段指定了交易可以消耗的最大计算能力。gasPrice
:表示您愿意支付的每单位计算能力。
实际的燃气成本计算为 gasCharged
乘以gasPrice
。 需要注意,gasCharged
不会超过 gas
字段设定的限制。
有关Conflux中燃气及其计算的更详细信息,请访问我们的 关于燃气的详细文档.。
如何设置gasPrice
字段
Conflux 共识不会为交易燃气价格设定限制,最低燃气价格取决于矿工的设置。 以下是由 Conflux 基金会支持的 Confura 公共 RPC 端点的最低燃气价格设置:
- Core space: 1 GDrip
- eSpace: 20 GDrip
此外,建议根据 Core space / eSpace RPC 返回值来设置燃气价格:
- core space:
cfx_gasPrice
- eSpace:
eth_gasPrice
提升交易速度
gasPrice
影响交易被包含在区块中的速度。 一般来说,gasPrice
越高, 交易被挖矿的速度就越快。 然而, 更高的gasPrice
也意味着更高的交易费用。
在网络拥堵的情况下,交易可能会在被挖矿并添加到区块链中时受到延迟。 在这种情 况下,建议提高gasPrice
以加快交易速度。 Scan右上角的燃气站可以查看网络上目前的gas价格情况。
将gasPrice
设置为 High 将获得最快的交易处理速度。 对于已发送的交易,可以增加gasPrice
并重新发送交易以替换先前的交易。
如何设置 gas
字段
对于常规的CFX转账,将gas设置为21,000即可。
对于合约交互,建议根据core space / espace RPC的返回值设置gas:
- Core space:
cfx_estimateGasAndCollateral
的gasLimit
字段 - eSpace:
eth_estimateGas
这些方法仿真执行交易,并返回了交易所使用的燃气的估计值。 事实上, 在大多数情况下, cfx_estimateGasAndCollateral
返回值gasUsed
是准确的, 但是不建议使用gasUsed
,有以下两个原因:
- 由于 EIP-150 ,将 gas 设置为实际的 gas 消耗量往往会导致交易失败。
- 该结果是基于仿真过程中的当前区块链状态,但实际执行状态可能会有所不同。
gasLimit
字段通常等于1.3 * gasUsed
。 这样可以确保交易的燃气上限足够,而任何多余的燃气费用都会被退还。
存储抵押
除了交易费用外,Conflux 网络还要求在交易过程中为占用新的存储空间或修改已有的存储空间的质押 CFX。 质押的 CFX 产生 4% 的年利息,这部分利息支付给矿工,以补贴他们的存储成本。 当占用的空间被释放或被他人修改时,质押的 CFX 将被返还。
storageLimit
字段描述了交易可以占用的存储空间的上限。 建议使用 cfx_estimateGasAndCollateral
返回值的storageCollaterized
字段作为 storageLimit
字段。
更多信息请参阅 存储。
发送交易时,发送方必须确保有足够的余额来支付 value + storageLimit * (10^18/1024) + gas * gasPrice
。 如果余额不足,交易将被节点拒绝。
如果指定的storageLimit
超过了交易实际占用的存储空间, 将不会产生额外费用,超出的部分将被退还。
如果交易是被赞助的, 发送方只需要确保有足够的资金支付价值成本即可。
当前的SDK提供了gas
, storageLimit
,和gasPrice
自动设置合理值的方法,但用户也可以手动指定这些数值。
常见问题解答
如果设置的gas
值过低会发生什么?
如果设置的gas值过低,交易可能无法执行成功。
如果设置的gas
值过高,会额外收取燃气费吗?
如果设置的 gas 值过高,多余的燃气将会被退还,但最多只能退还燃气限制的四分之一。 例如,如果交易的燃气限制为100,000,但实际执行期间只消耗了50,000,那么只会退还25,000的燃气费用。
如果storageLimit
设置太低会出现什么情况呢?
这将会导致交易执行失败。