Post
Topic
Board Development & Technical Discussion
Merits 1 from 1 user
Re: How is achieved consensus on code change?
by
DannyHamilton
on 01/02/2017, 15:22:51 UTC
⭐ Merited by ETFbitcoin (1)
While there is discussion, collaboration, and review, in the end Wladimir J. van der Laan has the final say about Bitcoin Core.  If he decides that code isn't going to be part of Core, then it isn't part of Core.  If he decides that code is part of Core, then it is part of Core.

That code is then published as a version available for anybody that wants to download and run it.  If people don't like changes that are in the new version, then can refuse to download and run it.  They can also choose to switch to some other Bitcoin implementation (such as Bitcoin Classic, Bitcoin XT, Bitcoin Unlimited, etc).  Since forking change typically require some significant amount of hashpower to get behind it before it activates, it is possible for enough miners to refuse to run a particular version. In that case, the forking change never activates.

So, to get an increase in block size in Core, you need:

  • A developer to code the change
  • Enough support from the developer community to convince Wladimir J. van der Laan to include it in a version
  • Enough miners to run that version

If you are missing any of those 3 things, then you can't get the block size increase in Core.  At the moment, this is stalled at the convincing Wladimir J. van der Laan step.  It isn't clear how many miners would adopt the version if Wladimir J. van der Laan approved it.


To get an increase in some other implementation, you need:

  • A developer to code the change
  • Enough miners to run that implementation

If you are missing either of those 2 things, then you can't get the block size increase in other implementations. At the moment, this is stalled at getting enough miners to run the implementation. It's not clear how badly Core would need to fail before miners will abandon the Core code for some other implementation.