以太坊中的燃料价格(gas prize)和燃料限制(gas limit)

燃料
燃料(gas)是以太坊网络中的一个重要概念。
在一次消息发送(与比特币不同,以太坊中消息不一定是交易)中,消息被矿工打包进区块并传递,燃料则作为支付给矿工的费用。
燃料以以太币(Ether)计价,这也是以太坊中以太币的用途。
燃料价格和燃料限制
在一次发送消息中,需要填写燃料价格(gas
prize)和燃料限制(gas limit)两个字段(见下图),这两个数字应该怎么填写呢?
https://ws1/large/3e51bb39ly1fo4qbtjgvkj20a00eg3zs.jpgprize)和燃料限制(gas
燃料价格
燃料价格代表每单位燃料的费用。矿工会优先将燃料价格较高的消息打包进区块中并发送。
由于以太坊的网络是波动的,燃料价格也是变化的。
当前网络的燃料价格可以在https://ethgasstation.info/网站中查询到,其中,
Gas Price Std是标准的价格,Gas Price
SafeLow是能安全发送的最低价格,如果对发送速度没有要求的话,可以使用最低价格。
当燃料价格过低时:
信息会被延后打包,甚至不会被打包发送
当燃料价格过高时:
过高的燃料价格仍然会被全部支付给矿工,因此相当于多交了交易手续费
燃料限制
燃料限制限制一个消息到达接收者的最大燃料数。在MetaMak中,燃料限制会被自动估算,一般来说不需要修改。
燃料限制主要用于限制一个消息的执行步数。因为以太坊可以看做一个虚拟机,上面可以运行图灵完备的计算机语言,燃料限制可以在一定程度上防止通过语言对网络的攻击。
例如,如果运行一段无限循环的代码,这段代码最终会因为燃料耗尽(到达燃料限制)而停止运行。
当燃料限制过低时:
消息在燃料耗尽后会停止转发,因此无法到达接收者那里。初始的消息会被返还给发送者,而燃料费则会全部扣除。
所以交易中燃料限制不能填写得过低,否则相当于交易失败,仍然要扣除燃料限制数量的手续费。
当燃料限制过高时:
信息在到达接收者后,多余的燃料费会被返还给发送者。