以太坊和比特币的不同之处,以太坊引入了gas的概念,gas的目的是限制执行交易所需的工作量,同时为执行支付费用。
以太坊引用了gas机制,gas翻译过来的意思就是汽油,把以太坊比作一台汽车,当汽车没有了,汽车停下来了,在以太坊中每一个操作都需要消耗一定量的gas,gas消耗完,程序就可以停下来,以太坊在发起每一笔交易时,都会预设一定量的gas limit,如果在执行过程中,gas消耗完了,操作就失败了。gas是以太坊世界的燃料,它决定了以太坊网络生态系统的正常运行。
gas是以太坊虚拟机(EVM)内部流通货币,以太坊虚拟机用gas来对交易打包,智能合约执行等操作收取费用。以太坊gas可以说是以太坊生态系统的命脉。
每个参与到网络的节点,都会运行EVM,作为区块验证协议的一部分。每个网络中的全节点,都会进行相同的计算并储存相同的值。
这也就是我们常说的,区块链的分布式存储。
合约执行会在所有节点中被多次重复,而且任何人都可以发布执行合约。
这导致了一个结果:合约执行的消耗非常昂贵。
为了防止以太坊网络发生蓄意攻击或滥用的现象,以太坊协议规定交易或合约调用的每个运算步骤,都需要收费。
这笔费用以Gas作为单位计数,也就是俗称的燃料。
1
以太坊交易的基本概念
"交易"这个术语,在传统经济学领域里,一般被理解为“物物兑换”或者是“钱物兑换”。
在以太坊里,最直观的理解就是:从一个账户发送到区块链上的另一个账户,包含消息和签名的数据包。
包含如下内容:
发送者的签名
接收的地址
转移的数字货币数量等内容
这些内容,我们可以通过查看转账交易,能得到相应信息,后文将说明查看方法。
ETH 有非常多的计量单位:Finney,Szabo,Gwei,Mwei,Kwei 和 Wei,其中人们常用的单位是Gwei。
Wei是最小的 ETH 单位。
详细换算表见下图。
汇率:1Ether=10^18wei
具体的汇率查询,可以查看以下网站:
https://jin10086.github.io/etherconverter/
计算交易费用前,我们需要先了解两个名词的含义:
GasLimit值
这代表了这个交易的执行最多被允许使用的计算步骤,一般使用默认值即可,无需调整。
GasPrice值
代表了交易发送者愿意支付的gas费用,可以自行设置。支付的费用越多,打包速度越高。
2
交易费用如何计算
计算交易费用有一个公式:Gas= Gas limit(限制)* Gas Price(价格)
以下图为例,如果想要普通和低速,设置1.5-1.6的gas费就可以了,如果想要高速在2分钟之内被打包,那需要给到近2倍的价格—3。
每次交易之前,可以查询以下网站来确认需要设置的Gasprice:
https://ethgasstation.info/
任何交易都需要消耗gas,但是交易失败会扣除较少的费用。
例如下面这比交易,设置的是153Gwei,Gas limit40000
若交易成功,最大扣除费用是153*40000=0.062Ether。
3
TIPS
1.如何在metamask设置gas
在交易确认时可以修改gas,如下图。
2.如果遇到gas price 给的太少,一直没有打包,可以重新提交吗。
在以太坊的交易里,每个帐户的交易会按顺序确认,前一笔交易没有确认,第二笔是一定不会确认的。
比如我另一个帐号转账,第一次的gas price给的0.1,一直没有确认,我又发送了一笔gas price为5的交易,这时候第二笔交易并不能更快确认,同时因为第一笔交易的gas price给的太少,这两笔交易可能会一直等待。
如果这个时候你用的是metamask钱包发送的交易,可以把第一笔交易的gas price改成合理的值,这样就可以更快的确认。
论哪种转态都会扣除一定的燃油费,在实际支付的燃油费中可以查看。
上图是每笔交易数据的图片详细解析,参照这个说明,你可以了解到任意一笔转账的具体信息。
D1DApp社群
DApp项目分析|DApp入门教学
官网:www.d1dapp.net
领取专属 10元无门槛券
私享最新 技术干货