<p>The reason is not strictly the upgrade from 0.12 to 0.13, but from a version that does not support SegWit to one that does, after SegWit activated on the network.</p>

<p>Bitcoin Core 0.13 comes with the code preparations for SegWit, although they are only enabled for testnet. Several miners have run pre-release code for 0.13 on testnet ahead of time, causing testnet to already switch to SegWit.</p>

<p>The problem is that you don't have the witness data for the blocks since that activates, so 0.13 decided to ignore those blocks on disk, and download them again.</p>

CC BY-SA 3.0
2017-02-09T16:30:44.753Z
I am doing an sync right now using version 12. Will it be downloading the witness data or do I require 13 to get witness data?
Harry Pillsbury
CC BY-SA 3.0
2017-02-09T16:39:10.760Z
It does not know about the concept of witnesses, so it cannot download them. However, as segwit has not activated on mainnet, no blocks have any witnesses, and no rewind will be necessary if you upgrade to 0.13 before segwit activates.
Pieter Wuille
CC BY-SA 3.0
2016-08-15T11:22:09.297Z
2016-08-15T11:22:09.297Z
Pieter Wuille
<p>Apparently, Bitcoin Core 0.13 will download part of the blockchain again, even though 0.12 already saved it on the disk.</p>

<p>My <code>debug.log</code> shows the last block it downloaded with 0.12:</p>

<pre><code>2016-08-15 09:07:28 UpdateTip: new best=000000000041eb2ccd0ed06d5bb632cf27b7ed584a669660cac28e1b71973720  height=922283  log2_work=67.979045  tx=10868067  date=2016-08-15 09:02:06 progress=1.000000  cache=7.3MiB(3942tx)
</code></pre>

<p>Later, some relevant excerpts from the <code>debug.log</code>:</p>

<pre><code>2016-08-15 09:40:14 Bitcoin version v0.13.0rc3
[...]
2016-08-15 09:40:28 LoadBlockIndexDB: hashBestChain=000000000041eb2ccd0ed06d5bb632cf27b7ed584a669660cac28e1b71973720 height=922283 date=2016-08-15 09:02:06 progress=0.999999
2016-08-15 09:40:28 init message: Rewinding blocks...
[...]
2016-08-15 09:47:48 UpdateTip: new best=0000000000211a4d54bceb763ea690a4171a734c48d36f7d8e30b51d6df6ea85 height=828576 version=0x20000000 log2_work=67.431752 tx=10111478 date='2016-05-12 19:05:48' progress=0.997200 cache=3.1MiB(7756tx)
2016-08-15 09:47:50 UpdateTip: new best=00000000000f0d5edcaeba823db17f366be49a80d91d15b77747c2e017b8c20a height=828575 version=0x20000000 log2_work=67.431752 tx=10108953 date='2016-05-12 19:05:43' progress=0.997200 cache=3.3MiB(9069tx)
2016-08-15 09:47:52 UpdateTip: new best=000000009c9e433e9a79e5b9e42c80848978d76c7078e0d35c706eea35dc4602 height=828574 version=0x20000000 log2_work=67.431752 tx=10106552 date='2016-05-10 19:28:48' progress=0.997141 cache=3.6MiB(11260tx)
2016-08-15 09:47:52 UpdateTip: new best=0000000000002fa99e0fa83ba05aa380f392c625e11807018c7ab2f84f773331 height=828575 version=0x20000000 log2_work=67.431758 tx=10106553 date='2016-05-10 17:32:25' progress=0.997138 cache=3.6MiB(11261tx)
[...]
2016-08-15 09:47:53 UpdateTip: new best=00000000004f22c4274b2358897f2b4abf001918629e241130fd3d1eafc4bfe6 height=829552 version=0x20000000 log2_work=67.44607 tx=10117642 date='2016-05-13 07:36:33' progress=0.997218 cache=4.4MiB(13128tx)
2016-08-15 09:47:53 UpdateTip: new best=0000000000f6287b3a4e30d86b07733862a6d5da4c00a897e2958f3831a6c6e8 height=829553 version=0x20000000 log2_work=67.44607 tx=10117643 date='2016-05-13 07:56:35' progress=0.997218 cache=4.4MiB(13129tx)
</code></pre>

<p>So apparently it was rewinding the blocks on disk and then reading some of them again from disk. Right now, it is fetching from the network, though.</p>

<bitcoin-core><testnet>
Update from Bitcoin core 0.12 to 0.13 requires blockchain re-download?
user2084795
# Update from Bitcoin core 0.12 to 0.13 requires blockchain re-download?

(Asked by: username_0 on 2016-08-15)

Apparently, Bitcoin Core 0.13 will download part of the blockchain again, even though 0.12 already saved it on the disk.

My `debug.log` shows the last block it downloaded with 0.12:

```
2016-08-15 09:07:28 UpdateTip: new best=000000000041eb2ccd0ed06d5bb632cf27b7ed584a669660cac28e1b71973720  height=922283  log2_work=67.979045  tx=10868067  date=2016-08-15 09:02:06 progress=1.000000  cache=7.3MiB(3942tx)

```

Later, some relevant excerpts from the `debug.log`:

```
2016-08-15 09:40:14 Bitcoin version v0.13.0rc3
[...]
2016-08-15 09:40:28 LoadBlockIndexDB: hashBestChain=000000000041eb2ccd0ed06d5bb632cf27b7ed584a669660cac28e1b71973720 height=922283 date=2016-08-15 09:02:06 progress=0.999999
2016-08-15 09:40:28 init message: Rewinding blocks...
[...]
2016-08-15 09:47:48 UpdateTip: new best=0000000000211a4d54bceb763ea690a4171a734c48d36f7d8e30b51d6df6ea85 height=828576 version=0x20000000 log2_work=67.431752 tx=10111478 date='2016-05-12 19:05:48' progress=0.997200 cache=3.1MiB(7756tx)
2016-08-15 09:47:50 UpdateTip: new best=00000000000f0d5edcaeba823db17f366be49a80d91d15b77747c2e017b8c20a height=828575 version=0x20000000 log2_work=67.431752 tx=10108953 date='2016-05-12 19:05:43' progress=0.997200 cache=3.3MiB(9069tx)
2016-08-15 09:47:52 UpdateTip: new best=000000009c9e433e9a79e5b9e42c80848978d76c7078e0d35c706eea35dc4602 height=828574 version=0x20000000 log2_work=67.431752 tx=10106552 date='2016-05-10 19:28:48' progress=0.997141 cache=3.6MiB(11260tx)
2016-08-15 09:47:52 UpdateTip: new best=0000000000002fa99e0fa83ba05aa380f392c625e11807018c7ab2f84f773331 height=828575 version=0x20000000 log2_work=67.431758 tx=10106553 date='2016-05-10 17:32:25' progress=0.997138 cache=3.6MiB(11261tx)
[...]
2016-08-15 09:47:53 UpdateTip: new best=00000000004f22c4274b2358897f2b4abf001918629e241130fd3d1eafc4bfe6 height=829552 version=0x20000000 log2_work=67.44607 tx=10117642 date='2016-05-13 07:36:33' progress=0.997218 cache=4.4MiB(13128tx)
2016-08-15 09:47:53 UpdateTip: new best=0000000000f6287b3a4e30d86b07733862a6d5da4c00a897e2958f3831a6c6e8 height=829553 version=0x20000000 log2_work=67.44607 tx=10117643 date='2016-05-13 07:56:35' progress=0.997218 cache=4.4MiB(13129tx)

```

So apparently it was rewinding the blocks on disk and then reading some of them again from disk. Right now, it is fetching from the network, though.

**Tags:** bitcoin-core, testnet


---

## 1 answers

### Answer by username_1 on 2016-08-15. Score: 6 | Accepted answer

The reason is not strictly the upgrade from 0.12 to 0.13, but from a version that does not support SegWit to one that does, after SegWit activated on the network.

Bitcoin Core 0.13 comes with the code preparations for SegWit, although they are only enabled for testnet. Several miners have run pre-release code for 0.13 on testnet ahead of time, causing testnet to already switch to SegWit.

The problem is that you don't have the witness data for the blocks since that activates, so 0.13 decided to ignore those blocks on disk, and download them again.

> **Comments:**
> **username_2**: I am doing an sync right now using version 12. Will it be downloading the witness data or do I require 13 to get witness data?  
> **username_1**: It does not know about the concept of witnesses, so it cannot download them. However, as segwit has not activated on mainnet, no blocks have any witnesses, and no rewind will be necessary if you upgrade to 0.13 before segwit activates.  

---

