Commit graph

32 commits

Author SHA1 Message Date
thephez
00649c5928 Content - P2P - Add DIP4 p2p messages
getmnlistd and mnlistdiff with details
Update data message image with DIP4 messages
2018-11-19 13:17:36 -05:00
thephez
2304a52d4f
[Content] - P2P - Compact block addition (#64)
* content - Add compact block inventory

* content - p2p - Compact Block messages
 - Start adding `blocktxn`, `cmpctblock`, `getblocktxn`, and `sendcmpct`
messages
  - blocktxn and getblocktxn description and format added
  - Placeholders for cmpctblock and sendcmpct

* content - p2p - Sendcmpct message
 - Add details of `sendcmpct` including hex dump

* content - p2p - CmpctBlock message
 - Add hexdump
 - Update description

* content - Minor formatting updates

* content - p2p - Update control and data message drawings
 - Add compact block related commands

* content - p2p - Update compact block messages
 - Add info about protocol version when implemented
 - Add info to cmpctblock

* content - p2p - Update compact block messages
 - Add some info from bitcoin-dot-org/bitcoin.org#2092
  - Add detail to cmpctblock, sendcmpct, getblocktxn, blocktxn messages
  - Add reference terms

* content - p2p - Comment out blocktxn and getblocktxn hexdump for now

Closes #59
2018-04-24 10:53:32 -04:00
thephez
da8a1f1737 Minor Bitcoin to Dash changes 2018-01-11 14:02:38 -05:00
thephez
73df27d1b7 Add missing pngs 2018-01-10 09:32:47 -05:00
thephez
c3614d25fc Guide - P2P section
- Updated .dot files
 - Update block sync
 - Minor other formatting/adjustments
2017-12-07 09:09:11 -05:00
thephez
4046ac0639 Guide - P2P IBD section
- Updated .dot files
 - Minor adjustments for Dash
2017-12-07 09:09:11 -05:00
thephez
d096a9c160 Guide updates
- Intro
 - Block chain section
 - Developer guide
2017-12-07 09:09:11 -05:00
thephez
4ded024b06 InstantSend P2P messages / Guide
- Add diagram of message exchange
 - Add section to guide
2017-12-07 09:09:11 -05:00
thephez
1d999fa23c PrivateSend P2P messages
- Add diagram of message exchange showing typical PrivateSend session
2017-12-07 09:09:11 -05:00
thephez
4e4255c2c1 MN/Goverance P2P messages
- Add diagram of message exchange

Update Dash Core 0.12.2 release date
2017-12-07 09:09:11 -05:00
thephez
160bde7d39 MN Sync
- Add ongoing sync drawing
 - Re-arrange layout / rename some sections
 - Add additional details about ongoing sync

Correct issue w/ mnget P2P message in dev ref
Add masternode sync drawing
2017-12-07 09:09:11 -05:00
thephez
458b143573 MN Sync
- Create drawing of initial MN sync steps for clarity
2017-12-07 09:09:11 -05:00
thephez
703c54ffbc Dev ref conversion (#2)
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
2017-10-25 09:17:55 -04:00
David A. Harding
79e8fb50e7
Dev Docs: document sendheaders P2P message
Closes #1153
2015-12-07 19:50:21 -05:00
David A. Harding
72cc5f7f9e
Dev Docs: Add Section About Headers-First IBD
* 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
2015-02-05 16:16:46 -05:00
David A. Harding
ccda4caa0c
Dev Docs: Document Blocks-First IBD & Orphan Blocks
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.
2015-01-31 15:48:16 -05:00
David A. Harding
464272eeb0
Merge Pull #657: Dev Docs: Describe Filterload Message (Final P2P Message To Document) 2014-11-28 19:30:20 -05:00
Saivann
64a6f780be Merge branch 'license' 2014-11-28 10:54:28 -05:00
David A. Harding
a8fd82c6a6 Dev Docs: Describe Filterload Message (Final P2P Message To Document)
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.)
2014-11-27 21:27:01 -05:00
Saivann
2a139a51a1 Set license files and headers for bitcoin.org's content 2014-11-21 19:09:12 -05:00
David A. Harding
a149ae1f37
Dev Docs: Describe Almost All Remaining P2P Network Messages
* 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.
2014-11-17 01:23:11 -05:00
David A. Harding
1634212dd5
Dev Docs: Add P2P Messages That Request Or Reply With Data
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.
2014-11-12 12:39:36 -05:00
David A. Harding
a8f8f750c8
Dev Docs: Describe Serialized Block Header And Block Format
* 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.
2014-11-07 22:50:27 -05:00
David A. Harding
2e8ceb26df
Describe Soft And Hard Forks
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.
2014-10-24 09:44:50 -04:00
David A. Harding
e26b0e3819
Revise TX Overview Image
* 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
2014-10-01 18:40:38 -04:00
David A. Harding
6afc6835bf
Use Terms "Pubkey Script" And "Signature Script"
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.
2014-09-20 15:07:42 -04:00
David A. Harding
968d9c1f64
Describe Uncompressed And Compressed Public Keys
A quick little subsection the two different public key formats possible
in Bitcoin.
2014-06-09 22:16:31 -04:00
David A. Harding
87e31affba
Add Subsection About Wallet Programs, Incl. Hardware Wallets
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.
2014-06-07 19:27:49 -04:00
David A. Harding
e21d527523
Fix Formula For Normal HD Key Derivation; Mention Ancestor Key Risk
_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.
2014-05-17 14:34:28 -04:00
Saivann
c7eed3e444 Replace P2PH by P2PKH in devel-docs 2014-05-14 00:21:00 -04:00
David Harding
ffde087f02 Contributions by @harding to devel docs
Thanks also (in alphabetical order) to @cbeams, @mikehearn, and
@tgeller, among others.

The last pre-squash commit was: c2b8d562aa107c7b68c60946cea14cdccc5159ad
2014-05-09 22:13:59 -04:00
saivann
46780d3177 Contributions by @saivann to devel docs
Thanks also (in alphabetical order) to @cbeams, @mikehearn, and
@tgeller, among others.

The last pre-squash commit was: c2b8d562aa107c7b68c60946cea14cdccc5159ad
2014-05-09 22:13:59 -04:00