Moving a BTC full node chainstate to SSD

I recently decided that I’m shrugging my responsibility too much by only using an SPV thin wallet and started up bitcoin-core to run a full node. Electrum is a great wallet and I’ve used it for over a year now (before that I was even more irresponsible and just left my coins on Coinbase). I’d definitely recommend Electrum to anyone just starting to explore bitcoin.

I’m running on somewhat dated hardware i5 Core Duo 2.9 GHz, and started on a magnetic HDD – 2TB external Toshiba so it looked like it was going to take weeks to sync. As of 5/5/2019, there is approximately 223 GB of block data, and since I don’t have that much free SSD space, I had to install to an external HD.

I’ve been syncing my full node for a couple days, intermittently, but it was starting to get really sluggish once it hit blocks from around late 2016. I decided to look if there was a way to cache something on my SSD to speed things up and it turns out you can! By copying the chainstate directory which is only 2-3 GB and making a symbolic link, you greatly speed up your sync time without putting the entire 220+ GB blockchain on your on SSD.

My client went from %0.03 percent an hour to between 0.3% to 2% per hour. Huge increase in sync speed taking me from a week to hopefully under a day.

For windows – close your syncing qt GUI or CLI bitcoin application. Copy the chainstate folder from the data directory to your SSD. For bitcoin core 17.1, my data directory was named:

F:\Programs\bitcoin-0.11.2-win64\bitcoin-0.11.2\blockchain

Rename the chainstate folder on your HDD to chainstate.bak or something similar. Then, open a command prompt in admin mode and make a symbolic link using mklink like this

mklink /d chainstate c:\chainstate

You should get the following output

symbolic link created for chainstate <<===>> c:\chainstate

Restart your GUI or CLI and now you should be syncing significantly faster! There’s potentially another improvement by increasing the dbcache parameter which increases your RAM usage, but I don’t think that’s necessary for me at this point.

3 thoughts on “Moving a BTC full node chainstate to SSD”

  1. I too was looking for a way to speed up synchronization. Thank you very much for this solution, the sync has increased from 0,03 % to roughly 1%!

    Reply
  2. I Have been watching it slowly tick away at .3 to .02% and a 2 week estimated time , for two days before I came across this I am now looking at 14.93% and 6 hours…. Unreal, thank you, thank you, thank you thank you. May your life be fantastic

    Reply

Leave a Comment