diff --git a/docs/core/api/remote-procedure-calls-removed.md b/docs/core/api/remote-procedure-calls-removed.md index 4ff760586..c83034496 100644 --- a/docs/core/api/remote-procedure-calls-removed.md +++ b/docs/core/api/remote-procedure-calls-removed.md @@ -6,7 +6,7 @@ # Removed RPCs -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. +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. ## GObject Vote-conf diff --git a/docs/core/api/remote-procedure-calls-wallet-deprecated.md b/docs/core/api/remote-procedure-calls-wallet-deprecated.md index cc5b32f52..61ec36f00 100644 --- a/docs/core/api/remote-procedure-calls-wallet-deprecated.md +++ b/docs/core/api/remote-procedure-calls-wallet-deprecated.md @@ -10,4 +10,4 @@ RPCs that require wallet support are **not available on masternodes** for security reasons. Such RPCs are designated with a "_Requires wallet support_" message. ::: -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. +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. diff --git a/docs/core/index.md b/docs/core/index.md index 7d5f18943..cebf856a3 100644 --- a/docs/core/index.md +++ b/docs/core/index.md @@ -155,7 +155,7 @@ SDK Resources Dash Whitepaper Bitcoin Whitepaper -Previous Version of Docs +Previous Version of Docs ``` Questions about Dash development are best asked in one of the [Dash development diff --git a/docs/core/reference/p2p-network-control-messages.md b/docs/core/reference/p2p-network-control-messages.md index ef656a48d..a0bed5aaa 100644 --- a/docs/core/reference/p2p-network-control-messages.md +++ b/docs/core/reference/p2p-network-control-messages.md @@ -441,7 +441,7 @@ See [PR 5398](https://github.com/dashpay/dash/pull/5398) for implementation deta ### Removed sporks -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). +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). | Spork ID | Num. | Name | Description | | :----------: | :----------: | ----------- | ----------- | diff --git a/docs/core/reference/p2p-network-deprecated-messages.md b/docs/core/reference/p2p-network-deprecated-messages.md index 0bea55ff5..deace3daa 100644 --- a/docs/core/reference/p2p-network-deprecated-messages.md +++ b/docs/core/reference/p2p-network-deprecated-messages.md @@ -2,7 +2,7 @@ The following network messages have been recently deprecated and should no longer be used. To see network messages removed longer ago, please see the [previous version of -documentation](https://docs.dash.org/projects/core/en/21.0.0/docs/reference/p2p-network-deprecated-messages.html). +documentation](https://docs.dash.org/projects/core/en/22.0.0/docs/reference/p2p-network-deprecated-messages.html). ## islock diff --git a/docs/core/reference/transactions-special-transactions.md b/docs/core/reference/transactions-special-transactions.md index fb9b04d80..a9ee67c7a 100644 --- a/docs/core/reference/transactions-special-transactions.md +++ b/docs/core/reference/transactions-special-transactions.md @@ -46,25 +46,37 @@ The special transaction type is 1 and the extra payload consists of the followin | Bytes | Name | Data type | Description | | ---------- | ----------- | -------- | -------- | -| 2 | version | uint_16 | Provider transaction version number. Currently set to 1. Updated to 2 after v19 hard fork. +| 2 | version | uint_16 | Provider transaction version number.
**Version 1** - Legacy BLS scheme
**Version 2** - Basic BLS scheme (after v19 hard fork)
**Version 3** - Extended addresses with basic BLS scheme (after v24 hard fork activation) | 2 | type | uint_16 | Masternode type. Default set to 0. | 2 | mode | uint_16 | Masternode mode. Default set to 0. | 36 | collateralOutpoint | COutpoint | The collateral outpoint.
**Note:** The hash will be null if the collateral is part of this transaction, otherwise it will reference an existing collateral. -| 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) +| 16 | ipAddress | byte[] | ***Version < 3 only***
IPv6 address in network byte order. Only IPv4 mapped addresses are allowed (to be extended in the future)
**Replaced by netInfo in version 3** +| 2 | port | uint_16 | ***Version < 3 only***
Port (network byte order)
**Replaced by netInfo in version 3** +| Variable | netInfo | byte[] | ***Version 3 and later***
Network address information structure. See [NetInfo Structure](#netinfo-structure) for details. | 20 | KeyIdOwner | CKeyID | The public key hash used for owner related signing (ProTx updates, governance voting) -| 48 | PubKeyOperator | CBLSPublicKey | The BLS public key used for operational related signing (network messages, ProTx updates).
**Note**: serialization varies based on `version`:
- Version 1 - legacy BLS scheme
- Version 2 - basic BLS scheme +| 48 | PubKeyOperator | CBLSPublicKey | The BLS public key used for operational related signing (network messages, ProTx updates).
**Note**: serialization varies based on `version`:
- Version 1 - legacy BLS scheme
- Version 2+ - basic BLS scheme | 20 | KeyIdVoting | CKeyID | The public key hash used for voting. | 2 | operatorReward | uint_16 | A value from 0 to 10000. | 1-9 | scriptPayoutSize | compactSize uint | Size of the Payee Script. | Variable | scriptPayout | Script | Payee script (p2pkh/p2sh) | 32 | inputsHash | uint256 | Hash of all the outpoints of the transaction inputs -| 0 or 20 | platformNodeID | byte[] | ***Added by ProRegTx version 2 in Dash Core 19.0.0***
Dash Platform P2P node ID, derived from P2P public key. Only present for masternode type 1. -| 0 or 2 | platformP2PPort | uint_16 | ***Added by ProRegTx version 2 in Dash Core 19.0.0***
TCP port of Dash Platform peer-to-peer communication between nodes (network byte order). Only present for masternode type 1. -| 0 or 2 | platformHTTPPort | uint_16 | ***Added by ProRegTx version 2 in Dash Core 19.0.0***
TCP port of Platform HTTP/API interface (network byte order). Only present for masternode type 1. +| 0 or 20 | platformNodeID | byte[] | ***Version 2 only***
Dash Platform P2P node ID, derived from P2P public key. Only present for masternode type 1.
**Replaced by netInfo in version 3** +| 0 or 2 | platformP2PPort | uint_16 | ***Version 2 only***
TCP port of Dash Platform peer-to-peer communication between nodes (network byte order). Only present for masternode type 1.
**Replaced by netInfo in version 3** +| 0 or 2 | platformHTTPPort | uint_16 | ***Version 2 only***
TCP port of Platform HTTP/API interface (network byte order). Only present for masternode type 1.
**Replaced by netInfo in version 3** | 1-9 | payloadSigSize |compactSize uint | Size of the Signature | 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. +### NetInfo Structure + +The `netInfo` field contains the following structure: + +| Bytes | Name | Data type | Description | +|-------|------|-----------|-------------| +| 1 | version | uint8 | NetInfo format version (currently 1) +| Variable | purposeMap | Map | Map of purpose IDs to address lists. Each purpose can contain up to 4 address entries:
• Purpose 0 (CORE_P2P): Core network P2P addresses (required)
• Purpose 1 (PLATFORM_P2P): Platform P2P addresses (EvoNodes only)
• Purpose 2 (PLATFORM_HTTPS): Platform HTTPS/API addresses (EvoNodes only)

Each address entry contains:
• 1 byte type: 0x01 (Service/IP+port) or 0x02 (Domain+port)
• Variable address data: CService or DomainPort + +**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. + The following annotated hexdump shows a ProRegTx transaction referencing an existing collateral. (Parts of the classical transaction section have been omitted.) ``` text Version 1 ProRegTx (existing collateral) @@ -279,19 +291,22 @@ The special transaction type used for ProUpServTx Transactions is 2 and the extr | Bytes | Name | Data type | Description | | ---------- | ----------- | -------- | -------- | -| 2 | version | uint_16 | ProUpServTx version number. Currently set to 1. Updated to 2 after Dash Core 19.0.0 hard fork. -| 2 | type | uint_16 | ***Added by ProUpServTx version 2 in Dash Core 19.0.0***
Masternode type +| 2 | version | uint_16 | ProUpServTx version number.
**Version 1** - Legacy BLS scheme
**Version 2** - Basic BLS scheme with type field (after v19 hard fork)
**Version 3** - Extended addresses with basic BLS scheme (after v24 hard fork activation) +| 2 | type | uint_16 | ***Version 2 and later***
Masternode type | 32 | proTXHash | uint256 | The hash of the initial ProRegTx -| 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) +| 16 | ipAddress | byte[] | ***Version < 3 only***
IPv6 address in network byte order. Only IPv4 mapped addresses are allowed (to be extended in the future)
**Replaced by netInfo in version 3** +| 2 | port | uint_16 | ***Version < 3 only***
Port (network byte order)
**Replaced by netInfo in version 3** +| Variable | netInfo | NetInfo | ***Version 3 and later***
Network address information structure. See [NetInfo Structure](#netinfo-structure) for details. | 1-9 | scriptOperator
PayoutSize | compactSize uint | Size of the Operator Payee Script. | Variable | scriptOperator
Payout | Script | Operator Payee script (p2pkh/p2sh) | 32 | inputsHash | uint256 | Hash of all the outpoints of the transaction inputs -| 0 or 20 | platformNodeID | byte[] | ***Added by ProUpServTx version 2 in Dash Core 19.0.0***
Dash Platform P2P node ID, derived from P2P public key. Only present for masternode type 1. -| 0 or 2 | platformP2PPort | uint_16 | ***Added by ProUpServTx version 2 in Dash Core 19.0.0***
TCP port of Dash Platform peer-to-peer communication between nodes (network byte order). Only present for masternode type 1. -| 0 or 2 | platformHTTPPort | uint_16 | ***Added by ProUpServTx version 2 in Dash Core 19.0.0***
TCP port of Platform HTTP/API interface (network byte order). Only present for masternode type 1. +| 0 or 20 | platformNodeID | byte[] | ***Version 2 only***
Dash Platform P2P node ID, derived from P2P public key. Only present for masternode type 1.
**Replaced by netInfo in version 3** +| 0 or 2 | platformP2PPort | uint_16 | ***Version 2 only***
TCP port of Dash Platform peer-to-peer communication between nodes (network byte order). Only present for masternode type 1.
**Replaced by netInfo in version 3** +| 0 or 2 | platformHTTPPort | uint_16 | ***Version 2 only***
TCP port of Platform HTTP/API interface (network byte order). Only present for masternode type 1.
**Replaced by netInfo in version 3** | 1-9 | payloadSigSize |compactSize uint | Size of the Signature
**Note:** not present in BLS implementation -| 96 | payloadSig | vector | BLS Signature of the hash of the ProUpServTx fields. Signed by the Operator.
**Note**: serialization varies based on `version`:
- Version 1 - legacy BLS scheme
- Version 2 - basic BLS scheme +| 96 | payloadSig | vector | BLS Signature of the hash of the ProUpServTx fields. Signed by the Operator.
**Note**: serialization varies based on `version`:
- Version 1 - legacy BLS scheme
- Version 2+ - basic BLS scheme + +**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. The following annotated hexdump shows a ProUpServTx transaction. (Parts of the classical transaction section have been omitted.) @@ -419,10 +434,10 @@ The special transaction type is 3 and the extra payload consists of the followin | Bytes | Name | Data type | Description | | ---------- | ----------- | -------- | -------- | -| 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. +| 2 | version | uint_16 | Provider update registrar transaction version number.
**Version 1** - Legacy BLS scheme
**Version 2** - Basic BLS scheme (after v19 hard fork)
**Version 3** - Basic BLS scheme (after v24 hard fork activation) | 32 | proTXHash | uint256 | The hash of the initial ProRegTx | 2 | mode | uint_16 | Masternode mode. Default set to 0. -| 48 | PubKeyOperator | CBLSPublicKey | The BLS public key used for operational related signing (network messages, ProTx updates).
**Note**: serialization varies based on `version`:
- Version 1 - legacy BLS scheme
- Version 2 - basic BLS scheme +| 48 | PubKeyOperator | CBLSPublicKey | The BLS public key used for operational related signing (network messages, ProTx updates).
**Note**: serialization varies based on `version`:
- Version 1 - legacy BLS scheme
- Version 2+ - basic BLS scheme | 20 | KeyIdVoting | CKeyID | The public key hash used for voting. | 1-9 | scriptPayoutSize | compactSize uint | Size of the Payee Script. | Variable | scriptPayout | Script | Payee script (p2pkh/p2sh) @@ -564,12 +579,12 @@ The special transaction type used for ProUpServTx Transactions is 4 and the extr | Bytes | Name | Data type | Description | | ---------- | ----------- | -------- | -------- | -| 2 | version | uint_16 | ProUpRevTx version number. Currently set to 1. Updated to 2 after Dash Core 19.0.0 hard fork. +| 2 | version | uint_16 | ProUpRevTx version number.
**Version 1** - Legacy BLS scheme
**Version 2** - Basic BLS scheme (after v19 hard fork)
**Version 3** - Basic BLS scheme (after v24 hard fork activation)
**Note**: The `protx revoke` RPC automatically uses the appropriate version based on the masternode's BLS scheme. | 32 | proTXHash | uint256 | The hash of the initial ProRegTx | 2 | reason | uint_16 | The reason for revoking the key.
`0` - Not specified
`1` - Termination of Service
`2` - Compromised Key
`3` - Change of key | 32 | inputsHash | uint256 | Hash of all the outpoints of the transaction inputs | 1-9 | payloadSigSize |compactSize uint | Size of the Signature
**Note:** not present in BLS implementation -| 96 | payloadSig | vector | BLS Signature of the hash of the ProUpServTx fields. Signed by the Operator.
**Note**: serialization varies based on `version`:
- Version 1 - legacy BLS scheme
- Version 2 - basic BLS scheme +| 96 | payloadSig | vector | BLS Signature of the hash of the ProUpRevTx fields. Signed by the Operator.
**Note**: serialization varies based on `version`:
- Version 1 - legacy BLS scheme
- Version 2+ - basic BLS scheme The following annotated hexdump shows a ProUpRevTx transaction. (Parts of the classical transaction section have been omitted.) diff --git a/docs/user/masternodes/maintenance.rst b/docs/user/masternodes/maintenance.rst index 21c99f4bc..0e23c648d 100644 --- a/docs/user/masternodes/maintenance.rst +++ b/docs/user/masternodes/maintenance.rst @@ -172,7 +172,7 @@ Where: - ``operatorKey``: The operator BLS private key associated with the registered operator public key - ``platformNodeId``: The Platform node ID derived from Platform P2P public key. -- ``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.. +- ``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. - ``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. - ``operatorPayoutAddress`` (optional): The address used for operator reward payments. Only allowed when the ProRegTx had a non-zero