This commit adds the code necessary to generate a new
en/developre-glossary page with entry pages in the en/glossary/
directory, e.g. en/glossary/51-percent-attack.
The glossary page and the individual term pages feature a JavaScript
search engine (no CGI) for just glossary terms. This search box has
also been added to the following pages:
* Developer Documentation (the index page)
* Developer Guide
* Developer Reference
* Developer Examples
The search box requires the following MIT-licensed libraries:
* JQuery
* JQuery UI
* JQuery UI CSS stylesheet
These allow our JS code to be almost trivially simple in js/devsearch.js
This commit adds only code. Actual glossary entry data will be added in
a subsequent commit.
Run sed -i -f <this_file.sed> _includes/ref/bitcoin-core/rpcs/rpcs/* _includes/ref/bitcoin-core/rest/requests/get_* _includes/helpers/vars.md
## On lines that start with a pipe:
/^|/ {
## Delete all table header/table body divider lines
/|----/d;
## Escape all double quotes
s/"/\\"/g;
## Replace lines that look like NTPD headers with a itemplate start block
s/^| Name *| Type.*/{% itemplate ntpd1 %}/;
## Delete extraneous whitespace
s/ *|/|/g;
## Replace the first pipe with "- name:" plus a start quote
s/^| */- n: "/;
## Replace the remaining pipes, starting each one with a newline and two spaces
s/| */"\n t: "/;
s/| */"\n p: "/;
s/| */"\n d: "/;
## Add a close quote and an empty line after the last list item
## built from a single table row, except for the header row. This
## improves readability/maintainability
/[^}]$/s/$/"\n/;
}
## Replace the old table class with the itemplate close tag
s/{:.ntpd}/{% enditemplate %}/
* Add flowchart illustration to blocks-first section to match new
headers-first flowchart
* Add new headers-first initial block download (IBD) section
* Revise Block Broadcasting section
* Add paragraph about orphan block handling in headers-first to the
Orphan Blocks section
* Ran `make manual-updates` to grab new summary
* Clarified that GHPS is part of 0.10.0 and is removed in master
* Autocrossref'd "Bitcoin Core master" to GitHub repo
* Removed GHPS from list of Mining RPCs now that it's in Removed RPCs
This commit provides a detailed overview of the current block download
method, which I've retroactively named blocks-first for parallelism with
headers-first.
New And Significantly Revised:
* New Initial Block Download (IBD) section (h3) with Blocks-First
subsection (h4)
* New Orphan Block subsection (under Blocks Broadcasting) describing
orphan blocks and how they're handled under blocks-first. Also
includes a simple illustration of the difference between orphan blocks
and stale blocks. Thanks to luke-jr for his s/orphan block/stale
block/ commit a couple months ago---that made this commit much easier.
Edits:
* Cleaned up a couple cases missed by previous s/orphan/stale/ commit
because they used past tense (orphaned).
* In P2P reference section, mentioned that a `block` message can be sent
unsolicited by miners.
* Mention that `getheaders` and `headers` were added in protocol
version 31800.
* Moved a few internal links around and added a few new internal links.
Administrivia:
* Started adding "TODOv0.10" in HTML comments to places that need to be
updated when 0.10 is released so that I can easily git grep for that
tag later.
This commit merges the RPC introduction section (h4), "JSON-RPC &
bitcoin-cli" into the currently-empty RPC section (h3). To do this, it
splits the contents of the file `_includes/ref_core_rpc_intro.md` into
the new files `_includes/ref/bitcoin-core/api-intro.md` and
`_includes/ref/bitcoin-core/rpcs/intro.md`
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.)