Bitcoin Core “full node” setup instructions for Windows, step-by-step.

So you’re interested in running a Bitcoin Full Node, and need a step-by-step guide for doing this on Windows?

Let’s step into it.

First off, we need to understand some facts about Bitcoin full nodes:

  • A full-node, by default, consists of a copy on disk of the entire block-chain. As of January 2018, the disk space required for this is about 170GB. You can prune older blocks from the blockchain, resulting in lower space requirements at the cost of no longer being able to see the details of every transaction confirmed since the genesis block. See below for details about how to configure block-chain pruning. Of course, prior to setting up pruning, you need to have the entire blockchain present on disk.
  • Bandwidth requirements for a full node as of January 2018 over a 30-day period are approximately 450GB uploaded, and 50GB downloaded. 5 minute sampling over the past 30 days shows BTC is requiring 164.73KB up and 16.47KB down per second. If you are contemplating running a full node, please ensure you have monthly bandwidth allocation that can handle this, otherwise you may find you have a very nasty bill at the end of the month from your ISP.
  • A full node, by itself, does not provide the ability to “mine” Bitcoins. For that, you’d need an ASIC miner, such as the Bitmain AntMiner S9. Be aware, there are many scam websites offering these Bitmain AntMiners for sale at exhorbitant prices; many never deliver. The best place to buy one is from the manufacturer directly.
  • Bitcoin Core full nodes provide wallet functionality by default. The wallet is *not* encrypted by default; see the step-by-step instructions below for details about how to encrypt and backup the wallet.

Now that we’ve got those basic details down, let’s get into the step-by-step installation details:

  1. Choose a path where the blockchain data will reside; for this example, I am using C:\BitcoinCore as the root directory for the full node. I’m going to use C:\BitcoinCore\Data for the blockchain data folder. Create both of those folders.
  2. Download the Bitcoin Core Full Node software. For this guide, you’ll need the 64-bit Windows version.
  3. Extract the downloaded .zip file into the folder chosen in step 1. In this guide, we’re using C:\BitcoinCore as the root directory; once you’ve extracted the .zip file, you should have the following folders:
    C:\BitcoinCore
    C:\BitcoinCore\bin
    C:\BitcoinCore\include
    C:\BitcoinCore\lib
    C:\BitcoinCore\share
  4. Use notepad.exe to create a new file with the following contents:
    debug=0
    logips=1
    printtoconsole=1
    wallet=my_wallet_name.dat
    conf=C:\Bitcoin\Data\bitcoin.conf
    datadir=C:\Bitcoin\Data
    dbcache=8192
    maxmempool=2048
    blockreconstructionextratxn=512
    par=0
    persistmempool=1
    listen=1
    port=8333
    bind=0.0.0.0
    listenonion=0
    maxsendbuffer=2000
    fallbackfee=0.0002
    discardfee=0.000025
    walletrbf=1
    maxtxfee=0.01
    server=1
    rpcuser=some_string_here
    rpcpassword=some_password_here
  5. Save the file as C:\BitcoinCore\Data\bitcoin.conf
  6. Create a new file using notepad.exe with the following content:
    "C:\BitcoinCore\bin\bitcoin-qt.exe" -conf=C:\BitcoinCore\Data\bitcoin.conf
  7. Save the file as C:\BitcoinCore\StartFullNode.cmd. Once you’ve saved it, you can start the full node by double-clicking StartFullNode.cmd. The full-node Bitcoin Core wallet will start downloading the blockchain. While the blockchain is downloading, the wallet will not be available. Depending on your download speeds, it may take several days or more to download the entire blockchain. Be patient.

As promised above, you can enable block-chain pruning. To do that, simply add the following line to the C:\BitcoinCore\Data\bitcoin.conf configuration file:

prune=1024

The 1024 represents the maximum number of megabytes we should retain in the blockchain. The number can be set as low as 550; but I’d recommend keeping as much of the blockchain as you can.

Leave a Reply

Your email address will not be published. Required fields are marked *