Pages:
Author

Topic: How is achieved consensus on code change? - page 2. (Read 1974 times)

full member
Activity: 188
Merit: 108
February 01, 2017, 09:52:34 AM
#3
Thanks achow101 - clearly written and understood.

As a followup to my topic here: https://bitcointalk.org/index.php?topic=1771426.0;all

Let's say that 10 developers (out of 50, 70 ?) think the block should be increased from 1 MB to 2 MB (hard fork) and the reasoning behind would be that without the change or any change the network will become clogged and less reliable (transactions not going through) - I think the amount of unconfirmed volume proves it at least to some degree.

So what happens then? This is clearly an issue that needs to be addressed somehow and somebody from the 10 developers do the change in the code from 1 MB to 2 MB, commits it and then on technical level what happens? It's going to be rejected/reversed because there was no voting among miners? If I remember correctly there was a time where block size was in free float and no limit existed - but back then I believe Satoshi himself did the change.

Since which BIP miners had to vote on any change to the code? What if there was a flaw found in the code?
staff
Activity: 3458
Merit: 6793
Just writing some code
February 01, 2017, 01:09:00 AM
#2
The github repository for Bitcoin Core is https://github.com/bitcoin/bitcoin. Even though Bitcoin Core is the current reference client, not all changes made to it affect consensus. In fact, almost none of the changes made actually affect consensus. Rather the changes to consensus are first drafted into a BIP, discussed by many developers, implemented, reviewed, tested, and then merged into the code. This process can take a very long time, and usually a lot of changes are made to the proposal.

Consensus changes can cause forks, so in order for everyone to be using the same consensus rules, fork deployment rules for each set of changes are set in place. Some things can be added without requiring everyone to upgrade. These are known as soft forks. Other things require everyone to upgrade or they will no longer be connected to the network; those are called hard forks.

Once deployment parameters are set, the code is further reviewed and then released as another version for people to install. If people want whatever changes were made, they will upgrade to the new versions. If they don't, then they don't have to. In this way, all consensus changes are decentralized. There is no one person or central authority dictating that certain changes must be accepted. The changes are simply released, and if people want to use it, they will upgrade. Otherwise, nothing happens.
full member
Activity: 188
Merit: 108
February 01, 2017, 12:47:47 AM
#1
Hi,
please pardon my ignorance as I'm not a developer but my question is fairly simple - my understanding is that there is a repository with Bitcoin core code and a lot of people has access to it (dozens). If somebody commits some change (ie. improvement or fix) who confirms that the improvement or fix is propagated to all the end users? Is it one person? Is it by consensus? Does it have to be unanimous?

I'd like to receive comment from somebody who ever did a contribution to the Bitcoin code or really knows how it works.

Thanks!
Pages:
Jump to: