我有一个智能契约,它将字符串映射到字符串值,并将其存储在Blockchain上。我想分析一下交易中使用的气体。一次执行消耗92,843个气体(https://rinkeby.etherscan.io/tx/0x04ac9ef0403d0d9362779de3f15d25942e861270aa53d4896692f68bc06150aa),另一次只消耗43,043个气体(https://rinkeby.etherscan.io/tx/0x103693f2d548da60e14470ced0825f5a5263a9e618658e1812d3c84c29571f4a)。这是怎么发生的?
另外:交易成本为21.000燃气,32字节的存储操作为5.000燃气。因为我存储了2 64字节字符串,即21.000 + 2*5.000 + 2*5.000 = 41.000。2.043气体的其余部分从哪里来?
为了缩小范围,我还上传了一个更简单的契约,其中只存储了一个uint值:
pragma solidity ^0.5.7;
contract storeNumber{
uint test;
function setValue(uint number) public{
test = number;
}
}事务https://rinkeby.etherscan.io/tx/0x5327f3a2a74f2589c7f8e323a698f78c17b249cf5090cec74d11e7456cb0ec38消耗26684气体- 21.000 + 5.000对我来说是显而易见的,但是那684额外的气体呢?
发布于 2019-05-01 09:57:08
只有将以太转到外部拥有的账户时,才适用2.1万个燃气单位的费用.
当将以太转移到合同时,它将花费这21,000个燃气单位加上处理转移的功能的执行成本(也称为后备功能)。
调用(任何其他)合同职能的费用取决于这一具体职能的执行情况,而且必然高于21 000个燃气单位。
https://ethereum.stackexchange.com/questions/70285
复制相似问题