<blockquote>
  <p>How can someone patch Bitcoin?</p>
</blockquote>

<ul>
<li>git clone</li>
<li>do changes</li>
<li>make &amp;&amp; run</li>
</ul>

<blockquote>
  <p>Why are those people trusted?</p>
</blockquote>

<p>You have a right not to trust them</p>

<blockquote>
  <p>And how would they publish the new code so every node gets the updated
  version?</p>
</blockquote>

<p>Node owners have a right not to upgrade to "referal" version</p>

<blockquote>
  <p>Do every node download it from some central server?</p>
</blockquote>

<p>No. Everyone have a right to change everything in his own copy of sources.</p>

<blockquote>
  <p>Or do someone push it?</p>
</blockquote>

<p>No.</p>

<blockquote>
  <p>In both cases, it doesn't seem decentralized.</p>
</blockquote>

<p>The development of "referal" software is not decentralized.</p>

CC BY-SA 3.0
2017-09-23T13:34:07.010Z
By "referal" do you mean "reference"?
Nate Eldredge
CC BY-SA 3.0
2017-09-23T13:37:41.490Z
yes, my English is too poor, I always use wrong words
amaclin
CC BY-SA 3.0
2017-09-23T13:21:46.837Z
2017-09-23T13:21:46.837Z
amaclin
<blockquote>
  <p>How can someone patch Bitcoin?</p>
</blockquote>

<p>As amaclin said, anyone can download the code from github and make their own changes to their copy, to run a customized version. Obviously some changes would make their version incompatible with the rest of the network nodes (consensus changes) though.</p>

<blockquote>
  <p>I've read there is a few people that have access to publish new code (?).</p>
</blockquote>

<p>Indeed, the bitcoin organisation on GitHub is made up of members who contribute more actively to the codebase, some of them have write access to the code (e.g. laanwj, sipa, MarcoFalke and jonasschnelli) meaning they can actually merge other people's pull requests (suggested changes). </p>

<blockquote>
  <p>Why are those people trusted?</p>
</blockquote>

<p>"Open source often naturally revolves around meritocracy where longer term contributors gain more trust from the developer community. However, some hierarchy is necessary for practical purposes. As such there are repository “maintainers” who are responsible for merging pull requests as well as a “lead maintainer” who is responsible for the release cycle, overall merging, moderation and appointment of maintainers." [<a href="https://bitcoincore.org/en/faq/contributing-code/" rel="nofollow noreferrer">reference</a>]. But this doesn't mean they just do whatever they want to. "Maintainers will take into consideration if a patch is in line with the general principles of the project; meets the minimum standards for inclusion; and will judge the general consensus of contributors." And as amaclin said, everyone has a right not to trust them, that is the beauty of open source development, anyone can read/modify/test the code and make sure they trust it, not just the people who wrote it.</p>

<blockquote>
  <p>And how would they publish the new code so every node gets the updated version? Does every node download it from some central server? Or does someone push it? </p>
</blockquote>

<p>Releases are made periodically by the lead maintainer, such as the latest <a href="https://bitcoin.org/en/release/v0.15.0.1" rel="nofollow noreferrer">0.15.0.1 release</a>. The executables for that release get published on <a href="https://bitcoin.org" rel="nofollow noreferrer">bitcoin.org</a> so that anyone can download the new release and run it instead of the older software. But upgrading to a new version is always a choice, people can choose to keep using older software in most cases if they want to.</p>

<blockquote>
  <p>In both cases, it doesn't seem decentralized.</p>
</blockquote>

<p>Because bitcoin is completely open source, anyone can make changes to the code themselves and run their own versions, no one is forced to trust the bitcoin core repo or use its compiled binaries. Anyone can run their own versions of the software, anyone can fork it and make their own clients, anyone can choose not to upgrade, etc. </p>

CC BY-SA 3.0
2017-09-25T09:07:20.163Z
2017-09-25T09:07:20.163Z
meshcollider
<p>How can someone patch Bitcoin? </p>

<p>I don't understand, if someone wants to change or add code to the Bitcoin repo. I've read there is a few people that have access to publish new code (?). Why are those people trusted? And how would they publish the new code so every node gets the updated version? Does every node download it from some central server? Or does someone push it? In both cases, it doesn't seem decentralized. </p>

<bitcoin-core-development>
How is it possible to patch Bitcoin?
user60502
# How is it possible to patch Bitcoin?

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

How can someone patch Bitcoin?

I don't understand, if someone wants to change or add code to the Bitcoin repo. I've read there is a few people that have access to publish new code (?). Why are those people trusted? And how would they publish the new code so every node gets the updated version? Does every node download it from some central server? Or does someone push it? In both cases, it doesn't seem decentralized.

**Tags:** bitcoin-core-development


---

## 2 answers

### Answer by username_1 on 2017-09-23. Score: 2

> How can someone patch Bitcoin?

* git clone
* do changes
* make && run

> Why are those people trusted?

You have a right not to trust them

> And how would they publish the new code so every node gets the updated
> version?

Node owners have a right not to upgrade to "referal" version

> Do every node download it from some central server?

No. Everyone have a right to change everything in his own copy of sources.

> Or do someone push it?

No.

> In both cases, it doesn't seem decentralized.

The development of "referal" software is not decentralized.

> **Comments:**
> **username_2**: By "referal" do you mean "reference"?  
> **username_1**: yes, my English is too poor, I always use wrong words  

---

### Answer by username_3 on 2017-09-25. Score: 1

> How can someone patch Bitcoin?

As username_1 said, anyone can download the code from github and make their own changes to their copy, to run a customized version. Obviously some changes would make their version incompatible with the rest of the network nodes (consensus changes) though.

> I've read there is a few people that have access to publish new code (?).

Indeed, the bitcoin organisation on GitHub is made up of members who contribute more actively to the codebase, some of them have write access to the code (e.g. laanwj, sipa, MarcoFalke and jonasschnelli) meaning they can actually merge other people's pull requests (suggested changes).

> Why are those people trusted?

"Open source often naturally revolves around meritocracy where longer term contributors gain more trust from the developer community. However, some hierarchy is necessary for practical purposes. As such there are repository “maintainers” who are responsible for merging pull requests as well as a “lead maintainer” who is responsible for the release cycle, overall merging, moderation and appointment of maintainers." [[reference](https://bitcoincore.org/en/faq/contributing-code/)]. But this doesn't mean they just do whatever they want to. "Maintainers will take into consideration if a patch is in line with the general principles of the project; meets the minimum standards for inclusion; and will judge the general consensus of contributors." And as username_1 said, everyone has a right not to trust them, that is the beauty of open source development, anyone can read/modify/test the code and make sure they trust it, not just the people who wrote it.

> And how would they publish the new code so every node gets the updated version? Does every node download it from some central server? Or does someone push it?

Releases are made periodically by the lead maintainer, such as the latest [0.15.0.1 release](https://bitcoin.org/en/release/v0.15.0.1). The executables for that release get published on [bitcoin.org](https://bitcoin.org) so that anyone can download the new release and run it instead of the older software. But upgrading to a new version is always a choice, people can choose to keep using older software in most cases if they want to.

> In both cases, it doesn't seem decentralized.

Because bitcoin is completely open source, anyone can make changes to the code themselves and run their own versions, no one is forced to trust the bitcoin core repo or use its compiled binaries. Anyone can run their own versions of the software, anyone can fork it and make their own clients, anyone can choose not to upgrade, etc.


---

