mirror of
https://github.com/seigler/dash-docs
synced 2025-07-27 09:46:12 +00:00
P2P - DIP4 message updates
Add SML entry Update hexdump to include new fields Add getmnlistd and mnlistdiff to cross ref
This commit is contained in:
parent
9e6fb8984e
commit
8ce4100b04
4 changed files with 38 additions and 4 deletions
|
@ -69,6 +69,8 @@ fiat:
|
||||||
'`getheaders` messages': getheaders message
|
'`getheaders` messages': getheaders message
|
||||||
'`getaddr` message': getaddr message
|
'`getaddr` message': getaddr message
|
||||||
'`getaddr` messages': getaddr message
|
'`getaddr` messages': getaddr message
|
||||||
|
'`getmnlistd` message': getmnlistd message
|
||||||
|
'`getmnlistd` messages': getmnlistd message
|
||||||
'`getsporks` message': getsporks message
|
'`getsporks` message': getsporks message
|
||||||
'`getsporks` messages': getsporks message
|
'`getsporks` messages': getsporks message
|
||||||
'`govobj` message': govobj message
|
'`govobj` message': govobj message
|
||||||
|
@ -114,6 +116,8 @@ micropayment channels: micropayment channel
|
||||||
'`mnb` messages': mnb message
|
'`mnb` messages': mnb message
|
||||||
'`mnget` message': mnget message
|
'`mnget` message': mnget message
|
||||||
'`mnget` messages': mnget message
|
'`mnget` messages': mnget message
|
||||||
|
'`mnlistdiff` message': mnlistdiff message
|
||||||
|
'`mnlistdiff` messages': mnlistdiff message
|
||||||
'`mnp` message': mnp message
|
'`mnp` message': mnp message
|
||||||
'`mnp` messages': mnp message
|
'`mnp` messages': mnp message
|
||||||
'`mnv` message': mnv message
|
'`mnv` message': mnv message
|
||||||
|
|
|
@ -514,7 +514,7 @@ devsearches:
|
||||||
- "DIP4: Simplified Verification of Deterministic Masternode Lists": "https://github.com/dashpay/dips/blob/master/dip-0004.md"
|
- "DIP4: Simplified Verification of Deterministic Masternode Lists": "https://github.com/dashpay/dips/blob/master/dip-0004.md"
|
||||||
- "DIP5: Blockchain Users": "https://github.com/dashpay/dips/blob/master/dip-0005.md"
|
- "DIP5: Blockchain Users": "https://github.com/dashpay/dips/blob/master/dip-0005.md"
|
||||||
- "DIP6: Long-Living Masternode Quorums": "https://github.com/dashpay/dips/blob/master/dip-0006.md"
|
- "DIP6: Long-Living Masternode Quorums": "https://github.com/dashpay/dips/blob/master/dip-0006.md"
|
||||||
- "DIP7: LLMQ Signing Requests / Sessions": "https://github.com/dashpay/dips/blob/master/dip-0007.md"
|
- "DIP7: LLMQ Signing Requests / Sessions": "https://github.com/dashpay/dips/blob/master/dip-0007.md"
|
||||||
|
|
||||||
## Bitcoin P2P Protocol messages documented on Bitcoin.org
|
## Bitcoin P2P Protocol messages documented on Bitcoin.org
|
||||||
"P2P Messages":
|
"P2P Messages":
|
||||||
|
@ -532,10 +532,12 @@ devsearches:
|
||||||
- "getblocktxn": "/en/developer-reference#getblocktxn"
|
- "getblocktxn": "/en/developer-reference#getblocktxn"
|
||||||
- "getdata": "/en/developer-reference#getdata"
|
- "getdata": "/en/developer-reference#getdata"
|
||||||
- "getheaders": "/en/developer-reference#getheaders"
|
- "getheaders": "/en/developer-reference#getheaders"
|
||||||
|
- "getmnlistd": "/en/developer-reference#getmnlistd"
|
||||||
- "headers": "/en/developer-reference#headers"
|
- "headers": "/en/developer-reference#headers"
|
||||||
- "inv": "/en/developer-reference#inv"
|
- "inv": "/en/developer-reference#inv"
|
||||||
- "mempool": "/en/developer-reference#mempool"
|
- "mempool": "/en/developer-reference#mempool"
|
||||||
- "merkleblock": "/en/developer-reference#merkleblock"
|
- "merkleblock": "/en/developer-reference#merkleblock"
|
||||||
|
- "mnlistdiff": "/en/developer-reference#mnlistdiff"
|
||||||
- "notfound": "/en/developer-reference#notfound"
|
- "notfound": "/en/developer-reference#notfound"
|
||||||
- "ping": "/en/developer-reference#ping"
|
- "ping": "/en/developer-reference#ping"
|
||||||
- "pong": "/en/developer-reference#pong"
|
- "pong": "/en/developer-reference#pong"
|
||||||
|
|
|
@ -550,8 +550,10 @@ to the `getheaders` message will include as many as 2,000 block headers.
|
||||||
|
|
||||||
*Added in protocol version 70213*
|
*Added in protocol version 70213*
|
||||||
|
|
||||||
The `getmnlistd` message is sent to request a full masternode list or an
|
The `getmnlistd` message requests a `mnlistdiff` message that provides either:
|
||||||
update to a previously requested masternode list.
|
|
||||||
|
1. A full masternode list (if `baseBlockHash` is all-zero)
|
||||||
|
2. An update to a previously requested masternode list
|
||||||
|
|
||||||
| Bytes | Name | Data type | Required | Description |
|
| Bytes | Name | Data type | Required | Description |
|
||||||
| ---------- | ----------- | --------- | -------- | -------- |
|
| ---------- | ----------- | --------- | -------- | -------- |
|
||||||
|
@ -899,7 +901,19 @@ requested either a full masternode list or a diff for a range of blocks.
|
||||||
| variable | merkleFlags | vector<uint8_t> | Required | Merkle flag bits, packed per 8 in a byte, least significant bit first
|
| variable | merkleFlags | vector<uint8_t> | Required | Merkle flag bits, packed per 8 in a byte, least significant bit first
|
||||||
| variable | cbTx | CTransaction | Required | The fully serialized coinbase transaction of `blockHash`
|
| variable | cbTx | CTransaction | Required | The fully serialized coinbase transaction of `blockHash`
|
||||||
| variable | deletedMNs | vector | Required | A list of ProRegTx hashes for masternode which were deleted after `baseBlockHash`
|
| variable | deletedMNs | vector | Required | A list of ProRegTx hashes for masternode which were deleted after `baseBlockHash`
|
||||||
| variable | mnList | vector | Required | The list of SML entries which were added or updated since `baseBlockHash`
|
| variable | mnList | vector | Required | The list of Simplified Masternode List (SML) entries which were added or updated since `baseBlockHash`
|
||||||
|
|
||||||
|
Simplified Masternode List (SML) Entry
|
||||||
|
|
||||||
|
| Bytes | Name | Data type | Description |
|
||||||
|
| ---------- | ----------- | -------- | -------- |
|
||||||
|
| 32 | proRegTxHash | uint256 | The hash of the ProRegTx that identifies the masternode
|
||||||
|
| 32 | confirmedHash | uint256 | The hash of the block at which the masternode got confirmed
|
||||||
|
| 16 | ipAddress | byte[] | IPv6 address in network byte order. Only IPv4 mapped addresses are allowed (to be extended in the future)
|
||||||
|
| 2 | port | uint_16 | Port (network byte order)
|
||||||
|
| 48 | pubKeyOperator | BLSPubKey | The operators public key
|
||||||
|
| 20 |keyIDVoting | CKeyID | The public key hash used for voting.
|
||||||
|
| 1 | isValid | bool | True if a masternode is not PoSe-banned
|
||||||
|
|
||||||
The following annotated hexdump shows a `mnlistdiff` message. (The
|
The following annotated hexdump shows a `mnlistdiff` message. (The
|
||||||
message header has been omitted.)
|
message header has been omitted.)
|
||||||
|
@ -937,6 +951,10 @@ Masternode List
|
||||||
| Masternode 1
|
| Masternode 1
|
||||||
| | 01040eb32f760490054543356cff4638
|
| | 01040eb32f760490054543356cff4638
|
||||||
| | 65633439dd073cffa570305eb086f70e ....... ProRegTx hash
|
| | 65633439dd073cffa570305eb086f70e ....... ProRegTx hash
|
||||||
|
| |
|
||||||
|
| | 000001ee5108348a2c59396da29dc576
|
||||||
|
| | 9b2a9bb303d7577aee9cd95136c49b9b ....... Confirmed block hash
|
||||||
|
| |
|
||||||
| | 00000000000000000000000000000000 ....... IP Address: ::ffff:0.0.0.0
|
| | 00000000000000000000000000000000 ....... IP Address: ::ffff:0.0.0.0
|
||||||
| | 0000 ................................... Port: 0
|
| | 0000 ................................... Port: 0
|
||||||
| |
|
| |
|
||||||
|
@ -944,10 +962,16 @@ Masternode List
|
||||||
| | 0000000000000000000000000000000000000000
|
| | 0000000000000000000000000000000000000000
|
||||||
| | 0000000000000000 ....................... Operator public key (BLS)
|
| | 0000000000000000 ....................... Operator public key (BLS)
|
||||||
| | c2ae01fb4084cbc3bc31e7f59b36be228a320404 Voting pubkey hash (ECDSA)
|
| | c2ae01fb4084cbc3bc31e7f59b36be228a320404 Voting pubkey hash (ECDSA)
|
||||||
|
| |
|
||||||
|
| | 0 ...................................... Valid (0 - No)
|
||||||
|
|
|
|
||||||
| Masternode 2
|
| Masternode 2
|
||||||
| | f7737beb39779971e9bc59632243e13f
|
| | f7737beb39779971e9bc59632243e13f
|
||||||
| | c5fc9ada93b69bf48c2d4c463296cd5a ....... ProRegTx hash
|
| | c5fc9ada93b69bf48c2d4c463296cd5a ....... ProRegTx hash
|
||||||
|
| |
|
||||||
|
| | 0000030f51f12e7069a7aa5f1bc9085d
|
||||||
|
| | db3fe368976296fd3b6d73fdaf898cc0 ....... Confirmed block hash
|
||||||
|
| |
|
||||||
| | 000000000000000000000000cf9af40d ....... IP Address: ::ffff:207.154.244.13
|
| | 000000000000000000000000cf9af40d ....... IP Address: ::ffff:207.154.244.13
|
||||||
| | 4e1f ................................... Port: 19999
|
| | 4e1f ................................... Port: 19999
|
||||||
| |
|
| |
|
||||||
|
@ -955,6 +979,8 @@ Masternode List
|
||||||
| | de4a8db4d76fda6d6985dbdf10404fb9bb5cd0e8
|
| | de4a8db4d76fda6d6985dbdf10404fb9bb5cd0e8
|
||||||
| | c22f4a914a6c5566 ....................... Operator public key (BLS)
|
| | c22f4a914a6c5566 ....................... Operator public key (BLS)
|
||||||
| | 43ce12751c4ba45dcdfe2c16cefd61461e17a54d Voting pubkey hash (ECDSA)
|
| | 43ce12751c4ba45dcdfe2c16cefd61461e17a54d Voting pubkey hash (ECDSA)
|
||||||
|
| |
|
||||||
|
| | 1 ...................................... Valid (1 - Yes)
|
||||||
{% endhighlight %}
|
{% endhighlight %}
|
||||||
|
|
||||||
{% endautocrossref %}
|
{% endautocrossref %}
|
||||||
|
|
|
@ -234,6 +234,7 @@ http://opensource.org/licenses/MIT.
|
||||||
[getblocktxn message]: /en/developer-reference#getblocktxn "A P2P protocol message used to request transactions from a compact block"
|
[getblocktxn message]: /en/developer-reference#getblocktxn "A P2P protocol message used to request transactions from a compact block"
|
||||||
[getdata message]: /en/developer-reference#getdata "A P2P protocol message used to request one or more transactions, blocks, or merkle blocks"
|
[getdata message]: /en/developer-reference#getdata "A P2P protocol message used to request one or more transactions, blocks, or merkle blocks"
|
||||||
[getheaders message]: /en/developer-reference#getheaders "A P2P protocol message used to request a range of block headers"
|
[getheaders message]: /en/developer-reference#getheaders "A P2P protocol message used to request a range of block headers"
|
||||||
|
[getmnlistd message]: /en/developer-reference#getmnlistd "A P2P protool message used to request a simplified masternode list"
|
||||||
[getsporks message]: /en/developer-reference#getsporks "A P2P network message used to request the status of sporks"
|
[getsporks message]: /en/developer-reference#getsporks "A P2P network message used to request the status of sporks"
|
||||||
[govobj message]: /en/developer-reference#govobj "A P2P network message used to send governance objects (proposals, etc.)"
|
[govobj message]: /en/developer-reference#govobj "A P2P network message used to send governance objects (proposals, etc.)"
|
||||||
[govobjvote message]: /en/developer-reference#govobjvote "A P2P network message used to send governance object votes"
|
[govobjvote message]: /en/developer-reference#govobjvote "A P2P network message used to send governance object votes"
|
||||||
|
@ -245,6 +246,7 @@ http://opensource.org/licenses/MIT.
|
||||||
[merkleblock message]: /en/developer-reference#merkleblock "A P2P protocol message used to request a filtered block useful for SPV proofs"
|
[merkleblock message]: /en/developer-reference#merkleblock "A P2P protocol message used to request a filtered block useful for SPV proofs"
|
||||||
[mnb message]: /en/developer-reference#mnb "A P2P protocol message used to describe the masternode entry and how to validate messages from it"
|
[mnb message]: /en/developer-reference#mnb "A P2P protocol message used to describe the masternode entry and how to validate messages from it"
|
||||||
[mnget message]: /en/developer-reference#mnget "A P2P protocol message that requests masternode payment sync"
|
[mnget message]: /en/developer-reference#mnget "A P2P protocol message that requests masternode payment sync"
|
||||||
|
[mnlistdiff message]: /en/developer-reference#mnlistdiff "A P2P protocol message used to send a diff of simplified masternode list entries between two blocks"
|
||||||
[mnp message]: /en/developer-reference#mnp "A P2P protocol message sent by masternodes every few minutes to ping the network with a message that propagates across the whole network"
|
[mnp message]: /en/developer-reference#mnp "A P2P protocol message sent by masternodes every few minutes to ping the network with a message that propagates across the whole network"
|
||||||
[mnv message]: /en/developer-reference#mnv "A P2P protocol message used by masternodes to verify other masternode's IP Addresses."
|
[mnv message]: /en/developer-reference#mnv "A P2P protocol message used by masternodes to verify other masternode's IP Addresses."
|
||||||
[mnw message]: /en/developer-reference#mnw "A P2P protocol message used to pick the next winning masternode (payee)"
|
[mnw message]: /en/developer-reference#mnw "A P2P protocol message used to pick the next winning masternode (payee)"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue