一个区块里包含的内容 这是一个区块里的固有内容,在交易部分,有 237 笔转账和 39 笔合约内部交易,如果具体查看交易就可以看到更详细的 Gas 费花销。也可以看到燃料限制为 12493113,文章开头提到的 EIP-3382 中,将每个块的 Gas 限制限制在 12500000,就是这个部分。这样,每个块里拿到的奖励总和会比较可控。 关于 ETH1.0 链,有一个每个操作码的 Gas 费计算,我们截取了其中价格较高的部分,供读者参考。操作码最终会决定了链的执行和资源的使用。例如,一个基本的思路是,假如创建合约。成本计算如下:
其中:
大家可以对以下的操作码对号入座。 以太坊 1.0 链的操作码对应的 gas 值消耗 据以上的介绍,我们可以得到的基本理解是,Gas 费是因为使用以太坊的链上资源产生的,计算越多,Gas 越高,在智能合约合约操作里,每个单独的步骤都需要支付 Gas。另外,补充一点,如果发送者把 Gas 设置的很高,矿工会优先执行交易,因为矿工可以选择优先打包某些交易。 21 个与 Gas 费息息相关的 EIP接下来我们就可以详细看一下关于 Gas 的 EIP 提案。提案大约根据时间先后排列。 EIP-5: 调整 RETURN 和 CALL 的 Gas 用量此 EIP 使得调用 RETURN 字符串和其他动态大小的数组的函数成为可能。当前,当从以太坊虚拟机内部调用另一个合约 / 功能时,必须预先指定输出的大小。还必须为未写入的内存支付费用,这使得返回动态大小的数据既昂贵又不灵活,以至于实际上无法使用。此 EIP 中提出的解决方案是仅对 CALL 返回时实际写入的内存支付。 EIP-150:大量 IO 操作的 Gas 成本变化
|