Previously, the text went into a lot of detail about block 277,315,
which was a long time ago. We generalize the text to make it
perpetually current (barring a hard fork).
The previous list mixed consensus rules that transaction must follow
with standard transaction policy, which I think was confusng for readers
and also a problem in a later reference where we claim that all
transactions in a block must follow the rules (true for consensus; false
for policy).
This short subsection described segwit's use of always-true
scriptPubKeys as special. It didn't mention the similar mechanism used
for BIP16 P2SH. It also doesn't mention block-focused changes like
BIP32 and BIP34, or non-script changes like BIP66, BIP68, and BIP113.
I think it should either be greatly expanded or removed, and removing is
easier right now. :-)
"Smore" sounds like "Schnorr", which could be confusing. Also, we
have upgraded signatures now without a soft fork, so the example is
confusing. Although we could add another coin with a soft fork (sort
of), it seems a lot less likely to me, so I think it's a better cadidate
for this section.
- When appropriate, use the current preferred technical term
"reorganize" to describe what a node does when the block at the tip of
the chain is removed.
- Otherwise, just use "converge".
- 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.
The commit ab5ae32bae is the last commit
for the second edition, so all changes since then are dropped except for
several commits for the third edition authored by Andreas Antonopoulos.
No attempt is made to remove CC-BY-SA or other licensed content present
in the already-published first or second editions.
This revert may itself be reverted for versions of the book published
under CC-BY-SA.