摘要:gas費用=gas花費*gas價格?GasSpent是用于執(zhí)行交易的gas總量(以gas為單位)?GasPrice是您愿意為每個gas單位執(zhí)行支付的以太幣數(shù)量Gas價格以gwei計價——一種ETH的計價單位。...
介紹
要了解以太坊網(wǎng)絡,您需要了解 Gas 這個術語。
讓我們從一個基本的類比開始:
正如汽車需要汽油來運行一樣,以太坊同樣需要 Gas 來運行它。
現(xiàn)在每個加密和區(qū)塊鏈初學者都有一些問題:
? 交易費用是如何計算的?
? 您需要為一筆交易支付多少 ETH?
? 為什么有些交易比其他交易更昂貴?
? 為什么存在汽油費?
讓我們了解 Gas 背后的概念,以回答您所有的腦洞大開的問題。
氣體一般概念
與任何其他數(shù)量一樣,Gas 也有一些單位,例如,
seconds是時間單位,
metres是距離單位,同樣
gas它本身是以太坊網(wǎng)絡上的計算單位。
Gas 費用以 Ether 或 ETH 支付。
天然氣升級
在開始了解 Gas 之前,您應該知道最近有一次升級 ——2021 年 8 月的倫敦升級
在此之前的天然氣概念是倫敦前升級,后來的概念被稱為倫敦后升級。
Gas費是怎么計算的?
倫敦前升級
在倫敦升級之前,使用了一個簡單的公式來確定您必須為一筆交易花費多少以太幣。
gas 費用 = gas 花費 * gas 價格
?
Gas Spent
是用于執(zhí)行交易的 gas 總量(以 gas 為單位)?
Gas Price
是您愿意為每個 gas 單位執(zhí)行支付的以太幣數(shù)量
Gas 價格以 gwei
1
Gwei
=
0.000000001
ETH
1
ETH
=
10
^9
Gwei
Gwei 代表 Giga-Wei,等于 1,000,000,000 (10^9) wei。Wei 是 ETH 的最小面額。1 ETH = 10^18 Wei。
天然氣成本計算
智能合約在部署到以太坊網(wǎng)絡之前被編譯成 OPCODES。這些算不了什么,就是一些基本的操作,比如 ADD、SUB、MUL、DIV 等等。
每個 OPCODE 都有固定的 gas 成本。智能合約中特定函數(shù)的 gas 成本是其所有 OPCODES 的 gas 成本之和。
所以,現(xiàn)在看看倫敦升級之前使用的公式 -
gas 費用 = gas 花費 * gas 價格
氣體限制
現(xiàn)在,我們知道汽油費取決于智能合約的功能。但如果我們有更復雜的功能,比如涉及循環(huán)的功能,或者依賴于用戶輸入,就很難估計出正確的價格。
因此,在決定為交易支付多少費用時,您可以指定一個上限,而不是指定確切的 gas 成本。
Gas Limit
如果您的交易使用的 gas 少于您的限額,未使用的 gas 將退還到您的帳戶。
要在提交交易時支付 gas,您的錢包必須有
gas limit * gas price以太幣。交易被處理和開采后,任何未使用的氣體將被退還。
但是,如果您的交易使用的 gas 超過您的限制,交易將失敗并且您的 gas 將消失。
區(qū)塊氣體限制
以太坊網(wǎng)絡對單個區(qū)塊允許的最大氣體量(單位)有限制,即區(qū)塊氣體限制。
這樣做是為了保證每個塊都保持在合理的計算成本范圍內(nèi)。因為更復雜的交易需要更長的時間才能完成,這確保了節(jié)點不會隨著計算復雜性的增加而與網(wǎng)絡的其余部分不同步。
后倫敦升級
2021 年 8 月 5 日之后,倫敦升級在以太坊網(wǎng)絡上實施。所以,現(xiàn)在所有的gas費用都是用這個方法計算的。
此升級帶來了以下好處:
? 更好的汽油費估算
? 更快的交易包含
? 銷毀一定比例的 ETH 作為交易費用
在倫敦升級之前,像 Metamask 這樣的錢包過去常常根據(jù)過去的網(wǎng)絡活動來顯示 gas 價格的估計值,即。它掃描 ETH 上的最后 1000 個區(qū)塊并為我們預測 gas 價格。
但是現(xiàn)在方法改變了,每個區(qū)塊都設置了一個 基本的 gas price fee
這是由網(wǎng)絡根據(jù)對塊空間的需求量計算得出的。這個特定數(shù)量被以太坊網(wǎng)絡 銷毀
你知道嗎?
比特幣的最大供應量為 2100 萬比特幣,而以太坊沒有任何總量限制。
因此,為了控制 ETH 供應而不是無限膨脹,銷毀非常重要并達到平衡。
嗯......現(xiàn)在我們有一個術語 - 基本汽油價格。 引入的第二個術語是小費(優(yōu)先費)
我們努力獲取利潤,很簡單。這就是礦工也要工作的原因。隨著基本費用被燒掉,小費是用來補償?shù)V工執(zhí)行和傳播用戶交易的。大多數(shù)錢包會自動設置此設置,但是,您可以根據(jù)需要手動更改它。較高的小費交易通常被優(yōu)先考慮。
通過此次升級,計算 gas 費用的公式更改為以下內(nèi)容:
gas 費用 = gas spent * (base fees + priority fees)
可變塊大小
在倫敦升級之前,所有區(qū)塊都有相同的區(qū)塊 gas 限制。每個區(qū)塊最多可容納 15M 的氣體。在高需求時期,這會導致糟糕的用戶體驗,因為區(qū)塊以最大容量運行,用戶必須等待需求減少才能被包含在區(qū)塊中。
由于更新,以太坊現(xiàn)在具有可變大小的塊?,F(xiàn)在每個區(qū)塊的目標氣體限制為 1500 萬氣體,但大小可以根據(jù)網(wǎng)絡需求而變化,最高可達 3000 萬氣體。
通過調(diào)整區(qū)塊大小和基本費用,網(wǎng)絡通常在 1500 萬氣體時達到平衡。
如果區(qū)塊 gas 高于 15M 閾值,則提高下一個區(qū)塊的基本費用。同樣,如果區(qū)塊 gas 低于 15M 閾值,則下一個區(qū)塊的基本費用會降低。block gas 與 15M 目標的偏差決定了基礎費用增加多少。
GAS需要什么?
由于天然氣成本,以太坊網(wǎng)絡更加安全。通過為在網(wǎng)絡上執(zhí)行的每個計算強制收費,阻止不良行為者向網(wǎng)絡發(fā)送垃圾郵件。
交易的 Gas 限制限制了交易可能需要多少處理,以防止智能合約中的意外或惡意無限循環(huán),這將使所有以太坊節(jié)點無限期地卡住。
結論
這就是這個博客的全部內(nèi)容!
請務必閱讀更多關于 Gas 及其代碼實現(xiàn)的信息。以下是一些資源:
以太坊氣體解釋[1]
倫敦升級[2]
智能合約中的氣體優(yōu)化[3]
感謝閱讀!保持學習!
引用鏈接
[1] 以太坊氣體解釋: https://www.youtube.com/watch?v=AJvzNICwcwc
https://ethereum.org/en/history/#london
[2] 倫敦升級:
https://medium.com/coinmonks/8-ways-of-reducing-the-gas-consumption-of-your-smart-contracts-9a506b339c0a
[3] 智能合約中的氣體優(yōu)化: