If you are one of the many people that own an Ethereum wallet and launched a few transactions against the Ethereum blockchain, then the chance is high that you came face to face with a long-running pending transaction. Some people even reported having to wait for hours, days even months, hoping their transaction would be processed by the miners.
Since Ethereum transactions have to be processed sequentially it leaves the user completely stuck. Meaning the long-running transaction has to be processed before any other transaction from that wallet has a chance to be processed. Or does it…?
Why are they not being processed?The main reason why Ethereum transactions are not being processed is that they are not getting picked up by a miner. So why are they not being picked up? To answer that question you need to understand that miners receive the transaction and code-processing fees (gas) for each block of transactions they process, it is part of their reward. If your transaction is not being mined it means that there are enough other transactions on the network that are willing to pay a higher fee to the miner to get processed. This means if the network is very busy the transaction costs will be higher and vice versa.
So how do I know which fee (gas price) is sufficient?In Arkane we automatically set the correct gas price based on the consumption on the network. Making it very easy for the user to get their transactions processed. Advanced users have the option to modify the gas price for their transaction, either higher, to get it processed more quickly. Or lower, if time is not a factor, leading to a lower transaction cost.
If you are using a different wallet, which might not support fluctuating gas prices, you can always set it manually, if your wallet allows it. To get an idea of the recommended gas price you can look at the gas tracker from Etherscan.
How to fix a long-running transactionSo what if you have launched a transaction with a gas price that is too low to be of any interest to the miners. Easy you just launch the same transaction again, but this time with a higher gas price, high enough so it will be picked up. Now you will have two transactions almost identical, one with a low gas price and one with a high gas price. The only problem left to solve it to make sure, only one gets processed at the end.
At the beginning of this post, I said that on the Ethereum blockchain transactions are being processed sequentially, meaning transaction #2 will be processed before # 3 and so forth. It is also not possible to process transactions with the same sequence number. For example, it is not possible to process 2 transactions which have sequence #3, one of them will be dropped.
Which brings us to our solution, when you launch your transaction with a correct gas price, you set the sequence number to the same number of the long-running transaction. The transaction with the higher gas price will be picked up sooner, meaning the sequence number will be processed, cause the long-running transaction to be dropped because his sequence is outdated.
At Arkane we understand that this might sounds complicated, therefore we've added a Resubmit button that takes care of all the technical stuff.
We even make it super easy to cancel a pending transaction.
Sometimes a video says more than wordsIn this 10min video below we create a 'stuck' transaction and show you how you can speed them up or even cancel them. Yes, it is possible to cancel a blockchain transaction 😱.