2

Is an eth transaction guaranteed to be processed at some time? In other words: Can a transaction be pending indefinitely or will it eventually be canceled, forgotten, or confirmed (by the network?!?)?

2

When you broadcast a transaction, it is added to to a client's transaction pool (parity calls it transaction queue). This transaction pool is of finite size and once it reaches full capacity, nodes discard transactions according to a fairly complex set of rule including gas price, transaction age etc. In geth, you can configure these rules when starting the client:

TRANSACTION POOL OPTIONS:
  --txpool.nolocals            Disables price exemptions for locally submitted transactions
  --txpool.journal value       Disk journal for local transaction to survive node restarts (default: "transactions.rlp")
  --txpool.rejournal value     Time interval to regenerate the local transaction journal (default: 1h0m0s)
  --txpool.pricelimit value    Minimum gas price limit to enforce for acceptance into the pool (default: 1)
  --txpool.pricebump value     Price bump percentage to replace an already existing transaction (default: 10)
  --txpool.accountslots value  Minimum number of executable transaction slots guaranteed per account (default: 16)
  --txpool.globalslots value   Maximum number of executable transaction slots for all accounts (default: 4096)
  --txpool.accountqueue value  Maximum number of non-executable transaction slots permitted per account (default: 64)
  --txpool.globalqueue value   Maximum number of non-executable transaction slots for all accounts (default: 1024)
  --txpool.lifetime value      Maximum amount of time non-executable transaction are queued (default: 3h0m0s)

e.g. when your transaction's gas price is too low, it will eventually be discarded and if that happens in all nodes, before a successful miner has included it in a block, your transaction is gone (and you can resend with same nonce). It's also possible that your transaction is discarded from node A's transaction pool, but node B still has it and 'recirculates' it to A after it's discarded it. Each node can have different rules of how they discard transactions when the transaction pool reaches max capacity

0

It will eventually be cancelled.

  • after what time and what is the mechanism behind it? Could you please point me to some reference? I thought that it would be renewed over and over and over again... – kalle9381 Dec 8 '17 at 15:07
  • Have you tried rebroadcasting the transaction to give it kick some steps myetherwallet.github.io/knowledge-base/transactions/… If you can see your transaction on etherscan.io then its on its way, if there is no record of your transaction on the blockchain then it never made it and funds still in your wallet – Lismore Dec 8 '17 at 15:12
  • I can not give it a kick, because its a withdrawal from an exchange. Thus, I don't have any control over it. Moreover, it has been stuck for more than 2 days now. – kalle9381 Dec 8 '17 at 15:23
  • Only option you have is to open a support ticket. Have the same issue with Bitfinex, they just canceled my pending transaction after 3 days and now they have implemented a min amount withdrawal of 250$ thus blocking be from taking my own crypto from their exchange. – Lismore Dec 8 '17 at 15:41
  • Assuming the Ethereum account your exchange used is not used again (i.e., no new transactions with the same or greater nonce being broadcast), you could capture the transaction and rebroadcast it if it gets "forgotten". Not sure of an easy way off the top of my head (will try to remember to look into this and to post back). – lungj Dec 8 '17 at 17:03
0

You should be able to see your transaction on the blockchain. If its pending without being logged. Did you make the transaction from a personal Ethereum client node, or within an exchange like Binance or EtherDelta. They all have varying degrees of credibility and reliability.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.