MIT:科普 | 读懂以太坊上的 Gas、GasLimit、GasPrice_LIMIT币

Gas是什么?

Gas是存在于以太坊EVM内部,是计算工作量的计量单位。其作为以太坊网络中的燃料,为以太坊网络生态的发展运作提供动力。正如汽油对于汽车的作用,Gas对于以太坊用户和开发者来说,必不可少。

Gas一方面用于以太坊矿工打包区块的奖励;另一方面,其存在提高了恶意交易的门槛,可以更好的维护以太坊网络的正常运转。

在以太坊系统底层,为每一个规定操作和合约方法都确定了Gas数量消耗,交易过程中的每个运算步骤都需要消耗Gas。比如:部署NEST预言机报价合约的用户需要支付一定的Gas费,去执行这笔交易,而Gas就是以太坊系统向用户收取的手续费。使用以太坊网络时必须设置消耗Gas的最大值,当Gas消耗完或者智能合约逻辑执行完,就会停止执行该合约。在以太坊系统内,Gas需要换算成ETH来进行支付。

提示:无论用户发起的交易是否打包成功,都要支付Gas费用;这就好比您在开车回家的路上,开了一半没油了一样,即使没成功到家,但消耗的汽油确实已经消耗了,所以也要为之买单。

GasLimit又是什么?

GasLimit是以太坊用户愿意为成功执行某笔交易逻辑所支付的最大Gas数量。

如果一笔交易的GasLimit设置过低,不能使交易逻辑完整执行,系统将会提示“outofgas”,交易会失败。这笔交易依然会被打包到区块中,交易中所携带的以太坊资产会自动退回,但Gas费用依旧会被收取,该费用作为奖励发放给打包这个区块的矿工。

如果该笔交易所使用的Gas数量小于或等于您所设置的GasLimit,则会被打包成功。在这笔交易执行中所实际消耗的Gas总量为GasUsed,没有使用完的Gas会退还到交易发起地址。

请注意,我们这里所说的GasLimit指的是一笔交易的Gas上限。在整个以太坊发展过程中,也有一个GasLimit值比较重要也经常被提及,那就是一个区块的GasLimit,即单个以太坊区块可执行交易的Gas总和上限。

每个区块在打包的时候都会确定当前区块内所有交易的GasLimit总量,以此来确定该区块能打包的交易数量,所以矿工在打包每笔交易的时候都会判断当前的Gas量够不够打包当前这笔交易。如果你将一个会超过当前区块GasLimit的交易打包,会被以太坊网络拒绝,系统反馈为“belowgaslimit”。在经过以太坊1.x多次升级之后,目前一个以太坊区块的GasLimit值为1200万Gas。

Etherscan?GasPrice数据

单个Gas的价格:GasPrice

GasPrice是用户愿意为每个Gas支付的价格,单位是Gwei。

1ETH=1,000,000,000Gwei

以太坊矿工除了获得挖矿区块奖励外,总是希望区块里面包含更多的Gas费;所以,矿池在打包交易的时候,优先打包支付矿工费更多的交易。

一笔交易的矿工费=GasPrice?*?GasUsed

因此,GasPrice设置的越高,交易越先被打包进区块,越先被确认;如果GasPrice设置的过低,交易会长时间处于pending状态,排队等待被矿工打包。所以,在以太坊网络发生拥堵的时候,如果我们想加快交易速度,就需要大幅度提高交易的GasPrice数值,让矿工优先打包我们的交易。

以上,是有关以太坊网络中Gas、GasLimit、GasPrice参数的定义和关系。如果你想更加直接的感知区块链技术和智能合约,那么赶快在以太坊链上部署自己的智能合约吧,或者加入NEST价格预言机网络,成为报价矿工,参与预言机报价。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:0ms0-4:198ms