Author

Topic: Help, restoring my wallet. Do i lose my btc? (Read 2291 times)

newbie
Activity: 37
Merit: 0
January 19, 2012, 04:05:56 PM
#24
It sounds like your backup is going to be fine and have all your coins in it.  If it doesn't, and you haven't monkeyed with the corrupted disk too much, it is sometimes possible to recover files and data from a messed up disk.  Let us know if you need help with that.
donator
Activity: 1218
Merit: 1079
Gerald Davis
November 15, 2011, 11:33:16 AM
#23
The client will only grab a new address from the keypool if you receive a payment on the address listed as "my address".  It will then change the "my address" to a new address from the keypool.
Right.

Seems like the client could be more efficient by flagging addresses in the wallet as "unused" and simply using those before getting new address from keypool but likely you are right it is a small edge case.
This won't work. Just because an address never received coins, doesn't mean it's unused. I could have posted it somewhere. If the client picks this address when I expect a fresh address, I'll be using the same address for two purposes.

Good point.  I will try to update my post.
donator
Activity: 2058
Merit: 1054
November 15, 2011, 10:28:02 AM
#22
The client will only grab a new address from the keypool if you receive a payment on the address listed as "my address".  It will then change the "my address" to a new address from the keypool.
Right.

Seems like the client could be more efficient by flagging addresses in the wallet as "unused" and simply using those before getting new address from keypool but likely you are right it is a small edge case.
This won't work. Just because an address never received coins, doesn't mean it's unused. I could have posted it somewhere. If the client picks this address when I expect a fresh address, I'll be using the same address for two purposes.
donator
Activity: 1218
Merit: 1079
Gerald Davis
November 15, 2011, 10:00:45 AM
#21
I see now so beat this dead horse deader and to clarify ...

The client will only grab a new address from the keypool if you receive a payment on the address listed as "my address".  It will then change the "my address" to a new address from the keypool.

Seems like the client could be more efficient by flagging addresses in the wallet as "unused" and simply using those before getting new address from keypool but likely you are right it is a small edge case.
donator
Activity: 2058
Merit: 1054
November 15, 2011, 09:56:55 AM
#20
How (if I am understanding your correctly) you say it works:
1) I have address A in my wallet, B-Z in the keypool.  I make a backup.
2) I receive funds at address A, wallet moves address B from keypool to wallet (wallet displays address B as "your address").
3) I receive funds at address A, wallet moves address C from keypool to wallet (wallet displays address B as "your address").
...
4) I receive funds at address A, wallet moves address Z from keypool to wallet  (wallet displays address Z as "your address").
5) Keypool no longer has any addresses that are in the backup.
No, that's not how it works. In step 3, funds are received at address A but the currently selected address is B, so the client does not move another address from the keypool. Compare this to the following:

1) I have address A in my wallet, B-Z in the keypool.  I make a backup.
2) I receive funds at address A, wallet moves address B from keypool to wallet (wallet displays address B as "your address").
2a) I go to the address book, click on address A, and click "Ok". (wallet displays address A as "your address")
3) I receive funds at address A, wallet moves address C from keypool to wallet (wallet displays address C as "your address").

So it's not that foolish, because the problem you describe won't happen in most use cases. If the user posts address A somewhere (say, in his mining pool) and keeps getting payments, pretty soon address A won't be selected so no more addresses will be used. However, if the user hands out the address to different people, and each time he uses the addressbook to copy it, then there might be a problem.

Note also that I didn't look under the hood to see what happens with the key pool itself. I only know that new addresses are added to the address book in the occurrence I mentioned - but obviously these are taken from the keypool.
donator
Activity: 1218
Merit: 1079
Gerald Davis
November 15, 2011, 09:36:27 AM
#19
That's not true. The client uses a new address from the keypool whenever payment is received to the currently selected address. So if the user receives 101 payments all to the same address, but he keeps reselecting that address so it is displayed in "Your Bitcoin Address", the keypool will be exhausted. This should be added to the list.

