I would like to use the
bitcoind daemon but I don't want the high CPU footprint related to validating blocks every time new blocks come in. There is a better equipped computer that I can
rsync with, which would in theory allow me to just download the files and run:
bitcoind --daemon -connect=0.0.0.0 -checklevel=0
Note that I run
connect=0.0.0.0 because I don't want new blocks to arrive directly on this computer, and
checklevel=0 to prevent any block checks upon start.
I sync this with command:
rsync --progress --partial --recursive --size-only --verbose --delete -e "ssh -v" bitcoinserver:/home/jny/.bitcoin/blocks/ /home/jny/.bitcoin/blocks/ && scp bitcoinserver:/home/jny/.bitcoin/blocks/index/CURRENT /home/jny/.bitcoin/blocks/index/
So I sync the
blocks directory and download the
CURRENT file in the
index directory. Through trial and error I found this to work. However, there is one problem: I still have a high CPU usage because of the UpdateTip function that runs to process the blocks (see: Why could UpdateTip be taking so long?).
However, if I do include the
chainstate directory in my syncing, then I can not start bitcoin:
2014-07-25 12:03:36 Opened LevelDB successfully 2014-07-25 12:03:36 Opening LevelDB in /home/jny/.bitcoin/chainstate 2014-07-25 12:03:39 Corruption: 207 missing files; e.g.: /home/jny/.bitcoin/chainstate/452003.ldb 2014-07-25 12:03:39 : Error opening block database. Do you want to rebuild the block database now? 2014-07-25 12:03:39 Aborted block database rebuild. Exiting. 2014-07-25 12:03:39 Shutdown : In progress...
I imagine that the problem is that the files in chainstate are being changed as I download them. Stopping bitcoind on the server while rsyncing is not an option, unfortunately.
Another disadvantage is that files in the
chainstate directory seem to change a lot, which makes rsync download many of them over and over again, even though it could have been only a few hours since the last sync.
Any idea how to set up a more streamlined rsync of my bitcoin database?