<p>Sure, there are prepared blockchain data you can download and continue from there. You need to find a source you trust, preferably from the same wallet you use, since you already trust them.</p>

CC BY-SA 4.0
2019-02-25T21:01:05.000Z
2019-02-25T21:01:05.000Z
cande
<p>The problem is less so with validating the blocks and more to do with bandwidth constraints and the time it takes to write blocks to disk and update the databases.</p>

<p>As you sync more of the blockchain, the blocks become bigger and contain more transaction inputs and outputs. The outputs need to be added to the chainstate database and the inputs removed. This takes time especially as the database grows and the number of inputs and outputs per block increases. Even if you were to disable all block validation completely (which is not possible), it would still take a long time to build this database.</p>

<p>The best that you can get is to use the <code>assumevalid=&lt;hash&gt;</code> startup option. This can be added to your bitcoin.conf file or used in your startup command. What assumevalid does is it skips script verification for blocks that are ancestors of the block with the hash <code>&lt;hash&gt;</code>. Bitcoin Core already comes with a default value for this that was set before the last major release was made. You can set this value to a more recent block and get some performance improvements for blocks that have been mined since the last major release.</p>

CC BY-SA 4.0
2019-02-25T17:57:48.217Z
2019-02-25T17:57:48.217Z
Ava Chow
<p>Currently when syncing a bitcoind node from scratch the time of going from zero (0) to about 50% is a very fast process but somewhere between 50%-75% it slows down considerably and at 75%-85% it grinds to an almost halt.</p>

<p>Assuming that the blocks that are being verified during that time are what is causing the slowdown I'm wondering if there is a way to basically clone a node by still running and validating a full node but at least trusting the blocks up until some number that is far enough in the past to handle 99% of edge cases.</p>

<p>I know that cloning the disk is possible but transferring that to a new VPS for instance is not so looking for ways to speed up the process for everyone without sacrificing security.</p>

<p><strong>Known Optimizations</strong></p>

<p>Setting the <code>dbcache</code> to a higher value (currently using <code>2000</code> on a 4gb RAM machine which is 25% of the available RAM)</p>

CC BY-SA 4.0
2019-02-25T17:18:21.147Z
Ideally this would be by specifying a particular full node which you already control and know to be valid.
PW Kad
<bitcoind><synchronization>
What is the quickest way to bring a bitcoind node up handling 99% of edge cases?
PW Kad
# What is the quickest way to bring a bitcoind node up handling 99% of edge cases?

(Asked by: username_0 on 2019-02-25)

Currently when syncing a bitcoind node from scratch the time of going from zero (0) to about 50% is a very fast process but somewhere between 50%-75% it slows down considerably and at 75%-85% it grinds to an almost halt.

Assuming that the blocks that are being verified during that time are what is causing the slowdown I'm wondering if there is a way to basically clone a node by still running and validating a full node but at least trusting the blocks up until some number that is far enough in the past to handle 99% of edge cases.

I know that cloning the disk is possible but transferring that to a new VPS for instance is not so looking for ways to speed up the process for everyone without sacrificing security.

**Known Optimizations**

Setting the `dbcache` to a higher value (currently using `2000` on a 4gb RAM machine which is 25% of the available RAM)

**Tags:** bitcoind, synchronization

> **Comments:**
> **username_0**: Ideally this would be by specifying a particular full node which you already control and know to be valid.  

---

## 2 answers

### Answer by username_2 on 2019-02-25. Score: 3 | Accepted answer

The problem is less so with validating the blocks and more to do with bandwidth constraints and the time it takes to write blocks to disk and update the databases.

As you sync more of the blockchain, the blocks become bigger and contain more transaction inputs and outputs. The outputs need to be added to the chainstate database and the inputs removed. This takes time especially as the database grows and the number of inputs and outputs per block increases. Even if you were to disable all block validation completely (which is not possible), it would still take a long time to build this database.

The best that you can get is to use the `assumevalid=<hash>` startup option. This can be added to your bitcoin.conf file or used in your startup command. What assumevalid does is it skips script verification for blocks that are ancestors of the block with the hash `<hash>`. Bitcoin Core already comes with a default value for this that was set before the last major release was made. You can set this value to a more recent block and get some performance improvements for blocks that have been mined since the last major release.


---

### Answer by username_1 on 2019-02-25. Score: -2

Sure, there are prepared blockchain data you can download and continue from there. You need to find a source you trust, preferably from the same wallet you use, since you already trust them.


---

