Post
Topic
Board Bitcoin Discussion
Re: Is diversity in bitcoin client implementations a good or a bad thing?
by
achow101
on 04/05/2017, 14:30:44 UTC
This is actually only true for mining pool node software, as they are the only ones producing the block chain.  All the others can only download what the miner nodes produce or stop and not download it.  So the de facto protocol is the protocol that is compatible with the consensus chain that is produced by the miners ; whether that corresponds to any written document or not and whether that corresponds to any non-mining node or not.  If all miner pool nodes follow the same protocol, then only one chain is produced, which you can read with a "compatible browser" or which stops when that "browser cannot understand the only chain around".  Here, browser is any full node, or light wallet.
No, all full nodes matter and all full nodes are what define the consensus rules. You cannot have just the miners define what consensus is since they then have the ability to change it at will to fit their own agenda. Full nodes enforce that miners are following the same consensus rules by rejecting invalid blocks. Full nodes matter just as much as mining nodes as they determine what everyone else accepts as valid.

You can't just be compatible with the consensus rules, you must use the exact same rules with its bugs, intricacies, and undefined behavior. If you are just compatible, that means that the implementation is different and should that have a bug or do just one thing slightly differently, can cause a chain fork. The entire goal of consensus is to avoid chain forks.

Having multiple implementations of non-mining nodes is still problematic since a bug in one implementation means that people using that implementation can be forked off of the network either by a malicious entity or just accidentally.