dashpay / dash

Dash - Reinventing Cryptocurrency
https://www.dash.org
MIT License
1.49k stars 1.2k forks source link

Incompatibility in new RC4+ wallet and moving funds #44

Closed SecUpwN closed 10 years ago

SecUpwN commented 10 years ago

Hi there, @darkcoin developers!

I am currently trying to solve this annoying warning that pops up every single time:

Warning: There is an incompatibility in the new RC4+ wallet due to the larger keypool.It only effects encrypted wallets, but can cause a loss of data in rare situations. Please create a new wallet and move the funds from this wallet.

Is there a way of preserving the Dark Coin address somehow? The address is important for our security-related project on GitHub, the so-called Android IMSI-Catcher Detector and has already been spread wide around the interwebz. It would be lovely not having to change it everywhere.

chaeplin commented 10 years ago

Use dumpprivkey and importprivkey.

example 1) https://darkcointalk.org/threads/making-a-wallet-for-masternode-setup-using-dumpprivkey-and-importprivkey.1426/

SecUpwN commented 10 years ago

Thank you for this recommendation, @chaeplin. Does this in fact preserve the old address and transport it to a new and perfectly working wallet? Might be that I didn't understand it right yet..

chaeplin commented 10 years ago

@SecUpwN Yes, transport to a new working wallet with old address.

I have checked the address XxEJvrYtkTZzvMUjtbZwPY34MyCGHSu4ys and the address has transactions.

So use following procedure.

1) send all funds in a wallet to a new address(A). 2) dump privkey of XxEJvrYtkTZzvMUjtbZwPY34MyCGHSu4ys and the address (A), record it. 3) backup wallet using backup menu in QT 4) Stop QT 5) rename wallet to wallet.old 6) run QT, QT will generate a new wallet 7) import privkey dumped at step 2)

SecUpwN commented 10 years ago

Thanks, @chaeplin. To make sure, will this preserve XxEJvrYtkTZzvMUjtbZwPY34MyCGHSu4ys as a working address for us, or do we need to change our address in the process? We would like to keep it.

chaeplin commented 10 years ago

@SecUpwN XxEJvrYtkTZzvMUjtbZwPY34MyCGHSu4ys is preserved.

Step 1) is needed to collect funds in change addresses. (every transaction has a change addres).

SecUpwN commented 10 years ago

Oh, you already did that for me, @chaeplin? If so, THANK YOU! Somehow I still get the error..

chaeplin commented 10 years ago

@SecUpwN If your wallet was encrypted, you need to unlock your wallet first to use dumpprivkey.

After successfully imported on a new wallet, delete file used at step 2) to record private key. Keeping plain text file containing private key is dangerous.


dumpprivkey Reveals the private key corresponding to

importprivkey [label] [rescan=true] Adds a private key (as returned by dumpprivkey) to your wallet. This may take a while, as a rescan is done, looking for existing transactions. Note: There's no need to import public key, as in ECDSA (unlike RSA) this can be computed from private key.


SecUpwN commented 10 years ago

Ok, that sounds good. Do I really have to "send all funds to a new address" even though our wallet is currently empty (did sent out the last few donations to one of our helpful developers), @chaeplin?

chaeplin commented 10 years ago

@SecUpwN oh balance is zero, then dump XxEJvrYtkTZzvMUjtbZwPY34MyCGHSu4ys only :)

SecUpwN commented 10 years ago

Sounds better. :) Would you please tell me step by step how to do that, @chaeplin? And just to say it here: I am amazed by your patience with me. Thank you for that.

chaeplin commented 10 years ago

https://gist.github.com/chaeplin/51b1ab536acf35d6ab4a @SecUpwN

SecUpwN commented 10 years ago

@chaeplin, that worked excellent. Thanks for your guidance and for starring our project! :smiley_cat: