<p>Yes, downloading and validating the headers first has several advantages</p>

<ul>
<li><p>You know in advance that the chain you're downloading blocks for is in fact the most-work chain (= the one you would ultimately end up accepting, assuming it is valid). This means you don't waste time on potential forks that have been resolved.</p></li>
<li><p>Since you know what blocks you will be downloading, and which peers have them, you can parallellize the download (spreading the download over multiple peers).</p></li>
</ul>

<p>In Bitcoin Core, the block headers are stored in the blocks/index/ directory in the datadir, as a LevelDB database.</p>

CC BY-SA 3.0
2017-09-24T21:10:21.437Z
2017-09-24T21:10:21.437Z
Pieter Wuille
<p>When I opened the bitcoin client, I found that it was "synchronizing block headers". Does this mean that the client first downloads block headers and then downloads block bodies? What kind of file does the header of the downloaded block is stored in?</p>

<bitcoin-core><blockchain><synchronization>
synchronizing block headers
Trl
# synchronizing block headers

(Asked by: username_0 on 2017-09-24)

When I opened the bitcoin client, I found that it was "synchronizing block headers". Does this mean that the client first downloads block headers and then downloads block bodies? What kind of file does the header of the downloaded block is stored in?

**Tags:** bitcoin-core, blockchain, synchronization


---

## 1 answers

### Answer by username_1 on 2017-09-24. Score: 4

Yes, downloading and validating the headers first has several advantages

* You know in advance that the chain you're downloading blocks for is in fact the most-work chain (= the one you would ultimately end up accepting, assuming it is valid). This means you don't waste time on potential forks that have been resolved.
* Since you know what blocks you will be downloading, and which peers have them, you can parallellize the download (spreading the download over multiple peers).

In Bitcoin Core, the block headers are stored in the blocks/index/ directory in the datadir, as a LevelDB database.


---

