你在这里。看看这个问题与其他知识怎样相连。
选择节点前往页面 · 展开后可留在地图中阅读
一个问题
Ethereum Gas:失败为何也消耗费用
区分执行工作量、转账金额与交易费用。
Gas 衡量执行工作量,不等于正在转账的金额。即使一次合约调用没有向收款人发送 ETH,节点执行了计算,仍可能消耗 Gas。
一次失败的预订
假设合约检查门票余量后,拒绝了预订。调用回滚,会撤销应用状态的修改,却不会让已经执行的检查消失。因此,一笔已经被纳入区块、执行失败的交易,仍可能产生费用。
执行费用取决于实际消耗的 Gas 与每单位 Gas 的价格。Gas limit 限制允许消耗的工作量,并不保证调用成功。Ethereum 的费用包含协议基础费与优先费。应用需要估算工作量和费用设置,不能把转账金额当作执行预算。
比较 Circle Arc 的 USDC Gas时,应分别问:用什么资产支付执行费用,费用怎样计算?同样是 EVM 调用,不意味着费用资产和计费规则相同。
来源与延伸阅读
检查一下理解
调用回滚是否意味着没有消耗 Gas?
不是。撤销状态修改不会抹去已经发生的计算。
沿着学习路径继续
- 理解 Ethereum 执行与结算第 4 / 11 步
- 从授权到结算,理解 Base第 3 / 8 步