<ol>
<li><p>The progress value is the ratio between the total number of transactions in the currently-validated part of the active chain, and an estimate for the total number of transactions in the chain. That estimate is computed based on statistics that are hardcoded in the software, and updated for major releases (including a known point in the chain at a known timestamp, with a known number of transactions, and a predicted rate of transactions per second afterwards).</p>
</li>
<li><p>It is a dimensionless unit, taking values between 0.000 and 1.000.</p>
</li>
<li><p>For the latest Bitcoin Core release (27.1), the code can be found <a href="https://github.com/bitcoin/bitcoin/blob/v27.1/src/validation.cpp#L5213L5230" rel="nofollow noreferrer">here</a>.</p>
</li>
</ol>

CC BY-SA 4.0
2024-06-13T14:23:35.387Z
2024-06-13T14:23:35.387Z
Pieter Wuille
<p>The debug.log file during Inital Block Download (IBD) typically includes something like the following<sup>1</sup>:</p>
<pre><code>2023-09-09T10:04:32Z UpdateTip: new best=00000000000000001004395fb5a59a4d44e51e7f9ff3504c2a5d6e7f06885680 height=371337 version=0x00000003 log2_work=83.254204 tx=81017610 date='2015-08-24T17:00:31Z' progress=0.093041 cache=226.8MiB(31135360txo)
</code></pre>
<p>It includes</p>
<pre><code>progress=0.093041
</code></pre>
<ol>
<li><p>How is the <code>progress</code> field calculated?</p>
</li>
<li><p>What are its possible values/units?</p>
</li>
<li><p>What is the function in bitcoin core that does the calculation?</p>
</li>
</ol>
<p>Possibly related:</p>
<p><a href="https://bitcoin.stackexchange.com/a/123281/34190">https://bitcoin.stackexchange.com/a/123281/34190</a></p>
<hr />
<p><sub>1. Copied from <a href="https://github.com/bitcoin/bitcoin/issues/28440" rel="nofollow noreferrer">this Github Issue</a> for illustration (the question is unrelated to the issue, it was just the first example I found to copy).</sub></p>

<bitcoin-core><bitcoind><synchronization><logging>
How is the progress field of Bitcoin Core's synchronisation/Initial Block Download debug logs calculated?
Lee
# How is the progress field of Bitcoin Core's synchronisation/Initial Block Download debug logs calculated?

(Asked by: username_0 on 2024-06-13)

The debug.log file during Inital Block Download (IBD) typically includes something like the following1:

```
2023-09-09T10:04:32Z UpdateTip: new best=00000000000000001004395fb5a59a4d44e51e7f9ff3504c2a5d6e7f06885680 height=371337 version=0x00000003 log2_work=83.254204 tx=81017610 date='2015-08-24T17:00:31Z' progress=0.093041 cache=226.8MiB(31135360txo)

```

It includes

```
progress=0.093041

```

1. How is the `progress` field calculated?
2. What are its possible values/units?
3. What is the function in bitcoin core that does the calculation?

Possibly related:

<https://bitcoin.stackexchange.com/a/123281/34190>

---

1. Copied from [this Github Issue](https://github.com/bitcoin/bitcoin/issues/28440) for illustration (the question is unrelated to the issue, it was just the first example I found to copy).

**Tags:** bitcoin-core, bitcoind, synchronization, logging


---

## 1 answers

### Answer by username_1 on 2024-06-13. Score: 3 | Accepted answer

1. The progress value is the ratio between the total number of transactions in the currently-validated part of the active chain, and an estimate for the total number of transactions in the chain. That estimate is computed based on statistics that are hardcoded in the software, and updated for major releases (including a known point in the chain at a known timestamp, with a known number of transactions, and a predicted rate of transactions per second afterwards).
2. It is a dimensionless unit, taking values between 0.000 and 1.000.
3. For the latest Bitcoin Core release (27.1), the code can be found [here](https://github.com/bitcoin/bitcoin/blob/v27.1/src/validation.cpp#L5213L5230).


---

