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.