0x07 题外篇☞ Gas Price vs Gas Limit
基本知识
当我们想利用(以太坊)Ethereum区块链做交易(包括:转账,Smart Contract智能合约互动时),我们就需要支付费用给区块链网络上的Miner矿工帮助确认交易记录。
这就像我们生活之中(你需要转钱给你在日本的朋友,你需要支付手续费给银行帮你做转账。)
在区块链上,每一個矿工都利用Ethereum Virtual Machine(以太虚拟机)执行相同的程式码和维护区块链网络。
(以太坊)Ethereum 的 EVM(Ethereum Virtual Machine 以太虚拟机)是用Wei來作单位,而不是用Ether!
1 Ether = 1,000,000,000,000,000,000 Wei 就是 1^18
1 Gwei = 1,000,000,000 Wei
附上 Ether <> Wei 转换表 – https://www.myetherwallet.com/helpers.html
当我们利用(以太坊)Ethereum区块链帮我们做简单转账(转账这一個交易动作会叫所有Miner矿工在EVM执行一系列程式码)
每一行程式码在EVM(Ethereum Virtual Machine 虚拟机器)执行运算都会有Cost费用。Cost是利用Gas单位去计算。
例如:
- ADD 这一個运算(将二個数值加上),EVM要求3 Gas费用
- 转账是要求21,000 GAS费用 或 以上
附上Ethereum Yellow PaperExcel表说明了每一個运算需要多少Gas.
Gas Costs from Yellow Paper — EIP-150 Revision (1e18248 – 2017-04-12)
大家常常利用https://myetherwallet.com应该也会留意到 Gas Limit & Gas Price
Gas Limit – 就是说你愿意最多给多少Gas去完成这一個交易(包括:执行智能合约Execute Smart Contract,转账)。
Gas Price – 就是你愿意支付多少Ether给(以太坊)Ethereum区块链Miner矿工帮你执行这一笔交易。
怎样估计每一個交易所有Gas费用呢?
Transaction Fees交易费用 = 实际用到Gas Limit * Gas Price
师Etherscan – Tx Example
从上图例子看到 ,这一個交易使用90,000 Gas Limit & 20Gwei Gas Price,而整個交易手续费只需要 0.00042 Ether 。但是90,000 Gas Limit 只用了 21,000 Gas,余下的Gas就会退回。
下列有可能发生情況
-
如果你那個交易不需要那么多Gas,Ethereum是会将余下的Gas退回给你)
例子: 如上图 -
相反,如果你给了Gas 是不足够去完成这一個交易
那整個交易费用全也会用掉的,而且如果你是跟Smart Contract智能合约互动(你在区块链上更改的数值也会变回原來!)
实用小提示Tips
去 https://ethgasstation.info 看到现在Ethereum区块链网络狀态,參考Gas Price SafeLow (Gwei)。
最便宜做法
**Gas Limit – **用myetherwallet自动帮你调节(例如: 参与ICO的話200,000 Gas Limit己经足够) / 专家可手调
Gas Price – 参考https://ethgasstation.info Gas Price SafeLow (Gwei)
那就保证你的交易将会被Ethereum区块链确认。Gas Price调高会令你交易更快被区块链确认,因为你愿意支付更多给矿工。
*Gas Limit 不是越大就越好 ,Gas Limit 是有上限的 。以太坊Ethereum Miner矿工有一個机制能够改变Block Limit 加大/減少 。