You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The [`isdlock` message](../reference/p2p-network-instantsend-messages.md#isdlock) is used to provide details of transactions that have been locked by InstantSend. The message includes all details present in the [`islock` message](../reference/p2p-network-deprecated-messages.md#islock) along with additional version and cycle information introduced by [DIP22](https://github.com/dashpay/dips/blob/master/dip-0022.md). This enables nodes to determine what quorum signed the message and validate the signature in the future after the quorum is no longer active. Additional details about the change are available in [DIP22 - Making InstantSend Deterministic using Quorum Cycles](https://github.com/dashpay/dips/blob/master/dip-0022.md).
47
+
:::{versionchanged} 23.0.0
48
+
As of protocol version 70237, the `cycleHash` field represents the DKG cycle starting block of the signing quorum instead of the DKG cycle starting block corresponding to the current chain height. This change is fully backwards compatible with older versions of Dash Core.
49
+
:::
50
+
51
+
The [`isdlock` message](../reference/p2p-network-instantsend-messages.md#isdlock) is used to provide details of transactions that have been locked by InstantSend. The message includes all details present in the deprecated [`islock` message](../reference/p2p-network-deprecated-messages.md#islock) along with additional version and cycle information introduced by [DIP22](https://github.com/dashpay/dips/blob/master/dip-0022.md). This enables nodes to determine what quorum signed the message and validate the signature in the future after the quorum is no longer active. Additional details about the change are available in [DIP22 - Making InstantSend Deterministic using Quorum Cycles](https://github.com/dashpay/dips/blob/master/dip-0022.md).
52
+
53
+
The request ID for an isdlock can be calculated deterministically using the formula: `hash("islock" + serialized_inputs)`, where "islock" is a string prefix and the inputs are serialized in their COutPoint format. This ID is used for quorum signature verification and can be obtained via the [`getislocks` RPC command](../api/remote-procedure-calls-raw-transactions.md#getislocks).
48
54
49
55
| Bytes | Name | Data type | Description |
50
56
| --- | --- | --- | --- |
51
-
| 1 | version | uint8 | The version of the islock message |
57
+
| 1 | version | uint8 | The version of the isdlock message |
52
58
| 1-9 | inputsSize | compactSize uint | Number of inputs |
53
59
| 36 * `inputsSize`| inputs | COutPoint | Outpoints used in the transaction |
54
60
| 32 | txid | uint256 | TXID of the locked transaction |
55
-
| 32 | cycleHash | uint256 | Block hash of first block of the cycle in which the quorum signing this islock is active |
56
-
| 96 | sig | byte[]| LLMQ BLS Signature<br>**Note**: serialized using the basic BLS scheme after Dash 19.0 activation|
61
+
| 32 | cycleHash | uint256 | Block hash of first block of the DKG cycle in which the quorum signing this isdlock is active.<br>**Note**: As of v23.0.0 (protocol 70237), this represents the signing quorum's cycle, not the current height's cycle|
62
+
| 96 | sig | byte[]| LLMQ BLS Signature serialized using the basic BLS scheme |
57
63
58
64
The following annotated hexdump shows a [`isdlock` message](../reference/p2p-network-instantsend-messages.md#isdlock). (The message header has been omitted.)
0 commit comments