How would using the same address 100 times exhaust 100 unique addresses from the keypool?
Do I need to repeat myself? The client "generates a new address" (or, more technically, takes an address from the keypool and adds it to your addressbook) whenever a transaction is received into the address currently selected (the one displayed as "Your Bitcoin Address"). If you receive 100 payments into the same address, and after each time you go back to the address book and select this address again, then each time a new address will be generated, and eventually new addresses which were not in the backup's keypool will be created.

We can try it if you want. Select some address from your addressbook so it is displayed. Tell me what it is and I'll send a token amount to it. Watch as a new address is automagically generated.

I understand it changes the displayed address but I assumed (like not a good idea) that it would simply pull an "unused one" from the address not keep exausting the keypool for no reasons.  You likely are right but that seems like a foolish decision as it uses up keypool much quicker than is necessary.

How I thought it worked:
1) I have address A in my wallet, B-Z in the keypool.  I make a backup.
2) I receive funds at address A, wallet moves address B from keypool to wallet (wallet displays address B as "your address").
3) I receive funds at address A, wallet keeps address B listed as "your address") <- there is no reason for a new address as B hasn't been used.
...
4) I receive funds at address A, allet keeps address B listed as "your address") <- there is no reason for a new address as B hasn't been used.
5) Keypool still has address C-Z which are in backup.

How (if I am understanding your correctly) you say it works:
1) I have address A in my wallet, B-Z in the keypool.  I make a backup.
2) I receive funds at address A, wallet moves address B from keypool to wallet (wallet displays address B as "your address").
3) I receive funds at address A, wallet moves address C from keypool to wallet (wallet displays address B as "your address").
...
4) I receive funds at address A, wallet moves address Z from keypool to wallet  (wallet displays address Z as "your address").
5) Keypool no longer has any addresses that are in the backup.

That seems foolish and rapid way to exhaust the keypool.  If you have tested it and confirmed the new displayed "your address" is pulled from keypool each time that seems non-optimal and is more likely to lead to "stale" backups.  It also serves no real purpose.  The purpose is to give the user a "new" address each time but if "B" (in my examples) has never been used (because I keep using A) then B is "new" there is no reason to pull C-Z and exhaust the keypool.

donator
Activity: 2058
Merit: 1054
November 15, 2011, 08:34:35 AM
#18
That's not true. The client uses a new address from the keypool whenever payment is received to the currently selected address. So if the user receives 101 payments all to the same address, but he keeps reselecting that address so it is displayed in "Your Bitcoin Address", the keypool will be exhausted. This should be added to the list.

How would using the same address 100 times exhaust 100 unique addresses from the keypool?
Do I need to repeat myself? The client "generates a new address" (or, more technically, takes an address from the keypool and adds it to your addressbook) whenever a transaction is received into the address currently selected (the one displayed as "Your Bitcoin Address"). If you receive 100 payments into the same address, and after each time you go back to the address book and select this address again, then each time a new address will be generated, and eventually new addresses which were not in the backup's keypool will be created.

We can try it if you want. Select some address from your addressbook so it is displayed. Tell me what it is and I'll send a token amount to it. Watch as a new address is automagically generated.
donator
Activity: 1218
Merit: 1079
Gerald Davis
November 15, 2011, 08:28:38 AM
#17
That's not true. The client uses a new address from the keypool whenever payment is received to the currently selected address. So if the user receives 101 payments all to the same address, but he keeps reselecting that address so it is displayed in "Your Bitcoin Address", the keypool will be exhausted. This should be added to the list.

How would using the same address 100 times exhaust 100 unique addresses from the keypool?
donator
Activity: 2058
Merit: 1054
November 15, 2011, 04:23:20 AM
#16
Any time you receive funds from an address you used previously no new address is used. 
That's not true. The client uses a new address from the keypool whenever payment is received to the currently selected address. So if the user receives 101 payments all to the same address, but he keeps reselecting that address so it is displayed in "Your Bitcoin Address", the keypool will be exhausted. This should be added to the list.

