<blockquote>
<p><strong>I am using the core wallet.</strong></p>
</blockquote>
<p>There are several different wallet applications with &quot;core&quot; in their name. This answer applies to Bitcoin Core but not to Bitcore or other wallets whose name includes the word &quot;core&quot;.</p>
<hr />
<blockquote>
<p><strong>Often seeing Rewinding blocks ...</strong></p>
</blockquote>
<p>I could not find the word &quot;Rewinding&quot; in the source of Bitcoin core v23.</p>
<p>Occurrences of the word &quot;rewind&quot; seem to me to be associated with blockchain reorganisations. Murch commented that a one-block chain-tip change might occur once every two weeks. This is routine and not a cause of any concern,</p>
<p>The only similar message I can find mentioning &quot;rewind&quot; is these:</p>
<pre><code>index\base.cpp:                    FatalError(&quot;%s: Failed to rewind index %s to a previous chain tip&quot;,
index\base.cpp:            FatalError(&quot;%s: Failed to rewind index %s to a previous chain tip&quot;,
</code></pre>
<p>I don't work on this code, so have no real insight, but examining the source code may help clarify what this means. For example</p>
<pre><code>        // Ensure block connects to an ancestor of the current best block. This should be the case
        // most of the time, but may not be immediately after the sync thread catches up and sets
        // m_synced. Consider the case where there is a reorg and the blocks on the stale branch are
        // in the ValidationInterface queue backlog even after the sync thread has caught up to the
        // new chain tip. In this unlikely event, log a warning and let the queue clear.
        if (best_block_index-&gt;GetAncestor(pindex-&gt;nHeight - 1) != pindex-&gt;pprev) {
            LogPrintf(&quot;%s: WARNING: Block %s does not connect to an ancestor of &quot; /* Continued */
                      &quot;known best chain (tip=%s); not updating index\n&quot;,
                      __func__, pindex-&gt;GetBlockHash().ToString(),
                      best_block_index-&gt;GetBlockHash().ToString());
            return;
        }
        if (best_block_index != pindex-&gt;pprev &amp;&amp; !Rewind(best_block_index, pindex-&gt;pprev)) {
            FatalError(&quot;%s: Failed to rewind index %s to a previous chain tip&quot;,
                       __func__, GetName());
            return;
        }
</code></pre>
<p>Since failing to rewind the index is a <em>fatal</em> error,  I would expect Bitcoin Core to exit. Perhaps it indicates data corruption?</p>
<hr />
<blockquote>
<p><strong>... and Loading block index</strong></p>
</blockquote>
<p>Every time you start Bitcoin Core, it has to first load some parts of its database and check their integrity. It does this in stages and the informational messages let you know how far it has progressed through that process. Loading the block index is  a part of that:</p>
<p><a href="https://i.sstatic.net/RZVgq.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/RZVgq.png" alt="Loading Blocks" /></a></p>
<p>On my PC &quot;Loading block index...&quot; is quickly replaced by &quot;Verifying blocks...&quot;</p>
<p><a href="https://i.sstatic.net/9XVWj.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/9XVWj.png" alt="enter image description here" /></a></p>
<p>The message &quot;Loading block index&quot; occurs in <code>init.cpp</code> and in <code>qt/bitcoinstrings.cpp</code> in Bitcoin Core's source code.</p>

CC BY-SA 4.0
2022-12-23T16:18:51.797Z
Loadinh block happens when opening the QT wallet.
Eddie0110
CC BY-SA 4.0
2022-12-23T18:06:55.233Z
Thats a normal informational message that reassures people who might otherwise wonder if the application was somehow stuck or hung up. See amended answer.
RedGrittyBrick
CC BY-SA 4.0
2022-12-23T18:12:30.977Z
Two competing blocks occur about once every two weeks, we have not had a two block reorg in a few years.
Murch
CC BY-SA 4.0
2022-12-22T13:29:38.637Z
2022-12-23T21:12:54.323Z
2022-12-23T21:12:54.323Z
RedGrittyBrick
<p>Every so often I see these error messages in Rewinding blocks... and Loading block. What is the cause of those error messages? I am using the core wallet.</p>

<bitcoin-core><synchronization><chain-reorganization>
Often seeing Rewinding blocks... and Loading block index
Eddie0110
# Often seeing Rewinding blocks... and Loading block index

(Asked by: username_0 on 2022-12-22)

Every so often I see these error messages in Rewinding blocks... and Loading block. What is the cause of those error messages? I am using the core wallet.

**Tags:** bitcoin-core, synchronization, chain-reorganization


---

## 1 answers

### Answer by username_1 on 2022-12-22. Score: 0

> **I am using the core wallet.**

There are several different wallet applications with "core" in their name. This answer applies to Bitcoin Core but not to Bitcore or other wallets whose name includes the word "core".

---

> **Often seeing Rewinding blocks ...**

I could not find the word "Rewinding" in the source of Bitcoin core v23.

Occurrences of the word "rewind" seem to me to be associated with blockchain reorganisations. username_2 commented that a one-block chain-tip change might occur once every two weeks. This is routine and not a cause of any concern,

The only similar message I can find mentioning "rewind" is these:

```
index\base.cpp:                    FatalError("%s: Failed to rewind index %s to a previous chain tip",
index\base.cpp:            FatalError("%s: Failed to rewind index %s to a previous chain tip",

```

I don't work on this code, so have no real insight, but examining the source code may help clarify what this means. For example

```
        // Ensure block connects to an ancestor of the current best block. This should be the case
        // most of the time, but may not be immediately after the sync thread catches up and sets
        // m_synced. Consider the case where there is a reorg and the blocks on the stale branch are
        // in the ValidationInterface queue backlog even after the sync thread has caught up to the
        // new chain tip. In this unlikely event, log a warning and let the queue clear.
        if (best_block_index->GetAncestor(pindex->nHeight - 1) != pindex->pprev) {
            LogPrintf("%s: WARNING: Block %s does not connect to an ancestor of " /* Continued */
                      "known best chain (tip=%s); not updating index\n",
                      __func__, pindex->GetBlockHash().ToString(),
                      best_block_index->GetBlockHash().ToString());
            return;
        }
        if (best_block_index != pindex->pprev && !Rewind(best_block_index, pindex->pprev)) {
            FatalError("%s: Failed to rewind index %s to a previous chain tip",
                       __func__, GetName());
            return;
        }

```

Since failing to rewind the index is a *fatal* error, I would expect Bitcoin Core to exit. Perhaps it indicates data corruption?

---

> **... and Loading block index**

Every time you start Bitcoin Core, it has to first load some parts of its database and check their integrity. It does this in stages and the informational messages let you know how far it has progressed through that process. Loading the block index is a part of that:

[![Loading Blocks](https://i.sstatic.net/RZVgq.png)](https://i.sstatic.net/RZVgq.png)

On my PC "Loading block index..." is quickly replaced by "Verifying blocks..."

[![enter image description here](https://i.sstatic.net/9XVWj.png)](https://i.sstatic.net/9XVWj.png)

The message "Loading block index" occurs in `init.cpp` and in `qt/bitcoinstrings.cpp` in Bitcoin Core's source code.

> **Comments:**
> **username_0**: Loadinh block happens when opening the QT wallet.  
> **username_1**: Thats a normal informational message that reassures people who might otherwise wonder if the application was somehow stuck or hung up. See amended answer.  
> **username_2**: Two competing blocks occur about once every two weeks, we have not had a two block reorg in a few years.  

---

