From 9e6fb8984eddf746650d45a5462ed77daf4e969f Mon Sep 17 00:00:00 2001 From: thephez Date: Tue, 18 Dec 2018 17:15:25 -0500 Subject: [PATCH] P2P - Add QcTx hexdump --- _autocrossref.yaml | 2 +- _includes/devdoc/ref_p2p_networking.md | 2 +- _includes/devdoc/ref_transactions.md | 62 ++++++++++++++++++++++++-- _includes/references.md | 2 +- 4 files changed, 62 insertions(+), 6 deletions(-) diff --git a/_autocrossref.yaml b/_autocrossref.yaml index 67d06204..7db94fe7 100644 --- a/_autocrossref.yaml +++ b/_autocrossref.yaml @@ -170,7 +170,7 @@ protocol version 70012: section protocol versions protocol version 70013: section protocol versions protocol version 70014: section protocol versions public key infrastructure: pki -'Quorum Commitment': quorum commitment special tx +'QcTx': quorum commitment special tx '`qfcommit` message': qfcommit message '`qfcommit` messages': qfcommit message '`r`': r diff --git a/_includes/devdoc/ref_p2p_networking.md b/_includes/devdoc/ref_p2p_networking.md index b56772f8..46d8a750 100644 --- a/_includes/devdoc/ref_p2p_networking.md +++ b/_includes/devdoc/ref_p2p_networking.md @@ -3063,7 +3063,7 @@ bf110000 ................................... Count: 4543 {% autocrossref %} The `qfcommit` message is used to finalize a long-living masternode quorum setup -by aggregating the information necessary to mine the on-chain Quorum Commitment +by aggregating the information necessary to mine the on-chain QcTx special transaction. The message contains all the necessary information required to validate the long-living masternode quorum's signing results. diff --git a/_includes/devdoc/ref_transactions.md b/_includes/devdoc/ref_transactions.md index 31d51981..75d5be6d 100644 --- a/_includes/devdoc/ref_transactions.md +++ b/_includes/devdoc/ref_transactions.md @@ -869,14 +869,14 @@ Coinbase Transaction Payload {% endautocrossref %} -#### Quorum Commitment +#### QcTx {% include helpers/subhead-links.md %} {% autocrossref %} *Added in protocol version 70213 of Dash Core as described by DIP6* -The Quorum Commitment special transaction adds the best final commitment from a +The Quorum Commitment (QcTx) special transaction adds the best final commitment from a Long-Living Masternode Quorum (LLMQ) Distributed Key Generation (DKG) session to the chain. This special transaction has no inputs and no outputs and thus also pays no fee. @@ -901,7 +901,63 @@ the extra payload consists of the following data: | 4 | height | uint32_t | Height of the block | Variable | commitment | qfcommit | The payload of the `qfcommit` message - +The following annotated hexdump shows a QcTx transaction. + + + +An itemized quorum commitment transaction: + +{% highlight text %} +0300 ....................................... Version (3) +0600 ....................................... Type (6 - Quorum Commitment) + +00 ......................................... Number of inputs +00 ......................................... Number of outputs + +00000000 ................................... Locktime + +fd4901 ..................................... Extra payload size (329) + +Quorum Commitment Transaction Payload +| 0100 ..................................... Version (1) +| +| 921d0000 ................................. Block height: 7570 +| +| Payload from the qfcommit message +| | 01 ..................................... LLMQ Type (1) +| | +| | 8d80561839648b844ade10b6e81069fa +| | 6c4bde6166dd59242be3487a00000000 ....... Quorum hash +| | +| | 32 ..................................... Number of signers (50) +| | ff7effffbebe02 ......................... Aggregrated signers bitvector +| | +| | 32 ..................................... Number of valid members (50) +| | ff7effffbebe02 ......................... Valid members bitvector +| | +| | 81d0717b893b557f54daacbd060bcffa +| | 2dc341175d0b89c7974dc57ef482ae27 +| | e10fb273eda534596993999950817cd4 ....... Quorum public key (BLS) +| | +| | ed93bc215d15350bd7030be811cf1df2 +| | c114f6b34df9bd4095161af93608ed90 ....... Quorum verification vector hash +| | +| | Quorum threshold signature (BLS) +| | 8d2bbb0b9c5b8626eb852ea0ff4f2509 +| | 19becc2d24653910fb8e11cf5573062f +| | 9f64c03a5031f1d462163ce98e8bf78a +| | 1470f7074a8e6fe23ccb53d73635ecd5 +| | ad71b26a938fc21638bcae7d272af9fa +| | 919f296a17e77191e3d4c708bc6e1b9a ....... BLS Signatures (96 bytes) +| | +| | Aggregated signatures from all commitments (BLS) +| | 19e702ff84ff851312cceba1de528ee7 +| | ffe33647ae28ef895b35558512901394 +| | b430c804c7c42494a3312545606b5598 +| | 0480985494fa2c49f50c65d47570380f +| | 13c2851ce33d8584b64e8b659146d732 +| | 67d821c78d09ba7caea3d03641f78c7a ....... BLS Signature (96 bytes) +{% endhighlight %} {% endautocrossref %} diff --git a/_includes/references.md b/_includes/references.md index 821ff8e4..03ea93bf 100644 --- a/_includes/references.md +++ b/_includes/references.md @@ -459,7 +459,7 @@ http://opensource.org/licenses/MIT. [proupservtx special tx]: /en/developer-reference#proupservtx [python-bitcoinlib]: https://github.com/petertodd/python-bitcoinlib [python-blkmaker]: https://gitorious.org/bitcoin/python-blkmaker -[quorum commitment special tx]: /en/developer-reference#quorum-commitment +[quorum commitment special tx]: /en/developer-reference#qctx [Satoshi Nakamoto]: https://en.bitcoin.it/wiki/Satoshi_Nakamoto [setup tor]: https://www.torproject.org/ [SHA256]: https://en.wikipedia.org/wiki/SHA-2