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
Suggested by Saivann: RPC tables with Name/Type/Presence/Description
format are now in .ntpd CSS class so that we can format them specially.
We also change the style of all dev doc tables to replace bold table
headings (thead) with a double-line border-bottom. This makes the
theads look less like section headings and prevents us from over-using
bold.
Minor: a Makefile warning message has been made more explicit (also
suggested by Saivann) and another Makefile rule was updated to catch
more broken tables.
* All previously-documented RPCs have had their text completely
rewritten.
* All new RPCs and changed RPCs in Bitcoin Core 0.10.0 have been
documented, except for hidden RPCs.
* A new RPC "Quick Reference" section has been added to make finding the
right RPC easier.
* A "See Also" subsection has been added to the end of every RPC
pointing to other relevant information.
* All previous examples in the RPC section have been re-run and updated
as necessary.
* Syntax highlighting has been added wherever possible.
* Hash byte order has been specified as RPC byte order everywhere it's
used in RPCs.
Briefly describe the JSON-RPC 1.0 format as used by Bitcoin Core and how
bitcoin-cli abstracts away some of the details. Also link to the
Proper Money Handling wiki page. (This as a vanguard PR preparing the
way for a larger overhaul of our RPC docs, including updating them for
0.10.)
Converts fake subheadings created using **bold** to real HTML
subheadings without adding them to the table of contents.
Also fixes a link broken by commit 4e067ac89e and adds a Makefile
test to catch future similar breakage.
New material:
* Add documentation for `filterload` message to devref. This is the last
P2P protocol message which needed documentation.
* Add an example for creating a bloom filter to the devex, as well as an
example of checking data against that filter.
Edits:
* Change "object" to "element" in previous `filteradd` text. I decided
"transaction element" made more sense than the more generic "object".
Text should be fully consistent across both `filterload` and
`filteradd` descriptions.
* Mentioned that I think the example hexdump in the `alert` section is
public domain. (Only the hex is taken from the wiki; the annotation is
my own work.)
* Describes all remaining messages except filterload. Specificially, the
following messages are described: Addr, Alert, FilterAdd, FilterClear,
GetAddr, Ping, Pong, Reject, VerAck, and Version
* New makefile test: report broken markdown tables
* Put relevant protocol version changes at the top of all message
subsections.
The makefile tests caught this, but it looks like I broke it back in
4553439e. Strangely, I did a full build before merging that commit---and
several more full builds since---and this is the first I'm noticing the
error. I'm fixing the broken link now; I'll look into the tests later.
Adds to the devel reference page detailed documentation on the following
messages: block, getblocks, getdata, getheaders, headers, inv, mempool,
merkleblock, notfound, and tx.
Adds to the devel examples page an example of requesting and parsing a
merkleblock message.
Adds to the devel docs overview pages links to the above two new
P2P sections.
Tweaks the autocrossref plugin ignore pattern to not crossref in the
middle of a GIF image name; this allows the inclusion of animated GIFs.
* Replace current description of the block header with a better
description.
* Describe the various version numbers.
* Describe how the merkle root is constructed.
* Describe how nBits is parsed and how to correctly create it to
avoid negative values.
* Describe the serialized block format used to calculate max block size.