Author

Topic: Quick question related to Bitcoin patches (Read 829 times)

legendary
Activity: 1792
Merit: 1111
June 10, 2014, 09:48:09 PM
#7
Both the above questions did not answer my question D:

My question was:-

How does the patch get implemented ?

I think understand what you say , that people add their ideas to the Bitcoin blockchain.

But who decides which version to use ? If an update is published , and 51% of the people don't use it , obviously it needs to be denied.
Now my question is , does this 51% depend on hashing , addresses , nodes or what ?

FTFY. Blockchain is not a place to store "ideas" or "rules"

Simply speaking, in most cases patches in bitcoin are applied like other open source project. These are usually security fixes which are usually adopted without controversial, or some optional functions like payment protocol.

Some fixes, however, require vast majority of miners to support. Example: https://github.com/bitcoin/bips/blob/master/bip-0034.mediawiki . We call it soft-fork

Some fixes require all mining and non-mining users to support. We call it hard-fork. Some proposed hard-forks: https://en.bitcoin.it/wiki/Hardfork_Wishlist
legendary
Activity: 3472
Merit: 4801
It sounds like he's asking about "hard fork" changes.

Generally, for most enhancements and bug fixes, it doesn't matter how many people run the new version and how many people are running the old version.  Most new releases are fully backward compatible with the existing functionality.

The reason that "hard fork" changes are generally avoided as much as possible is because it splits the network into 2 (or more) incompatible blockchains isolating users and creating confusion.  As such, any "hard fork" change requires an overwhelming majority of users (much more than 51%) to switch to the new software almost simultaneously.
legendary
Activity: 1358
Merit: 1001
https://gliph.me/hUF
If I understand you correctly....

Users like you and I do.

If somebody doesn't like a certain feature of Bitcoin Core it can be forked and changed and people then can use that forked version. There's already a few examples of this happening (not with a majority though).


Or are you looking for information about the "51% attack"?
legendary
Activity: 1120
Merit: 1038
Both the above questions did not answer my question D:

My question was:-

How does the patch get implemented ?

I understand what you say , that people add their ideas to the Bitcoin blockchain.

But who decides which version to use ? If an update is published , and 51% of the people don't use it , obviously it needs to be denied.
Now my question is , does this 51% depend on hashing , addresses , nodes or what ?
legendary
Activity: 1358
Merit: 1001
https://gliph.me/hUF
Sticky.

The bitcoin integration/testing source tree is at GitHub, and we (jgarzik/tcatm/gavinandresen right now) use GitHub's "pull request" feature to keep track of patches that people think are ready for integration into mainline bitcoin.  This post is a walk-through of how to create a pull request.

1. You'll need a GitHub account; sign up for free, and set up git and ssh to work with GitHub.

2. You need a fork of the main bitcoin source tree.  Login to your GitHub account, browse to the bitcoin project, then poke the little 'Fork' button near the top of the screen.

3. Connect that fork at GitHub with source code on your development machine.  The easiest way to do that is to clone your github fork, using the SSH Read+Write URL github shows you on your fork's page.  For example:
Code:
git clone [email protected]:your_github_name/bitcoin-git.git
cd bitcoin-git
git checkout -b niftynewfeature # Create a feature branch
 ... edit, test, re-edit, re-test...
git commit -a
git push [email protected]:your_github_name/bitcoin.git niftynewfeature:niftynewfeature
You might already have a clone of the bitcoin git tree that you've modified; you should push those changes into your new GitHub fork.  Assuming you made your changes in the 'master' branch on your machine (next time you should create a specific feature branch), the command would be:
Code:
git commit -a
git rebase -i remotes/origin/HEAD  # optional: lets you tidy up commits to create a clean patch
git push [email protected]:your_github_name/bitcoin.git master:niftynewfeature

4. Submit a PULL request by going to your fork's GitHub page, selecting the branch containing the changes you want pulled ("niftynewfeature" in the above example), and then poking the "Pull Request" button.  Enter a good description of what your changes do and why they're a good idea and how everybody and their brother is already using them to make the world a better place .

Eventually, if all goes well, after discussion and argument and nit-picking and revision, your changes will get pulled into the bitcoin repository.  If all doesn't go well, you (or the core developers) can close your pull request and resubmit it when the feature is perfect.

newbie
Activity: 26
Merit: 0
First a caveat: I'm not part a committer in the Bitcoin Core team but I've been following it pretty closely for a few months now.

As I understand it, the process is a fairly standard review-then-commit (abbreviated RTC as opposed to CTR):
  • A change is discussed on the mailing list (not necessarily required for small/safe patches)
  • Person creates a branch and make their changes there.
  • Person creates a pull request and asks for one or two code reviews.
  • More discussion occurs on the pull request.
  • When the people who cared are good with the patch, it gets applied by a committer.

Whether your patch gets applied depends on how likely you are to attract reviewers and committers. Fairly meritocratic (http://www.apache.org/foundation/how-it-works.html#meritocracy) overall.
legendary
Activity: 1120
Merit: 1038
How exactly does a Bitcoin core patch or upgrade happen?
Since Bitcoin relies on being decentralized , I guess the upgrade or patch gets applied with some sort of majority.

Can somebody please explain this or drop me a link ?

Thanks,
Jambola2
Jump to: