The issue is due to Segwit blocks since Testnet has already activated Segwit. 0.12.x- nodes will receive a Segwit block with all of the witnesses stripped. When they relay this block to a 0.13.0+ node, the block will be rejected because those have Segwit functionality and require the witnesses to be in the block. Given that Testnet has a smaller number of nodes and less difficulty, this could result in some miners using 0.13.0+ mining blocks which do not propagate well and thus causing multiple chain splits and reorgs as other miners find blocks for the same height before receiving a block for that height. On 3/23/2017 6:37 PM, Juan Garavaglia via bitcoin-dev wrote: > > We notice some reorgs in Bitcoin testnet, while reorgs in testnet are > common and may be part of different tests and experiments, it seems > the forks are not created by a single user and multiple blocks were > mined by different users in each chain. My first impression was that > the problem was related to network issues but some Bitcoin explorers > were following one chain while others follow the other one. > Nonetheless, well established explorers like blocktrail.com or > blockr.io were following different chains at different heights which > led to me to believe that it was not a network issue. After some time, > a reorg occurs and it all comes to normal state as a single chain. > > We started investigating more and we identified that the fork occurs > with nodes 0.12; in some situations, nodes 0.12 has longer/different > chains. The blocks in both chains are valid so something must be > occurring in the communication between nodes but not related with the > network itself. > > Long story short, when nodes 0.13+ receive blocks from 0.13+ nodes all > is ok, and those blocks propagate to older nodes with no issues. But > when a block tries to be propagated from bitcoind 0.12.+ to newer ones > those blocks are NOT being propagated to the peers with newer versions > while these newer blocks are being propagated to peers with older > versions with no issues. > > My conclusion is that we have a backward compatibility issue between > 0.13.X+ and older versions. > > The issue is simple to replicate, first, get latest version of > bitcoind, complete the IBD after is at current height, then force it > to use exclusively one or more peers of versions 0.12.X and older, and > you will notice that the latest version node will never receive a new > block. > > Probably some alternative bitcoin implementations act as bridges > between these two versions and facilitate the chain reorgs. > > I have not yet found any way where/how it can be used in a malicious > way or be exploited by a miner but in theory Bitcoin 0.13.X+ should > remain compatible with older ones, but a 0.13+ node may become > isolated by 0.12 peers, and there is not notice for the node owner. > > > > > > _______________________________________________ > bitcoin-dev mailing list > bitcoin-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev