调了半天的gasLimit,gasPrice都是什么?

BCChannel

国际儿童节,先祝各位大小朋友童心永驻。

今天我们要聊聊gas limit/gas price,大约要花费4分钟时间阅读,看完了可以:1. 了解交易报错的原因;2. 节省一点儿手续费。

我们知道比特币区块链中消耗的矿工费用是BTC,为了激励以太坊网络中的计算,在以太坊中产生了gas的概念,在以太坊区块链上执行写入操作都需要支付gas费用,以太坊定义了货币是1ETH, 且1 ETH=1e18 Wei。Wei是其中的最小额,在整个工作中,发送代币、调用合约都要支付gas,且以Wei作为单位来计算。

目前ETH消耗gas的单位Gwei

对应 1 Gwei=1e9 Wei

以太坊黄皮书还定义了gas消耗规则,让抽象的运算过程能够根据复杂程度对应找到消耗的gas数量。详见下图:

那么平时在以太坊上交易的gas price,gas limit都是什么意思?

简单说,gas price就是汽油单价,gas limit相当于发动一次汽车需要的最大汽油量。

再具体点的表达是:

gasPrice是以太坊内计算消耗1个gas对应多少Gwei的标准量,单位是Gwei

gasLimit是消耗gas的上限单位。在完成交易中最多使用多少个gas,默认标准的ETH转账是21000个单位的Gas。但是更复杂的代码写入需要消耗更多的gas limit,比如当你参与某个ICO需要把你的ETH写入他们的智能合约中,或者你希望提取ICO的代币到交易所的时候,就会比预定的21000 gas limit高很多,这是因为参与ICO的智能合约执行交易比普通的转账需要更复杂的计算和写入。gasLimit范围虽然可以调整,但是如果填写太少,会导致交易失败,就好比油价很高,但是你拿一个可乐瓶做油箱要跑100公里的路,还没有上高速车就没有油了,所以gasLimit不够矿工消耗会导致代码执行中断。尽管如此矿工还是会把劳务费gas收走的~

Gas used by Txn 是实际交易执行中使用的gas单位,一般也是21000。

Transaction (Tx) Fees= Gas used by Txn*gasPrice

下面我们到交易完成的明细中理解下:

计算得出:

Gas used by Txn=Gas Limit=21000

Actual Tx Cost=Gas used by Txn* Gas Price=21000* 8 Gwei=0.000168 Ether

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

右下图片放大显示,假设用户A急需快速完成交易,那么推荐设定Gas Price =23 Gwei,相当于他“插队”提前了,那么交易就会被矿工优先处理,平均2分钟执行完毕。

此外还有另一个节约gasPrice的参考网站https://etherscan.io/txs

下图点开了Etherscan最近完成的几笔交易,查看他们的gas price,再和以太坊钱包中的默认gas price做对比,这样能够在不牺牲交易速度的前提下花最少的交易费处理好订单。

工欲善其事必先利其器

希望今天的内容对大家有帮助!

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180601G1LAW400?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券