Bitcoin Forum
April 16, 2024, 02:13:58 PM *
News: Latest Bitcoin Core release: 26.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Quick question related to Bitcoin patches  (Read 802 times)
jambola2 (OP)
Legendary
*
Offline Offline

Activity: 1120
Merit: 1038


View Profile
June 09, 2014, 06:37:58 PM
 #1

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

No longer active on bitcointalk, however, you can still reach me via PMs if needed.
1713276838
Hero Member
*
Offline Offline

Posts: 1713276838

View Profile Personal Message (Offline)

Ignore
1713276838
Reply with quote  #2

1713276838
Report to moderator
1713276838
Hero Member
*
Offline Offline

Posts: 1713276838

View Profile Personal Message (Offline)

Ignore
1713276838
Reply with quote  #2

1713276838
Report to moderator
In order to achieve higher forum ranks, you need both activity points and merit points.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
mriou
Newbie
*
Offline Offline

Activity: 26
Merit: 0


View Profile
June 10, 2014, 04:05:49 AM
 #2

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.
Newar
Legendary
*
Offline Offline

Activity: 1358
Merit: 1000


https://gliph.me/hUF


View Profile
June 10, 2014, 04:06:30 AM
 #3

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 git@github.com: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 git@github.com: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 git@github.com: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.


OTC rating | GPG keyid 1DC91318EE785FDE | Gliph: lightning bicycle tree music | Mycelium, a swift & secure Bitcoin client for Android | LocalBitcoins
jambola2 (OP)
Legendary
*
Offline Offline

Activity: 1120
Merit: 1038


View Profile
June 10, 2014, 10:57:38 AM
 #4

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 ?

No longer active on bitcointalk, however, you can still reach me via PMs if needed.
Newar
Legendary
*
Offline Offline

Activity: 1358
Merit: 1000


https://gliph.me/hUF


View Profile
June 10, 2014, 11:50:18 AM
 #5

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"?

OTC rating | GPG keyid 1DC91318EE785FDE | Gliph: lightning bicycle tree music | Mycelium, a swift & secure Bitcoin client for Android | LocalBitcoins
DannyHamilton
Legendary
*
Offline Offline

Activity: 3360
Merit: 4570



View Profile
June 10, 2014, 02:26:29 PM
 #6

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.
jl2012
Legendary
*
Offline Offline

Activity: 1792
Merit: 1092


View Profile
June 11, 2014, 02:48:09 AM
 #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

Donation address: 374iXxS4BuqFHsEwwxUuH3nvJ69Y7Hqur3 (Bitcoin ONLY)
LRDGENPLYrcTRssGoZrsCT1hngaH3BVkM4 (LTC)
PGP: D3CC 1772 8600 5BB8 FF67 3294 C524 2A1A B393 6517
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!