<p>A hard fork is something that happens when some of the nodes on the network follow a new set of rules that are in some way incompatible with the existing set of rules.  It occurs upon mining the first block that is valid under the new rules, but invalid under the old.</p>

<p>The software following new rules is deployed and in place before the fork occurs, but doesn't actually start using those new rules until some triggering event.  In practice, this event is when a certain percentage of the last X blocks have been mined by nodes supporting the new rules.  This event is called <em>activation</em> of the new rules.</p>

<p>The fork, however, doesn't occur until a block is found by the nodes following the new rules, that is invalid to blocks following the old:</p>

<pre><code>[G] [G']
 |   |
[F] [F']
 |   |
[E] [E'] &lt;-- Hard fork occurs when this block is mined
 | /
[D]
 |
[C]
 |
[B] &lt;-- "forking" nodes start following new rules here
 |
[A]
</code></pre>

<p>Here we see an example where the nodes following the new rules <em>activate</em> at block <code>B</code>.  However blocks <code>C</code> and <code>D</code> are valid under the new rules, <em>and</em> the old rules, thus they don't cause the fork.  When block <code>E'</code> is mined, it is only valid under the <em>new</em> rules, meaning that it is rejected by clients who follow the old rules.  Those clients that reject the block go on to mine <code>E</code>, and we now have two irreconcilable chains.</p>

CC BY-SA 3.0
2017-03-23T00:14:36.820Z
I think it's also worth noting that if block F is found before F', the forks can reconverge and E' will be orphaned. This is because nodes and miners will follow the longest valid chain. Since the older blocks are valid on the new rules, a longer chain of old-style blocks will still trump a shorter chain of new-style blocks. This is why over 50% of the hash rate needs to support a new rule before a fork will succeed.
Kevin Nowaczyk
CC BY-SA 3.0
2017-03-23T08:30:28.400Z
"In practice, this event is when a certain percentage of the last X blocks have been mined by nodes supporting the new rules." In fact, BU unlimited does not contain code that performs any such checks. Rather, some proponents of BU have suggested that they wait until there is 75% of support before they _manually_ trigger the hardfork.
Murch
CC BY-SA 3.0
2017-03-27T12:52:34.863Z
So as I understand it the software for BU, BTC and SegWit is already developed and deployed and now it is a matter of waiting until more than 50% of miners signal towards one of these and agree on a time to start mining the new block & chain (in order to avoid orphaning blocks)?
Josh
CC BY-SA 3.0
2017-03-28T01:11:39.060Z
Josh, as per @Murch's comment, BTU appears to be triggering it manually.  If so, they could do it at 50%, 75%, 95%, or even 20%.  I'm not familiar with their code, and am not even entirely sure who "they" are.  This might make a good new question.
Jestin
CC BY-SA 3.0
2017-03-22T19:18:47.000Z
2017-03-22T19:30:32.723Z
2017-03-22T19:30:32.723Z
Jestin
<p>with the whole debate and concern over a looming Bitcoin hard fork I would like to ask at what point has the hard fork occurred? Is there a specific moment when developers decide to implement BTC/BTU code that miners and nodes then decide to use or is it more gradual where miners and nodes slowly start leaning more towards one or the other?</p>

<p>If it is the case of pushing a the button and uploading/implementing new code will there be a publicized date?</p>

<bitcoin-core><blockchain-fork><bitcoin-unlimited>
At what point does a hard fork occur?
Josh
# At what point does a hard fork occur?

(Asked by: username_0 on 2017-03-22)

with the whole debate and concern over a looming Bitcoin hard fork I would like to ask at what point has the hard fork occurred? Is there a specific moment when developers decide to implement BTC/BTU code that miners and nodes then decide to use or is it more gradual where miners and nodes slowly start leaning more towards one or the other?

If it is the case of pushing a the button and uploading/implementing new code will there be a publicized date?

**Tags:** bitcoin-core, blockchain-fork, bitcoin-unlimited


---

## 1 answers

### Answer by username_1 on 2017-03-22. Score: 7 | Accepted answer

A hard fork is something that happens when some of the nodes on the network follow a new set of rules that are in some way incompatible with the existing set of rules. It occurs upon mining the first block that is valid under the new rules, but invalid under the old.

The software following new rules is deployed and in place before the fork occurs, but doesn't actually start using those new rules until some triggering event. In practice, this event is when a certain percentage of the last X blocks have been mined by nodes supporting the new rules. This event is called *activation* of the new rules.

The fork, however, doesn't occur until a block is found by the nodes following the new rules, that is invalid to blocks following the old:

```
[G] [G']
 |   |
[F] [F']
 |   |
[E] [E'] <-- Hard fork occurs when this block is mined
 | /
[D]
 |
[C]
 |
[B] <-- "forking" nodes start following new rules here
 |
[A]

```

Here we see an example where the nodes following the new rules *activate* at block `B`. However blocks `C` and `D` are valid under the new rules, *and* the old rules, thus they don't cause the fork. When block `E'` is mined, it is only valid under the *new* rules, meaning that it is rejected by clients who follow the old rules. Those clients that reject the block go on to mine `E`, and we now have two irreconcilable chains.

> **Comments:**
> **username_2**: I think it's also worth noting that if block F is found before F', the forks can reconverge and E' will be orphaned. This is because nodes and miners will follow the longest valid chain. Since the older blocks are valid on the new rules, a longer chain of old-style blocks will still trump a shorter chain of new-style blocks. This is why over 50% of the hash rate needs to support a new rule before a fork will succeed.  
> **username_3**: "In practice, this event is when a certain percentage of the last X blocks have been mined by nodes supporting the new rules." In fact, BU unlimited does not contain code that performs any such checks. Rather, some proponents of BU have suggested that they wait until there is 75% of support before they _manually_ trigger the hardfork.  
> **username_0**: So as I understand it the software for BU, BTC and SegWit is already developed and deployed and now it is a matter of waiting until more than 50% of miners signal towards one of these and agree on a time to start mining the new block & chain (in order to avoid orphaning blocks)?  
> **username_1**: username_0, as per @username_3's comment, BTU appears to be triggering it manually.  If so, they could do it at 50%, 75%, 95%, or even 20%.  I'm not familiar with their code, and am not even entirely sure who "they" are.  This might make a good new question.  

---

