V0.13.0 RC updates (#95)

* Content - RPC - Update quick reference

* RPC - Update getblockchaininfo to show BIP-9 progress

Related to dashpay/dash#2435

* RPC - Update gobject prepare with new params

Use-IS (dashpay/dash#2452)
Use specific UTXO for fee (dashpay/dash#2482)

* RPC - Update mode name

* RPC - Update protx default mode

dashpay/dash#2513

* Content - Add spork 17

* Content - Special transactions

Add info for Quorum commitment
Remove messages not in 13.0 (SubTx)

* P2P - Add new txlvote fields

masternodeProTxHash (dashpay/dash#2484)
quorumModifierHash (dashpay/dash#2505)

* RPC - Update protx list

Make all options follow the same parameter format (dashpay/dash#2559)

* Content - version bump

0.13.0.0 bumped to 70213 (dashpay/dash#2557)

* Guide - PrivateSend dstx message limit

Up to 5 simultaneous dstxs per MN allowed (dashpay/dash#2552)

* RPC - Update getblock

Add missing versionHex field (dashpay/dash@e7d9ffa)
Change to use verbosity syntax (dashpay/dash#2506 and
bitcoin/bitcoin#8704)

* P2P - Add qfcommit message (no hexdump example)

DIP6 quorum final commitment (dashpay/dash#2477)

* P2P - qfcommit typo

Change description of llmqType field

* P2P - Special tx payload size clarification

* Guide - Update MN payment description

Related to dashpay/dash#2258

* Guide - fix broken link

* Guide - Update some example txs

Change to hashes on the chain following the 12.3.4 reset

* P2P - Add QcTx hexdump

* P2P - DIP4 message updates

Add SML entry
Update hexdump to include new fields
Add getmnlistd and mnlistdiff to cross ref

* P2P - minor DIP3-related comments
This commit is contained in:
thephez 2018-12-26 11:05:10 -05:00 committed by GitHub
parent be84b44e9b
commit 28514b62d7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 549 additions and 146 deletions

View file

@ -414,7 +414,9 @@ flexibility to expand beyond the financial uses of classical transactions. DIP2
transactions modified classical transactions by:
1. Splitting the 32 bit `version` field into two 16 bit fields (`version` and `type`)
2. Adding support for a generic extra payload following the `lock_time` field
2. Adding support for a generic extra payload following the `lock_time` field. The
maximum allowed size for a transaction version 3 extra payload is 10000 bytes
(`MAX_TX_EXTRA_PAYLOAD`).
Classical (financial) transactions have a `type` of 0 while special transactions
have a `type` defined in the DIP describing them. A list of current special
@ -427,7 +429,7 @@ transaction types is maintained in the [DIP repository](https://github.com/dashp
{% autocrossref %}
*Added in protocol version 70212 of Dash Core as described by DIP3*
*Added in protocol version 70213 of Dash Core as described by DIP3*
The Masternode Registration (ProRegTx) special transaction is used to join the
masternode list by proving ownership of the 1000 DASH necessary to create a
@ -585,7 +587,7 @@ ProRegTx Payload
{% autocrossref %}
*Added in protocol version 70212 of Dash Core as described by DIP3*
*Added in protocol version 70213 of Dash Core as described by DIP3*
The Masternode Provider Update Service (ProUpServTx) special transaction is used
to update the IP Address and port of a masternode. If a non-zero operatorReward
@ -658,7 +660,7 @@ ProUpServTx Payload
{% autocrossref %}
*Added in protocol version 70212 of Dash Core as described by DIP3*
*Added in protocol version 70213 of Dash Core as described by DIP3*
The Masternode Provider Update Registrar (ProUpRegTx) special transaction is used
by a masternode owner to update masternode metadata (e.g. operator/voting key
@ -739,7 +741,7 @@ ProRegTx Payload
{% autocrossref %}
*Added in protocol version 70212 of Dash Core as described by DIP3*
*Added in protocol version 70213 of Dash Core as described by DIP3*
The Masternode Operator Revocation (ProUpRevTx) special transaction allows an
operator to revoke their key in case of compromise or if they wish to terminate
@ -801,7 +803,7 @@ ProUpRevTx Payload
{% autocrossref %}
*Added in protocol version 70212 of Dash Core as described by DIP4*
*Added in protocol version 70213 of Dash Core as described by DIP4*
The Coinbase (CbTx) special transaction adds information to the blocks coinbase
transaction that enables verification of the deterministic masternode list without
@ -867,48 +869,95 @@ Coinbase Transaction Payload
{% endautocrossref %}
#### Quorum Commitment
#### QcTx
{% include helpers/subhead-links.md %}
{% autocrossref %}
Quorum Commitment
*Added in protocol version 70213 of Dash Core as described by DIP6*
{% endautocrossref %}
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.
#### SubTxRegister
{% include helpers/subhead-links.md %}
Since this special transaction pays no fees, it is mandatory by consensus rules
to ensure that miners include it. Exactly one quorum commitment transaction MUST
be included in every block while in the mining phase of the LLMQ process until a
valid commitment is present in a block.
{% autocrossref %}
If a DKG failed or a miner did not receive a final commitment in-time, a null
commitment has to be included in the special transaction payload. A null
commitment must have the `signers` and `validMembers` bitsets set to the
`quorumSize` and all bits set to zero. All other fields must be set to the null
representation of the fields types.
Register Blockchain User
The special transaction type used for Quorum Commitment Transactions is 6 and
the extra payload consists of the following data:
{% endautocrossref %}
| Bytes | Name | Data type | Description |
| ---------- | ----------- | -------- | -------- |
| 2 | version | uint_16 | Quorum Commitment version number. Currently set to 1.
| 4 | height | uint32_t | Height of the block
| Variable | commitment | qfcommit | The payload of the `qfcommit` message
#### SubTxTopup
{% include helpers/subhead-links.md %}
The following annotated hexdump shows a QcTx transaction.
{% autocrossref %}
<!--getrawtransaction f218f2d5b8003bc530016dc510b3d982a5cf43ff76313b991ac5aa90a91065b7 true-->
Topup Blockchain User Credit
An itemized quorum commitment transaction:
{% endautocrossref %}
{% highlight text %}
0300 ....................................... Version (3)
0600 ....................................... Type (6 - Quorum Commitment)
#### SubTxResetKey
{% include helpers/subhead-links.md %}
00 ......................................... Number of inputs
00 ......................................... Number of outputs
{% autocrossref %}
00000000 ................................... Locktime
Change Blockchain User Public Key
fd4901 ..................................... Extra payload size (329)
{% endautocrossref %}
#### SubTxCloseAccount
{% include helpers/subhead-links.md %}
{% autocrossref %}
Close Blockchain User Account
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 %}