Dev Docs: Fix Confusion About Chain Switching

As discussed on BitcoinTalk, there was confusion about whether a
non-upgraded node would switch to the strongest chain despite that chain
not following the consensus rules known to the non-upgraded node.  Also
updated to mention Bitcoin Core 0.10.0 now that it's RC'd.

Ref: https://bitcointalk.org/index.php?topic=909732.msg9999032#msg9999032
This commit is contained in:
David A. Harding 2015-01-03 09:36:28 -05:00
parent 37f0ac3715
commit ddbc448553
No known key found for this signature in database
GPG key ID: 4B29C30FF29EC4B7

View file

@ -341,19 +341,21 @@ provide incomplete information.
<!-- paragraph below based on src/main.cpp CheckForkWarningConditions() --> <!-- paragraph below based on src/main.cpp CheckForkWarningConditions() -->
Bitcoin Core includes code that detects a hard fork by looking at block Bitcoin Core includes code that detects a hard fork by looking at block
chain proof of work. If a node receives block chain headers chain proof of work. If a non-upgraded node receives block chain headers
demonstrating six blocks more proof of work than the best chain this demonstrating at least six blocks more proof of work than the best chain
node considers valid, the node reports an error in the `getinfo` RPC it considers valid, the node reports an error in the `getinfo` RPC
results and runs the `-alertnotify` command if set. results and runs the `-alertnotify` command if set. This warns the
operator that the non-upgraded node can't switch to what is likely the
best block chain.
Full nodes can also check block and transaction version numbers. If the Full nodes can also check block and transaction version numbers. If the
block or transaction version numbers seen in several recent blocks are block or transaction version numbers seen in several recent blocks are
higher than the version numbers the node uses, it can assume it doesn't higher than the version numbers the node uses, it can assume it doesn't
use the current consensus rules. Future versions of Bitcoin Core use the current consensus rules. Bitcoin Core 0.10.0
(>0.9.3) will likely report this situation through the `getinfo` RPC and reports this situation through the `getinfo` RPC and
`-alertnotify` command if set. `-alertnotify` command if set.
In either case, data should not be relied upon if it comes from a node In either case, block and transaction data should not be relied upon if it comes from a node
that apparently isn't using the current consensus rules. that apparently isn't using the current consensus rules.
SPV clients which connect to full nodes can detect a likely hard fork by SPV clients which connect to full nodes can detect a likely hard fork by