mirror of
https://github.com/seigler/dash-docs
synced 2025-07-27 01:36:13 +00:00
InstantSend P2P messages / Guide
- Add diagram of message exchange - Add section to guide
This commit is contained in:
parent
1d999fa23c
commit
4ded024b06
4 changed files with 136 additions and 1 deletions
|
@ -607,6 +607,40 @@ features in a decentralized, deterministic way.
|
|||
{% endautocrossref %}
|
||||
|
||||
|
||||
### InstantSend
|
||||
|
||||
{% include helpers/subhead-links.md %}
|
||||
|
||||
{% autocrossref %}
|
||||
|
||||
Dash Core's InstantSend feature provides a way to lock transaction inputs and
|
||||
enable secure, instantaneous transactions.
|
||||
|
||||
*InstantSend Data Flow*
|
||||
|
||||
| **InstantSend Client** | **Direction** | **Peers** | **Description** |
|
||||
| `inv` message (ix) | → | | Client sends inventory for transaction lock request
|
||||
| | ← | `getdata` message (ix) | Peer responds with request for transaction lock request
|
||||
| `ix` message | → | | Client sends InstantSend transaction lock request
|
||||
| | ← | `inv` message (txlvote) | Masternodes in the [quorum](#quorum-selection) respond with votes
|
||||
| `getdata` message (txlvote) | → | | Client requests vote
|
||||
| | ← | `txlvote` message | Peer responds with vote
|
||||
|
||||
Once a sufficient number of votes approve the transaction lock, the InstantSend
|
||||
transaction is approved and shows 5 confirmations (`DEFAULT_INSTANTSEND_DEPTH`).
|
||||
If an InstantSend transaction is a valid transaction but does not receive a
|
||||
transaction lock, it reverts to being a standard transaction.
|
||||
|
||||
There are a number of limitations on InstantSend transactions:
|
||||
|
||||
* To be used in an InstantSend transaction, an input must have 6+ confirmations (`INSTANTSEND_CONFIRMATIONS_REQUIRED`)
|
||||
* The lock request will timeout 15 seconds after the first vote is seen (`INSTANTSEND_LOCK_TIMEOUT_SECONDS`)
|
||||
* The lock request will fail if it has not been locked after 60 seconds (`INSTANTSEND_FAILED_TIMEOUT_SECONDS`)
|
||||
* A minimum fee (0.001 Dash) is required since the transaction involves the masternodes in addition to miners. Activation of [DIP-0001](https://github.com/dashpay/dips/blob/master/dip-0001.md) will reduce the fee by an order of magnitude (to 0.0001 Dash).
|
||||
|
||||
{% endautocrossref %}
|
||||
|
||||
|
||||
### PrivateSend
|
||||
|
||||
{% include helpers/subhead-links.md %}
|
||||
|
|
|
@ -1444,7 +1444,11 @@ bc8f5e5400000000 ............................ Epoch time: 1415483324
|
|||
|
||||
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.
|
||||
secure, instantaneous transactions. For additional details, refer to
|
||||
the Developer Guide [InstantSend section](developer-guide#instantsend).
|
||||
|
||||

|
||||
|
||||
|
||||
{% endautocrossref %}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue