1. 什么是gas?
- gas是“燃料”的意思。在以太坊区块链上实现了一个EVM(以太坊虚拟机)的代码运行环境,在链上执行写入操作时,网络中的每个全节点都会进行相同的计算并存储相同的值。
- 这种执行的消耗是昂贵的,为了促使大家将能在链下进行的运算都不放到链上进行,也为了奖励矿工,在链上每执行一个写入操作时,都需要支付一定的费用,用gas为单位来计数。
- 每个在链上可以执行的命令都设置了一个消耗的gas值,例:
PUSH操作需要消耗3个gas,一次转账一般要消耗21000 gas,gas使用ether来支付。 - 1 ether = 1 x 10^18 wei = 1 x 10^9 Gwei 。
注意:无论您执行的命令是成功还是失败,都需要支付计算费用,即使失败,节点也验证并执行了您的交易(计算),因此必须和成功执行支付一样的费用。
Gas Price就是你愿意为一个单位的Gas出多少ether,一般用Gwei作单位。Gas Price越高,就表示交易中每运算一步,会支付更多的ether。- 通过
gas price可以节省矿工费用,但也会减慢矿工打包的速度。因为,矿工会优先打包gas price设置高的交易,如果您想加快转账,您可以把gas price设置得更高,这样您就可以插队靠前。 - 以太坊的交易手续费为:
TxFee = gas * gas Price,单位Gwei。 一次转账一般要消耗21000 gas,如果你设置的gas Price = 1000000000wei = 1Gwei,则此次转账的交易手续费为:TxFee = 21000 Gwei = 0.000021 ether。- A账户欲向B账户转账
4 ether,则要求A账户至少要有4 + 0.000021 = 4. 000021 ethrer。
最后值得一提的是
Gas Price越高,你提交的交易会越快被矿工接纳。 但通常人们都不愿多支付手续费, 那么究竟应该将Gas Price设置为多少,才可以保证在能接受的时间内,让交易被确认到区域链上呢?
我们可以为交易定义gas price,具体的值可以参考 ETH gas station 。这里能看到以太坊区块链上最近完成的交易对应的消耗单价、记录时间、等待时间、手续费均价等。根据自身交易需求,我们可以参考右下Safelow/Standard/Fast三个速度对应的gasPrice。
- 为了能让交易更快地被执行,我们可以在发起交易时设置
gas和gasPrice,还可以设置noce,设置方法如下:
<span style="color:#000000"><code class="language-javascript">eth<span style="color:#999999">.</span><span style="color:#61aeee">sendTransaction</span><span style="color:#999999">(</span><span style="color:#999999">{</span>
<span style="color:#c678dd">from</span><span style="color:#999999">:</span> <span style="color:#98c379">0x4fd9555dd1309e7a2a356ea7e92c1b41cb7bb144</span><span style="color:#999999">,</span>
to<span style="color:#999999">:</span> <span style="color:#98c379">0xf7deba629960e4f31f1aba61927f6f1e966c4462</span><span style="color:#999999">,</span>
value<span style="color:#999999">:</span> web3<span style="color:#999999">.</span><span style="color:#61aeee">toWei</span><span style="color:#999999">(</span><span style="color:#98c379">1</span><span style="color:#999999">,</span> <span style="color:#669900">"ether"&l



被折叠的 条评论
为什么被折叠?



