<p>Full nodes use checkpointing: they decide a past block (and all the blocks before it) to be definitive. Any block relayed to them that'd have happened before that checkpoint would be ignored. See <a href="https://en.bitcoin.it/wiki/Checkpoint_Lockin" rel="nofollow noreferrer">this article</a> for more details.</p>

CC BY-SA 4.0
2019-01-19T15:55:16.910Z
Actually, how does that work?  The first checkpoint is at height 11111, so if I'm initially downloading the blockchain, an attacker can feed me an unlimited number of candidates for block 10, and until I get blocks 11-11111 I won't know which of them leads to the checkpointed block, so in the meantime I have to store them all (and I don't think that Bitcoin Core will go back and delete them afterward).  Are we just hoping that I will get blocks 11-11111 quickly enough that the effect won't be too severe?
Nate Eldredge
CC BY-SA 4.0
2019-01-19T20:26:29.657Z
In recent versions of Bitcoin Core, headers first synchronisation is used. Your client would download first the headers, checking some consensus rules along the way (PoW, etc..) and also checking checkpoints. This way you know that you are downloading the valid main chain.
alcio
CC BY-SA 3.0
2017-09-13T14:35:40.717Z
2017-09-13T14:35:40.717Z
alcio
<p>Your information is outdated: For many years now nodes do not fetch, much less store, blocks which aren't memebers of a candidate for the longest chain according to their headers.</p>

CC BY-SA 4.0
2019-01-19T20:38:52.920Z
2019-01-19T20:38:52.920Z
G. Maxwell
<p>As I understand, full nodes accept block even if it is not mined on top of most recent block and store it as alternative chain as long as it fullfills <a href="https://en.bitcoin.it/wiki/Protocol_rules" rel="noreferrer">protocol rules</a>.</p>

<p>What would happen If one start mining millions (or more) of new versions of block height 10 (based on block 9) and keep sending them to the network? Could this cause full nodes to fill their hard drives and make them inoperational?</p>

<p>In other words - is there a limit for side chains enforced somehow by Bitcoin Core or protocol rules?</p>

<bitcoin-core><mining-theory>
Is blockchain protected from history spaming?
Jakub Fedyczak
# Is blockchain protected from history spaming?

(Asked by: username_0 on 2017-09-13)

As I understand, full nodes accept block even if it is not mined on top of most recent block and store it as alternative chain as long as it fullfills [protocol rules](https://en.bitcoin.it/wiki/Protocol_rules).

What would happen If one start mining millions (or more) of new versions of block height 10 (based on block 9) and keep sending them to the network? Could this cause full nodes to fill their hard drives and make them inoperational?

In other words - is there a limit for side chains enforced somehow by Bitcoin Core or protocol rules?

**Tags:** bitcoin-core, mining-theory


---

## 2 answers

### Answer by username_1 on 2017-09-13. Score: 3 | Accepted answer

Full nodes use checkpointing: they decide a past block (and all the blocks before it) to be definitive. Any block relayed to them that'd have happened before that checkpoint would be ignored. See [this article](https://en.bitcoin.it/wiki/Checkpoint_Lockin) for more details.

> **Comments:**
> **username_2**: Actually, how does that work?  The first checkpoint is at height 11111, so if I'm initially downloading the blockchain, an attacker can feed me an unlimited number of candidates for block 10, and until I get blocks 11-11111 I won't know which of them leads to the checkpointed block, so in the meantime I have to store them all (and I don't think that Bitcoin Core will go back and delete them afterward).  Are we just hoping that I will get blocks 11-11111 quickly enough that the effect won't be too severe?  
> **username_1**: In recent versions of Bitcoin Core, headers first synchronisation is used. Your client would download first the headers, checking some consensus rules along the way (PoW, etc..) and also checking checkpoints. This way you know that you are downloading the valid main chain.  

---

### Answer by username_3 on 2019-01-19. Score: 1

Your information is outdated: For many years now nodes do not fetch, much less store, blocks which aren't memebers of a candidate for the longest chain according to their headers.


---

