Gas-Price
“Gas Price Oracle”如何運作?
“Gas Price Oracle”如何運作?
“Gas Price Oracle”在 go-ethereum wiki中有解釋,但沒有解釋它是如何工作的。它從哪裡獲取數據?它是如何進行計算的?
這篇來自 Stephan Tual 的博文(舊的,因為預設的 gas 價格目前是 0.02 szabos)有提示:
預設 gas 價格設置為 50 shannon(0.05 szabos,或 0.00000005 ether)。請記住,gas 價格最終總是由呼叫合約的使用者定義,而礦工可以在他們的機器上設置一個參數來接受或忽略 gas 價格在一定範圍內的交易。
在使用者方面,我們還有一個內置的預言機來定義最優gas價格,由前一個區塊的gas使用量決定。例如,如果前一個區塊未滿 80%,gas 價格預言機將調整為較低的 gas 價格建議。
本質上,gas 價格預言機試圖通過查看過去(先前的區塊使用率)來預測未來的 gas 價格。有塊氣體限制(目前為 4,712,388 氣體),它設置了每個塊可以消耗的最大氣體。
低於 100% 的使用率表明存在備用容量,因此,如果您處於交易的需求方,則暗示有機會降低天然氣價格。礦工最好在一個區塊中收穫盡可能多的交易(達到 gas 限制),因此在需求低迷時期,他們應該願意接受低 gas 價格。
相反,如果前一個區塊被完全認購(表明交易需求高),gas 價格預言機將推斷降低 gas 價格將導致其交易未被礦工選擇的風險(有利於提供更高 gas 價格的競爭交易),因此選擇了更高的 gas 價格。
只要所有(或大多數)節點都執行相同的預言機,那麼價格就會趨於穩定並與需求一致。
供應/需求在傳統經濟中的運作方式大致相同。