Bitcoin Forum
November 20, 2017, 07:49:46 PM *
News: Latest stable version of Bitcoin Core: 0.15.1  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: Quick question related to Bitcoin patches  (Read 682 times)
jambola2
Legendary
*
Offline Offline

Activity: 1078


Enjin Coin - Smart Cryptocurrency for Gaming.


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

1511207386
Hero Member
*
Offline Offline

Posts: 1511207386

View Profile Personal Message (Offline)

Ignore
1511207386
Reply with quote  #2

1511207386
Report to moderator
1511207386
Hero Member
*
Offline Offline

Posts: 1511207386

View Profile Personal Message (Offline)

Ignore
1511207386
Reply with quote  #2

1511207386
Report to moderator
The grue lurks in the darkest places of the earth. Its favorite diet is adventurers, but its insatiable appetite is tempered by its fear of light. No grue has ever been seen by the light of day, and few have survived its fearsome jaws to tell the tale.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1511207386
Hero Member
*
Offline Offline

Posts: 1511207386

View Profile Personal Message (Offline)

Ignore
1511207386
Reply with quote  #2

1511207386
Report to moderator
1511207386
Hero Member
*
Offline Offline

Posts: 1511207386

View Profile Personal Message (Offline)

Ignore
1511207386
Reply with quote  #2

1511207386
Report to moderator
mriou
Newbie
*
Offline Offline

Activity: 26


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: 1274


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

Activity: 1078


Enjin Coin - Smart Cryptocurrency for Gaming.


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 ?

Newar
Legendary
*
Offline Offline

Activity: 1274


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
*
Online Online

Activity: 1974



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: 1722


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
PGP: D3CC 1772 8600 5BB8 FF67 3294 C524 2A1A B393 6517
Pages: [1]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!