Of course, because the A chain is NOT ANY LONGER. So A "being stuck at 460001" is perfectly normal,
your getting it
I never said anything else. Look at earlier posts.
it is the longest chain that is in agreement with A's protocol.
and now you lost yourself again.
A is not the longest chain.. u just said it yourself its not.. just one sentance prior.
the only way for 460001a to be the longest chain.. is to not see any peers with 460003b.. which involves .... BANNING B nodes
You are seriously confused. Non-valid blocks don't count. The longest chain is the longest VALID chain.
I will try to explain it in a different way. Suppose that there are not block, but numbers. The old protocol accepts prime numbers. The new protocol accepts uneven numbers. So the new protocol is a backwards compatible hard fork of the old one.
We had previously.
.... - 13 - 17 - 19 - 23
when the hard fork gets activated.
Now, the new nodes produce 25 - 27, because these are uneven numbers.
The old nodes see:
- 13 - 17 - 19 - 23 - 25 - 27, but they see that these last two blocks are invalid.
So the longest chain, for the old nodes, is still:
- 13 - 17 - 19 - 23 STOP. They regularly get a 25 and a 27, but as these are not prime numbers, they reject them. As they should.
However, the new nodes accept:
- 13 - 17 - 19 - 23 - 25 - 27. That's a different chain.
My analogy breaks down at the next step, because the "29" for one chain will not be the 29 for the other, as it contains the hash of the previous one with blocks which doesn't work with numbers.
For the A nodes, "25 and 27" are not "orphaned", or whatever, they are simply INVALID blocks, and the A miners will mine upon 23, the highest block in their chain, and will build a 29a, while the new nodes will make a 29b, built upon 27, which is the highest valid block in THEIR chain.
When old nodes receive the 29b block, they will reject it, because it is not built upon a previously valid block (it is built upon 27, which was not a previously valid block), and when new nodes receive 29a, they will think it is an orphaned block built after 23, while they are already at 27 at that point, so they orphan it and don't include it.
So each node builds its own chain correctly.
old nodes will see: - 13 - 17 - 19 - 23 - 29a (and reject 25, 27 and 29b as invalid)
new nodes will see - 13 - 17 - 19 - 23 - 25 - 27 - 29b (and reject 29a as orphaned)
No banning is needed. But banning may help avoid "noise on the line". The connections between old nodes and new nodes are useless, add some noise, but are not harmful.
If, say, the split is 75% - 25% then if each node connects randomly to 8 other nodes, he'll have on average 6 B nodes and 2 A nodes. An A node receives only noise from B nodes, and a B node receives only noise from A nodes. So the only links that bring useful information, is between equally minded nodes. But the other nodes are just seen as "confused" or "behind", sending only orphaned blocks, or sending only invalid blocks.