Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ethereum 为什么Txn在同一智能合约中调用同一函数时使用的气体不同?;_Ethereum - Fatal编程技术网

Ethereum 为什么Txn在同一智能合约中调用同一函数时使用的气体不同?;

Ethereum 为什么Txn在同一智能合约中调用同一函数时使用的气体不同?;,ethereum,Ethereum,我在etherscan.io中看到了一些事务。但我发现,即使在同一智能合约中调用相同的函数,txn使用的气体也不同。我试图发现可能是输入数据导致了它。真的吗?每次调用合约中需要在块中更改状态的函数时,都会消耗x量的气体,因此,每次在需要状态更改的合同中调用不同或相同的函数时,都会看到x数量的气体与其税务Id一起被扣除。这就是为什么在同一个函数上会看到不同的Txn 有关天然气和交易的更多信息,请参见下面的链接 输入数据可能不同,但智能合约中存储的状态也可能不同(并发生变化,例如循环迭代的次数)。此

我在etherscan.io中看到了一些事务。但我发现,即使在同一智能合约中调用相同的函数,txn使用的气体也不同。我试图发现可能是输入数据导致了它。真的吗?

每次调用合约中需要在块中更改状态的函数时,都会消耗x量的气体,因此,每次在需要状态更改的合同中调用不同或相同的函数时,都会看到x数量的气体与其税务Id一起被扣除。这就是为什么在同一个函数上会看到不同的Txn


有关天然气和交易的更多信息,请参见下面的链接

输入数据可能不同,但智能合约中存储的状态也可能不同(并发生变化,例如循环迭代的次数)。此外,如果将非零数据存储在先前持有零数据的状态变量中,或者反之亦然,则会改变气体使用量。例如,切换布尔变量的简单函数不会在任何两个连续调用中使用相同的气体量


请查看未来类似的问题

我是以太坊的新手,那么我们如何了解事务中函数的状态呢?谢谢