Gas

關於使用 oraclize 時的 gas 限制問題

  • August 13, 2018

我正在使用 oraclize 從外界獲取一些數據。Oraclize 呼叫__callback我的智能合約的方法。對於這個呼叫 oraclize 必須支付 gas,並且有一個函式可以設置這個呼叫的 gas 限制。

我現在的問題是:如果我將氣體限制設置為 150000,則交易將失敗並顯示消息VM Exception while processing transaction: out of gas。如果我將 gas 限制設置為 300,000,則交易成功,但它只使用 90,000 gas。交易日誌中正確顯示了氣體限制。

聽起來您正在收到汽油退款。

如果在執行交易期間,您最終釋放了一些儲存空間(將變數設置為零值或delete操作),您將收到與您釋放的儲存量成正比的 gas 退款。

此退款僅在執行週期結束時應用。因此,當交易執行時,您需要一個足夠大的 gas 限制來容納所有操作*,而無需*考慮退款。

沒有辦法解決這個問題,你最終會花費比你的 gas 限制更少的 gas,但它仍然必須設置得足夠高,以便在不退款的情況下涵蓋所有內容。

引用自:https://ethereum.stackexchange.com/questions/56445