1
0
mirror of https://github.com/bitcoinbook/bitcoinbook synced 2024-11-15 12:39:01 +00:00

CH12: Drop mention of orphan blocks

- Orphan blocks are no longer a thing in Bitcoin Core since
  headers-first download was implemented (version 0.10).  Your peers
  know what blocks you have; if they send you any block that doesn't
  connect to one of those blocks, you just drop the connection to them.
This commit is contained in:
David A. Harding 2023-05-25 06:56:42 -10:00
parent 5cc6c4541d
commit 2866ffc9fb

View File

@ -1452,8 +1452,7 @@ connecting the block to the existing blockchain.
Nodes maintain three sets of blocks: those connected to the best
blockchain, those that form branches off the best blockchain (stale
blocks), and finally, blocks that do not have a known parent in the
known chains (orphans). Invalid blocks are rejected as soon as any one
blocks), and finally. Invalid blocks are rejected as soon as any one
of the validation criteria fails and are therefore not included in any
chain.
@ -1489,15 +1488,6 @@ best chain, making the old best chain a secondary chain. If the node is
a miner, it will now construct a block extending this new, longer,
chain.
If a valid block is received and no parent is found in the existing
chains, that block is considered an "orphan." Orphan blocks are saved in
the orphan block pool where they will stay until their parent is
received. Once the parent is received and linked into the existing
chains, the orphan can be pulled out of the orphan pool and linked to
the parent, making it part of a chain. Orphan blocks usually occur when
two blocks that were mined within a short time of each other are
received in reverse order (child before parent).
By selecting the greatest-cumulative-work valid chain, all nodes
eventually achieve network-wide consensus. Temporary discrepancies
between chains are resolved eventually as more work is added, extending
@ -1664,7 +1654,7 @@ star-upside-down-triangle chain to a secondary chain, as shown in
to revise their view of the blockchain to incorporate the new evidence
of a longer chain. Any miners working on extending the chain
star-upside-down-triangle will now stop that work because their
candidate block is an "orphan," as its parent "upside-down-triangle" is
candidate block is "stale," as its parent "upside-down-triangle" is
no longer on the longest chain. The transactions within
"upside-down-triangle" that are not within "triangle" are re-inserted in
the mempool for inclusion in the next block to become a part of the best
@ -2239,7 +2229,7 @@ chain will continue to accept and mine transactions containing Smores
signatures, while miners on the "a" chain will continue to ignore these
transactions. Even if block 8b does not contain any Smores-signed
transactions, the miners on the "a" chain cannot process it. To them it
appears to be an orphan block, as its parent "7b" is not recognized as a
appears to be an invalid block, as its parent "7b" is not recognized as a
valid block.
==== Hard Forks: Software, Network, Mining, and Chain