Author

Topic: Transfer My Bitcoin from slow computer to faster computer (Read 1632 times)

legendary
Activity: 1512
Merit: 1036
. . . 17. Do not drive over 50MPH or over 50 miles on temporary spare tire, have tire serviced immediately.

However, at every step there is a way some idiot can screw up or kill themselves . . .

. . . A good technical writer knows it is impossible to make anything idiot-proof, because idiots are so ingenious.
I wonder what sort of safety margin the engineers use when coming up with this advice.  I know I've driven more than 1000 miles in excess of 90MPH over the course of 3 months on one of those temporary spares, before I got around to replacing it.

I just made up that stuff based on experience, it's not a cut-and-paste. Print and put on the spare tire of your less mechanically-inclined loved one. Just like "put the tools in the trunk" prevents you from getting a tire-iron through the head in case of a roll-over accident, running a temporary spare doesn't give you expected or needed vehicle control in cases of obstacle avoidance, confuses ABS computers, and causes differential wear. It is much better to provide simple guidance and tell white lies in some cases than explaining all possible consequences.

I knew a guy who put temporary spares on the front of his lowered VW bug. Doesn't mean I want to be in the car with him on a wet day.
legendary
Activity: 3472
Merit: 4801
. . . 17. Do not drive over 50MPH or over 50 miles on temporary spare tire, have tire serviced immediately.

However, at every step there is a way some idiot can screw up or kill themselves . . .

. . . A good technical writer knows it is impossible to make anything idiot-proof, because idiots are so ingenious.
I wonder what sort of safety margin the engineers use when coming up with this advice.  I know I've driven more than 1000 miles in excess of 90MPH over the course of 3 months on one of those temporary spares, before I got around to replacing it.
legendary
Activity: 1512
Merit: 1036
No its like opening the back cover on your TV remote before inserting the batteries...

Jokes aside, I'm not 100% sure the Bitcoin-QT client will only accept the Blockchain files after selecting detach database at shutdown.  It may only be necessary if just the blockchain files are transferred and not the clients settings but I don't know where they are stored.

To answer your question, the setting is stored in the Windows registry under HKCU\Software\Bitcoin\Bitcoin-Qt\detachDB.

The detachDB option prepares your blockchain for the move to another computer by making it more idiot-proof (without me having to explain why). To explain why I detail every step above, I guess I'll have to explain what I think might be done by naive users without explicit instruction (or with incorrect instruction):

  • Try to copy the database files while Bitcoin might be running, while it is still writing to, or still has locked file handles on, the database files,
  • Copy the data directory but not copy/restore the log files subdirectory,
  • Not be running the same version/platform/bittiness of Bitcoin on the other computer they copy the datadir to.

When you make a backup of the datadir file (without detachdb), the backup can be restored on the same machine with the same version of Bitcoin with no problems. This should make sense to you intuitively, because the entire data set will be exactly the same. However, that data may not work correctly on another version of Bitcoin without preparation.

Why do I specify to run and close Bitcoin with the detachdb option? Read what is performed when you use this option:
Quote
Description: DbEnv::lsn_reset

The DbEnv::lsn_reset method allows database files to be moved from one transactional database environment to another.

Database pages in transactional database environments contain references to the environment's log files (that is, log sequence numbers, or LSNs). Copying or moving a database file from one database environment to another, and then modifying it, can result in data corruption if the LSNs are not first cleared.

Note that LSNs should be reset before moving or copying the database file into a new database environment, rather than moving or copying the database file and then resetting the LSNs. Berkeley DB has consistency checks that may be triggered if an application calls DbEnv::lsn_reset on a database in a new environment when the database LSNs still reflect the old environment.

The DbEnv::lsn_reset method modifies the physical file, in-place. Applications should not reset LSNs in files that are currently in use.

The DbEnv::lsn_reset method may be called at any time during the life of the application.

The DbEnv::lsn_reset method either returns a non-zero error value or throws an exception that encapsulates a non-zero error value on failure, and returns 0 on success.

Don't do this, what are you likely to see in your db.log file?:

Code:
error:file unknown has LSN 333/1994577, past end of log at 1/28
Commonly caused by moving a database from one database environment
to another without clearing the database LSNs, or by removing all of
the log files from a database environment.

Bitcoin doesn't perform this operation on the blockchain database normally, because it takes a long time, and it is likely that the user will interrupt the writing process when they see Bitcoin isn't closing quickly or when they told their computer to shutdown and it's not shutting down due to the database files being written. This will corrupt database files. Enabling detachdb on the new computer in advance of restoration would only prepare database files which will be discarded anyway. Permanently enabling detachdb without knowing what it does or the caveats can increase the chance that the Bitcoin client's blockchain or other database files (uh, wallet?) will become corrupted in the future through end-user action.


You might thing tire-change instructions like these are tedious:

1. Move car to a flat and level surface, do not proceed work at an unstable or unlevel area,
2. Identify that you possess these items: cover pry tool, lug nut wrench, car jack, spare tire (properly inflated), tire chock,
3. Set vehicle parking brake and chock wheels at opposite end of vehicle from tire to be changed,
4. Remove wheel cover by prying at the indent notch at edge of cover with removal tool located in trunk,
5. Loosen each lug nut 1/4 turn by placing lug wrench tool on each lug nut (handle facing to the left) and stepping on it,
6. Locate jacking point on body rail seam weld, it will be an indent in the rail 6" from the wheel-well that can be felt,
7. Place jack under jacking point, raising it so it contacts vehicle by turning handle clockwise,
8. Verify that the jack is contacting vehicle at the notch and is perpendicular to ground,
9. Continue raising jack until tire is off the ground by 1" distance,
10. Remove all lug nuts from wheel and place in a secure location,
11. Remove wheel from lugs by shifting it left to right until it becomes disengaged from vehicle,
12. Place spare tire on lugs by orienting holes to match lugs and lift it into place,
13. Push wheel fully on lugs, ensuring that the center hole of wheel has seated itself around centering ring in spindle,
14. Replace lug nuts, hand tighten all nuts with wrench until turning resistance is met, using tightening pattern in vehicle manual
15. Lower vehicle jack, and tighten lug nuts to the same resistance as loosening them,
16. Place tools, jack, and original wheel in trunk,
17. Do not drive over 50MPH or over 50 miles on temporary spare tire, have tire serviced immediately.

However, at every step there is a way some idiot can screw up or kill themselves. I stopped and helped a ditzy blonde change a tire once, she couldn't get the lug nuts off because the wheel was spinning in the air. Of course I also noted the unstable vehicle wobbling in the air because she put the jack about a foot inside from the edge of the car, jacking up under the body and bending in the passenger footwell about six inches.

A good technical writer knows it is impossible to make anything idiot-proof, because idiots are so ingenious.
hero member
Activity: 533
Merit: 500
^Bitcoin Library of Congress.
No its like opening the back cover on your TV remote before inserting the batteries...

Jokes aside, I'm not 100% sure the Bitcoin-QT client will only accept the Blockchain files after selecting detach database at shutdown.  It may only be necessary if just the blockchain files are transferred and not the clients settings but I don't know where they are stored.
legendary
Activity: 1512
Merit: 1036
Make sure you select detach database at shutdown on the new computer before replacing the blockchain files with the ones from the old computer.
Uh, why? That's like saying "make sure you change the oil on your car before you replace the engine..."
hero member
Activity: 533
Merit: 500
^Bitcoin Library of Congress.
One should take a few precautions to prepare the datadir before copying for the highest probability of success:

1. Install the latest version of Bitcoin on the old computer
2. Run Bitcoin on the old computer one last time, starting it with the command-line option bitcoin-qt.exe -detachdb
3. In Setting->Options->Window tab, de-select the options "minimize to tray" and "minimize on close".
4. Close Bitcoin, and wait the several minutes it may take to completely close and detach database files (which is not normally performed without the previous command line option).
5. After verifying in Windows task manager that Bitcoin is no longer running, even in a hidden state, you may then make a complete copy of the data directory, including subdirectories.

There is a check box labeled "detach database at shutdown" in settings on the Bitcoin-QT client so you don't have to run bitoin from the command line.

Make sure you select detach database at shutdown on the new computer before replacing the blockchain files with the ones from the old computer.
newbie
Activity: 56
Merit: 0
You could just send the money to the new wallet. However I suppose there is the concern that someone may send to an old address later.
legendary
Activity: 1973
Merit: 1007
Once the folder is copied you will need to run bitcoind with the command line switch -loadblock to load the backed up dat files. Otherwise you will be waiting a while for the blockchain to re download.
BTW, this is wholly incorrect, please ignore this poster's instruction. "-loadblock" with no trailing parameters is incorrect usage and will do nothing. Whatever the poster's intent might have been is also incorrect and unnecessary - the loadblock command is for performing a full blockchain reimport and signature validation using a specified external blockchain file, likely to take a similar amount of time to complete as a fresh re-sync off the network. In addition, attempting to run this, specifying the blockchain files already in the datadir, will do something between nothing and completely corrupting the existing blockchain.

If the entire Bitcoin data directory contents (%appdata%\Bitcoin folder on Windows aka C:\Users\username\AppData\Roaming\Bitcoin, or the hidden directory ~/.bitcoin aka /home/username/.bitcoin on Linux) are copied to the corresponding folder location on a different computer, then Bitcoin (after the client application is also installed) will start exactly like it did on the old computer, with no interruption in service or difference in operation. One must discontinue use of Bitcoin on the old computer though, renaming or removing the old wallet.dat or completely removing the Bitcoin data directory, as running the same wallet in two locations is not wise (they will quickly become not-the-same-wallet).

One should take a few precautions to prepare the datadir before copying for the highest probability of success:

1. Install the latest version of Bitcoin on the old computer
2. Run Bitcoin on the old computer one last time, starting it with the command-line option bitcoin-qt.exe -detachdb
3. In Setting->Options->Window tab, de-select the options "minimize to tray" and "minimize on close".
4. Close Bitcoin, and wait the several minutes it may take to completely close and detach database files (which is not normally performed without the previous command line option).
5. After verifying in Windows task manager that Bitcoin is no longer running, even in a hidden state, you may then make a complete copy of the data directory, including subdirectories.

I didn't say use loadblock without specifying a corresponding dat file, although I could have clarified that. I was pointing the OP in the same direction I've used to restore my wallet and blockchain on a new machine. With that said, I was unaware that detaching the db from your original setup allows you to restore the existing blockchain without using loadblock. If that's the case, it's a much easier way to go.
legendary
Activity: 1512
Merit: 1036
Once the folder is copied you will need to run bitcoind with the command line switch -loadblock to load the backed up dat files. Otherwise you will be waiting a while for the blockchain to re download.
BTW, this is wholly incorrect, please ignore this poster's instruction. "-loadblock" with no trailing parameters is incorrect usage and will do nothing. Whatever the poster's intent might have been is also incorrect and unnecessary - the loadblock command is for performing a full blockchain reimport and signature validation using a specified external blockchain file, likely to take a similar amount of time to complete as a fresh re-sync off the network. In addition, attempting to run this, specifying the blockchain files already in the datadir, will do something between nothing and completely corrupting the existing blockchain.

If the entire Bitcoin data directory contents (%appdata%\Bitcoin folder on Windows aka C:\Users\username\AppData\Roaming\Bitcoin, or the hidden directory ~/.bitcoin aka /home/username/.bitcoin on Linux) are copied to the corresponding folder location on a different computer, then Bitcoin (after the client application is also installed) will start exactly like it did on the old computer, with no interruption in service or difference in operation. One must discontinue use of Bitcoin on the old computer though, renaming or removing the old wallet.dat or completely removing the Bitcoin data directory, as running the same wallet in two locations is not wise (they will quickly become not-the-same-wallet).

One should take a few precautions to prepare the datadir before copying for the highest probability of success:

1. Install the latest version of Bitcoin on the old computer
2. Run Bitcoin on the old computer one last time, starting it with the command-line option bitcoin-qt.exe -detachdb
3. In Setting->Options->Window tab, de-select the options "minimize to tray" and "minimize on close".
4. Close Bitcoin, and wait the several minutes it may take to completely close and detach database files (which is not normally performed without the previous command line option).
5. After verifying in Windows task manager that Bitcoin is no longer running, even in a hidden state, you may then make a complete copy of the data directory, including subdirectories.
legendary
Activity: 1973
Merit: 1007
Once the folder is copied you will need to run bitcoind with the command line switch -loadblock to load the backed up dat files. Otherwise you will be waiting a while for the blockchain to re download.
sr. member
Activity: 336
Merit: 250
Hi

I have decided to transfer my bitcoin from my slow computer to my faster one..

What is the best way to get my Bitcoins across from one computer to the other?

I know I could send it. But is there a file somewhere that I can transfer..

This would be great to know so I could keep a backup copy anyway..

thx..

Copy the whole Bitcoin folder in AppData. So you will not have to re-download the Blockchain
vip
Activity: 756
Merit: 503
Locate wallet.dat

Instruction to locate wallet.dat for your OS can be found here: https://en.bitcoin.it/wiki/Securing_your_wallet

Then:

Quote
Assuming your backup is recent enough that you haven't used up all of your key pool... restoring a wallet to a new (or old) location and rescanning the block chain should leave you with all your coins. Just follow these steps:
Shut down the Bitcoin program.
Copy your backed-up wallet.dat into your bitcoin data directory.
If copying into existing profile, delete files blk*.dat to make the client re-download the block chain.
member
Activity: 99
Merit: 11
Hi

I have decided to transfer my bitcoin from my slow computer to my faster one..

What is the best way to get my Bitcoins across from one computer to the other?

I know I could send it. But is there a file somewhere that I can transfer..

This would be great to know so I could keep a backup copy anyway..

thx..
Jump to: