mirror of
https://github.com/seigler/dash-docs
synced 2025-07-27 17:56:16 +00:00
Governance subsection (P2P)
- Start adding govobj, govobjvote details - Add spork references
This commit is contained in:
parent
5c4d329091
commit
d5eb80fed1
2 changed files with 60 additions and 2 deletions
|
@ -1144,8 +1144,7 @@ section][section message header] for an example of a message without a payload.
|
||||||
|
|
||||||
{% autocrossref %}
|
{% autocrossref %}
|
||||||
|
|
||||||
The `getsporks` message requests `spork` messages from the receiving
|
The `getsporks` message requests `spork` messages from the receiving node.
|
||||||
node.
|
|
||||||
|
|
||||||
There is no payload in a `getsporks` message. See the [message header
|
There is no payload in a `getsporks` message. See the [message header
|
||||||
section][section message header] for an example of a message without a payload.
|
section][section message header] for an example of a message without a payload.
|
||||||
|
@ -1294,6 +1293,8 @@ not immediately made active (or “enforced”). Enforcement of the updated code
|
||||||
can be activated remotely. Should problems arise, the code can be deactivated
|
can be activated remotely. Should problems arise, the code can be deactivated
|
||||||
in the same manner, without the need for a network-wide rollback or client update.
|
in the same manner, without the need for a network-wide rollback or client update.
|
||||||
|
|
||||||
|
A `spork` message may be sent in response to a `getsporks` message.
|
||||||
|
|
||||||
The `spork` message tells the receiving peer the status of the spork defined by
|
The `spork` message tells the receiving peer the status of the spork defined by
|
||||||
the SporkID field.
|
the SporkID field.
|
||||||
|
|
||||||
|
@ -1672,6 +1673,52 @@ The following network messages enable the Governance features built in to Dash.
|
||||||
|
|
||||||
{% autocrossref %}
|
{% autocrossref %}
|
||||||
|
|
||||||
|
The `govobj` message is ...
|
||||||
|
|
||||||
|
| Bytes | Name | Data type | Required | Description |
|
||||||
|
| ---------- | ----------- | --------- | -------- | -------- |
|
||||||
|
| 32 | nHashParent | uint256 | Required | Parent object, 0 is root
|
||||||
|
| 4 | nRevision | int | Required | Object revision in the system
|
||||||
|
| 8 | nTime | int64_t | Required | Time which this object was created
|
||||||
|
| 32 | nCollateralHash | uint256 | Required | Hash of the collateral fee transaction
|
||||||
|
| 0-16384 | strData | string | Required | Data field - can be used for anything (leading varint indicates size of data)
|
||||||
|
| 4 | nObjectType | int | Required | Type of governance object as defined by src/governance-object.h
|
||||||
|
| 41 | vinMasternode | CTxIn | Required | Unspent output for the masternode which is signing this object
|
||||||
|
| 66* | vchSig | char[] | Required | Signature of the masternode (66 bytes in most cases. Length (1 byte) + Signature (65 bytes))
|
||||||
|
|
||||||
|
The following annotated hexdump shows a `govobj` message. (The
|
||||||
|
message header has been omitted.)
|
||||||
|
|
||||||
|
{% highlight text %}
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000 ..... Parent Hash (0 = root)
|
||||||
|
01000000 ............................. Revision (1)
|
||||||
|
911ea85900000000 ..................... Create timestamp (2017-08-31 10:34:57 EDT)
|
||||||
|
00000000000000000000000000000000
|
||||||
|
00000000000000000000000000000000 ..... Collateral Hash
|
||||||
|
|
||||||
|
Data
|
||||||
|
| ae11 ............................... Data length (4526)
|
||||||
|
| fdae11356235623 ... 376435643564 ... Data (truncated)
|
||||||
|
|
||||||
|
02000000 ............................. Object Type (2 = GOVERNANCE_OBJECT_TRIGGER)
|
||||||
|
|
||||||
|
Transaction input
|
||||||
|
| UTXO
|
||||||
|
| | ffefbe4959085907bcd2ba29e357a441
|
||||||
|
| | fa7b6e26e25896d8127332bba2419e97 ... Outpoint TXID
|
||||||
|
| | 00000000 ........................... Outpoint index number (0)
|
||||||
|
| 00 ................................... Script length (0)
|
||||||
|
| ...................................... Signature (None)
|
||||||
|
| ffffffff ............................. Sequence
|
||||||
|
|
||||||
|
1ce3b782f66be8ae9fc4158680128864
|
||||||
|
341202b6006384083ab2d9cfa73795e2
|
||||||
|
6000668e84af4ef6a284a52b53843524
|
||||||
|
72037d51bd9079ffd5c087d9632865ee
|
||||||
|
75 ................................... Masternode Signature
|
||||||
|
{% endhighlight %}
|
||||||
|
|
||||||
{% endautocrossref %}
|
{% endautocrossref %}
|
||||||
|
|
||||||
#### govobjvote
|
#### govobjvote
|
||||||
|
@ -1679,6 +1726,15 @@ The following network messages enable the Governance features built in to Dash.
|
||||||
|
|
||||||
{% autocrossref %}
|
{% autocrossref %}
|
||||||
|
|
||||||
|
| Bytes | Name | Data type | Required | Description |
|
||||||
|
| ---------- | ----------- | --------- | -------- | -------- |
|
||||||
|
| 41+ | vinMasternode | CTxIn | Required | Unspent output for the masternode which is voting
|
||||||
|
| 32 | nParentHash | uint256 | Required | Object which we're voting on (proposal, contract, setting or final budget)
|
||||||
|
| 4 | nVoteOutcome | int | Required |
|
||||||
|
| 4 | nVoteSignal | int | Required |
|
||||||
|
| 8 | nTime | int64_t | Required | Time which the vote was created
|
||||||
|
| 66* | vchSig | char[] | Required | Signature of the masternode (66 bytes in most cases. Length (1 byte) + Signature (65 bytes))
|
||||||
|
|
||||||
{% endautocrossref %}
|
{% endautocrossref %}
|
||||||
|
|
||||||
#### govsync
|
#### govsync
|
||||||
|
|
|
@ -211,6 +211,7 @@ http://opensource.org/licenses/MIT.
|
||||||
[getblocks message]: /en/developer-reference#getblocks "A P2P protocol message used to request an inv message containing a range of block header hashes"
|
[getblocks message]: /en/developer-reference#getblocks "A P2P protocol message used to request an inv message containing a range of block header hashes"
|
||||||
[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"
|
||||||
|
[getsporks message]: /en/developer-reference#getsporks "A P2P network message used to request the status of sporks"
|
||||||
[headers message]: /en/developer-reference#headers "A P2P protocol message containing one or more 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"
|
[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"
|
[ix message]: /en/developer-reference#ix "A P2P protocol message which sends a single serialized transaction via InstantSend"
|
||||||
|
@ -221,6 +222,7 @@ http://opensource.org/licenses/MIT.
|
||||||
[pong message]: /en/developer-reference#pong "A P2P network message used to reply to a P2P network ping message"
|
[pong message]: /en/developer-reference#pong "A P2P network message used to reply to a P2P network ping message"
|
||||||
[reject message]: /en/developer-reference#reject "A P2P network message used to indicate a previously-received message was rejected for some reason"
|
[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"
|
[sendheaders message]: /en/developer-reference#sendheaders "A P2P network message used to request new blocks be announced through headers messages rather than inv messages"
|
||||||
|
[spork message]: /en/developer-reference#spork "A P2P network message used to send the activation status of a spork"
|
||||||
[tx message]: /en/developer-reference#tx "A P2P protocol message which sends a single serialized transaction"
|
[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."
|
[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"
|
[verack message]: /en/developer-reference#verack "A P2P network message sent in reply to a version message to confirm a connection has been established"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue