<p><a href="https://bitcoin.org/en/developer-documentation" rel="nofollow noreferrer">Bitcoin.org's developer documentation</a> has a pretty good description of the consensus rules, but it does not and cannot describe them fully. This is because the consensus rules are dictated by the code that enforces them, not by a document. AFAIK, there is no list of things that can be hard forked and things that can be soft forked as such lists would be infinite. A hard fork can do anything; a soft fork can do much less, but with some "tricks", a soft fork can do just about anything too.</p>

<p>In general, a hard fork is a change which makes something that was previously invalid, valid. This would mean things like changing the transaction and block formats, the current scripting system, etc.</p>

<p>In general, a soft fork is a change which makes something that was previously valid, invalid. This would mean things like changing when the OP_NOP (no operation) opcodes are actually no op and not. Soft forks can also add extensions to what currently exists, but not always change what already exists. So a soft fork could add something to the transaction format, but it can't change the current transaction format to something else. Changes like these would be segwit and extension blocks.</p>

CC BY-SA 3.0
2017-06-27T07:42:29.840Z
2017-06-27T07:42:29.840Z
Ava Chow
<p>I'm trying to understand why (Or how) there is all kinds of different version for the Bitcoin nodes?</p>

<p>I saw that if one node is following the Protocol limitations it can act as a valid node. </p>

<p>Is there a list that gathered all the rules? </p>

<p>Even the one who can be changed by a soft fork.
(block size, SEGWIT etc...)</p>

<nodes><soft-fork>
What is the limitations in Bitcoin's network that can't be change by a Soft Fork?
user3652172
# What is the limitations in Bitcoin's network that can't be change by a Soft Fork?

(Asked by: username_0 on 2017-06-26)

I'm trying to understand why (Or how) there is all kinds of different version for the Bitcoin nodes?

I saw that if one node is following the Protocol limitations it can act as a valid node.

Is there a list that gathered all the rules?

Even the one who can be changed by a soft fork.
(block size, SEGWIT etc...)

**Tags:** nodes, soft-fork


---

## 1 answers

### Answer by username_1 on 2017-06-27. Score: 2

[Bitcoin.org's developer documentation](https://bitcoin.org/en/developer-documentation) has a pretty good description of the consensus rules, but it does not and cannot describe them fully. This is because the consensus rules are dictated by the code that enforces them, not by a document. AFAIK, there is no list of things that can be hard forked and things that can be soft forked as such lists would be infinite. A hard fork can do anything; a soft fork can do much less, but with some "tricks", a soft fork can do just about anything too.

In general, a hard fork is a change which makes something that was previously invalid, valid. This would mean things like changing the transaction and block formats, the current scripting system, etc.

In general, a soft fork is a change which makes something that was previously valid, invalid. This would mean things like changing when the OP\_NOP (no operation) opcodes are actually no op and not. Soft forks can also add extensions to what currently exists, but not always change what already exists. So a soft fork could add something to the transaction format, but it can't change the current transaction format to something else. Changes like these would be segwit and extension blocks.


---

