Contract-Invocation

發送後交易會失敗嗎?

  • February 18, 2019

我想知道在下面的假設場景中會發生什麼。

  1. 正在以區塊鏈狀態 A 發送交易。在此狀態下,交易消耗 100_000 氣體,並且發送方有足夠的資金來支付。
  2. 本地 GETH 接收 tx 並廣播它。
  3. 區塊鏈分叉發生,現在區塊鏈處於狀態 B。在此狀態下,相同的交易消耗 1_000_000 氣體,發送者沒有這麼多的 ETH 來支付。
  4. 一段時間後,我通過 eth_transactionByHash api 呼叫或類似的 web3 呼叫請求交易詳情。

那會是什麼反應呢?ETH 是否會報告未找到稅款,或者它會返回一些表明稅款實際上失敗的響應?

所有交易都必須有 gas 限制。這是發送者希望在交易中花費的最大金額(gas)。任何具有 21k+ 氣體限制(最小值)的交易都可以添加到一個塊中。如果交易在執行過程中耗盡氣體,它就會被還原。該eth_transactionByHash呼叫將只返回事務,但eth_getTransactionreceipt將包含一個status欄位,該欄位為 1 表示成功或 0 表示失敗。

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