以太坊交易节省手续费的方法,一般人我不告诉他

    我们知道eth和代币转账交易都是需要一些手续费的,去年年底ICO疯狂的时候尤其是以太猫盛行的时候,以太网络拥堵的很,手续费也水涨船高,imtoken等钱包也相应的提高的交易费以增加交易成交的速度, 曾经到过一个ico最低100人民币的程度。为了节省手续费,我们肯定得先知道手续费是怎么计算的。

了解以太坊转账费用


    以太坊在区块链上实现了一个运行环境---以太坊虚拟机(EVM)。网络中的节点都会运行EVM,并在EVM上执行交易等程序,这些程序的执行是需要消耗资源的。因而系统会从交易发起者收取一部分费用给矿工,以激励大家勤勉工作。按常理说来,这个费用肯定要跟工作量有关, 这个工作量由EVM中执行的代码决定的,我们称之为gas。代码由各种基础指令构成,每条指令根据其消耗定义出了一个gas值,所有指令的gas之和就是交易需要消耗的gas. 同时交易有轻重缓急之分,有些发起者希望尽快处理,有些发起者对处理时间没什么要求。从这个角度出发,提出了gasPrice的概念,即单位工作(gas)用户愿意付出的价格。价格越高,矿工就越原因帮你执行,自然就越快被处理掉。然后,最终的转账手续费是gas*gasPrice。同时有些合约代码不够严谨或者有漏洞或者就是恶意程序,在出问题的时候可能会消耗非常高的gas, 会给用户带来巨额损失,因而又提出了gasLimit的概念,即最多让消耗多少gas(执行多少代码),一旦消耗的gas超过gasLimit, 矿工就会停止执行程序。这样哪怕出现问题了,也最多消耗gasLimit这么多gas

imtoken钱包转账交易参数实例

软件自动配置的油费价格gasPrice是10 gwei



我们通过高级选项自定义gasPrice





点击下一步会显示手续费及其构成,可以看到gasPrice自定义成功了


     

如何节省手续费

    前面的介绍可知,手续费fee = gas*gasPrice,而一个固定的程序消耗的gas是固定的,所以要节约手续费就只能通过降低gasPrice。Imtoken钱包老版本中,交易的默认gasPrice固定为10gWei, 在去年ICO高峰期时,默认gasPrice去抢ICO几乎没有可能 ,然后一些用户会调高矿工费用(费用)以让交易快速成交抢得ICO。但是又掉入另外一个坑,调高矿工费用并不会更改gasLimit, 而默认的gasLimit又偏低,这导致一些高gas的ICO交易在执行过程中中止,不仅交易没成交,还扣掉了手续费。gasPrice当然是越低越好,但是也不能太低,太低就可能成交不了,这也不是我们想要。那具体应该设置多低的gasPrice呢?参考最近成交记录的gasPrice是一个很好的方式。进入https://etherscan.io/txs,点击最近成交的几笔交易,查看他们的gasPrice




看到没,最近的交易3 Gwei就可以成交,相比imtoken的默认gasPrice=10,可以降低70%的交易费. 当然对于抢几秒钟这种交易,还是乖乖的设置大一点的gasPrice.相对没那么赶却也希望快速成交的交易,该策略很有用。

总结

    对于一笔具体转账,gas是固定的,gasPrice和gasLimit是可调的。gasPrice影响交易速度,gasPrice越大,交易处理速度越快,过低会让交易没法成交,但是这种不成交不会产生费用。gasLimit只是一个限制,不影响交易的成本,但是过低的gasLimit会让交易中止进而交易失败,并会产生gasLimit*gasPrice的手续费。因而gasLimit可以设置的大一些,没用掉的会返回给用户的。gasLimit设置的过大的唯一后果是如果程序异常就会效果过多的交易费。

/********************************
* 本文来自CSDN博主"爱踢门"
* 转载请标明出处:http://blog.csdn.net/itleaks
******************************************/

阅读更多

扫码向博主提问

ITleaks

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • Android系统
  • Linux内核
  • 区块链
  • AI人工智能
  • OpenGLES
去开通我的Chat快问
个人分类: 区块链
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