I see a list of Bitcoin feature and pull requests here. How do all million plus users agree to these feature/bug requests? Do all users of Bitcoin have to approve them, or who represents them in approving these code requests?
How does Bitcoin get developed?
Originally, Bitcoin was developed by its creator, Satoshi Nakamoto. After Nakamoto disappeared in April 2011, the Bitcoin client evolved into the Bitcoin Core project which is now developed by the loosely organized Bitcoin Core contributors. There are also a number of alternative Bitcoin implementations today, but the majority of Bitcoin nodes run some version of Bitcoin Core. This makes Bitcoin Core the de facto "specification" of the Bitcoin consensus code.
Bitcoin Core contributors discuss pull requests, issues, and features in various venues including the
bitcoin/bitcoin GitHub repository and #bitcoin-core-dev on IRC. Another important communication channel is the Bitcoin developer mailing list which is used to discuss any Bitcoin implementations and especially Bitcoin Improvement Proposals (BIPs). BIPs are additionally collected in the BIPs repository (which is part of the Bitcoin organization on GitHub, but a separate repository from the Bitcoin Core source code).
All of the work happens in public, allowing anyone to watch what happens and to start contributing at whim. In practice, Bitcoin Core development has involved a few hundred people in the past years, while the broader industry probably employs a couple magnitudes more people to work on related opensource or proprietary projects such as e.g. services, wallets, shops, research, infrastructure projects, exchanges, documentation, education, entertainment, news, and lobbying.
How do users agree?
Each Bitcoin full node enforces the network's consensus rules individually. This means that any effort to change consensus rules requires convincing users to run different software.
E.g. the Bitcoin Core client does not have an auto-update function, so each time a new version is released, Bitcoin Core users explicitly decide whether to run it. In the past, alternative Bitcoin clients have occasionally provided a larger share of the Bitcoin node population when there were major disagreements about the direction Bitcoin's network should get evolved in.
Besides picking the software they run, Bitcoin users engage with development efforts via numerous online communities, news magazines, conferences, meetups, and other social media, or by funding specific efforts they wish to further.
How do all million plus users agree to these feature/bug requests?
Mostly by deciding whether to continue using Bitcoin-core or switch to one of the many other existing implementations of a Bitcoin wallet.
Those who are particularly competent to assess the changes are probably also, in many cases, competent to fork the code base and not introduce changes they object to. If others share their view of the changes, this might be viable. Certainly Bitcoin core has been forked many times in the past.
Do all users of Bitcoin [core] have to approve them
They mostly get to vote with their downloads.
- Where can I access the original, Satoshi written Bitcoin code?
- Original default bitcoin script
- Do "the official bitcoin developers" control Bitcoin?
- Is the Bitcoin Core software managed by a central authority?
Other relevant sources of information