Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Transactions stuck in pending queue, gasPrice = 0 #1

Closed
ballzcoin opened this Issue Sep 30, 2018 · 1 comment

Comments

Projects
None yet
1 participant
@ballzcoin
Copy link
Owner

commented Sep 30, 2018

Expected behaviour:

The GUI wallet estimates the gas price and successfully sends coins from one account to another.

Actual behaviour:

Sometimes when trying to send coins from the GUI wallet, the wallet shows the gas price as 0, and after pressing send, the transaction does not go through (it is never processed). Also, any transactions attempted subsequently to the failed GUI wallet transaction, with gas price correctly set, do not go through as they are stuck in the pending transaction queue.

Cause:

Checking the list of pending transactions from the console (eth.pendingTransactions) confirms that the transaction is sitting there and not being processed by the network. The 'gas' value is 121000 which is correct, however the 'gasPrice' value is 0, which is incorrect. Calling eth.gasPrice returns a value of 2000000 which is extremely low, due to the very low volume of transactions on the network at present (mostly just mining pool payouts). It appears that extremely low gas price values result in the original Mist code setting gasPrice to 0, creating an invalid transaction.

Fix by the developer - GUI wallet code has been updated as follows:

Artificially set the gasPrice field in the transaction to a typical minimum value (4000000000) if the actual price is being detected as 0 by web3.eth.getGasPrice (sendTransactionConfirmation.js).

Fix for affected users to remove pending transactions to allow new transactions to go through:

As nobody has reported this issue, it is possible that nobody has been affected. Here is a fix anyway in case somebody doesn't upgrade their wallet and has a problem in future.

This is a quick and dirty fix. If any coins have been sent from your account to a third party and got stuck in pending transactions, it may be safer to create a new personal account and transfer all your coins from your old account into this new one in case for some reason the transaction goes through unexpectedly days / weeks in the future (it shouldn't happen).

Note: Steps 2 to 5 are only necessary if you have had the problem above. If not, just backup your keystore, delete the old GUI wallet (version 0.0.3), and install the new one.

  1. Backup your keystore. Not strictly neccessary, but do it just in case you delete the wrong things below (account files, located in the 'keystore' folder in the ballzcoin data directory).
  2. Open client in console mode.
  3. Make a note of all pending transactions (eth.pendingTransactions) so that you can put them through again after this fix.
  4. Close client and wallet.
  5. Delete transactions.rlp file from the ballzcoin data directory (do not delete anything else!).
  6. Delete the old ballzcoin GUI wallet (version 0.0.3) from where you unzipped it. Do NOT delete the ballzcoin data directory!
  7. Download new wallet (version 0.0.4) from the release links and run as normal.

Default data directory locations are as follows (these hold the keystore and transactions.rlp file):

Linux:
home/yourusername/.ballzcoin

Windows:
C:/Users/yourname/AppData/Roaming/Ballzcoin

@ballzcoin ballzcoin added the bug label Sep 30, 2018

@ballzcoin ballzcoin self-assigned this Sep 30, 2018

@ballzcoin ballzcoin closed this Sep 30, 2018

@ballzcoin

This comment has been minimized.

Copy link
Owner Author

commented Sep 30, 2018

Code fixed and tested.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.