diff --git a/_includes/devdoc/ref_p2p_networking.md b/_includes/devdoc/ref_p2p_networking.md index 99f04f71..83808565 100644 --- a/_includes/devdoc/ref_p2p_networking.md +++ b/_includes/devdoc/ref_p2p_networking.md @@ -1411,6 +1411,8 @@ bc8f5e5400000000 ............................ Epoch time: 1415483324 {% autocrossref %} The following network messages all help control the InstantSend feature of Dash. +InstantSend uses the masternode network to lock transaction inputs and enable +secure, instantaneous transactions. {% endautocrossref %} @@ -1419,6 +1421,10 @@ The following network messages all help control the InstantSend feature of Dash. {% autocrossref %} +The `ix` message (transaction lock request) has the same structure as the `tx` message. +The masternode network responds with `txlvote` messages if the transaction inputs +can be locked. + {% endautocrossref %} @@ -1427,6 +1433,41 @@ The following network messages all help control the InstantSend feature of Dash. {% autocrossref %} +The `txlvote` message ([transaction lock vote][msg_txlock_vote]{:#term-msg_txlock_vote}{:.term}) +is sent by masternodes to indicate approval of a transaction lock request +`ix` message. + +| Bytes | Name | Data type | Required | Description | +| ---------- | ----------- | --------- | -------- | -------- | +| 32 | txHash | uint256 | Required | TXID of the transaction to lock +| 36 | outPoint | outpoint | Required | The unspent outpoint to lock in this transaction +| 36 | outpointMasternode | outpoint | Required | The outpoint of the masternode which is signing the vote +| 66* | vchMasternodeSignature | char[] | Required | 66 bytes in most cases. Length (1 byte) + Signature (65 bytes) + +The following annotated hexdump shows a `txlvote` message. (The +message header has been omitted.) + +{% highlight text %} +3c121fb4a12b2f715e2f70a9fa282115 +be197dde14073959fb2a2b8e95a7418f ..... TXID + +Outpoint to lock +| bb607995757c6a6efd6429215dcb3688 +| b252d34d835c81fed310fd905f487020 ... Outpoint TXID +| 01000000 ........................... Outpoint index number (1) + +Masternode Outpoint +| de9029c7e9b7eb7cd11f27ba670b2349 +| 0c3f0717b86ed949c316874589405cd2 ... Outpoint TXID +| 00000000 ........................... Outpoint index number (0) + +1ccc39ffb9c62111a8c82823d3ce61d2 +380db4e8f76ec238d568908f37558a90 +4e79566a53663de12ec2be1183c87d61 +250e8ebd57be171be1d4b5e89b69c263 +88 ................................... Masternode Signature +{% endhighlight %} + {% endautocrossref %} diff --git a/_includes/references.md b/_includes/references.md index 1dadbe3d..26514428 100644 --- a/_includes/references.md +++ b/_includes/references.md @@ -213,6 +213,7 @@ http://opensource.org/licenses/MIT. [getheaders message]: /en/developer-reference#getheaders "A P2P protocol message used to request a range of block headers" [headers message]: /en/developer-reference#headers "A P2P protocol message containing one or more block headers" [inv message]: /en/developer-reference#inv "A P2P protocol message used to send inventories of transactions and blocks known to the transmitting peer" +[ix message]: /en/developer-reference#ix "A P2P protocol message which sends a single serialized transaction via InstantSend" [mempool message]: /en/developer-reference#mempool "A P2P protocol message used to request one or more inv messages with currently-unconfirmed transactions" [merkleblock message]: /en/developer-reference#merkleblock "A P2P protocol message used to request a filtered block useful for SPV proofs" [notfound message]: /en/developer-reference#notfound "A P2P protocol message sent to indicate that the requested data was not available" @@ -221,6 +222,7 @@ http://opensource.org/licenses/MIT. [reject message]: /en/developer-reference#reject "A P2P network message used to indicate a previously-received message was rejected for some reason" [sendheaders message]: /en/developer-reference#sendheaders "A P2P network message used to request new blocks be announced through headers messages rather than inv messages" [tx message]: /en/developer-reference#tx "A P2P protocol message which sends a single serialized transaction" +[txlvote message]: /en/developer-reference#txlvote "A P2P protocol message which masternodes send in response to an ix (transaction lock request) message if the transaction inputs can be locked." [verack message]: /en/developer-reference#verack "A P2P network message sent in reply to a version message to confirm a connection has been established" [version message]: /en/developer-reference#version "A P2P network message sent at the begining of a connection to allow protocol version negotiation"