diff --git a/_includes/devdoc/ref_p2p_networking.md b/_includes/devdoc/ref_p2p_networking.md index ec3bc3aa..4899da88 100644 --- a/_includes/devdoc/ref_p2p_networking.md +++ b/_includes/devdoc/ref_p2p_networking.md @@ -174,6 +174,7 @@ The currently-available type identifiers are: | 18 | [`MSG_GOVERNANCE_OBJECT_VOTE`][msg_governance_object_vote]{:#term-msg_governance_object_vote}{:.term} | The hash is a Governance Object Vote. | 19 | [`MSG_MASTERNODE_VERIFY`][msg_masternode_verify]{:#term-msg_masternode_verify}{:.term} | The hash is a Masternode Verify. | 20 | [`MSG_CMPCT_BLOCK`][msg_cmpct_block]{:#term-msg_cmpct_block}{:.term} | The hash is of a block header; identical to `MSG_BLOCK`. When used in a `getdata` message, this indicates the response should be a `cmpctblock` message. **Only for use in `getdata` messages.** +| 21 | [`MSG_QUORUM_FINAL_COMMITMENT`][msg_quorum_final_commitment]{:#term-msg_quorum_final_commitment}{:.term} | The hash is a long-living masternode quorum final commitment. Type identifier zero and type identifiers greater than twenty are reserved for future implementations. Dash Core ignores all inventories with diff --git a/_includes/devdoc/ref_transactions.md b/_includes/devdoc/ref_transactions.md index 3fb73c12..97869546 100644 --- a/_includes/devdoc/ref_transactions.md +++ b/_includes/devdoc/ref_transactions.md @@ -872,43 +872,34 @@ Coinbase Transaction Payload {% autocrossref %} -Quorum Commitment +*Added in protocol version 70212 of Dash Core as described by DIP6* -{% endautocrossref %} +The Quorum Commitment 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 field’s 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 %} - -{% autocrossref %} - -Topup Blockchain User Credit - -{% endautocrossref %} - -#### SubTxResetKey -{% include helpers/subhead-links.md %} - -{% autocrossref %} - -Change Blockchain User Public Key - -{% endautocrossref %} - -#### SubTxCloseAccount -{% include helpers/subhead-links.md %} - -{% autocrossref %} - -Close Blockchain User Account + {% endautocrossref %} diff --git a/_includes/references.md b/_includes/references.md index fd28e792..04d9fa05 100644 --- a/_includes/references.md +++ b/_includes/references.md @@ -33,7 +33,7 @@ http://opensource.org/licenses/MIT. [msg_governance_object_vote]: /en/developer-reference#term-msg_governance_object_vote "Governance object vote data type identifier of an inventory on the P2P network" [msg_masternode_verify]: /en/developer-reference#term-msg_masternode_verify "Masternode Verify data type identifier of an inventory on the P2P network" [msg_cmpct_block]: /en/developer-reference#term-msg_cmpct_block "An alternative to the block header hash data type identifier of an inventory on the P2P network used to request a compact block" - +[msg_quorum_final_commitment]: /en/developer-reference#term-msg_quorum_final_commitment "The Long-Living Masternode Quorum Final Commitment data type identifier of an inventory on the P2P network" [network]: /en/developer-guide#term-network "The Dash P2P network which broadcasts transactions and blocks" [op_checkmultisig]: /en/developer-reference#term-op-checkmultisig "Opcode which returns true if one or more provided signatures (m) sign the correct parts of a transaction and match one or more provided public keys (n)" [op_checksig]: /en/developer-reference#term-op-checksig "Opcode which returns true if a signature signs the correct parts of a transaction and matches a provided public key"