From 594af0a0f3da2b58c3fec53530c00ce7f90a56a5 Mon Sep 17 00:00:00 2001 From: thephez Date: Wed, 16 Aug 2023 16:07:21 -0400 Subject: [PATCH 1/3] docs: update mnhf with details of final implementation Relates to dashpay/dash#5469 and dashpay/dash#5505 --- .../transactions-special-transactions.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/docs/reference/transactions-special-transactions.md b/docs/reference/transactions-special-transactions.md index d489846f..dc639fe7 100644 --- a/docs/reference/transactions-special-transactions.md +++ b/docs/reference/transactions-special-transactions.md @@ -998,7 +998,7 @@ The JSON representation of a raw transaction can be obtained with the [`getrawtr ## MnHfTx -*Added in protocol version 70222 of Dash Core as described by [DIP23](https://github.com/dashpay/dips/blob/master/dip-0023.md)* +*Fully implemented in protocol version 70230 of Dash Core as described by [DIP23](https://github.com/dashpay/dips/blob/master/dip-0023.md)* > 🚧 Note > @@ -1006,16 +1006,21 @@ The JSON representation of a raw transaction can be obtained with the [`getrawtr The Masternode Hard Fork Signal (MnHfTx) special transaction adds the masternode hard fork signal produced by an LLMQ_400_85 quorum to the chain. Since this special transaction pays no fees, it is mandatory by consensus rules to ensure that miners include it. This can be done by any miner in any block, but it should only be included once. -> 📘 Partial implementation in Dash Core 18.0 -> -> Dash Core 18.0 only added the special transaction [to prepare for the full implementation](https://github.com/dashpay/dash/issues/4533) of [DIP23](https://github.com/dashpay/dips/blob/master/dip-0023.md) in a future release. The `mnhfsignal` P2P message referenced below is not included in Dash Core 18.0. - The special transaction type used for Quorum Commitment Transactions is 7 and the extra payload consists of the following data: | Bytes | Name | Data type | Description | | ---------- | ----------- | -------- | -------- | -| 2 | version | uint_16 | Quorum Commitment version number. Currently set to 1. -| Variable | commitment | mnhfsignal | The payload of the `mnhfsignal` message (defined in [DIP23](https://github.com/dashpay/dips/blob/master/dip-0023.md#new-system) but not yet implemented) +| 1 | versionBit | uint_8 | Commitment special transaction version number. Currently set to 1. Please note that this is not the same as the version field of the `mnhfsignal` message. +| 129 | commitment | mnhfsignal | The payload of the `mnhfsignal` message defined in [DIP23](https://github.com/dashpay/dips/blob/master/dip-0023.md#new-system) + +The `mnhfsignal` message contains: + +| Bytes | Name | Data type | Description | +|-|-|-|-| +| 1 | version | uint8_t | The version bits associated with the hard fork | +| 1 | versionBit | uint8_t | The version bits associated with the hard fork | +| 32 | quorumHash | uint256 | Hash of the quorum signing this message | +| 96 | sig | CBLSSig | BLS signature on `version` by a public key associated with the quorum referenced by `quorumHash` | The following annotated hexdump shows a MnHfTx transaction. From af81155709656c04a10ce08818ff922db571eee7 Mon Sep 17 00:00:00 2001 From: thephez Date: Thu, 9 Nov 2023 16:09:08 -0500 Subject: [PATCH 2/3] doc: misc updates and corrections --- docs/reference/transactions-special-transactions.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/reference/transactions-special-transactions.md b/docs/reference/transactions-special-transactions.md index dc639fe7..ccfe2416 100644 --- a/docs/reference/transactions-special-transactions.md +++ b/docs/reference/transactions-special-transactions.md @@ -1006,18 +1006,17 @@ The JSON representation of a raw transaction can be obtained with the [`getrawtr The Masternode Hard Fork Signal (MnHfTx) special transaction adds the masternode hard fork signal produced by an LLMQ_400_85 quorum to the chain. Since this special transaction pays no fees, it is mandatory by consensus rules to ensure that miners include it. This can be done by any miner in any block, but it should only be included once. -The special transaction type used for Quorum Commitment Transactions is 7 and the extra payload consists of the following data: +The special transaction type used for Masternode Hard Fork Signal Transactions is 7 and the extra payload consists of the following data: | Bytes | Name | Data type | Description | | ---------- | ----------- | -------- | -------- | -| 1 | versionBit | uint_8 | Commitment special transaction version number. Currently set to 1. Please note that this is not the same as the version field of the `mnhfsignal` message. +| 1 | version | uint_8 | Special transaction version number. Currently set to 1. Please note that this is not the same as the versionBit field of the `mnhfsignal` message. | 129 | commitment | mnhfsignal | The payload of the `mnhfsignal` message defined in [DIP23](https://github.com/dashpay/dips/blob/master/dip-0023.md#new-system) The `mnhfsignal` message contains: | Bytes | Name | Data type | Description | |-|-|-|-| -| 1 | version | uint8_t | The version bits associated with the hard fork | | 1 | versionBit | uint8_t | The version bits associated with the hard fork | | 32 | quorumHash | uint256 | Hash of the quorum signing this message | | 96 | sig | CBLSSig | BLS signature on `version` by a public key associated with the quorum referenced by `quorumHash` | From 42d53433ab41471e48c372b36f42c25210dc5036 Mon Sep 17 00:00:00 2001 From: thephez Date: Thu, 9 Nov 2023 16:17:52 -0500 Subject: [PATCH 3/3] docs: typo fix --- docs/reference/transactions-special-transactions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reference/transactions-special-transactions.md b/docs/reference/transactions-special-transactions.md index ccfe2416..ba779957 100644 --- a/docs/reference/transactions-special-transactions.md +++ b/docs/reference/transactions-special-transactions.md @@ -1017,7 +1017,7 @@ The `mnhfsignal` message contains: | Bytes | Name | Data type | Description | |-|-|-|-| -| 1 | versionBit | uint8_t | The version bits associated with the hard fork | +| 1 | versionBit | uint8_t | The version bit associated with the hard fork | | 32 | quorumHash | uint256 | Hash of the quorum signing this message | | 96 | sig | CBLSSig | BLS signature on `version` by a public key associated with the quorum referenced by `quorumHash` |