Pages:
Author

Topic: Bitcoin-QT Core Problem - Keypool 100 transactions limi - Reward for help: 2 BTC - page 3. (Read 5261 times)

newbie
Activity: 29
Merit: 0
Hello, guys.

I HAVE GOOD NEWS! Not so much, but it is good news.

Someone saw this thread and discussed privately with me, sending all the necessary comments for I use on the Pywallet. Thanks you so much!

I'm on OSX, we used this command on Pywallet:

Code:
sudo /Users/XXX/Downloads/pywallet-master/pywallet.py --recover --recov_device /dev/rdisk0 --recov_size 1024Gio --recov_outputdir /Users/XXXX/Documents/Lucky

After I run this command, it shows this:

Found 12 possible wallets
Found 5862 possible encrypted keys
Found 0 possible unencrypted keys


And generate a .dat file on the folder /Users/XXXX/Documents/Lucky

So now, I need someone help:

1) I tried to open on Bitcoin-QT this .dat but didn't worked. How can I use this .dat file to see the private keys there?
2) How may I use this command again and generate a document showing the private key?
3) Usually, the keys would appear on the screen for Windows Users. For Mac, we will need to add something to the command for the output generate a txt.


Thanks for your attention!
sr. member
Activity: 476
Merit: 251
First of all, Thank you!

Quote from: shorena
What I think happend is the following.

OP created a backup in January and kept using the wallet. The wallet kept refilling the keypool whenever needed, but these are not part of the January backup. Sometime in September the 101th key since the backup in Jan was used as a change address. When the wallet was restored from backup. It recognized the transaction because it had one of the keys that controlled the input that was used. Since it did not recognize any of the output addresses it marked them as external and thus is showing them in the overview, whereas it would not show a change output.

I understand, you mean the transaction was made before the computer crash (that had a return address unknown to the January backup) and the restored backup doesn't recognize the address, hence marks it as outgoing.
(Any new keys generated in the keypool after the January backup are obviously lost.)

I interpreted the post such that the transaction was made with the wallet restored  from the January backup . In this case (if the wallet has caught up with the ledger far enough to determine that all the old 100 keys have been used) the wallet would generate new addresses, right?
copper member
Activity: 1498
Merit: 1528
No I dont escrow anymore.
More of a question here for learning purposes

Quote from: shorena
True, this is what a send to two addresses unknown to the wallet (no private key) would look like. Considering the time the transaction took place its likely that the change key was one 100+ ofter the january backup.

I am not getting how the return could go to an address about which your wallet does not know. I only see 2 options:

A: If the client knows that all keys in the old keypool have been used up (sync is recent enough), it will simply re-generate new private-public keys. This happens if you unlock the wallet to make a transaction. Hence return should go to a newly (at the time of transaction) generated address.

The client keeps track of the number of unused keys in the keypool, yes. This has little to do with syncing the blockchain, its entirely local. It requirest blockchain data to determine "used" though.

B: If the client does not know that all keys have been used up (sync not completed up to the point where the last address has been used), then it will send the return coins to an old address in the old keypool (say 99/100), which has already been used before (!), but for which you also ought to have the private key in the old wallet.dat. In this case the return address would have 2 transactions in it.

We are talking about a restoration from a backup. More below.

Please correct me if this is wrong, after all, I am here to learn.

Based on this and the transaction ID, the 13 BTC change was the only input to the return address, so I would say it is a new address generated when you sent the transaction. (Had 13 BTC been sent to a return address that was used sometime after your January backup (I do not see how that would be possible), that address would likely have another transaction in it as well. Being also old, it is quite probably that it was already used.)

BitcoinNewsBR
1. The transaction in the UI does look like if it was sent to an unknown address(mentioned by shorena), as generally return addresses are not shown in the UI. Are you perhaps using an extension/script to show these as well?
2. I think a "Private key for address X is unknown" also appears when you try to dumpprivkey with the wallet locked. I assume this is not the case.

No

Code:
dumpprivkey 1HxeCXGT11wVwy78gsVrzFfkfdijQE9rct 
Error: Please enter the wallet passphrase with walletpassphrase first. (code -13)

3. Have you tried to sign a message with the return address? I saw this recommended somewhere as to double-check if you don't have the private key for an address.

It should not make a difference.

4. If you haven't already, you could look at the commands listaddressgroupings and listreceivedbyaddress, they might tell you some additional info.

-



What I think happend is the following.

OP created a backup in January and kept using the wallet. The wallet kept refilling the keypool whenever needed, but these are not part of the January backup. Sometime in September the 101th key since the backup in Jan was used as a change address. When the wallet was restored from backup. It recognized the transaction because it had one of the keys that controlled the input that was used. Since it did not recognize any of the output addresses it marked them as external and thus is showing them in the overview, whereas it would not show a change output.
sr. member
Activity: 476
Merit: 251
More of a question here for learning purposes

Quote from: shorena
True, this is what a send to two addresses unknown to the wallet (no private key) would look like. Considering the time the transaction took place its likely that the change key was one 100+ ofter the january backup.

I am not getting how the return could go to an address about which your wallet does not know. I only see 2 options:

A: If the client knows that all keys in the old keypool have been used up (sync is recent enough), it will simply re-generate new private-public keys. This happens if you unlock the wallet to make a transaction. Hence return should go to a newly (at the time of transaction) generated address.

B: If the client does not know that all keys have been used up (sync not completed up to the point where the last address has been used), then it will send the return coins to an old address in the old keypool (say 99/100), which has already been used before (!), but for which you also ought to have the private key in the old wallet.dat. In this case the return address would have 2 transactions in it.

Please correct me if this is wrong, after all, I am here to learn.

Based on this and the transaction ID, the 13 BTC change was the only input to the return address, so I would say it is a new address generated when you sent the transaction. (Had 13 BTC been sent to a return address that was used sometime after your January backup (I do not see how that would be possible), that address would likely have another transaction in it as well. Being also old, it is quite probably that it was already used.)

BitcoinNewsBR
1. The transaction in the UI does look like if it was sent to an unknown address(mentioned by shorena), as generally return addresses are not shown in the UI. Are you perhaps using an extension/script to show these as well?
2. I think a "Private key for address X is unknown" also appears when you try to dumpprivkey with the wallet locked. I assume this is not the case.
3. Have you tried to sign a message with the return address? I saw this recommended somewhere as to double-check if you don't have the private key for an address.
4. If you haven't already, you could look at the commands listaddressgroupings and listreceivedbyaddress, they might tell you some additional info.
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
The Recovery HD service tried to find a latest version of the file, so we can have there the transactions between the 100 keypool limit.

They can't find any file from between January and November, so it didn't helped.

Still no success to recover the coins.

That's what I said, if they specifically looked for .dat files they had less chance to find the file because it may have been broken (partially rewritten)
OTOH pywallet looks for remaining keys, not for file so it may better work

"No success" is for their service or for the pywallet command I wrote?
newbie
Activity: 29
Merit: 0
What did the professional recovery company look for? Old .dat files or something more specific?
Pywallet looks for headers of unique keys so keys can be recovered even from a corrupted wallet

You can try this
Quote
sudo python ./pywallet.py --recover --recov_device /dev/sda --recov_size 500Go --recov_outputdir /home/username
Replace /dev/sda with the device your wallet was on, and 500Go with the size of the disk

The Recovery HD service tried to find a latest version of the file, so we can have there the transactions between the 100 keypool limit.

They can't find any file from between January and November, so it didn't helped.

Still no success to recover the coins.
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
What did the professional recovery company look for? Old .dat files or something more specific?
Pywallet looks for headers of unique keys so keys can be recovered even from a corrupted wallet

You can try this
Quote
sudo python ./pywallet.py --recover --recov_device /dev/sda --recov_size 500Go --recov_outputdir /home/username
Replace /dev/sda with the device your wallet was on, and 500Go with the size of the disk
copper member
Activity: 1498
Merit: 1528
No I dont escrow anymore.
-snip-
The return of the message on the Bitcoin Core Console:

Private key for address 1HxeCXGT11wVwy78gsVrzFfkfdijQE9rct is not known (code -4)

Proof: https://puu.sh/t0ZxE/6e005a3d9c.png

Also, not sure if this can help, here are the transactions on the Bitcoin-Core:
https://puu.sh/t0ZzM/67d3b8a63d.png

See how the transactions are at the same time. Usually the change transaction would not appear on this transactions list. So very strange! Any idea why?

True, this is what a send to two addresses unknown to the wallet (no private key) would look like. Considering the time the transaction took place its likely that the change key was one 100+ ofter the january backup. I assume you have used the machine since you formatted it? Maybe data recovery experts can help restoring the pre format wallet file.

Also, the transaction is showing as "Output index: 1" not sure what is this, but the other transactions appear as "Output index: 0"
Proof transaction: https://puu.sh/t0ZF8/112ee88917.png

Thanks for your time guys! I really appreciate it! Hope I can compensate it!

Just that its the 1st (ID 0) or 2nd (ID 1) output of the transaction.



Default is generating 100 adres when 101 backup again.

The milk is already spilled.
hero member
Activity: 812
Merit: 500
Default is generating 100 adres when 101 backup again.
newbie
Activity: 29
Merit: 0
-snip-
2) May you, please, tell me the commands again?
-snip-

Code:
walletpassphrase yourpasswordhere 120

to unlock for 120 seconds

Code:
dumpprivkey 1HxeCXGT11wVwy78gsVrzFfkfdijQE9rct

to get the private key for 1HxeCXGT11wVwy78gsVrzFfkfdijQE9rct.


The return of the message on the Bitcoin Core Console:

Private key for address 1HxeCXGT11wVwy78gsVrzFfkfdijQE9rct is not known (code -4)

Proof: https://puu.sh/t0ZxE/6e005a3d9c.png

Also, not sure if this can help, here are the transactions on the Bitcoin-Core:
https://puu.sh/t0ZzM/67d3b8a63d.png

See how the transactions are at the same time. Usually the change transaction would not appear on this transactions list. So very strange! Any idea why?

Also, the transaction is showing as "Output index: 1" not sure what is this, but the other transactions appear as "Output index: 0"
Proof transaction: https://puu.sh/t0ZF8/112ee88917.png

Thanks for your time guys! I really appreciate it! Hope I can compensate it!
copper member
Activity: 1498
Merit: 1528
No I dont escrow anymore.
-snip-
2) May you, please, tell me the commands again?
-snip-

Code:
walletpassphrase yourpasswordhere 120

to unlock for 120 seconds

Code:
dumpprivkey 1HxeCXGT11wVwy78gsVrzFfkfdijQE9rct

to get the private key for 1HxeCXGT11wVwy78gsVrzFfkfdijQE9rct.
newbie
Activity: 29
Merit: 0
1) Yes. The wallet still using the January/2016 backup.

I tried to put another backups and -rescan the wallet but without success, then put again the same January/2016 file.
So you put the backup file, spent, then put the backup file in there again and now you don't see the Bitcoin? Did you at any point backup the current wallet.dat file after you had spent the Bitcoin?

I think you may have lost your Bitcoin. If, after you had spent, you had replaced the wallet file already there with a backup, then you will not have the private keys to any of the addresses from your spending onwards (assuming that the keypool of the backup was actually exhausted).

2) I do not remember the exact return message. But I did try it and didn't returned the expected priv key.
Please run the command again and post both the command and its output.


1) Hd was formatted. Installed Bitcoin-qt with the January/2016 backup -> Spent -> Wait to finish the synchronized -> Notice the coins was not there -> Tried to restore other backups, coins still not there -> Restored the wallet.dat that I was using after finish syncronized. However, I'm not 100% sure if this file is the one that I did the transaction. I would say 80% sure that I have this file.

2) May you, please, tell me the commands again? Once a friend who was trying to help told it on Bitcoin-Core Slack, but now the message is not there (10,000 limit messages)

I remember that is necessary two code. The one with my wallet password to unlock the wallet and the second want is the privkeydump.

Thanks for your attention! I really appreciate it!
copper member
Activity: 1498
Merit: 1528
No I dont escrow anymore.
1) Yes. The wallet still using the January/2016 backup.

I tried to put another backups and -rescan the wallet but without success, then put again the same January/2016 file.
So you put the backup file, spent, then put the backup file in there again and now you don't see the Bitcoin? Did you at any point backup the current wallet.dat file after you had spent the Bitcoin?

I think you may have lost your Bitcoin. If, after you had spent, you had replaced the wallet file already there with a backup, then you will not have the private keys to any of the addresses from your spending onwards (assuming that the keypool of the backup was actually exhausted).
-snip-

Shouldnt the TX be unbroadcasted since the wallet wasnt synced? Nevermind, sounds like OP waited for a sync.



-snip-
1) I spent the coins without the wallet syncronized. After the wallet finish synchronizes, the funds were not there. So, I believe the priv key is not there.

Synced or not has nothing to do with how the wallet handles private keys.

2) Here is the transactions: https://blockchain.info/pt/tx/cccfd568f5a5d6f168d335c700c0cbc07e179356f4ab8bddd3210ded2d91deb0

The transaction is this 0.08 BTC. The change is this 13 BTC.

Its 3 months old.

If you believe you can help, feel free to send me a priv message so I share my identity, LinkedIn profile and Skype ID.

Thanks for your attention and your time answering this thread.

No need.
newbie
Activity: 29
Merit: 0
-snip-
It is strange, how the wallet generate a public key that I do not have the priv key?

It cant.

It is because the address generated is not on the keypool=100 limit.

No, these are two seperate issues. Your backup might have not contained some private keys for addresses you generated recently, because you used more than 100 since the last backup. As soon as you spend coins the keypool is refilled though. The change address must have been one that was among the 100 pregenerated as of january.

