在發(fā)起ETH轉(zhuǎn)賬時,你會看到,Gas Price 和 Gas Limit,在區(qū)塊鏈瀏覽器上還會找到Gas Used 。這些有關Gas的術語都是什么意思呢?今天我們來將他們逐一擊破!
1.Gas
在以太坊中,交易、執(zhí)行智能合約,或是支付數(shù)據(jù)儲存費用,都需要消耗 Gas(燃料)。
Gas 是存在于以太坊虛擬機內(nèi)部,作為計算工作量的計數(shù)。它一方面作為對礦工打包區(qū)塊的獎勵,另一方面,為惡意交易抬高門檻,維護以太坊網(wǎng)絡正常運作。 Gas 是以太坊中的燃料,它保證了以太坊生態(tài)的運作。正如汽油對于汽車的作用, Gas 不可或缺。
Gas Price:是用戶愿意為每個 Gas 支付的價格,一般單位為 Gwei 。1 ETH = 1,000,000,000 Gwei
Gas Limit:是用戶愿意為執(zhí)行某個操作或確認交易支付的最大 Gas 量。
Gas Used:是執(zhí)行操作消耗的 Gas 總量
老樣子,我們舉個例子,這次以同樣需要 Gas 的汽車為例。
小星駕車從 S 地到 P 地需要消耗 30L 汽油,從 P 地到 A 地需要 40L 汽油,從 A 地到 R 地需要 50L 汽油?;鸹瘃{車前往四地需要消耗 120L 汽油。
同樣的,以太坊中每一步運算也都需要消耗 Gas 。不同的是汽車的油箱是汽車廠商設置的,油價也不是車主制定,而 Gas Price 和 Gas Limit 都是交易發(fā)送方自己設定的。
2. Gas Limit 設置過低
如果小星的汽車油箱容量為 100L ,那么從 A 地前往 R 地的途中,小星就會面臨油耗用盡的困擾,加油的費用也不退還。
同樣,如果 Gas Limit 設置過低,無法保證計算完整運行,系統(tǒng)將會提示“ out of gas ”,這筆交易依然被打包到區(qū)塊中,交易金額被退回,交易費用作為獎勵發(fā)放給打包這個區(qū)塊的礦工。
3. Gas Limit 設置過高
既然 Gas Limit 設置過低會導致交易失敗,那將 Gas Limit 無限調(diào)高,豈不是沒有這個困擾?
正如交易有 Gas Limit ,區(qū)塊也有 Gas Limit 。每個區(qū)塊在打包的時候都會確定當前區(qū)塊的 Gas Limit 總量,以此來確定單個區(qū)塊所能打包的交易數(shù)量,所以礦工在打包每筆交易的時候都會判斷當前的 Gas 量夠不夠打包當前交易。
例如現(xiàn)在有 3 筆交易, A 交易 Gas Limit 為 10 , B 交易為 20 , C 交易為 30 ,如果區(qū)塊 Gas Limit 為 30 ,那么 A 交易和 B 交易將被打包。由于礦工有權力選擇哪些交易被打包,因此另一名礦工選擇將 C 交易打包進這個區(qū)塊。但是如果將 ABC 交易同時打包, Gas Limit 達到 60 ,超過區(qū)塊 Gas Limit ,這個區(qū)塊會被網(wǎng)絡拒絕。
4. Gas Price 的高低
礦工總是希望獲得更多的挖礦獎勵,在打包交易的同時,交易費用越高,越容易被打包。
交易費用 = GasPrice * GasUsed
因此,Gas Price 越高,礦工將會優(yōu)先打包,交易會被更快確定;如果 Gas Price 設置過低,礦工的報酬降低,交易的確認時間將會延長。
這些復雜的術語小編終于理清楚了,你呢?