From b652fe17d31f343cacbb444a52fff5795877274f Mon Sep 17 00:00:00 2001 From: thephez Date: Mon, 17 Dec 2018 13:17:15 -0500 Subject: [PATCH] RPC - Update getblock Add missing versionHex field (dashpay/dash@e7d9ffa) Change to use verbosity syntax (dashpay/dash#2506 and bitcoin/bitcoin#8704) --- .../devdoc/dash-core/rpcs/quick-reference.md | 2 +- .../devdoc/dash-core/rpcs/rpcs/getblock.md | 271 +++++++++++++++--- _includes/layout/base/rpc-table.html | 2 +- 3 files changed, 235 insertions(+), 40 deletions(-) diff --git a/_includes/devdoc/dash-core/rpcs/quick-reference.md b/_includes/devdoc/dash-core/rpcs/quick-reference.md index 78e0b65c..deab1b83 100644 --- a/_includes/devdoc/dash-core/rpcs/quick-reference.md +++ b/_includes/devdoc/dash-core/rpcs/quick-reference.md @@ -101,7 +101,7 @@ These RPCs are all Dash-specific and not found in Bitcoin Core {% autocrossref %} * [GetBestBlockHash][rpc getbestblockhash]: {{summary_getBestBlockHash}} -* [GetBlock][rpc getblock]: {{summary_getBlock}} {{UPDATED0_13_0}} +* [GetBlock][rpc getblock]: {{summary_getBlock}} {{DASH_UPDATED0_13_0}} * [GetBlockChainInfo][rpc getblockchaininfo]: {{summary_getBlockChainInfo}} {{DASH_UPDATED0_13_0}} {{UPDATED0_12_1}} * [GetBlockCount][rpc getblockcount]: {{summary_getBlockCount}} * [GetBlockHash][rpc getblockhash]: {{summary_getBlockHash}} diff --git a/_includes/devdoc/dash-core/rpcs/rpcs/getblock.md b/_includes/devdoc/dash-core/rpcs/rpcs/getblock.md index 2b11232a..7a59b0e6 100644 --- a/_includes/devdoc/dash-core/rpcs/rpcs/getblock.md +++ b/_includes/devdoc/dash-core/rpcs/rpcs/getblock.md @@ -13,10 +13,10 @@ http://opensource.org/licenses/MIT. The `getblock` RPC {{summary_getBlock}} -*Parameter #1---header hash* +*Parameter #1---block hash* {% itemplate ntpd1 %} -- n: "Header Hash" +- n: "Block Hash" t: "string (hex)" p: "Required
(exactly 1)" d: "The hash of the header of the block to get, encoded as hex in RPC byte order" @@ -26,14 +26,14 @@ The `getblock` RPC {{summary_getBlock}} *Parameter #2---whether to get JSON or hex output* {% itemplate ntpd1 %} -- n: "Format" - t: "boolean" - p: "Optional
(true or false)" - d: "Set to `false` to get the block in serialized block format; set to `true` (the default) to get the decoded block as a JSON object" +- n: "Verbosity" + t: "number (int)" + p: "Optional
(0 or 1)" + d: "Set to one of the following verbosity levels:
• `0` - Get the block in serialized block format;
• `1` - Get the decoded block as a JSON object (default)
• `2` - Get the decoded block as a JSON object with transaction details" {% enditemplate %} -*Result (if format was `false`)---a serialized block* +*Result (if verbosity was `0`)---a serialized block* {% itemplate ntpd1 %} - n: "`result`" @@ -43,7 +43,7 @@ The `getblock` RPC {{summary_getBlock}} {% enditemplate %} -*Result (if format was `true` or omitted)---a JSON block* +*Result (if verbosity was `1` or omitted)---a JSON block with transaction hashes* {% itemplate ntpd1 %} - n: "`result`" @@ -76,6 +76,11 @@ The `getblock` RPC {{summary_getBlock}} p: "Required
(exactly 1)" d: "This block's version number. See [block version numbers][section block versions]" +- n: "→
`versionHex`" + t: "string (hex)" + p: "Required
(exactly 1)" + d: "_Added in Bitcoin Core 0.13.0_

The block version formatted in hexadecimal" + - n: "→
`merkleroot`" t: "string (hex)" p: "Required
(exactly 1)" @@ -133,63 +138,253 @@ The `getblock` RPC {{summary_getBlock}} {% enditemplate %} -*Example from Dash Core 0.12.2* +*Result (if verbosity was `2`---a JSON block with full transaction details* + +{% assign DEPTH="→" %} +{% include helpers/vars.md %} + +{% itemplate ntpd1 %} +- n: "`result`" + t: "object/null" + p: "Required
(exactly 1)" + d: "An object containing the requested block, or JSON `null` if an error occurred" + +- n: "→
`hash`" + t: "string (hex)" + p: "Required
(exactly 1)" + d: "The hash of this block's block header encoded as hex in RPC byte order. This is the same as the hash provided in parameter #1" + +- n: "→
`confirmations`" + t: "number (int)" + p: "Required
(exactly 1)" + d: "The number of confirmations the transactions in this block have, starting at 1 when this block is at the tip of the best block chain. This score will be -1 if the the block is not part of the best block chain" + +- n: "→
`size`" + t: "number (int)" + p: "Required
(exactly 1)" + d: "The size of this block in serialized block format, counted in bytes" + +- n: "→
`height`" + t: "number (int)" + p: "Required
(exactly 1)" + d: "The height of this block on its block chain" + +- n: "→
`version`" + t: "number (int)" + p: "Required
(exactly 1)" + d: "This block's version number. See [block version numbers][section block versions]" + +- n: "→
`versionHex`" + t: "string (hex)" + p: "Required
(exactly 1)" + d: "_Added in Bitcoin Core 0.13.0_

The block version formatted in hexadecimal" + +- n: "→
`merkleroot`" + t: "string (hex)" + p: "Required
(exactly 1)" + d: "The merkle root for this block, encoded as hex in RPC byte order" + +- n: "→
`tx`" + t: "array" + p: "Required
(exactly 1)" + d: "An array containing the TXIDs of all transactions in this block. The transactions appear in the array in the same order they appear in the serialized block" + +{{INCLUDE_DECODE_RAW_TRANSACTION}} + +- n: "→
`time`" + t: "number (int)" + p: "Required
(exactly 1)" + d: "The value of the *time* field in the block header, indicating approximately when the block was created" + +- n: "→
`mediantime`" + t: "number (int)" + p: "Required
(exactly 1)" + d: "*Added in Bitcoin Core 0.12.0*

The median block time in Unix epoch time" + +- n: "→
`nonce`" + t: "number (int)" + p: "Required
(exactly 1)" + d: "The nonce which was successful at turning this particular block into one that could be added to the best block chain" + +- n: "→
`bits`" + t: "string (hex)" + p: "Required
(exactly 1)" + d: "The value of the *nBits* field in the block header, indicating the target threshold this block's header had to pass" + +- n: "→
`difficulty`" + t: "number (real)" + p: "Required
(exactly 1)" + d: "The estimated amount of work done to find this block relative to the estimated amount of work done to find block 0" + +- n: "→
`chainwork`" + t: "string (hex)" + p: "Required
(exactly 1)" + d: "The estimated number of block header hashes miners had to check from the genesis block to this block, encoded as big-endian hex" + +- n: "→
`previousblockhash`" + t: "string (hex)" + p: "Optional
(0 or 1)" + d: "The hash of the header of the previous block, encoded as hex in RPC byte order. Not returned for genesis block" + +- n: "→
`nextblockhash`" + t: "string (hex)" + p: "Optional
(0 or 1)" + d: "The hash of the next block on the best block chain, if known, encoded as hex in RPC byte order" + +{% enditemplate %} + +*Example from Dash Core 0.13.0* Get a block in raw hex: {% highlight bash %} dash-cli -testnet getblock \ - 0000000037955fcc39af8b1ae75914ffb422313c0fca7eba96a1ac99c2e57f84 \ - false + 00000012e877c56af0b33d79aae888b5cb40b47809b4bee764e8fea7a9033994 \ + 0 {% endhighlight %} Result (wrapped): {% highlight text %} -0100002011f5719a0a0c4881ff98b4a68c1c828dc3b10f5b51033f5f93d48dbf\ -000000004b8e38f197d6ee878e160d2bae3ce05ab898a6252458ec67ce770140\ -260397c4dd2ed659a1dd001d00636b5601010000000100000000000000000000\ -00000000000000000000000000000000000000000000ffffffff4b02041204dd\ -2ed65908fabe6d6d7445746d63506b62572d2d35584853467a765a6748696972\ -30657a3a6f6d656e010000000000000017fffff9020000000d2f6e6f64655374\ -726174756d2f00000000058028bb13010000001976a914bad55652dffb1af943\ -41015c94feea79793442fd88ac40e553b1020000001976a9142b7856de53d4c1\ -823090c98f8ad79862842c09b588ac4094dd89000000001976a914c2c29ebc78\ -7954ef99d01c5f79115abf7012fb8e88ac4094dd89000000001976a914d7b47d\ -4b40a23c389f5a17754d7f60f511c7d0ec88ac4094dd89000000001976a914dc\ -3e0793134b081145ec0c67a9c72a7b297df27c88ac00000000 +01000020d2fb795188566bd52deaa8e62de6f59c2833e842f9f6a48cea026689\ +04000000c7274c45e043e5953f2d62a1938818b513d8fd4c9f99c2c1541d1449\ +7f368602c2d8175c417b4d1d0007a96501010000000100000000000000000000\ +00000000000000000000000000000000000000000000ffffffff1202a91a0e2f\ +5032506f6f6c2d74444153482fffffffff0404e65a96010000001976a9144f79\ +c383bc5d3e9d4d81b98f87337cedfa78953688ac40c3609a010000001976a914\ +f627e64c0453f74d879f6e6a37709189af0298da88ac3cdd0504000000001976\ +a914badadfdebaa6d015a0299f23fbc1fcbdd72ba96f88ac0000000000000000\ +2a6a285fb560df18bc5145faa0860841df9daf30dc544c7b0cdb52ff28c06fa3\ +b33924000000000100000000000000 {% endhighlight %} Get the same block in JSON: {% highlight bash %} dash-cli -testnet getblock \ - 0000000037955fcc39af8b1ae75914ffb422313c0fca7eba96a1ac99c2e57f84 + 00000012e877c56af0b33d79aae888b5cb40b47809b4bee764e8fea7a9033994 {% endhighlight %} Result: {% highlight json %} { - "hash": "0000000037955fcc39af8b1ae75914ffb422313c0fca7eba96a1ac99c2e57f84", - "confirmations": 3, - "size": 377, - "height": 4612, + "hash": "00000012e877c56af0b33d79aae888b5cb40b47809b4bee764e8fea7a9033994", + "confirmations": 1, + "size": 303, + "height": 6825, "version": 536870913, - "merkleroot": "c4970326400177ce67ec582425a698b85ae03cae2b0d168e87eed697f1388e4b", + "versionHex": "20000001", + "merkleroot": "0286367f49141d54c1c2999f4cfdd813b5188893a1622d3f95e543e0454c27c7", "tx": [ - "c4970326400177ce67ec582425a698b85ae03cae2b0d168e87eed697f1388e4b" + "0286367f49141d54c1c2999f4cfdd813b5188893a1622d3f95e543e0454c27c7" ], - "time": 1507208925, - "mediantime": 1507208645, - "nonce": 1449878272, - "bits": "1d00dda1", - "difficulty": 1.155066358813473, - "chainwork": "000000000000000000000000000000000000000000000000000001c3e86f0f04", - "previousblockhash": "00000000bf8dd4935f3f03515b0fb1c38d821c8ca6b498ff81480c0a9a71f511", - "nextblockhash": "0000000028817c7fce55d802f3647640600535a983d00e16076f284ec6cb001b" + "time": 1545066690, + "mediantime": 1545065992, + "nonce": 1705576192, + "bits": "1d4d7b41", + "difficulty": 0.01290611629979371, + "chainwork": "00000000000000000000000000000000000000000000000000000647104aa574", + "previousblockhash": "00000004896602ea8ca4f6f942e833289cf5e62de6a8ea2dd56b56885179fbd2" } +{% endhighlight %} +Get the same block in JSON with transaction details: + +{% highlight bash %} +dash-cli -testnet getblock \ + 00000012e877c56af0b33d79aae888b5cb40b47809b4bee764e8fea7a9033994 2 +{% endhighlight %} + +Result: + +{% highlight json %} +{ + "hash": "00000012e877c56af0b33d79aae888b5cb40b47809b4bee764e8fea7a9033994", + "confirmations": 1, + "size": 303, + "height": 6825, + "version": 536870913, + "versionHex": "20000001", + "merkleroot": "0286367f49141d54c1c2999f4cfdd813b5188893a1622d3f95e543e0454c27c7", + "tx": [ + { + "txid": "0286367f49141d54c1c2999f4cfdd813b5188893a1622d3f95e543e0454c27c7", + "size": 222, + "version": 1, + "type": 0, + "locktime": 0, + "vin": [ + { + "coinbase": "02a91a0e2f5032506f6f6c2d74444153482f", + "sequence": 4294967295 + } + ], + "vout": [ + { + "value": 68.17506820, + "valueSat": 6817506820, + "n": 0, + "scriptPubKey": { + "asm": "OP_DUP OP_HASH160 4f79c383bc5d3e9d4d81b98f87337cedfa789536 OP_EQUALVERIFY OP_CHECKSIG", + "hex": "76a9144f79c383bc5d3e9d4d81b98f87337cedfa78953688ac", + "reqSigs": 1, + "type": "pubkeyhash", + "addresses": [ + "yTZg6eePKxbJZyoaC93bVrTUq5vjhFrbst" + ] + } + }, + { + "value": 68.85000000, + "valueSat": 6885000000, + "n": 1, + "scriptPubKey": { + "asm": "OP_DUP OP_HASH160 f627e64c0453f74d879f6e6a37709189af0298da OP_EQUALVERIFY OP_CHECKSIG", + "hex": "76a914f627e64c0453f74d879f6e6a37709189af0298da88ac", + "reqSigs": 1, + "type": "pubkeyhash", + "addresses": [ + "yikzsfaaQ2eZ1RpVUpf1EvedzgGdJD17dC" + ] + } + }, + { + "value": 0.67493180, + "valueSat": 67493180, + "n": 2, + "scriptPubKey": { + "asm": "OP_DUP OP_HASH160 badadfdebaa6d015a0299f23fbc1fcbdd72ba96f OP_EQUALVERIFY OP_CHECKSIG", + "hex": "76a914badadfdebaa6d015a0299f23fbc1fcbdd72ba96f88ac", + "reqSigs": 1, + "type": "pubkeyhash", + "addresses": [ + "ydMSjYqwv4xTossPJ1xndTxwS1Hho9DmuM" + ] + } + }, + { + "value": 0.00000000, + "valueSat": 0, + "n": 3, + "scriptPubKey": { + "asm": "OP_RETURN 5fb560df18bc5145faa0860841df9daf30dc544c7b0cdb52ff28c06fa3b339240000000001000000", + "hex": "6a285fb560df18bc5145faa0860841df9daf30dc544c7b0cdb52ff28c06fa3b339240000000001000000", + "type": "nulldata" + } + } + ], + "instantlock": false + } + ], + "time": 1545066690, + "mediantime": 1545065992, + "nonce": 1705576192, + "bits": "1d4d7b41", + "difficulty": 0.01290611629979371, + "chainwork": "00000000000000000000000000000000000000000000000000000647104aa574", + "previousblockhash": "00000004896602ea8ca4f6f942e833289cf5e62de6a8ea2dd56b56885179fbd2" +} {% endhighlight %} *See also* diff --git a/_includes/layout/base/rpc-table.html b/_includes/layout/base/rpc-table.html index 0c54926d..de5e9fcc 100644 --- a/_includes/layout/base/rpc-table.html +++ b/_includes/layout/base/rpc-table.html @@ -71,7 +71,7 @@ th.tg-sort-header::-moz-selection { background:transparent; }th.tg-sort-header:: Blockchain GetBlock Y - + Updated in 0.13.0.0 Blockchain