b) you SEND coins (a new address is used for the chain).
I think you meant "change".
hero member
Activity: 728
Merit: 500
165YUuQUWhBz3d27iXKxRiazQnjEtJNG9g
November 15, 2011, 12:41:25 AM
#15
I had 16 characters written down which should be a close approximation of the actually passphase. Is there any software I can run or any written method I can use to decrypt my own encryption.

If it's a 16 character password and you can guarantee that they're all right except one, it can be easily brute-forced.  The more characters that are wrong the harder it gets.

I don't know if anyone has written a script to do this yet.
legendary
Activity: 1036
Merit: 1002
November 13, 2011, 08:16:25 AM
#14
Don't panic, just do a rescan first and see whether anything is missing. You can still try to recover the wallet from the broken drive if the backup fails you; but most likely, it will not be a big problem if the backup is young enough.

Little point in panicking before you know there is a problem with the backup.
donator
Activity: 1218
Merit: 1079
Gerald Davis
November 12, 2011, 04:17:18 PM
#13
Sometimes the client autogenerates new addresses, yes.

If you did not accept payments on any of these new addresses, you will be fine. (As these new addresses will not be in the backup wallet you loaded)

If you did... *sigh* ... sorry. (You will need to find someway of pulling the recent wallet files off the corrupted hdd to restore any payments on those new addresses)

This is true but incomplete.

The wallet by default maintains a keypool of the NEXT 100 addresses.  So if you make a backup today it contains not only every address you have used but the next 100 addresses you will use in the future.

So the only way you would lose coins is if you used 101 NEW ADDRESSES after the backup.  That 101st address doesn't exist in the backup so any coins sent there will be lost.

In the OP case it looks like he had maybe 4 or so transactions.  So he is fine.

The only time an address from the keypool is used is either
a) You receive funds to the address listed in "my address" (funds received to any other address don't affect the keypool). *(see note)
b) You press the "NEW ADDRESS" button.  Each time you do this 1 address is moved from keypool to your wallet and disaplyed in the "Your Address" box.
c) Anytime you SEND coins (a new address is always used for the change).

*  The client updates the "my address" field with a new one from the keypool to preserve anonymity anytime it receives coins sent to that address.  The my address field doesn't change if you receive coins sent to any other existing address.

So to be conservative you could say you have at least 100 actions (press new address, receive coins, send coins) after a backup before you exhaust the keypool.   Technically you have more because a new address isn't used if you receive coins to any address other than the one listed as "my address" however worst case scenario you have 100 "actions" before the backup is stale.
full member
Activity: 120
Merit: 100
November 12, 2011, 03:30:45 PM
#12
I have come across a similar problem, I forgot to back up my wallet.dat file and created a passphrase for my main wallet. Well I wrote this passphrase down on a paper then entered it in the bitcoin client.
This morning I tried typing the passphrase in but it was incorrect.
I had 16 characters written down which should be a close approximation of the actually passphase. Is there any software I can run or any written method I can use to decrypt my own encryption.
hero member
Activity: 728
Merit: 500
165YUuQUWhBz3d27iXKxRiazQnjEtJNG9g
November 09, 2011, 05:01:53 AM
#11
The client pre-generates 100 addresses.  If you click "new address" 100 times or perform more than 100 transactions (or any combination of those), you'll start getting addresses that weren't backed up.  You should be fine.

Here's the link to download the blockchain: http://eu1.bitcoincharts.com/blockchain/
hero member
Activity: 714
Merit: 500
November 09, 2011, 03:22:04 AM
#10
I didnt receive or generate btc with a new address.
It'll be fine.

But the client always generate new address right? (even if you dont have any transactions specified to a new address)
Not always, only when you received or sent some coins.
And when it does, you can still use your old address, when your address book is not over 100, Dont' worry.
I never run out of 100 addresses.
sr. member
Activity: 291
Merit: 250
BTCRadio Owner
November 09, 2011, 01:03:36 AM
#9
Sometimes the client autogenerates new addresses, yes.

If you did not accept payments on any of these new addresses, you will be fine. (As these new addresses will not be in the backup wallet you loaded)

