以太坊中一次交易要消耗多少Gas值

211 阅读1分钟

你需要为一笔交易支付多少 ether ?

你需要支付 gas spent * gas price 这么多的 ether, 其中:

  • gas 计算单元的单位
  • gas spent 是一笔交易中总共消耗的 gas 数量
  • gas price 是你愿意为每个gas支付多少 ether 

支付更高gas price的交易将被优先打包到区块中。

每花完的gas会被退回到用户的账户中。

Gas Limit

那么你最多能花费多少gas呢,这儿有两个方面的限制:

  • gas limit (你希望你的交易使用多少gas,这是你自己设定的,但是如果比所需的要少的话会导致交易失败,所有的修改会被回滚,但是gas不会退还给你)
  • block gas limit (一个区块中的gas上限,这是由整个网络来设定的)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

contract Gas {
    uint public i = 0;

    // 交易完成前如果你发送的gas被全部使用完的话,交易会失败
    // 所有的交易状态会被回滚
    // 花掉的gas也不会回退
    function forever() public {
        // 这里的循环会花掉所有的gas
        // 然后该交易会失败
        while (true) {
            i += 1;
        }
    }
}