Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: open-reserve on August 24, 2018, 10:55:41 AM



Title: How is consensus achieved when making changes to the bitcoin-core code?
Post by: open-reserve on August 24, 2018, 10:55:41 AM
Good afternoon.
How is consensus achieved when making changes to the bitcoin-core code?
how is the development funded?
Thank you!


Title: Re: How is consensus achieved when making changes to the bitcoin-core code?
Post by: AdolfinWolf on August 24, 2018, 11:40:29 AM
About the funding;

Funding Bitcoin development seems to have always been problematic.

While the Bitcoin industry collectively has raised more than a billion dollars worth of investment over the past years, development of the Free and Open Source Software the industry largely relies on has always had trouble gathering sufficient funds and manpower for development. Several arrangements to raise funds have been tried over the years – but with varying degrees of success and longevity.

Bitcoin Core, considered by many to be Bitcoin's “reference client,” therefore, announced a “Sponsorship Programme” earlier this week. As the latest effort to raise funds, this program is intended to be an easy access-point for companies and other Bitcoin industry players to support Bitcoin Core developers and projects. Companies that decide to take part in the sponsorship program will join a, so-far, short list of entities that do already help fund Bitcoin Core development.
Read the entire article here, https://bitcoinmagazine.com/articles/who-funds-bitcoin-core-development-how-the-industry-supports-bitcoin-s-reference-client-1459967859/

As far as i understand it, basically through crowdfunding, but almost all companies who fund the development do it for their own benefit (Bitpay etc).


I believe consensus is gained through the signalling of full nodes blocks. If you get a super majority (95%+), the proposal/(softfork) will go through, if it's less than that, it won't.
See https://github.com/bitcoin/bips/blob/master/bip-0034.mediawiki
Quote
All older clients are compatible with this change. Users and merchants should not be impacted. Miners are strongly recommended to upgrade to version 2 blocks. Once 95% of the miners have upgraded to version 2, the remainder will be orphaned if they fail to upgrade.


But this is only for changes to the network, i'm not entirely sure how changes to the bitcoin core wallet software are made, (or rather determined).



Title: Re: How is consensus achieved when making changes to the bitcoin-core code?
Post by: open-reserve on August 24, 2018, 12:03:01 PM
Many thanks for the full answer.


Title: Re: How is consensus achieved when making changes to the bitcoin-core code?
Post by: ranochigo on August 24, 2018, 12:12:46 PM
I believe consensus is gained through the signaling of full nodes. If you get a super majority (95%+), the proposal/(softfork) will go through, if it's less than that, it won't.
See https://github.com/bitcoin/bips/blob/master/bip-0034.mediawiki
Quote
All older clients are compatible with this change. Users and merchants should not be impacted. Miners are strongly recommended to upgrade to version 2 blocks. Once 95% of the miners have upgraded to version 2, the remainder will be orphaned if they fail to upgrade.


But this is only for changes to the network, i'm not entirely sure how changes to the bitcoin core wallet software are made, (or rather determined).
Signalling of blocks. Its very hard for any single node to detect the flags of the other nodes, though USAF was done through the modification of user agent but consensus is traditionally not determined by that.

Versionbit signals for the activation within the last 1000 blocks.