Thank you for the answer AND the link to your paper. This is exactly the type of information I was hoping for, but was unable to find myself.
To confirm I understand, allow me to use a recent blockchain branch at block height 406197. Here is the output from getchaintips from my full node:
And is my representation of the blockchain branch:
The main chain resolved in favor of what I will call block #406197-b5ab. With that data, I have a few clarifying questions:
[a] If full nodes only propagate blocks that agree with their "worldview" of the blockchain, does that mean there were sufficient full nodes that accepted block #406197-d152 (eventually orphaned) to relay that block to my full node?
[b] Does the information imply that my full node INITIALLY accepted block #406196-d152 and THEN received block #306197-b5ab? Or vice versa?
My networking knowledge is sound, my queuing theory knowledge is only modest. I am hoping to develop an accurate mental model of a blockchain branch using this particular branch as an example.
Thank you for the time & help!