Developer reference/guide updates to this point
* Update some reference documents
- Adjust ref_intro to reference Dash
- Start updating p2p network ref
- Adjust some items in references.md to point to Dash URLs
* Update P2P networking protocol versions and message headers sections
Update subheading-links
Update more items in references.md
* Update inventories to include Dash specific items
- Update references.md with them also
Update disclaimer (Bitcoin -> Dash)
* Remove reference to bitcoin mailing list from ref_intro
* Add Spork/GetSporks message details
Add placeholders for Dash specific messages
- Added subsections for InstantSend, PrivateSend, Masternodes, and
Governance
* Some Bitcoin->Dash conversions
- Update title / section name for Dev Doc/Dev Reference
- Updated favicon
* Updates for the Data Network section of P2P reference
* Added Alert message details from Bitcoin back and removed feefilter
* More updates for Control Messages section of P2P network
- Bitcoin->Dash reference changes
- Reject and Version message updates
* InstantSend subsection of P2P reference detail
- Added ix, txlvote message details and associated references
* Governance subsection (P2P)
- Start adding govobj, govobjvote details
- Add spork references
* Missed spork xref in previous
* Governance (P2P) updates
- Add details to govobjvote and govsync
* Governance object P2P messages
- Add additional description/details
* PrivateSend P2P messages
- Added details for dsa, dsc, dsf, dsi, dsq, dss, dssu, and dstx
messages
- Added references also
- Hexdump examples for all but dsi and dss
* PrivateSend P2P minor updates
* Masternode P2P messages
- Add descriptions
- Add hexdump details
* Masternode P2P messages (dseg, mnb, mnget, mnp, mnv, mnw, mnwb, ssc)
- Add reference/crossref entries
- Add message structure
* P2P messages - minor formatting and corrections
* Block chain reference
- Version info updates
* Update Block Chain reference (Headers)
- Update version details
- Update block reward info
* Update Transactions reference
- Add some Dash specific updates
* Minor Transactions reference change
* RPC reference updates
* RPC reference updates
- Added/removed commands to match available Dash commands
* Core API updates
* Renamed devdocs/bitcoin-core to dash-core
- Updated developer-reference.md to point at new location
* Update filename to use dash-core instead of bitcoin-core
* Add Dash-specific GetAddressBalance RPC command and associated updates
Update RPC quick reference list
* Added cross reference/reference placeholders for remaining GetAddress... RPC commands
Added RPC template placeholder files for remaining GetAddress...
commands
* Scripts for environment setup and frequently used builds
* Add details for GetAddressDeltas/Mempool RPCs
Update path in Makefile bitcoin-core -> dash-core
* Add GetAddressTxids/Utxos details
Update minor formatting, etc. for GetAddressBalance/Deltas/Mempool
Changed reference to Dash Core and updated denominations for Dash
* Misc minor cleanup
* Work on updating existing Block Chain RPCs
- GetBestBlockHash, GetBlock, GetBlockChainInfo, GetBlockCount,
GetBlockHash
* Continue updating existing Block Chain RPCs
- GetBlockHeader, GetChainTips, GetDifficulty, GetMemPoolInfo,
GetRawMemPool
* Update RPCs quick-ref
- Added descriptions for Dash
- Updated description for Bitcoin related items for clarity
* Comment out content of non-implemented Block chain RPCs (GetMemPoolAncestors, GetMemPoolDescendants, GetMemPoolEntry, PreciousBlock, PruneBlockChain)
* Continue updating existing Block Chain RPCs
- GetTxOut, GetTxOutProof, GetTxOutSetInfo, VerifyChain,
VerifyTxOutProof
Update previous block hash type to indicate X11 instead of double SHA256
* Add script to create basic RPC md file
Set up empty GetBlockHashes/Headers and GetSpentInfo RPCs
* Add GetBlockhashes details
Minor correction in Empty RPC generation script
* Add GetBlockHeaders details
Minor formatting updates
* Update Address Index related RPCs to indicate the necessity of enabling addressindex to use them
* Actual details of GetBlockHeaders
* Add details for GetSpentInfo
* Update existing Control RPCs (GetInfo, Help, Stop)
* Add Debug RPC
* Expand empty RPC generation script to add example section and fix format
* Added empty RPC files and cross-ref details for all Dash RPCs
* Add details for some Dash RPCs
- GetGovernanceInfo, GetPoolInfo, GetSuperblockBudget
* Add details for MasternodeList RPC (Dash section)
* Add details for MnSync RPC (Dash section)
* Dash RPC updates
- Add Result section to MasternodeList
- Formatting updates to MnSync
* Expand script to add placeholders for parameters/resuls/example
* Add details for PrivateSend RPC (Dash section)
* Update Generating RPCs
- Added details back for GetGenerate/SetGenerate which were deprecated
in Bitcoin
* Formatting and example updates
* Add result detail and example to GetBlockTemplate
* Update existing Mining RPCs
- GetMiningInfo, GetNetworkHashPs, PrioritiseTransaction, SubmitBlock
* Minor formatting updates
* Update most existing Network RPCs
- AddNode, ClearBanned, DisconnectNode, GetAddedNodeInfo,
GetConnectionCount, GetNetTotals,GetNetworkInfo, GetPeerInfo,
ListBanned, Ping, SetBan
- Added some norefs as needed (Network RPCs only)
* Misc cleanup
* SetNetworkActive (Network RPC)
* Misc updates
- Change logo
- Disable some headers (alert, donation)
- Disable footer
* Governance updates
- Add description of govsync to P2P guide
- Updates to P2P reference
* Governance
- Add governance message SVG image
- Typo fixes
* Dseg updates
- Added clarifying details regarding how to request single/all nodes
- Ban warning
* Minor governance updates
* Governance updates / MN sync
- Correct some reference links
- Add MN sync info to guide
- Update dseg, mnget, ssc, and govsync messages to include more detail
* Governance updates
- Guide updated to show both stages of govsync
- Reference
- Correcte ssc typo and add sync item detail
- Update govobjvote to include detail about propagation
- Update govsync details
* Governance updates
- More clarification on govsync (guide and reference)
* Raw Transaction RPC
- Previously uncommitted CreateRawTransaction update
* Dash RPC (Gobject)
- Add details for count and get sub-commands
Also added description for govobj types
* P2P messages
- Spork updated to include verification details and a hexdump
Minor typo / note updates
* P2P Message - mnv
- Draft details regarding use and operation
* P2P message (mnv)
- Additional detail updates based on info from Udjin
Minor update to mnp
* Guide - Masternode payment
- Add section and start putting in details
* P2P Messages - deprecated
- Move deprecated messages to their own group
* Misc minor non-content updates
* 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
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.
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.
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.
Based on a suggestion made by @petertodd to the -devel mailing list and
the discussion in that thread by him and other participants.
* We've been using the term "consensus", but this commit introduces a
formal definition for it and "consensus rules" as part of the block
chain introduction.
* Describe that consensus rules may change and may happen when they
do: hard or soft forks.
* Describe how full nodes can detect hard or soft forks, then describe
how SPV clients can detect hard and soft forks using the more limited
information available to them.
* Replace previous TX Overview image with a simplified illustration.
The previous overview image was commented out in pull #566 / commit
6afc683. New image incorporates suggestions by @saivann (thanks!)
* Add new illustration showing the specifics of outputs and inputs (and
how they're related). This replaces most of the detail lost by using a
simplified overview image
* Add two short paragraphs briefly describing the ouput and input
features, leading into the existing detailed P2PKH description
This modifies commits provided by @petertodd to use the terms "pubkey
script" and "signature script" instead of other terms.
* Rename "scriptPubKey" and "output script" to "pubkey script"
(suggested by @luke-jr). We leave a token "scriptPubKey" at the point
where we define pubkey script so that searchers can find it.
* Rename "scriptSig" to "signature script" (suggested by @luke-jr). We
also leave a token "scriptSig" at this definition point.
* Rename "redeemScript" to "redeem script"
* Defined ECDSA on secp256k1 curve as the crypto used in the Transaction
section and added references to secp256k1 private/public keys and
signatures.
* Removed "The Parts Of A Transaction" illustration by commenting it out
in the HTML. Shoehorning the pubkey/signature script terms into this
image was becoming difficult, and I'm not very fond of that
illustration anyway. I'll see if I can think of a nicer replacement
illustration for some point in the future.
* Add a short paraphrased version @petertodd's description of scripts as
generalized crypto.
* Updated all the illustrations which referred to either pubkey scripts
or signature scripts to use these terms.
Describe the essential functions of a wallet program and how multiple
programs can work together to fulfill those functions, as in the case of
a signing-only wallet.
_includes/guide_wallets.md:
* Fix formula given for normal child key derivation to state that public
keys must also be provided to the HMAC hash function. This required
updating both text and images.
* Add one-paragraph warning about ancestor key compromise when the
ancestor extended public key is compromised along with a descended
private key. Update img/dev/en-hd-private-parent-to-private-child.*
to help illustrate this warning.
en/developer-reference.md:
* Remove %include% of previously-removed file which caused new versions
of Jekyll to die.
Thanks also (in alphabetical order) to @cbeams, @mikehearn, and
@tgeller, among others.
The last pre-squash commit was: c2b8d562aa107c7b68c60946cea14cdccc5159ad
Thanks also (in alphabetical order) to @cbeams, @mikehearn, and
@tgeller, among others.
The last pre-squash commit was: c2b8d562aa107c7b68c60946cea14cdccc5159ad