gas是「燃料」的意思,在以太坊區塊鏈上實現了一個EVM(以太坊虛擬機)的代碼運行環境,在鏈上執行寫入操做時,網絡中的每一個全節點都會進行相同的計算並存儲相同的值,這種執行的消耗是昂貴的,爲了促使你們將能在鏈下進行的運算都不放到鏈上進行,也爲了獎勵礦工,所以在鏈上每執行一個寫入操做時,都須要支付必定的費用,用gas爲單位來計數,每一個在鏈上能夠執行的命令都設置了一個消耗的gas值,例:PUSH操做須要消耗3個gas,一次轉帳通常要消耗21000gas,gas使用ETH來支付。網絡
注意:不管您執行的命令是成功仍是失敗,都須要支付計算費用,即便失敗,節點也驗證並執行了您的交易(計算),所以必須和成功執行支付同樣的費用ide
每一個區塊有gas limit,即單個區塊容許的最多gas總量,以此能夠用來決定單個區塊中能打包多少筆交易。區塊鏈
咱們每一次交易或合約調用都要設置一個gas limit,若是該次操做所使用的gas數量小於或等於您所設置的gas limit,則會被執行,但若是gas總消耗量超過gas limit,全部的操做都會被重置,但費用依舊會被收取。在執行中實際消耗的gas值總和叫gas used,沒有使用完的gas會退還到原帳號。虛擬機
若是您嘗試將一個會使用超過當前區塊gas limit的交易打包,則會被網絡拒絕,會反饋「below gas limit」it
在發起交易或合約調用時,咱們能夠本身設置gas的價格,即gas price,通常以GWei(1 ETH = 1000000000 GWei)爲單位。經過gas price能夠節省礦工費用,但也會減慢礦工打包的速度,礦工會優先打包gas price設置高的交易,若是您想加快轉帳,您能夠把gas price設置得更高,這樣您就能夠插隊靠前。io
在定義gas price時候,推薦瀏覽https://ethgasstation.info/ 這裏能看到以太坊區塊鏈上最近完成的交易對應的消耗單價、記錄時間、等待時間、手續費均價等。根據自身交易需求,咱們能夠參考右下Safelow/Standard/Fast三個速度對應的gasPrice。ast