If you did... *sigh* ... sorry. (You will need to find someway of pulling the recent wallet files off the corrupted hdd to restore any payments on those new addresses)
full member
Activity: 168
Merit: 100
November 09, 2011, 12:57:58 AM
#8
As long as you have the wallet files (includes wallet keys) then you should be able to just update/download the blockchain and all your transactions will begin to show.

Even if the wallet is old, as long as it has the address which you accepted the payments from in it, you should be fine.

If after the backup you generated additional addresses and accepted payment with one of those, then your shit outta luck.

Please elaborate

How many additional addresses? or just any?

I didnt receive or generate btc with a new address. But the client always generate new address right? (even if you dont have any transactions specified to a new address)

sr. member
Activity: 291
Merit: 250
BTCRadio Owner
November 09, 2011, 12:40:19 AM
#7
As long as you have the wallet files (includes wallet keys) then you should be able to just update/download the blockchain and all your transactions will begin to show.

Even if the wallet is old, as long as it has the address which you accepted the payments from in it, you should be fine.

If after the backup you generated additional addresses and accepted payment with one of those, then your shit outta luck.
hero member
Activity: 714
Merit: 500
November 09, 2011, 12:37:22 AM
#6
Sorry, i still don't understand the "100 keys most" thing, although i've heard about it, but I never run out of 100 keys.

If you backup, it's there.
full member
Activity: 168
Merit: 100
November 08, 2011, 11:59:23 PM
#5
There is a download site for blockchain database file, but i can't remember the link.
Dont' worry, just finish the download you'll be fine.
you can check your balance @
blockexplorer.com
blockchain.info



I did a search and read that as long as my back up is within 100 transactions i should be fine. The reason is the key pool stored the 100 most recent addresses.

However the address i used for my pools (Eligius) was old (the first address when i started this wallet). I'm not sure if that address is still in the key pool.

The recent transactions are from the pools (generated about 20btc). When i check on blockchain.info thats what i see. (from Nov 3rd).

My bitcoin client only displays transaction up to Nov 2nd.

Is this normal? How do i check my key pool?
hero member
Activity: 714
Merit: 500
November 08, 2011, 11:52:27 PM
#4
There is a download site for blockchain database file, but i can't remember the link.
Dont' worry, just finish the download you'll be fine.
you can check your balance @
blockexplorer.com
blockchain.info

full member
Activity: 168
Merit: 100
November 08, 2011, 11:44:11 PM
#3
You can simply copy  blk0001.dat  and blkindex.dat to your new machine, then open the client and  catch up.

If your wallet is safe, your bitcoins are safe.

The blockchain data is corrupted. When i copied the blockchain data i got only 6xxMB of 7xxMB. I did try to use it anyway and i got error when i started the client which forced me to shut it down. The index file is not corrupted, but i cant use it without the data file tho right?

How do i  check if my wallet is safe?

As i said, my back up wallet was from Nov 4th. I got some mint coins from my pools (generated ) from Nov 4th up to now. Do i lose those btc?

My new client only shows transaction up to Nov 2th. (Which i believe right b4 i backed up my wallet)
hero member
Activity: 714
Merit: 500
November 08, 2011, 11:39:16 PM
#2
You can simply copy  blk0001.dat  and blkindex.dat to your new machine, then open the client and  catch up.

If your wallet is safe, your bitcoins are safe.
full member
Activity: 168
Merit: 100
November 08, 2011, 11:15:39 PM
#1
Hi all,

My HD is corrupted, and it cant no longer boot into Windows

My recent wallet backup was from Nov 4th. Since then i had about 2-4 transactions (from my pools Eligius).

So i quickly download a new bitcoin client on another machine, copy my backed up wallet to /AppsData/Roaming/Bitcoin , then start up the client to re-scan the blockchain (i got only 8 connections, how do i get it downloaded faster? )

Do i lose all the coins from those recent transactions? My balance isnt updated and my history transactions are all unconfirmed (as the client is still downloading the blockchain).

Please help,

Thanks
Jump to: