On January 29, it has been discovered that the Bitcoin blockchain nearly forked. The Bitcoin.com Mining Pool was running Bitcoin Unlimited software, and accidentally mined a block greater than 1MB. This block, which is considered as an invalid block under the current Bitcoin consensus rules was rejected by the network. However many mining pools which use SPV mining such as F2Pool were mining on top of this block having only verified the block header, and Bitcoin unlimited nodes attempted to mine on top of it. Viabtc, btcc, f2pool and btc.com all use SPV mining.
This is done in an attempt to have faster block changes, however SoloCK pool uses full verification and still manages faster block changes than these pools. CK, Owner of CK Solo pool published the logs showing these blocks attempting to be relayed to his pool which runs the Core software with segregated witness support:
2017-01-29 06:58:50.871920 ERROR: ContextualCheckBlock(): weight limit failed
2017-01-29 06:58:50.896292 ERROR: AcceptBlock: bad-blk-weight (code 16)
2017-01-29 06:58:50.896352 ERROR: ProcessNewBlock: AcceptBlock FAILED
2017-01-29 06:58:50.896433 Misbehaving: 18.104.22.168 (0 -> 100) BAN THRESHOLD EXCEEDED
Has Bitcoin Unlimited pools mined on top of this block or had an SPV pool mined on top of this block, this would have resulted in a Blockchain split and could send Bitcoins value crashing, this would have been a ‘hard fork’. It is crucial that the community comes to consensus and segwit is the best solution, Bitcoin Unlimited code did not take into account space needed for the coinbase transaction (the new coin generation transaction) after filling the block with transactions and thus made a block too large.
A key problem in the Bitcoin eco system is an issue of wannabe coders who do not have the same experience as the core team trying to jump on the bandwagon of the hard fork, often attempting nothing more than a few line changes or other changes with little knowledge of how the code works at it’s core or some even lack the ability to code. This could set a dangerous precedent, and as such one should be careful what code they run, especially mining pools!
However, core software banning nodes so they may not see future invalid (to core nodes) blocks by these nodes could result in a chain split if most core nodes ignoring the Bitcoin Unlimited nodes which relay blocks which are valid by their own rules, if they then begin to mine on top of them, a chain split could then occur, so the core banning mechanism in this case did contribute to the problem in our opinion. We will update as more news becomes available.