Is it possible to move the Blockchain data from Windows to Mac? The wallet on windows is synced, the one on mac is not. The wallet on Mac has had some bitcoins sent to one of its addresses. Would it be safe to copy the blocks and chainstate folder to the mac from windows without losing the bitcoins?
2 Answers
The blocks, chains, and all that excessive data can be tossed. All you need is your wallet.dat which contains your private key.
I like to think of it this way... The bitcoin network is like a massive bank full of billions, trillions, and so on of vaults. You can put coins into any vault without needing a key to that vault. You can only take coins out of a vault IF you have a key to that vault (your wallet). Your coins are never stored on your actually computer. Only the KEY to the vault is stored on your computer. That key is used to access your coins. Downloading the blockchain is simply a way of letting your bitcoin client know how many coins you have, who you sent coins to, and who sent coins to you. Its like a virtual copy of those billions of vaults, which mostly all you don't have access to. Only that vault whose key you possess. Good luck!
If your goal is to avoid re-downloading the entire blockchain from the public internet, and you need a full node running/synced on a separate machine, then:
For the sake of example, machine1 is up-to-date and fully synced.
machine2 is not up-to-date, but you want to get it to a fully synced state ASAP over your network.
Ensure that TCP port 8333 is open on machine1's local firewall to, at the very least, the IP address of machine2.
The Bitcoin client should be running on machine1.
On machine2, start the Bitcoin client (e.g. bitcoin-qt
) with the -connect
parameter. That parameter will cause the client to connect only to the IP address specified. For example:
bitcoin-qt -connect=aaa.bbb.ccc.ddd
Where aaa.bbb.ccc.ddd
is the IP address of machine1. (Of course, specify any additional parameters that your configuration may require.)
Thus machine2 will catch up to machine1's state at LAN speeds (assuming you're connecting via a LAN; It'll work equally well over any sort of connection that allows TCP port 8333, of course).
This seems to be best practice from what I gather, and obviates problems with mis-matched versions of Bitcoin clients, corrupt/partial copies, incorrect permissions, a lengthy chainstate index rebuild time, etc.
At any rate, I'm doing this right now and the "estimated time left until synced" from scratch is now 3 hours over the LAN instead of 11 days over the internet.
Edit: To avoid losing any Bitcoins, backup wallet.dat
on both machines. That file is the key to your Bitcoins, as it were. Without that file (or a copy), your BTCs are gone.
If your concern is merely to be able to use your Bitcoins on another machine, you can move wallet.dat
between machines, and/or swap wallet files on the same machine.
Just ensure that if you have two wallets with currency in them you don't overwrite one with the other.
Before doing anything at all, backup both wallets to a couple of USB sticks and keep them somewhere very, very safe.