<p>Just got help from someone at BitcoinTalk forum, who directed me to <a href="https://github.com/bitcoin/bitcoin/blob/v0.11.0/doc/release-notes.md#block-file-pruning" rel="noreferrer">bitcoind 0.11.0 changelog</a> (<em>Which pruning was introduced/implemented for the first time in bitcoind</em>)</p>

<p>As indicated there, Block pruning deletes <em>raw block</em> &amp; <em>undo data</em>:</p>

<blockquote>
  <p>...
  there are four types of data related to the blockchain in the bitcoin system: the raw blocks as received over the network (blk???.dat), the undo data (rev???.dat), the block index and the UTXO set (both LevelDB databases). The databases are built from the raw data. Block pruning allows Bitcoin Core to delete the raw block and undo data once it's been validated and used to build the databases
  ....</p>
</blockquote>

<p>which then explains where the number 550 (Not magic anymore!) has come from:</p>

<blockquote>
  <p>The minimum allowed is 550MB*. Note that this is in addition to whatever is required for the block index and UTXO databases. The minimum was chosen so that Bitcoin Core will be able to maintain at least 288 blocks on disk (two days worth of blocks at 10 minutes per block). <strong><em>In rare instances it is possible that the amount of space used will exceed the pruning target in order to keep the required last 288 blocks on disk.</em></strong></p>
</blockquote>

<p>*Typo! MiB(1024) is right &amp; not MB(1000). So:</p>

<pre><code>550*1024*1024 = 576716800
576716800 / 288 ~ 2MB
</code></pre>

<p>Let me append it that with release of bitcoind 0.12.0, Wallet functionality &amp; block relay that was disabled at pruned mode(&amp; I talked about in my question), <a href="https://github.com/bitcoin/bitcoin/blob/v0.12.0/doc/release-notes.md" rel="noreferrer">are supported again</a>.</p>

CC BY-SA 4.0
2019-09-02T00:46:30.637Z
2019-09-02T00:46:30.637Z
behkod
<p>As you know Bitcoind can run in pruned mode, thus not advertising blocks to other nodes. Even though it has some drawbacks, saving you storage space isn't a benefit you can ignore.</p>

<p><strong>My question is about the magic 550(MiB) default/minimum number. Why they've selected that limit? (&amp; Why not less or more?)</strong></p>

<p>I know it implicitly indicates blocks will be kept for the last (about) 3.8 days (91 hours) (one MiB because of one block every 10 minutes). <strong>But where that number come from?</strong> I know there is also a dust limit equal to 546 Satoshis.[182*3 ~ 550 here! Even though it is unlikely to be related to this case]</p>

<p>Would you please explaining what <strong><em>the logic behind</em></strong> 550 is? Is there any kind of difficulty level relating to 51% attack or any other stuff like that?</p>

<p><strong>Edit</strong>:
From 0.12.0, bitcoind supports relaying <strong><em>NEW</em></strong> blocks to other nodes, thus the first assumption up there, isn't an accurate sentence!</p>

<blockchain><bitcoind><client><pruning>
Why is 550 (MiB) chosen for minimum storage size for prune mode?
behkod
# Why is 550 (MiB) chosen for minimum storage size for prune mode?

(Asked by: username_0 on 2019-09-01)

As you know Bitcoind can run in pruned mode, thus not advertising blocks to other nodes. Even though it has some drawbacks, saving you storage space isn't a benefit you can ignore.

**My question is about the magic 550(MiB) default/minimum number. Why they've selected that limit? (& Why not less or more?)**

I know it implicitly indicates blocks will be kept for the last (about) 3.8 days (91 hours) (one MiB because of one block every 10 minutes). **But where that number come from?** I know there is also a dust limit equal to 546 Satoshis.[182\*3 ~ 550 here! Even though it is unlikely to be related to this case]

Would you please explaining what ***the logic behind*** 550 is? Is there any kind of difficulty level relating to 51% attack or any other stuff like that?

**Edit**:
From 0.12.0, bitcoind supports relaying ***NEW*** blocks to other nodes, thus the first assumption up there, isn't an accurate sentence!

**Tags:** blockchain, bitcoind, client, pruning


---

## 1 answers

### Answer by username_0 on 2019-09-02. Score: 9 | Accepted answer

Just got help from someone at BitcoinTalk forum, who directed me to [bitcoind 0.11.0 changelog](https://github.com/bitcoin/bitcoin/blob/v0.11.0/doc/release-notes.md#block-file-pruning) (*Which pruning was introduced/implemented for the first time in bitcoind*)

As indicated there, Block pruning deletes *raw block* & *undo data*:

> ...
> there are four types of data related to the blockchain in the bitcoin system: the raw blocks as received over the network (blk???.dat), the undo data (rev???.dat), the block index and the UTXO set (both LevelDB databases). The databases are built from the raw data. Block pruning allows Bitcoin Core to delete the raw block and undo data once it's been validated and used to build the databases
> ....

which then explains where the number 550 (Not magic anymore!) has come from:

> The minimum allowed is 550MB\*. Note that this is in addition to whatever is required for the block index and UTXO databases. The minimum was chosen so that Bitcoin Core will be able to maintain at least 288 blocks on disk (two days worth of blocks at 10 minutes per block). ***In rare instances it is possible that the amount of space used will exceed the pruning target in order to keep the required last 288 blocks on disk.***

\*Typo! MiB(1024) is right & not MB(1000). So:

```
550*1024*1024 = 576716800
576716800 / 288 ~ 2MB

```

Let me append it that with release of bitcoind 0.12.0, Wallet functionality & block relay that was disabled at pruned mode(& I talked about in my question), [are supported again](https://github.com/bitcoin/bitcoin/blob/v0.12.0/doc/release-notes.md).


---

