在以太坊中,每个操作都会产生一定的gas成本。一些常见的成本包括:
了解常见的成本非常重要,因为许多gas优化策略即是用较便宜的操作代替较昂贵的操作。
通过Remix,你可以轻松地了解我们的合约操作所消耗的gas。
静态分析:进入Remix中的Analysis
选项卡(显微镜图标)。此工具将提供代码中的潜在问题和优化机会。
部署和运行:部署合约后(在第1课中已经执行),每次运行合约都将显示一个gas估值。当调用函数时,使用的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;
}
}
通过Remix在Goerli测试网上部署GasDemo
合约。
多次运行increment
函数。
在交易详情中查看使用的gas。
运行updateBalance
函数,设置不同的余额。
再次查看使用的gas。
思考:
现在,大家已经加深了对以太坊智能合约中gas的理解。我们通过Remix进行实践,掌握了不同操作如何影响交易的总gas成本。在下一章中,我们将深入探讨优化策略,学习如何让合约消耗较少的gas。
请坚持探索,不断尝试!
在以太坊中,每个操作都会产生一定的gas成本。一些常见的成本包括:
了解常见的成本非常重要,因为许多gas优化策略即是用较便宜的操作代替较昂贵的操作。
通过Remix,你可以轻松地了解我们的合约操作所消耗的gas。
静态分析:进入Remix中的Analysis
选项卡(显微镜图标)。此工具将提供代码中的潜在问题和优化机会。
部署和运行:部署合约后(在第1课中已经执行),每次运行合约都将显示一个gas估值。当调用函数时,使用的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;
}
}
通过Remix在Goerli测试网上部署GasDemo
合约。
多次运行increment
函数。
在交易详情中查看使用的gas。
运行updateBalance
函数,设置不同的余额。
再次查看使用的gas。
思考:
现在,大家已经加深了对以太坊智能合约中gas的理解。我们通过Remix进行实践,掌握了不同操作如何影响交易的总gas成本。在下一章中,我们将深入探讨优化策略,学习如何让合约消耗较少的gas。
请坚持探索,不断尝试!