首页
学习
活动
专区
工具
TVP
发布

教大家在ico的时候如何设置Gas

社长昨天参加credits的ico,亲历了5次打包失败,突然发现原来out of gas是不退矿工费的,常在河边走,还是湿了鞋...

社长反思很久,作为一个已经比较了解区块链的老人来说都踩了这个坑(损失合计大概几百块的燃料费),那就发篇文给大家讲讲这个坑的原理,以免后边有粉丝一顿猛如虎的操作反而额外遭受不必要的损失。

以太坊网络转账ERC20代币,需要给矿工费或者说交易费,也就是俗称的燃料费。以下是gas相关的基本概念、逻辑,以及ico时gas设置需要注意的事项。

几个基本概念

Gas Limit : gas数量上限,也叫燃料数量上限

Gas Price :gas单价,也叫每单位燃料价格

Gas Used By Txn :实际使用的gas数量,也叫实际使用的燃料数量

Actual Tx Cost/Fee :实际成本,也叫燃料费

Gas Price的单位是 Gwei

1Gwei = 10^-9 Ether

1Ether = 10^9 Gwei

即1Ether = 10亿 Gwei

常规转账情况下

gas limit、gas price的大小,都可由我们自己设置,常规设置范围:

gas limit:100,000 - 200,000

gas price: 50 - 200 Gwei

两个公式

实际成本(燃料费)

Actual Tx Cost/Fee = Gas Used By Txn * Gas Price

最高成本(燃料费上限)

Limited Tx Cost/Fee = Gas Limit * Gas Price

为什么要有gas

广播、打包,都需要矿工付出算力,因此gas可看做矿工的劳动所得

避免无效或恶意性交易高密度地在网络里广播,致使网络拥堵

运行逻辑

一笔交易,广播到以太坊网络。每个矿工节点将它发送给其它节点,需要gas。接受该笔交易的矿工节点,把它打包到区块里,也需要gas

当gas数量充足、gas price合适的情况下,通常该笔交易能被足够多的节点接受、并打包进区块,从而更大概率被加到区块链总账簿里。交易成功

如果gas price太低,节点没有动力广播、打包该笔交易,容易导致交易失败

如果gas数量不足,交易可能因无法被广播到足够多的节点,从而交易失败

无论交易失败、成功,燃料费都要支付

如果实际使用的gas数量

燃料费是用钱包账户余额支付的,确保钱包里eth数量不少于燃料费上限

ICO时如何设置gas

对于火爆的ico,要想提高抢中几率,需要注意以下几点:

速度:提前做好准备,在规定的区块高度或开始时间时,最快速度抢。越早交易的,越可能被充分广播、打包进区块。速度,是第一优先原则

gas price的设置:高gas price会被矿工优先处理。价格,是第二优先原则

gas limit的设置:即使前两者做到了,但gas limit设置太低,会因gas数量不够用,无法成功。gas数量,是第三优先原则

并非任何时候,gas price、gas limit越高越好,尤其在速度不够快,导致很可能无法达成交易时,设置的越高,成本越高。交易失败,燃料费却照样要付

重要性上:速度 > gas price > gas limit

举例

以decentraland ico为例,是从区块4170700开始的。

成功的例子:速度够快,gas limit 和 gas price 设置没有太小

失败的例子:速度够快,但因gas limit设置太低,燃料不够用,交易失败

失败的例子:速度太慢,众筹已满。这种情况下,gas price、gas limit设置太高,反而会增加自己的成本,浪费了子弹。

以上就是昨天社长亲自踩完坑之后的分享,如果浓缩成一句话给大家的话那就是:

任何ico如果有建议的gas和gas limit,请务必按照他们的建议值来否则其他的gas大概率会打包失败,而打包失败的燃料费不退,不退,不退!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180219G0NKFF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券