But of course not. For the old nodes, B1 and B2 are simply invalid blocks. So their height is at 460001. If I send an invalid block to another node, I suppose he's simply going to reject it, no ? Otherwise, I can bring down the whole bitcoin network by making 5000 successive bogus invalid blocks with erroneous hashes (not difficult) and tell the whole bitcoin network that we are 5000 blocks ahead ? Everything comes to a grinding halt with such a simple attack ?
Of course not. B1 and B2 are simply considered invalid blocks by old nodes. The old nodes will all agree that they are at height 460001. And those nodes receiving blocks B1 and B2 will reject them, and not even propagate them. But all BU nodes will accept them, propagate them, and their counter will be at 460003. An old node asking a BU node to send him the blocks, will conclude that this node is "confused". Otherwise, I can bring down the whole bitcoin network with one single "confused" node 5000 fake blocks in the future.
Period.
LOL
A see it as invalid. but then they look over the network and see others have 460,003 so request it. then realise its B2 again.. and reject it
and then
A see it as invalid. but then they look over the network and see others have 460,003 so request it. then realise its B2 again.. and reject it
and then
A see it as invalid. but then they look over the network and see others have 460,003 so request it. then realise its B2 again.. and reject it
and then
A see it as invalid. but then they look over the network and see others have 460,003 so request it. then realise its B2 again.. and reject it
and then
A see it as invalid. but then they look over the network and see others have 460,003 so request it. then realise its B2 again.. and reject it
and then
A see it as invalid. but then they look over the network and see others have 460,003 so request it. then realise its B2 again.. and reject it
thus not syncing and A being stuck at 46000A1..
Of course, because the A chain is NOT ANY LONGER. So A "being stuck at 460001" is perfectly normal, it is the longest chain that is in agreement with A's protocol.
but the B nodes keep growing.
no way would B drop 460003 to go back to 460001
if B accept and happy with 460002B1 460003b2
Of course.
A stuck at 460001
Because that was the longest A chain up to that point.
But now, an A-miner has released a second A block, built upon 460001 (because that miner, too, has an A node that has as a longest chain, the one with 460001, and has mined a block on top of it).
That A-miner now broadcasts his block 460002A2. This is relayed by all A-type nodes. When your "stuck" A-type node receives this block, he accepts it, and is now at 460002A2, *like he should* because that's now the longest A-compatible chain. B nodes consider this an orphaned block, and don't include it (and most probably don't propagate it either).
A then has to decide to:
continue in orphan hell of rejecting B
stay stalled by just turn node off
upgrade and join B
or ban B to not see 460003 and instead able to build on A
Well, of course, he will do the last thing, and take block 460002A2 when it becomes available. Nothing difficult.
That the A-node, with its longest chain up to 460001A1 was "wasting its time checking B blocks" is not a problem, it HAD the longest possible chain for him at that point. When it receives the next A block, it adds it. As it should.
No "orphan drama".
A nodes build the A chain. BU nodes build the B chain.