When I write "accepted" for non-main (canonical) chain blocks, I mean on accepting and storing their headers, not entire blocks. Additional request for an entire block is done once the chain its part of became a new main chain (chain with most total work).

I know that a node only accepts blocks for which it knows the parent (if it doesn't know, block is considered as orphaned and rejected). However, does that parent have to be exclusively one of the chain tips, or the parent can also be any of the blocks from any of the branches (either main or one of the forks)?

For example, we have following chains:

main chain: 100.000th blocks (chain tip: 100.000)
chain_1: diverged from main chain at 60.000th block and has additional 30 block (chain tip: 60.030)
chain_2: diverged from main chain at 20.000th block and has additional 5 blocks (chain tip: 20.005)

Will a block be accepted only if its parent is the 100.000th block of the main chain, the 20.005th block of the chain_2, or the 60.030th block of the chain_1, so chain tips? Or will the block also be accepted if its parent is not some of the chain tips but, for example, the 86.004th block of the main chain, the 20.002nd block of the chain_2, the 60.026th block of the chain_1 etc., so "random" block from some of the chain?

When I say accepted, I mean as a stale block (we got only header). So only validation of PoW and parent hash is done and if everything is accurate, it is accepted. Also, it is checked whether it might have become the new main chain. If so, it becomes main chain and additional checks follow.

  • 1
    Hi Hurry Walk, I have noticed that a lot of your questions are requesting proofreading of your own understanding of concepts. I would like to suggest that you focus on asking your question in the question post, and if you already have an answer yourself, post that as a separate answer post. That way, potential answerers can focus on answering your question instead of proofreading your answer.
    – Murch
    Jan 4 at 12:02
  • 3
    I've written a comprehensive question and answer about the entire process of block validation today instead, which I think is more valuable to other readers rather than focusing on your specific misconceptions: bitcoin.stackexchange.com/questions/121292/…. Jan 4 at 16:55
  • @PieterWuille I saw it, its amazing and already started with reading. A lot of quality content. Will take some time for me to read it, but I am definitely enjoying. Already upvoted!
    – Hurry Walk
    Jan 4 at 16:59


Browse other questions tagged or ask your own question.