Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I guess the piece of the puzzle that I am missing is how does the change go from repo to prod. Do the miners need to pull the latest code from GitHub?


Part of the answer to that question involves (Ctrl-F) "Reproducible builds" and "Verified reproduction":

https://bitcoincore.org/en/download/


So essentially, the onus of upgrading is on the person running the node. Which I guess is the more intuitive solution. But then what happens if someone doesn't upgrade, will they be just shut off from the network till they are on the latest version?


It depends what the change consists of. In blockchain, we tend to talk about "hard forks" vs "soft forks" when it comes to protocol changes.

In a hard fork[0], blocks produced by the newer version will not be accepted as valid by the older version (e.g. increase of block sizes, changes in rewards or additions of new opcodes). This will result in a split of the blockchain, where old and new nodes operate on two concurrent diverging chains. You can think of it as a git fork. A hard fork essentially requires all nodes to upgrade.

Hard forks are generally activated by first adding the functionality without activating it but signalling for compatibility, only actually enabling the protocol change once a subset of nodes have signalled support.

In a soft fork[1], blocks produced by the older version can be deemed invalid by the newer version - otherwise the two are compatible. This means that users don't strictly need to upgrade to participate, only miners do.

So TL;DR, if BTC Core developers released a hard fork, it would only go into effect once it reached majority support among miners. In practice, users and other stakeholders (most notably exchanges) also have an important practical voice in which chain is deemed the canonical one, in case of a split.

[0]: https://www.investopedia.com/terms/h/hard-fork.asp

[1]: https://www.investopedia.com/terms/s/soft-fork.asp


Arguable more important than what the miners run is what the exchanges run.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: