Skip to content

Commit 79ef5d7

Browse files
authored
docs: update special txs with extended address info (#536)
* docs: update protx special tx payload tables * docs: add extended address netinfo detail * docs: fix link * docs: update previous version links * chore: fix typo
1 parent 0a10895 commit 79ef5d7

File tree

7 files changed

+40
-25
lines changed

7 files changed

+40
-25
lines changed

docs/core/api/remote-procedure-calls-removed.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
# Removed RPCs
88

9-
The following RPCs were recently removed. See the [previous version of documentation](https://docs.dash.org/projects/core/en/20.1.0/docs/api/remote-procedure-calls-removed.html) for RPCs removed longer ago.
9+
The following RPCs were recently removed. See the [previous version of documentation](https://docs.dash.org/projects/core/en/22.0.0/docs/api/remote-procedure-calls-removed.html) for RPCs removed longer ago.
1010

1111
## GObject Vote-conf
1212

docs/core/api/remote-procedure-calls-wallet-deprecated.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@
1010
RPCs that require wallet support are **not available on masternodes** for security reasons. Such RPCs are designated with a "_Requires wallet support_" message.
1111
:::
1212

13-
The following RPCs were recently removed. See the [previous version of documentation](https://docs.dash.org/projects/core/en/20.1.0/docs/api/remote-procedure-calls-wallet-deprecated.html) for RPCs removed longer ago.
13+
The following RPCs were recently removed. See the [previous version of documentation](https://docs.dash.org/projects/core/en/22.0.0/docs/api/remote-procedure-calls-wallet-deprecated.html) for RPCs removed longer ago.

docs/core/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ SDK Resources <https://docs.dash.org/en/stable/docs/user/developers/integration-
155155
Dash Improvement Proposals <dips/README>
156156
Dash Whitepaper <https://docs.dash.org/en/stable/introduction/about.html#whitepaper>
157157
Bitcoin Whitepaper <https://bitcoin.org/bitcoin.pdf>
158-
Previous Version of Docs <https://docs.dash.org/projects/core/en/21.0.0/docs/index.html>
158+
Previous Version of Docs <https://docs.dash.org/projects/core/en/22.0.0/docs/index.html>
159159
```
160160

161161
Questions about Dash development are best asked in one of the [Dash development

docs/core/reference/p2p-network-control-messages.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,7 @@ See [PR 5398](https://github.com/dashpay/dash/pull/5398) for implementation deta
441441

442442
### Removed sporks
443443

444-
The following sporks were used in the past but are no longer necessary and have been removed recently. To see sporks removed longer ago, please see the [previous version of documentation](https://docs.dash.org/projects/core/en/21.0.0/docs/reference/p2p-network-control-messages.html#removed-sporks).
444+
The following sporks were used in the past but are no longer necessary and have been removed recently. To see sporks removed longer ago, please see the [previous version of documentation](https://docs.dash.org/projects/core/en/22.0.0/docs/reference/p2p-network-control-messages.html#removed-sporks).
445445

446446
| Spork ID | Num. | Name | Description |
447447
| :----------: | :----------: | ----------- | ----------- |

docs/core/reference/p2p-network-deprecated-messages.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
The following network messages have been recently deprecated and should no longer be used. To see
44
network messages removed longer ago, please see the [previous version of
5-
documentation](https://docs.dash.org/projects/core/en/21.0.0/docs/reference/p2p-network-deprecated-messages.html).
5+
documentation](https://docs.dash.org/projects/core/en/22.0.0/docs/reference/p2p-network-deprecated-messages.html).
66

77
## islock
88

docs/core/reference/transactions-special-transactions.md

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -46,25 +46,37 @@ The special transaction type is 1 and the extra payload consists of the followin
4646

4747
| Bytes | Name | Data type | Description |
4848
| ---------- | ----------- | -------- | -------- |
49-
| 2 | version | uint_16 | Provider transaction version number. Currently set to 1. Updated to 2 after v19 hard fork.
49+
| 2 | version | uint_16 | Provider transaction version number.<br>**Version 1** - Legacy BLS scheme<br>**Version 2** - Basic BLS scheme (after v19 hard fork)<br>**Version 3** - Extended addresses with basic BLS scheme (after v24 hard fork activation)
5050
| 2 | type | uint_16 | Masternode type. Default set to 0.
5151
| 2 | mode | uint_16 | Masternode mode. Default set to 0.
5252
| 36 | collateralOutpoint | COutpoint | The collateral outpoint.<br>**Note:** The hash will be null if the collateral is part of this transaction, otherwise it will reference an existing collateral.
53-
| 16 | ipAddress | byte[] | IPv6 address in network byte order. Only IPv4 mapped addresses are allowed (to be extended in the future)
54-
| 2 | port | uint_16 | Port (network byte order)
53+
| 16 | ipAddress | byte[] | ***Version < 3 only***<br>IPv6 address in network byte order. Only IPv4 mapped addresses are allowed (to be extended in the future)<br>**Replaced by netInfo in version 3**
54+
| 2 | port | uint_16 | ***Version < 3 only***<br>Port (network byte order)<br>**Replaced by netInfo in version 3**
55+
| Variable | netInfo | byte[] | ***Version 3 and later***<br>Network address information structure. See [NetInfo Structure](#netinfo-structure) for details.
5556
| 20 | KeyIdOwner | CKeyID | The public key hash used for owner related signing (ProTx updates, governance voting)
56-
| 48 | PubKeyOperator | CBLSPublicKey | The BLS public key used for operational related signing (network messages, ProTx updates).<br>**Note**: serialization varies based on `version`:<br> - Version 1 - legacy BLS scheme<br> - Version 2 - basic BLS scheme
57+
| 48 | PubKeyOperator | CBLSPublicKey | The BLS public key used for operational related signing (network messages, ProTx updates).<br>**Note**: serialization varies based on `version`:<br> - Version 1 - legacy BLS scheme<br> - Version 2+ - basic BLS scheme
5758
| 20 | KeyIdVoting | CKeyID | The public key hash used for voting.
5859
| 2 | operatorReward | uint_16 | A value from 0 to 10000.
5960
| 1-9 | scriptPayoutSize | compactSize uint | Size of the Payee Script.
6061
| Variable | scriptPayout | Script | Payee script (p2pkh/p2sh)
6162
| 32 | inputsHash | uint256 | Hash of all the outpoints of the transaction inputs
62-
| 0 or 20 | platformNodeID | byte[] | ***Added by ProRegTx version 2 in Dash Core 19.0.0***<br>Dash Platform P2P node ID, derived from P2P public key. Only present for masternode type 1.
63-
| 0 or 2 | platformP2PPort | uint_16 | ***Added by ProRegTx version 2 in Dash Core 19.0.0***<br>TCP port of Dash Platform peer-to-peer communication between nodes (network byte order). Only present for masternode type 1.
64-
| 0 or 2 | platformHTTPPort | uint_16 | ***Added by ProRegTx version 2 in Dash Core 19.0.0***<br>TCP port of Platform HTTP/API interface (network byte order). Only present for masternode type 1.
63+
| 0 or 20 | platformNodeID | byte[] | ***Version 2 only***<br>Dash Platform P2P node ID, derived from P2P public key. Only present for masternode type 1.<br>**Replaced by netInfo in version 3**
64+
| 0 or 2 | platformP2PPort | uint_16 | ***Version 2 only***<br>TCP port of Dash Platform peer-to-peer communication between nodes (network byte order). Only present for masternode type 1.<br>**Replaced by netInfo in version 3**
65+
| 0 or 2 | platformHTTPPort | uint_16 | ***Version 2 only***<br>TCP port of Platform HTTP/API interface (network byte order). Only present for masternode type 1.<br>**Replaced by netInfo in version 3**
6566
| 1-9 | payloadSigSize |compactSize uint | Size of the Signature
6667
| Variable | payloadSig | vector | Signature of the hash of the ProTx fields. Signed with the key corresponding to the collateral outpoint in case the collateral is not part of the ProRegTx itself, empty otherwise.
6768

69+
### NetInfo Structure
70+
71+
The `netInfo` field contains the following structure:
72+
73+
| Bytes | Name | Data type | Description |
74+
|-------|------|-----------|-------------|
75+
| 1 | version | uint8 | NetInfo format version (currently 1)
76+
| Variable | purposeMap | Map | Map of purpose IDs to address lists. Each purpose can contain up to 4 address entries:<br>• Purpose 0 (CORE_P2P): Core network P2P addresses (required)<br>• Purpose 1 (PLATFORM_P2P): Platform P2P addresses (EvoNodes only)<br>• Purpose 2 (PLATFORM_HTTPS): Platform HTTPS/API addresses (EvoNodes only)<br><br>Each address entry contains:<br>• 1 byte type: 0x01 (Service/IP+port) or 0x02 (Domain+port)<br>• Variable address data: CService or DomainPort
77+
78+
**Note**: The examples below show version 1 (legacy BLS) transactions. Version 3 transactions with extended addresses have a similar structure but replace the `ipAddress` and `port` fields with a `netInfo` structure, and platform-specific fields are included within the netInfo rather than as separate fields.
79+
6880
The following annotated hexdump shows a ProRegTx transaction referencing an existing collateral. (Parts of the classical transaction section have been omitted.)
6981

7082
``` text Version 1 ProRegTx (existing collateral)
@@ -279,19 +291,22 @@ The special transaction type used for ProUpServTx Transactions is 2 and the extr
279291

280292
| Bytes | Name | Data type | Description |
281293
| ---------- | ----------- | -------- | -------- |
282-
| 2 | version | uint_16 | ProUpServTx version number. Currently set to 1. Updated to 2 after Dash Core 19.0.0 hard fork.
283-
| 2 | type | uint_16 | ***Added by ProUpServTx version 2 in Dash Core 19.0.0***<br>Masternode type
294+
| 2 | version | uint_16 | ProUpServTx version number.<br>**Version 1** - Legacy BLS scheme<br>**Version 2** - Basic BLS scheme with type field (after v19 hard fork)<br>**Version 3** - Extended addresses with basic BLS scheme (after v24 hard fork activation)
295+
| 2 | type | uint_16 | ***Version 2 and later***<br>Masternode type
284296
| 32 | proTXHash | uint256 | The hash of the initial ProRegTx
285-
| 16 | ipAddress | byte[] | IPv6 address in network byte order. Only IPv4 mapped addresses are allowed (to be extended in the future)
286-
| 2 | port | uint_16 | Port (network byte order)
297+
| 16 | ipAddress | byte[] | ***Version < 3 only***<br>IPv6 address in network byte order. Only IPv4 mapped addresses are allowed (to be extended in the future)<br>**Replaced by netInfo in version 3**
298+
| 2 | port | uint_16 | ***Version < 3 only***<br>Port (network byte order)<br>**Replaced by netInfo in version 3**
299+
| Variable | netInfo | NetInfo | ***Version 3 and later***<br>Network address information structure. See [NetInfo Structure](#netinfo-structure) for details.
287300
| 1-9 | scriptOperator<br>PayoutSize | compactSize uint | Size of the Operator Payee Script.
288301
| Variable | scriptOperator<br>Payout | Script | Operator Payee script (p2pkh/p2sh)
289302
| 32 | inputsHash | uint256 | Hash of all the outpoints of the transaction inputs
290-
| 0 or 20 | platformNodeID | byte[] | ***Added by ProUpServTx version 2 in Dash Core 19.0.0***<br>Dash Platform P2P node ID, derived from P2P public key. Only present for masternode type 1.
291-
| 0 or 2 | platformP2PPort | uint_16 | ***Added by ProUpServTx version 2 in Dash Core 19.0.0***<br>TCP port of Dash Platform peer-to-peer communication between nodes (network byte order). Only present for masternode type 1.
292-
| 0 or 2 | platformHTTPPort | uint_16 | ***Added by ProUpServTx version 2 in Dash Core 19.0.0***<br>TCP port of Platform HTTP/API interface (network byte order). Only present for masternode type 1.
303+
| 0 or 20 | platformNodeID | byte[] | ***Version 2 only***<br>Dash Platform P2P node ID, derived from P2P public key. Only present for masternode type 1.<br>**Replaced by netInfo in version 3**
304+
| 0 or 2 | platformP2PPort | uint_16 | ***Version 2 only***<br>TCP port of Dash Platform peer-to-peer communication between nodes (network byte order). Only present for masternode type 1.<br>**Replaced by netInfo in version 3**
305+
| 0 or 2 | platformHTTPPort | uint_16 | ***Version 2 only***<br>TCP port of Platform HTTP/API interface (network byte order). Only present for masternode type 1.<br>**Replaced by netInfo in version 3**
293306
| 1-9 | payloadSigSize |compactSize uint | Size of the Signature<br>**Note:** not present in BLS implementation
294-
| 96 | payloadSig | vector | BLS Signature of the hash of the ProUpServTx fields. Signed by the Operator.<br>**Note**: serialization varies based on `version`:<br> - Version 1 - legacy BLS scheme<br> - Version 2 - basic BLS scheme
307+
| 96 | payloadSig | vector | BLS Signature of the hash of the ProUpServTx fields. Signed by the Operator.<br>**Note**: serialization varies based on `version`:<br> - Version 1 - legacy BLS scheme<br> - Version 2+ - basic BLS scheme
308+
309+
**Note**: The examples below show version 1 (legacy BLS) transactions. Version 3 transactions with extended addresses have a similar structure but replace the `ipAddress` and `port` fields with a `netInfo` structure, and platform-specific fields are included within the netInfo rather than as separate fields.
295310

296311
The following annotated hexdump shows a ProUpServTx transaction. (Parts of the
297312
classical transaction section have been omitted.)
@@ -419,10 +434,10 @@ The special transaction type is 3 and the extra payload consists of the followin
419434

420435
| Bytes | Name | Data type | Description |
421436
| ---------- | ----------- | -------- | -------- |
422-
| 2 | version | uint_16 | Provider update registrar transaction version number. Currently set to 1. Updated to 2 after Dash Core 19.0.0 hard fork.
437+
| 2 | version | uint_16 | Provider update registrar transaction version number.<br>**Version 1** - Legacy BLS scheme<br>**Version 2** - Basic BLS scheme (after v19 hard fork)<br>**Version 3** - Basic BLS scheme (after v24 hard fork activation)
423438
| 32 | proTXHash | uint256 | The hash of the initial ProRegTx
424439
| 2 | mode | uint_16 | Masternode mode. Default set to 0.
425-
| 48 | PubKeyOperator | CBLSPublicKey | The BLS public key used for operational related signing (network messages, ProTx updates).<br>**Note**: serialization varies based on `version`:<br> - Version 1 - legacy BLS scheme<br> - Version 2 - basic BLS scheme
440+
| 48 | PubKeyOperator | CBLSPublicKey | The BLS public key used for operational related signing (network messages, ProTx updates).<br>**Note**: serialization varies based on `version`:<br> - Version 1 - legacy BLS scheme<br> - Version 2+ - basic BLS scheme
426441
| 20 | KeyIdVoting | CKeyID | The public key hash used for voting.
427442
| 1-9 | scriptPayoutSize | compactSize uint | Size of the Payee Script.
428443
| Variable | scriptPayout | Script | Payee script (p2pkh/p2sh)
@@ -564,12 +579,12 @@ The special transaction type used for ProUpServTx Transactions is 4 and the extr
564579

565580
| Bytes | Name | Data type | Description |
566581
| ---------- | ----------- | -------- | -------- |
567-
| 2 | version | uint_16 | ProUpRevTx version number. Currently set to 1. Updated to 2 after Dash Core 19.0.0 hard fork.
582+
| 2 | version | uint_16 | ProUpRevTx version number.<br>**Version 1** - Legacy BLS scheme<br>**Version 2** - Basic BLS scheme (after v19 hard fork)<br>**Version 3** - Basic BLS scheme (after v24 hard fork activation)<br>**Note**: The `protx revoke` RPC automatically uses the appropriate version based on the masternode's BLS scheme.
568583
| 32 | proTXHash | uint256 | The hash of the initial ProRegTx
569584
| 2 | reason | uint_16 | The reason for revoking the key.<br>`0` - Not specified<br>`1` - Termination of Service<br>`2` - Compromised Key<br>`3` - Change of key
570585
| 32 | inputsHash | uint256 | Hash of all the outpoints of the transaction inputs
571586
| 1-9 | payloadSigSize |compactSize uint | Size of the Signature<br>**Note:** not present in BLS implementation
572-
| 96 | payloadSig | vector | BLS Signature of the hash of the ProUpServTx fields. Signed by the Operator.<br>**Note**: serialization varies based on `version`:<br> - Version 1 - legacy BLS scheme<br> - Version 2 - basic BLS scheme
587+
| 96 | payloadSig | vector | BLS Signature of the hash of the ProUpRevTx fields. Signed by the Operator.<br>**Note**: serialization varies based on `version`:<br> - Version 1 - legacy BLS scheme<br> - Version 2+ - basic BLS scheme
573588

574589
The following annotated hexdump shows a ProUpRevTx transaction. (Parts of the classical transaction section have been omitted.)
575590

docs/user/masternodes/maintenance.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ Where:
172172
- ``operatorKey``: The operator BLS private key associated with the
173173
registered operator public key
174174
- ``platformNodeId``: The Platform node ID derived from Platform P2P public key.
175-
- ``platformP2PAddrs``: Array of addresses in the form "ADDR:PORT" used by Platform for peer-to-peer connection (must include 26656 for mainnet). Must be unique on the network..
175+
- ``platformP2PAddrs``: Array of addresses in the form "ADDR:PORT" used by Platform for peer-to-peer connection (must include 26656 for mainnet). Must be unique on the network.
176176
- ``platformHTTPSAddrs``: Array of addresses in the form "ADDR:PORT" used by Platform for their HTTPS API (must include 443 for mainnet). Must be unique on the network.
177177
- ``operatorPayoutAddress`` (optional): The address used for operator
178178
reward payments. Only allowed when the ProRegTx had a non-zero

0 commit comments

Comments
 (0)