<p>Pull requests (PR) are requests to change code. Not all requests to change code are related to the validity of blocks or transactions. As Pietter Wuille said, only a very small percentage of PR do.</p>
<p>When code introduces a change in the rules of validity, we have a fork.</p>
<p>If nodes that don’t upgrade to the new code are still able to consider the new blocks valid, we have a soft fork. If not, we have a hard fork.</p>
<p>As a rule of thumb, everytime the PR thightens some rule, we have a soft fork. If the PR loosens some rule, we have a hard fork, but it needs to be analyzed case by case.</p>
<p>For example, an increase of block size (ex: 10 MB) would be a hard fork, since old nodes would not accept the new blocks (they are too big). On the other hand, if the change was to decrease the block size (ex: 0.5MB) that would be a soft fork, since old nodes would still accept the new blocks.</p>

CC BY-SA 4.0
2023-09-06T06:13:03.850Z
2023-09-06T06:13:03.850Z
bordalix
<p>(I'm assuming this question is about pull requests to Bitcoin Core)</p>
<p>Bitcoin Core is just a software project, implementing lots of features, which is developed by a community of developers. While it is also the most common implementation of a fully validating Bitcoin node, that only comprises a tiny portion of its codebase, and an even tinier portion of its development work.</p>
<p>Software changes to fully validating nodes are only softforking or hardforking changes if they change what blocks are valid. The vast <em>vast</em> majority (I assume 99%) of all pull requests to Bitcoin Core do not touch the block validity code at all, and an even larger fraction (99.99%) do not change validity. Those that do will be very clearly labelled as implementing this or that softfork.</p>
<p>Instead, most code changes are for things like:</p>
<ul>
<li>Wallet features</li>
<li>GUI improvements</li>
<li>Documentation changes</li>
<li>Making the code a bit faster</li>
<li>New tests</li>
<li>Build system changes</li>
</ul>

CC BY-SA 4.0
2023-09-05T21:35:44.673Z
2023-09-05T23:05:08.927Z
2023-09-05T23:05:08.927Z
Pieter Wuille
<p>Aren't all pull requests either one or the other - a soft fork or a hard fork?</p>

CC BY-SA 4.0
2023-09-05T19:09:30.997Z
Hi, does https://bitcoin.stackexchange.com/questions/30817/what-is-a-soft-fork-what-is-a-hard-fork-what-are-their-differences answer your question?
Murch
CC BY-SA 4.0
2023-09-05T19:50:12.570Z
Does this answer your question? [What is a soft fork? What is a hard fork? What are their differences?](https://bitcoin.stackexchange.com/questions/30817/what-is-a-soft-fork-what-is-a-hard-fork-what-are-their-differences)
Mercedes
<blockchain-fork><soft-fork>
How do we know whether a pull request will be a soft fork or a hard fork?
Eoin
# How do we know whether a pull request will be a soft fork or a hard fork?

(Asked by: username_0 on 2023-09-05)

Aren't all pull requests either one or the other - a soft fork or a hard fork?

**Tags:** blockchain-fork, soft-fork

> **Comments:**
> **username_1**: Hi, does https://bitcoin.stackexchange.com/questions/30817/what-is-a-soft-fork-what-is-a-hard-fork-what-are-their-differences answer your question?  
> **username_2**: Does this answer your question? [What is a soft fork? What is a hard fork? What are their differences?](https://bitcoin.stackexchange.com/questions/30817/what-is-a-soft-fork-what-is-a-hard-fork-what-are-their-differences)  

---

## 2 answers

### Answer by username_3 on 2023-09-06. Score: 2 | Accepted answer

Pull requests (PR) are requests to change code. Not all requests to change code are related to the validity of blocks or transactions. As Pietter username_4 said, only a very small percentage of PR do.

When code introduces a change in the rules of validity, we have a fork.

If nodes that don’t upgrade to the new code are still able to consider the new blocks valid, we have a soft fork. If not, we have a hard fork.

As a rule of thumb, everytime the PR thightens some rule, we have a soft fork. If the PR loosens some rule, we have a hard fork, but it needs to be analyzed case by case.

For example, an increase of block size (ex: 10 MB) would be a hard fork, since old nodes would not accept the new blocks (they are too big). On the other hand, if the change was to decrease the block size (ex: 0.5MB) that would be a soft fork, since old nodes would still accept the new blocks.


---

### Answer by username_4 on 2023-09-05. Score: 4

(I'm assuming this question is about pull requests to Bitcoin Core)

Bitcoin Core is just a software project, implementing lots of features, which is developed by a community of developers. While it is also the most common implementation of a fully validating Bitcoin node, that only comprises a tiny portion of its codebase, and an even tinier portion of its development work.

Software changes to fully validating nodes are only softforking or hardforking changes if they change what blocks are valid. The vast *vast* majority (I assume 99%) of all pull requests to Bitcoin Core do not touch the block validity code at all, and an even larger fraction (99.99%) do not change validity. Those that do will be very clearly labelled as implementing this or that softfork.

Instead, most code changes are for things like:

* Wallet features
* GUI improvements
* Documentation changes
* Making the code a bit faster
* New tests
* Build system changes


---