So, on the January/2016 backup, the address is not there, and after the wallet had synchronized it only showed the 100 address, not the change address that have this transaction.

Thanks for your reply and your help.

Wana share a transaction ID? We sometimes have people offering ridiculous high rewards for made up problems, where the wallet did something that is not part of its code. Feel free to send it to someone you deem worthy via a PM if you want to keep private. Considering what you wrote in your first post it sounds like you are responsible for others coins as well.


1) I spent the coins without the wallet syncronized. After the wallet finish synchronizes, the funds were not there. So, I believe the priv key is not there.

2) Here is the transactions: https://blockchain.info/pt/tx/cccfd568f5a5d6f168d335c700c0cbc07e179356f4ab8bddd3210ded2d91deb0

The transaction is this 0.08 BTC. The change is this 13 BTC.

If you believe you can help, feel free to send me a priv message so I share my identity, LinkedIn profile and Skype ID.

Thanks for your attention and your time answering this thread.
staff
Activity: 3458
Merit: 6793
Just writing some code
1) Yes. The wallet still using the January/2016 backup.

I tried to put another backups and -rescan the wallet but without success, then put again the same January/2016 file.
So you put the backup file, spent, then put the backup file in there again and now you don't see the Bitcoin? Did you at any point backup the current wallet.dat file after you had spent the Bitcoin?

I think you may have lost your Bitcoin. If, after you had spent, you had replaced the wallet file already there with a backup, then you will not have the private keys to any of the addresses from your spending onwards (assuming that the keypool of the backup was actually exhausted).

2) I do not remember the exact return message. But I did try it and didn't returned the expected priv key.
Please run the command again and post both the command and its output.
copper member
Activity: 1498
Merit: 1528
No I dont escrow anymore.
-snip-
It is strange, how the wallet generate a public key that I do not have the priv key?

It cant.

It is because the address generated is not on the keypool=100 limit.

No, these are two seperate issues. Your backup might have not contained some private keys for addresses you generated recently, because you used more than 100 since the last backup. As soon as you spend coins the keypool is refilled though. The change address must have been one that was among the 100 pregenerated as of january.

So, on the January/2016 backup, the address is not there, and after the wallet had synchronized it only showed the 100 address, not the change address that have this transaction.

Thanks for your reply and your help.

Wana share a transaction ID? We sometimes have people offering ridiculous high rewards for made up problems, where the wallet did something that is not part of its code. Feel free to send it to someone you deem worthy via a PM if you want to keep private. Considering what you wrote in your first post it sounds like you are responsible for others coins as well.
newbie
Activity: 29
Merit: 0
2) I still have the file,
So right now Bitcoin Core is using the wallet.dat file you put in the data directory prior to spending? You did not touch the file at all?

however, the priv key is not there. I tried dumpprivkey and it don't return any result on the Bitcoin-QT console.
Exactly what command did you use? What is the output from the console?


1) Yes. The wallet still using the January/2016 backup.

I tried to put another backups and -rescan the wallet but without success, then put again the same January/2016 file.

2) I do not remember the exact return message. But I did try it and didn't returned the expected priv key.

If you want dive in deep with me and try get this 2 BTC reward, please, send me a private message. I will also introduce me and my LinkedIn profile, so you know you are not wasting your time, and I'm a real person with good connections and will pay the 2 BTC reward for your time if I recover the coins.


Thanks for your attention, achow101.
staff
Activity: 3458
Merit: 6793
Just writing some code
2) I still have the file,
So right now Bitcoin Core is using the wallet.dat file you put in the data directory prior to spending? You did not touch the file at all?

however, the priv key is not there. I tried dumpprivkey and it don't return any result on the Bitcoin-QT console.
Exactly what command did you use? What is the output from the console?
newbie
Activity: 29
Merit: 0
Your post is a little hard to understand.

So, just to be sure, what happened was you formatted your drive, reinstalled Bitcoin Core, restored your Jan 2016 backup, and then sent Bitcoin without being synchronized.

So what did you do after that? If you still have the wallet file from when you sent the Bitcoin, the private key to the change address should still be there and you should still be able to access the Bitcoin.

Sorry any misunderstanding. The situation is little hard to understand also.

1) Yes, I sent Bitcoin without the QT being syncronized.

2) I still have the file, however, the priv key is not there. I tried dumpprivkey and it don't return any result on the Bitcoin-QT console.

It is strange, how the wallet generate a public key that I do not have the priv key? It is because the address generated is not on the keypool=100 limit. So, on the January/2016 backup, the address is not there, and after the wallet had synchronized it only showed the 100 address, not the change address that have this transaction.

Thanks for your reply and your help.
Pages:
Jump to: