Lição 2

什么是Gas成本?

欢迎回来!想必大家已经对gas有了基本的了解,并运行了基本的智能合约,现在我们将深入探讨gas成本这一概念,并指导大家完成以太坊中的基本gas操作。你将学会如何在Remix IDE中查看各个操作的gas成本。

基本的以太坊操作和Gas成本

运营成本

在以太坊中,每个操作都会产生一定的gas成本。一些常见的成本包括:

  • 基本成本:基本操作,如添加和设置变量。
  • 内存成本:在内存中存储或检索数据。
  • 存储成本:更新以太坊状态(如更新合约存储)。存储成本通常是最昂贵的。

了解常见的成本非常重要,因为许多gas优化策略即是用较便宜的操作代替较昂贵的操作。

在Remix中了解Gas成本

通过Remix,你可以轻松地了解我们的合约操作所消耗的gas。

步骤

  1. 静态分析:进入Remix中的Analysis选项卡(显微镜图标)。此工具将提供代码中的潜在问题和优化机会。

  2. 部署和运行:部署合约后(在第1课中已经执行),每次运行合约都将显示一个gas估值。当调用函数时,使用的gas将会在右下角的窗格中显示。

  3. 详细信息窗格:部署或运行函数后,单击交易日志(右下角)中的向下箭头,展开日志,查看交易的详细gas成本。

实践:了解gas消耗较多的操作

请看一个示例合约及其操作:

Solidity
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.9;

contract GasDemo {
    uint256 public count;
    mapping(address => uint256) public balances;

    function increment() public {
        count += 1;
    }

    function updateBalance(uint256 newBalance) public {
        balances[msg.sender] = newBalance;
    }
}
  1. 通过Remix在Goerli测试网上部署GasDemo合约。

  2. 多次运行increment函数。

  3. 在交易详情中查看使用的gas。

  4. 运行updateBalance函数,设置不同的余额。

  5. 再次查看使用的gas。

思考:

  • 哪个函数消耗的gas更多,为什么?(注意:每个函数附近都显示了预估的gas消耗
  • 更新映射与增加简单计数器在gas消耗上有何不同?

小结

现在,大家已经加深了对以太坊智能合约中gas的理解。我们通过Remix进行实践,掌握了不同操作如何影响交易的总gas成本。在下一章中,我们将深入探讨优化策略,学习如何让合约消耗较少的gas。

请坚持探索,不断尝试!

Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa o Gate Learn.
Catálogo
Lição 2

什么是Gas成本?

欢迎回来!想必大家已经对gas有了基本的了解,并运行了基本的智能合约,现在我们将深入探讨gas成本这一概念,并指导大家完成以太坊中的基本gas操作。你将学会如何在Remix IDE中查看各个操作的gas成本。

基本的以太坊操作和Gas成本

运营成本

在以太坊中,每个操作都会产生一定的gas成本。一些常见的成本包括:

  • 基本成本:基本操作,如添加和设置变量。
  • 内存成本:在内存中存储或检索数据。
  • 存储成本:更新以太坊状态(如更新合约存储)。存储成本通常是最昂贵的。

了解常见的成本非常重要,因为许多gas优化策略即是用较便宜的操作代替较昂贵的操作。

在Remix中了解Gas成本

通过Remix,你可以轻松地了解我们的合约操作所消耗的gas。

步骤

  1. 静态分析:进入Remix中的Analysis选项卡(显微镜图标)。此工具将提供代码中的潜在问题和优化机会。

  2. 部署和运行:部署合约后(在第1课中已经执行),每次运行合约都将显示一个gas估值。当调用函数时,使用的gas将会在右下角的窗格中显示。

  3. 详细信息窗格:部署或运行函数后,单击交易日志(右下角)中的向下箭头,展开日志,查看交易的详细gas成本。

实践:了解gas消耗较多的操作

请看一个示例合约及其操作:

Solidity
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.9;

contract GasDemo {
    uint256 public count;
    mapping(address => uint256) public balances;

    function increment() public {
        count += 1;
    }

    function updateBalance(uint256 newBalance) public {
        balances[msg.sender] = newBalance;
    }
}
  1. 通过Remix在Goerli测试网上部署GasDemo合约。

  2. 多次运行increment函数。

  3. 在交易详情中查看使用的gas。

  4. 运行updateBalance函数,设置不同的余额。

  5. 再次查看使用的gas。

思考:

  • 哪个函数消耗的gas更多,为什么?(注意:每个函数附近都显示了预估的gas消耗
  • 更新映射与增加简单计数器在gas消耗上有何不同?

小结

现在,大家已经加深了对以太坊智能合约中gas的理解。我们通过Remix进行实践,掌握了不同操作如何影响交易的总gas成本。在下一章中,我们将深入探讨优化策略,学习如何让合约消耗较少的gas。

请坚持探索,不断尝试!

Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa o Gate Learn.