Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: cafter on April 24, 2023, 05:40:45 AM



Title: update bitcoin core
Post by: cafter on April 24, 2023, 05:40:45 AM
I many time read replies, people say that "it's possible at that time a update can solve this issue", "latest version of bitcoincore 24.0.1" etc.

my question is who make all these updates?, what things about bitcoin can be updated and from whom? (like bitcoincore, bitcoin blockchain,)

I really don't know github, working of open source, like if a software is opensource then anyone from the community can update the main software? or only some people can update the main one.


Title: Re: update bitcoin core
Post by: pooya87 on April 24, 2023, 07:48:48 AM
Bitcoin is a protocol (a set of rules) and this protocol is turned into computer code by programmers (also known as developers). There are different implementations of Bitcoin and the most popular one that is known as reference implementation is bitcoin core. Others exist like Electrum, btcd, gocoin, etc. with different features and different level of popularity.

The implementations are open source most of the times and it means you can both see the whole code and if you can contribute to improving it if you know programming. Contributions from everyone is always welcome.

However, any changes in the protocol itself requires the whole community (miners, full nodes, users, etc.) to accept them. They are implemented through a process called "fork". Anybody can propose a change and offer an implementation of it.


Title: Re: update bitcoin core
Post by: o_e_l_e_o on April 24, 2023, 08:39:19 AM
I really don't know github, working of open source, like if a software is opensource then anyone from the community can update the main software? or only some people can update the main one.
Just to answer this question specifically: Anyone can work on the code and propose changes, but there are (currently) only five people who have the permissions needed to merge any new changes or proposals in to the main codebase after these changes have been reviewed and agreed upon by the community. These people are known as Maintainers. The current list of Bitcoin Core Maintainers is as follows:

MarcoFalke (https://github.com/MarcoFalke)
fanquake (https://github.com/fanquake)
hebasto (https://github.com/hebasto)
achow101 (https://github.com/achow101)
glozow (https://github.com/glozow)


Title: Re: update bitcoin core
Post by: pooya87 on April 25, 2023, 04:12:51 AM
Electrum (and Electrum Server) isn't example of full node software though.
When we say "Bitcoin" it is not just about the full node implementation. Simplified Verification Protocol is also part of the Bitcoin protocol also defined in the white paper. Which is why Electrum is also an implementation of [part of] Bitcoin protocol.


Title: Re: update bitcoin core
Post by: MCUKing on May 04, 2023, 03:18:34 PM
Electrum (and Electrum Server) isn't example of full node software though.
When we say "Bitcoin" it is not just about the full node implementation. Simplified Verification Protocol is also part of the Bitcoin protocol also defined in the white paper. Which is why Electrum is also an implementation of [part of] Bitcoin protocol.

Thanks a lot for the information sir, Learned a lot so simply we can say that it's a light node that relies on another other node. I am curious to ask Senior a question which is that if at some instant of time in the future we needed to manipulate the supply of Bitcoin then we need to rewrite the Bitcoin protocol rules, a BIP will be proposed to stakeholders I want to know how this proposal will be rejected or accepted as I know different stakeholders can take part into it as Miners, SUers, Investors but who is gonna reject it?

As Bitcoin indorse the decentralization I can give my and you can give your opinion on the BIP but where the ultimate results will be processed.

I know the dumb question but clarification is important. As there is no formal voting system so how?


Title: Re: update bitcoin core
Post by: n0nce on May 04, 2023, 07:02:07 PM
if at some instant of time in the future we needed to manipulate the supply of Bitcoin then we need to rewrite the Bitcoin protocol rules, a BIP will be proposed
First of all: you correctly stated that for such change we both need a 'code change' as well as a 'consensus change'. If one of the 2 is not given, the main Bitcoin blockchain won't have more than 21M Bitcoin.

In theory, you could change any parameter in the code, recompile it and run it on your machine.
For instance, here (https://github.com/bitcoin/bitcoin/blob/3133d935ce95c9576856b0b4350cbcdf23df31c4/src/kernel/chainparams.cpp#L76), you could modify the halving interval and the software could accept 6.25BTC blocks forever.

However, since the rest of the network won't relay such blocks after the next halving (requiring miners to 'send' themselves only 3.125BTC per block), there will automatically be a chain split and you'll be on your own chain with nobody else on it. That's why you also need full nodes to follow.

You may also want to read this whole answer:
Consensus changes to Bitcoin are made by the entire ecosystem transitioning to new rules that they choose, by running node software that enforces these rules.
[...]


Title: Re: update bitcoin core
Post by: pooya87 on May 05, 2023, 04:26:08 AM
Thanks a lot for the information sir, Learned a lot so simply we can say that it's a light node that relies on another other node. I am curious to ask Senior a question which is that if at some instant of time in the future we needed to manipulate the supply of Bitcoin then we need to rewrite the Bitcoin protocol rules, a BIP will be proposed to stakeholders I want to know how this proposal will be rejected or accepted as I know different stakeholders can take part into it as Miners, SUers, Investors but who is gonna reject it?

As Bitcoin indorse the decentralization I can give my and you can give your opinion on the BIP but where the ultimate results will be processed.

I know the dumb question but clarification is important. As there is no formal voting system so how?
There is an outline on how a change is accepted, voted on, etc. To put simply the whole process is something like this:
1. The idea is first published on the bitcoin mailing list[1]
2. The idea is discussed by the developers (those who understand the protocol and the code). It could also be discussed elsewhere like this forum.
3. If it is useful, they publish an implementation of it and the testing begins
4. The code can be improved (bug fixes, optimization, etc.) as contributors test the code and report their results and ideas to improve it.
5. The voting mechanism is implemented for the full nodes so that the users can upgrade and miners can vote on it (eg. activate at block X if 95% of previous blocks voted for it)
6. Voting begins and if it reaches the threshold the change is locked in.

[1] https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev