Since release v0.14.0, Bitcoin Core further improves on validation speed and network propagation performance, supports pruning the blockchain, leading to much shorter sync and initial block download times.

The biggest pain point of using Bitcoin-Qt (Bitcoin Core) prior to v 0.10 as your wallet is it takes forever to sync to get the complete block chain.

A fully functioning node must have the Bitcoin-Qt (Bitcoin Core) client on a machine instance with the complete block chain. Note that this speed-up tip will no longer be necessary for Bitcoin Core version 0.10 (click here for Bitcoin Core version history) and above because blockchain syncing will be parallelized across multiple peers and and will be faster than the approach mentioned here.

Please make sure the software is running from a computer with SSD (solid state drive), not HDD (hard drive) as the disk-intensive operations will be slow to death if you're not using SSD when you launch Bitcoin-Qt for the first time.

Applicable to Bitcoin Core prior to v 0.10, this article is a how-to guide about setting up a full bitcoin node by installing Bitcoin-Qt (now a.k.a. Bitcoin Core) on a Mac using slightly faster approaches broken down as follows:

Install Bitcoin-Qt

Download blockchain file via Torrent

Import blockchain file into Bitcoin-Qt

Give higher CPU priority to Bitcoin-Qt process

Wait for Bitcoin-Qt catch up synchronization

1. Install Bitcoin-Qt

Since version 0.9, Bitcoin-Qt was renamed to Bitcoin Core to reduce confusion between Bitcoin-the-network and Bitcoin-the-software. Bitcoin Core is a full Bitcoin client. It is a thick client, meaning it requires the full blockchain (explained below) on local disk to operate and expose blockchain back to the network to help relay and verify transactions. Keep a copy (sync) of the full blockchain locally takes a lot of CPU time initially, then requires incremental time to catch up with the rest of the full blockchain on the web every time Bitcoin-Qt is online.

On first launch of Bitcoin-Qt, it may takes days for this Bitcoin client to do the initial sync the full blockchain, block by block, with the network to your local drive under a Bitcoin-Qt data directory, which is time consuming that usually takes days.

2. Download blockchain file via Torrent

The complete blockchain is the record of all bitcoin transactions that have ever taken place in the universe. You must have the complete record before you are able to see your own balance and send payments using Bitcoin-Qt. To speed up the process of having the complete blockchain, instead of syncing it block by block, consider to download the whole blockchain and import it separately to have the full Blockchain under Bitcoin-Qt Data Directory. Specifically, download a previous copy of block chain (bootstrap.dat) via this torrent file, and manually put it under data directory Bitcoin-Qt at:

With this bootstrap.dat file put under the data directory, when you start up Bitcoin-Qt, if bootstrap.dat file exists, it'll automatically start importing newer blocks (bootstrap.dat) into Bitcoin-Qt. During the import, Bitcoin-Qt verifies transaction signatures and the validity of past payments, and the blockchain files will be re-indexed. This process may still take hours, but is supposed to be much faster.

As of Oct 2014, bootstrap.dat file size is 22+GB and this block-size continues to grow making Bitcoin-Qt setup requires days. However, only miners would need the entire blockchain data. Thus, instead of using Bitcoin-Qt as your choice of Bitcoin wallet, consider using other light weight client like Multibit or Electrum.

4. Give Higher CPU Priority to Bitcoin-Qt Process

The above approach of blockchain import should be faster than syncing the whole blockchain block by block. Give the process higher CPU priority might further help speeding up the blockchain import especially you have more CPU cycle at your disposal. If you're using Mac OS X, and assuming the Process ID (PID) of Bitcoin-Qt is 2202, use the following command to give Bitcoin-Qt process hight CPU priority:

sudo renice -20 -p 2202

-20 is the nice value a value between -20 and +19. The lower the nice value, the higher priority the process gets.

5. Catching Up Blockchain

After several days of import, the downloaded blockchain (bootstrap.dat) has finally imported. The balance in my Bitcoin-Qt wallet (stored in wallet.dat file) will show as the imported blockchain catches up to the particular point in time for the transactions I did. Eventually, when bootstrap.dat is fully imported, newer blockchain on the network must by synchronized and Bitcoin-Qt will does this by continue on synchronizing with network as seen below. At this point, the catchup work left to be done should be days worth of transaction only.

On completion, the status bar has a green check mark to indicate blockchain is synced up-to-date.

Let us know what you think or if you have better ways of making Bitcoin-QT installation faster below.