Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: wsxdrfv on February 23, 2018, 06:58:23 AM



Title: How bitcoin source revision spread to public?
Post by: wsxdrfv on February 23, 2018, 06:58:23 AM
How it works?

If many bitcoin developers agree to some source revision,

lets say new bitcoin client registered to official site, bitcoin.org

Then, how it become spread?

Wouldn't it being refused by existing bitcoin clients if new node's client's source is different with them?



Title: Re: How bitcoin source revision spread to public?
Post by: HeRetiK on February 23, 2018, 07:38:59 AM
Wouldn't it being refused by existing bitcoin clients if new node's client's source is different with them?

That depends on the difference.

Usually a software update (or source code revision, as you put it), won't change the way these nodes talk to each other (ie. the protocol). In most cases such an update will also not change what a node or client accepts as a valid transaction.

Only when parts of the protocol or transaction validation get changed in a way that is incompatible with other nodes, they either refuse to connect with each other or disagree about the state of the network -- that is, which transactions are valid and subsequently who has paid how much to whom. The latter usually leads to what is known as a hardfork.

In other words, as long as the nodes share a common language, meaning a compatible protocol, they will cooperate. Otherwise you wouldn't be able to send coins between the countless wallet implementations (eg. Bitcoin Core, Electrum, MyCelium, Trezor...) we see today.


Title: Re: How bitcoin source revision spread to public?
Post by: Xynerise on February 23, 2018, 07:39:59 AM
It becomes spread when the user downloads the program from the website (new versions are usually announced on this forum also)
It is not compulsory to update and nodes running old version of the software can usually work well with newer versions and verify transactions -- except in the case of soft forks where old nodes aren't able to completely verify the consensus rules (for example nodes running an older version of bitcoin core without segwit support aren't able to completely verify segwit transactions because they don't understand it)


Anyone can change the source code of the node software, in fact not everyone runs Core's software.
https://coin.dance/nodes
As long as they adhere to Bitcoin's consensus rules then they are a part of the network. If they play by a different set of rules they'll be ignored by other nodes because they are not compatible and will form a network of their own.

TL;DR: you don't have to use the reference client as long as your software adheres to Bitcoin's consensus rules.