btcd/docs/using_bootstrap_dat.md
Dave Collins 9918e2a561
multi: Update markdown files for GFM changes.
The github markdown interpreter has been changed such that it no longer
allows spaces in between the brackets and parenthesis of links and now
requires a newline in between anchors and other formatting.  This
updates all of the markdown files accordingly.

While here, it also corrects a couple of inconsistencies in some of the
README.md files.
2017-05-25 12:06:16 -05:00

2.9 KiB

Table of Contents

  1. What is bootstrap.dat?
  2. What are the pros and cons of using bootstrap.dat?
  3. Where do I get bootstrap.dat?
  4. How do I know I can trust the bootstrap.dat I downloaded?
  5. How do I use bootstrap.dat with btcd?

1. What is bootstrap.dat?

It is a flat, binary file containing bitcoin blockchain data starting from the genesis block and continuing through a relatively recent block height depending on the last time it was updated.

See this thread on bitcointalk for more details.

NOTE: Using bootstrap.dat is entirely optional. Btcd will download the block chain from other peers through the Bitcoin protocol with no extra configuration needed.

2. What are the pros and cons of using bootstrap.dat?

Pros:

  • Typically accelerates the initial process of bringing up a new node as it downloads from public P2P nodes and generally is able to achieve faster download speeds
  • It is particularly beneficial when bringing up multiple nodes as you only need to download the data once

Cons:

  • Requires you to setup and configure a torrent client if you don't already have one available
  • Requires roughly twice as much disk space since you'll need the flat file as well as the imported database

3. Where do I get bootstrap.dat?

The bootstrap.dat file is made available via a torrent. See this thread on bitcointalk for the torrent download details.

4. How do I know I can trust the bootstrap.dat I downloaded?

You don't need to trust the file as the addblock utility verifies every block using the same rules that are used when downloading the block chain normally through the Bitcoin protocol. Additionally, the chain rules contain hard-coded checkpoints for the known-good block chain at periodic intervals. This ensures that not only is it a valid chain, but it is the same chain that everyone else is using.

5. How do I use bootstrap.dat with btcd?

btcd comes with a separate utility named addblock which can be used to import bootstrap.dat. This approach is used since the import is a one-time operation and we prefer to keep the daemon itself as lightweight as possible.

  1. Stop btcd if it is already running. This is required since addblock needs to access the database used by btcd and it will be locked if btcd is using it.
  2. Note the path to the downloaded bootstrap.dat file.
  3. Run the addblock utility with the -i argument pointing to the location of boostrap.dat:

    Windows:
C:\> "%PROGRAMFILES%\Btcd Suite\Btcd\addblock" -i C:\Path\To\bootstrap.dat

Linux/Unix/BSD/POSIX:

$ $GOPATH/bin/addblock -i /path/to/bootstrap.dat