Content - Special transactions

Add info for Quorum commitment
Remove messages not in 13.0 (SubTx)
This commit is contained in:
thephez 2018-12-13 13:52:48 -05:00
parent ab05790243
commit b935ba5e9c
No known key found for this signature in database
GPG key ID: BBC8A06DBE236099
3 changed files with 24 additions and 32 deletions

View file

@ -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

View file

@ -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 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 %}
{% 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
<!-- hexdump needed -->
{% endautocrossref %}

View file

@ -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"