Contract-Invocation
發送後交易會失敗嗎?
我想知道在下面的假設場景中會發生什麼。
- 正在以區塊鏈狀態 A 發送交易。在此狀態下,交易消耗 100_000 氣體,並且發送方有足夠的資金來支付。
- 本地 GETH 接收 tx 並廣播它。
- 區塊鏈分叉發生,現在區塊鏈處於狀態 B。在此狀態下,相同的交易消耗 1_000_000 氣體,發送者沒有這麼多的 ETH 來支付。
- 一段時間後,我通過 eth_transactionByHash api 呼叫或類似的 web3 呼叫請求交易詳情。
那會是什麼反應呢?ETH 是否會報告未找到稅款,或者它會返回一些表明稅款實際上失敗的響應?
所有交易都必須有 gas 限制。這是發送者希望在交易中花費的最大金額(gas)。任何具有 21k+ 氣體限制(最小值)的交易都可以添加到一個塊中。如果交易在執行過程中耗盡氣體,它就會被還原。該
eth_transactionByHash
呼叫將只返回事務,但eth_getTransactionreceipt
將包含一個status
欄位,該欄位為 1 表示成功或 0 表示失敗。