以太坊ETH中的 gas、gasprice 和 gaslimit


Gas:

 gas是“燃料”的意思,在以太坊區塊鏈上實現了一個EVM(以太坊虛擬機)的代碼運行環境,在鏈上執行寫入操作時,網絡中的每個全節點都會進行相同的計算並存儲相同的值,這種執行的消耗是昂貴的,為了促使大家將能在鏈下進行的運算都不放到鏈上進行,也為了獎勵礦工,因此在鏈上每執行一個寫入操作時,都需要支付一定的費用,用gas為單位來計數,每個在鏈上可以執行的命令都設置了一個消耗的gas值,例:PUSH操作需要消耗3個gas,一次轉賬一般要消耗21000gas,gas使用ETH來支付。

Gas對應於一個交易(Transaction)中以太坊虛擬機(EVM)的實際運算步數。 越簡單的交易,例如單純的以太幣轉帳交易,需要的運算步數越少, Gas亦會需要的少一點。 反之,如果要計算一些復雜運算,Gas的消耗量就會大。 所以你提交的交易需要EVM進行的計算量越大,所需的Gas消耗量就越高了。

 

Gas Price:
Gas Price就是你願意為一個單位的Gas出多少Eth,一般用Gwei作單位。 所以Gas Price 越高,就表示交易中每運算一步,會支付更多的Eth。大家可能對Gwei 這個單位感到陌生,Gwei 其實就是10 ^ -9 Eth,也就是說1 Gwei = 0.000000001 Eth。所以,當你設定Gas price = 20 Gwei ,就意味着你願意為單步運算支付0.00000002 Eth。

說到這里,聰明如你就會意識到以太坊的手續費計算公式很簡單:

交易手續費(Tx Fee) = 實際運行步數(Actual Gas Used) * 單步價格(Gas Price)

例如你的交易需要以太坊執行 50步/50 gas 完成運算,假設你設定的Gas Price是2 Gwei ,那么整個交易的手續費
就是50 * 2 = 100 Gwei 了。

 

Gas Limit
Gas Limit就是一次交易中Gas的可用上限,也就是你的交易中最多會執行多少步運算。 由於交易復雜程度各有不同,確切的Gas消耗量是在完成交易后才會知道,因此在你提交交易之前,需要為交易設定一個Gas用量的上限。

如果說你提交的交易尚未完成,消耗的Gas就已經超過你設定的Gas Limit,那么這次交易就會被取消,而已經消耗的手續費同樣被扣取 —— 因為要獎勵已經付出勞動的礦工。 而如果交易已經完成,消耗的Gas未達到Gas Limit,那么只會按實際消耗的Gas 收取交易服務費,沒有使用完的gas會退還到原賬戶。 換句話說,一個交易可能被收取的最高服務費就是 Gas Limit * Gas​​ Price 了。

最后值得一提的是Gas Price越高,你提交的交易會越快被礦工接納。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM