<p>Yes, it is possible to load the blockchain binary data off to a bulk storage (HDD), while keeping the Index DB on performant storage (SSD).
The Bitcoin Blocks are stored in the <code>blocks</code> subdirectory in your <code>datadir</code>. The location of your datadir is either <code>%AppData%\BitCoin</code>, or <em>set manually</em> by you during the installation of <code>bitcoin-qt</code>.</p>

<p><em>I ASSUME you're using BitCoin Core (aka bitcoin-qt) on Windows 7 or higher, C:\ being your SSD, F:\ being your HDD, bot formated as NTFS. The location of <code>datadir</code> is <code>%AppData%\BitCoin\</code>.</em></p>

<ol>
<li><p>Move <code>%AppData%\BitCoin\blocks</code> to the HDD, e.g. to <code>F:\BTC\blocks</code></p></li>
<li><p><strong>OPTIONAL</strong> Move <code>F:\BTC\blocks\index</code> back to the SSD: <code>%AppData%\BitCoin\index</code></p></li>
</ol>

<p>NOTE: The blocks folder <strong>must not</strong> exist in <em>%AppData%\BitCoin</em> now!</p>

<ol start="3">
<li><p>Open a cmd window by pressing <em>WIN+R</em>, then type <em>cmd</em> and click ok</p></li>
<li><p>Type/Paste <code>mklink /J %AppData%\BitCoin\blocks F:\BTC\blocks</code> and hit <em>ENTER</em>. (This creates a <em>NTFS Junction</em>, creating a link in %AppData%\Bitcoin called <em>blocks</em>, pointing to the existing <em>F:\BTC\blocks</em> folder on the HDD)</p></li>
<li><p><strong>OPTIONAL</strong> Type/Paste  <code>mklink /J F:\BTC\blocks\index %AppData%\BitCoin\index</code> and hit <em>ENTER</em> (Create new link at <em>F:\BTC\blocks\index</em> pointing to existing <em>%AppData%\BitCoin\index</em>)</p></li>
</ol>

<p>Now, the blocks directory is on the HDD for cheap bulk storage, while its index subdirectory and parent datadir is on the speedy SSD. Only binary blockchain data is stored on HDD.</p>

<p>About the <code>index</code> directory (<em>Steps 2, 4</em>): As Pieter Wuille comments below, you don't really need to move the <code>index</code> directory within <code>blocks</code> back to SSD. But since it contains one of the databases, I figured it might help performance when starting up bitcoin-qt. <em>[citation needed]</em></p>

<p>In my case, this Windows task manager shows read/write speeds 10 times higher than befode (20-30MB/s). Download speed did go up to 2-4MB/s (50MBit Internet), CPU load is up at 85%.</p>

<p>I didn't monitor blocks/second improvement, but the taskmanager values show better throughput of data, which should directly relate to more blocks per second. I synced 15 weeks of blockchain while writing this (30m), versus only 1 week before the modification!</p>

<p>The datadir without binary blockchain data is a little over 2GB, with 25 weeks worth of blockchain still missing. I'd recommend at least 5GB free space on the SSD for the currently 80GB big blockchain.</p>

CC BY-SA 3.0
2016-09-16T23:19:46.350Z
Quite accurate, but the performance of the `blocks\index` database is actually irrelevant; we only ever write a bit of data to it. There is a different database however, `chainstate` directory, whose performance is absolutely critical. I'd suggest to move this latter to SSD instead.
Pieter Wuille
CC BY-SA 3.0
2016-09-17T10:33:58.803Z
Thanks for the hint. I'm new to Bitcoin, so I didn't know what each file really does. I'll add a note at the end of my answer about `index` and mark the relevant steps as optional.
NoMad
CC BY-SA 3.0
2016-10-23T20:09:57.107Z
Oracle databases? We use BDB for the wallet. blocks/index and chainstate are LevelDB.
Pieter Wuille
CC BY-SA 3.0
2016-10-24T06:54:01.913Z
Good point, don't know where I read that this is an Oracle DB... I've turned the answer into a community wiki, as I said I don't know too much about bitcoin itself, so if anyone finds more things wrong, please edit as you like.
NoMad
CC BY-SA 3.0
2016-09-16T21:02:38.707Z
2016-10-24T06:52:11.760Z
2016-10-24T06:52:11.760Z
NoMad
<p>I have a 60GB SSD as my Windows system drive, which isn't enough to save the entire blockchain to. I installed BitCoin Core (bitcoin-qt) and set the data directory to be on my 2TB HDD. However, the initial blockchain sync is running since 2 days already, currently being '40 Weeks behind'. The HDD is showing 100% load in Windows task manager. CPU is at &lt;50% load, network usage is &lt;1MB/s while syncing.</p>

<p>Can I speed up the initial sync by using the SSD for DB storage, while binary blockchain data is saved to conventional HDD?</p>

<p>Does that actually speed up the sync?</p>

<synchronization><storage-footprint>
How to speed up initial block chain sync using SSD without wasting space?
NoMad
# How to speed up initial block chain sync using SSD without wasting space?

(Asked by: username_0 on 2016-09-16)

I have a 60GB SSD as my Windows system drive, which isn't enough to save the entire blockchain to. I installed BitCoin Core (bitcoin-qt) and set the data directory to be on my 2TB HDD. However, the initial blockchain sync is running since 2 days already, currently being '40 Weeks behind'. The HDD is showing 100% load in Windows task manager. CPU is at <50% load, network usage is <1MB/s while syncing.

Can I speed up the initial sync by using the SSD for DB storage, while binary blockchain data is saved to conventional HDD?

Does that actually speed up the sync?

**Tags:** synchronization, storage-footprint


---

## 1 answers

### Answer by username_0 on 2016-09-16. Score: 3

Yes, it is possible to load the blockchain binary data off to a bulk storage (HDD), while keeping the Index DB on performant storage (SSD).
The Bitcoin Blocks are stored in the `blocks` subdirectory in your `datadir`. The location of your datadir is either `%AppData%\BitCoin`, or *set manually* by you during the installation of `bitcoin-qt`.

*I ASSUME you're using BitCoin Core (aka bitcoin-qt) on Windows 7 or higher, C:\ being your SSD, F:\ being your HDD, bot formated as NTFS. The location of `datadir` is `%AppData%\BitCoin\`.*

1. Move `%AppData%\BitCoin\blocks` to the HDD, e.g. to `F:\BTC\blocks`
2. **OPTIONAL** Move `F:\BTC\blocks\index` back to the SSD: `%AppData%\BitCoin\index`

NOTE: The blocks folder **must not** exist in *%AppData%\BitCoin* now!

3. Open a cmd window by pressing *WIN+R*, then type *cmd* and click ok
4. Type/Paste `mklink /J %AppData%\BitCoin\blocks F:\BTC\blocks` and hit *ENTER*. (This creates a *NTFS Junction*, creating a link in %AppData%\Bitcoin called *blocks*, pointing to the existing *F:\BTC\blocks* folder on the HDD)
5. **OPTIONAL** Type/Paste `mklink /J F:\BTC\blocks\index %AppData%\BitCoin\index` and hit *ENTER* (Create new link at *F:\BTC\blocks\index* pointing to existing *%AppData%\BitCoin\index*)

Now, the blocks directory is on the HDD for cheap bulk storage, while its index subdirectory and parent datadir is on the speedy SSD. Only binary blockchain data is stored on HDD.

About the `index` directory (*Steps 2, 4*): As username_1 username_1 comments below, you don't really need to move the `index` directory within `blocks` back to SSD. But since it contains one of the databases, I figured it might help performance when starting up bitcoin-qt. *[citation needed]*

In my case, this Windows task manager shows read/write speeds 10 times higher than befode (20-30MB/s). Download speed did go up to 2-4MB/s (50MBit Internet), CPU load is up at 85%.

I didn't monitor blocks/second improvement, but the taskmanager values show better throughput of data, which should directly relate to more blocks per second. I synced 15 weeks of blockchain while writing this (30m), versus only 1 week before the modification!

The datadir without binary blockchain data is a little over 2GB, with 25 weeks worth of blockchain still missing. I'd recommend at least 5GB free space on the SSD for the currently 80GB big blockchain.

> **Comments:**
> **username_1**: Quite accurate, but the performance of the `blocks\index` database is actually irrelevant; we only ever write a bit of data to it. There is a different database however, `chainstate` directory, whose performance is absolutely critical. I'd suggest to move this latter to SSD instead.  
> **username_0**: Thanks for the hint. I'm new to Bitcoin, so I didn't know what each file really does. I'll add a note at the end of my answer about `index` and mark the relevant steps as optional.  
> **username_1**: Oracle databases? We use BDB for the wallet. blocks/index and chainstate are LevelDB.  
> **username_0**: Good point, don't know where I read that this is an Oracle DB... I've turned the answer into a community wiki, as I said I don't know too much about bitcoin itself, so if anyone finds more things wrong, please edit as you like.  

---

