ETH gas、gas price、gas limit详解

什么是gas


gas是“燃料”的意思,在以太坊区块链上实现了一个EVM(以太坊虚拟机)的代码运行环境,在链上执行写入操作时,网络中的每个全节点都会进行相同的计算并存储相同的值,这种执行的消耗是昂贵的,为了促使大家将能在链下进行的运算都不放到链上进行,也为了奖励矿工,因此在链上每执行一个写入操作时,都需要支付一定的费用,用gas为单位来计数,每个在链上可以执行的命令都设置了一个消耗的gas值,例:PUSH操作需要消耗3个gas,一次转账一般要消耗21000gas,gas使用ETH来支付。

注意:无论您执行的命令是成功还是失败,都需要支付计算费用,即使失败,节点也验证并执行了您的交易(计算),因此必须和成功执行支付一样的费用

什么是gas limit


每个区块有gas limit,即单个区块允许的最多gas总量,以此可以用来决定单个区块中能打包多少笔交易。

我们每一次交易或合约调用都要设置一个gas limit,如果该次操作所使用的gas数量小于或等于您所设置的gas limit,则会被执行,但如果gas总消耗量超过gas limit,所有的操作都会被重置,但费用依旧会被收取。在执行中实际消耗的gas值总和叫gas used,没有使用完的gas会退还到原账号。

如果您尝试将一个会使用超过当前区块gas limit的交易打包,则会被网络拒绝,会反馈“below gas limit”

什么是gas price


在发起交易或合约调用时,我们可以自己设置gas的价格,即gas price,一般以GWei(1 ETH = 1000000000 GWei)为单位。通过gas price可以节省矿工费用,但也会减慢矿工打包的速度,矿工会优先打包gas price设置高的交易,如果您想加快转账,您可以把gas price设置得更高,这样您就可以插队靠前。

在定义gas price时候,推荐浏览https://ethgasstation.info/ 这里能看到以太坊区块链上最近完成的交易对应的消耗单价、记录时间、等待时间、手续费均价等。根据自身交易需求,我们可以参考右下Safelow/Standard/Fast三个速度对应的gasPrice。

总结

1、gas limit、gas price由自己设定
2、一次交易或调用实际需要消耗的gas(gas used)由该次交易或调用过程中执行的命令决定;
3、实际支付的费用 = gas used * gas price,gas used 必须小于或等于gas limit。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这篇文章主要讲解以太坊的基本原理,对技术感兴趣的朋友可以看看。 翻译作者:许莉 原文地址:How does Eth...
    蓝肥仔阅读 1,793评论 0 15
  • 简介 不管你们知不知道以太坊(Ethereum blockchain)是什么,但是你们大概都听说过以太坊。最近在新...
    Lilymoana阅读 3,902评论 1 22
  • ETH拥堵对于批量发送交易带来的困扰 对于ETH应用开发者而言,ETH网络的拥堵状况,交易手续费都是在设计开发时必...
    寂寞小生阅读 396评论 0 0
  • 这个世界是什么样子的?我们又是什么样子的?从小到大,我们从懵懵懂懂,到好奇所有,再到叛逆轻狂,然后嚷嚷着要改变世界...
    Riemann_Jin阅读 649评论 0 10
  • 重温经典。我一般都不喜欢看两遍,但是经典(值得百看不厌),上一次看都不记得是什么时候,剧情也只记得大概,看完《为爱...
    暖暖0_0阅读 2,704评论 2 1