diff --git a/docs/api/remote-procedure-calls-control.md b/docs/api/remote-procedure-calls-control.md
index 7769ca03..22158230 100644
--- a/docs/api/remote-procedure-calls-control.md
+++ b/docs/api/remote-procedure-calls-control.md
@@ -14,7 +14,15 @@ The [`debug` RPC](../api/remote-procedure-calls-control.md#debug) changes the de
Name | Type | Presence | Description
--- | --- | --- | ---
-Debug category | string | Required
(1 or more) | The debug category to activate. Use a `+` to specify multiple categories. Categories will be one of the following:
• `0` - Disables all categories
• `1` or `all` - Enables all categories
• `addrman`
• `bench`
• `cmpctblock`
• `coindb`
• `walletdb` (**renamed from `db` in Dash Core 18.0.0**)
• `estimatefee`
• `http`
• `i2p`
• `leveldb`
• `mempool`
• `mempoolrej`
• `net`
• `netconn`
• `proxy`
• `prune`
• `qt`
• `rand`
• `reindex`
• `rpc`
• `selectcoins`
• `tor`
• `validation`
• `zmq`
• `dash` (all subcategories)
The `dash` sub-categories can be enabled individually:
• `chainlocks`
• `coinjoin`
• `creditpool`
• `ehf`
• `gobject`
• `instantsend`
• `llmq`
• `llmq-dkg`
• `llmq-sigs`
• `mnpayments`
• `mnsync`
• `spork`
Note: No error will be thrown even if the specified category doesn't match any of the above
+Debug category | string | Required
(1 or more) | The debug category to activate. Use a `+` to specify multiple categories. Categories are shown in the [table below](#debug-logging-categories).
Note: No error will be thrown even if the specified category doesn't match any of the above
+
+### Debug logging categories
+
+| Type | Category |
+| - | - |
+| Special | • `0` or `none` - Disables all categories
• `1` or `all` - Enables all categories
• `dash` - Enables/disables all Dash categories |
+| Standard | `addrman`, `bench`, `cmpctblock`, `coindb`, `estimatefee`, `http`, `i2p`, `ipc`, `leveldb`, `libevent`, `lock`, `mempool`, `mempoolrej`, `net`, `netconn`, `proxy`, `prune`, `qt`, `rand`, `reindex`, `rpc`, `selectcoins`, `tor`, `validation`, `walletdb`, `zmq`|
+| Dash | `chainlocks`, `coinjoin`, `creditpool`, `ehf`, `gobject`, `instantsend`, `llmq`, `llmq-dkg`, `llmq-sigs`, `mnpayments`, `mnsync`, `spork` |
Note: `libevent` logging is configured on startup and cannot be modified by this RPC during runtime.
@@ -198,7 +206,7 @@ The categories are:
| Type | Category |
| - | - |
| Special | • `0` or `none` - Disables all categories
• `1` or `all` - Enables all categories
• `dash` - Enables/disables all Dash categories |
-| Standard | `addrman`, `bench`
`cmpctblock`, `coindb`, `estimatefee`, `http`, `i2p`, `leveldb`, `libevent`, `mempool`, `mempoolrej`, `net`, `netconn`, `proxy`, `prune`, `qt`, `rand`, `reindex`, `rpc`, `selectcoins`, `tor`, `walletdb` (**renamed from `db` in Dash Core 18.0.0**), `validation`, `zmq`|
+| Standard | `addrman`, `bench`, `cmpctblock`, `coindb`, `estimatefee`, `http`, `i2p`, `ipc`, `leveldb`, `libevent`, `lock`, `mempool`, `mempoolrej`, `net`, `netconn`, `proxy`, `prune`, `qt`, `rand`, `reindex`, `rpc`, `selectcoins`, `tor`, `validation`, `walletdb`, `zmq`|
| Dash | `chainlocks`, `coinjoin`, `creditpool`, `ehf`, `gobject`, `instantsend`, `llmq`, `llmq-dkg`, `llmq-sigs`, `mnpayments`, `mnsync`, `spork` |
*Result---a list of the logging categories that are active*
@@ -207,103 +215,105 @@ Name | Type | Presence | Description
--- | --- | --- | ---
`result` | object | Required
(exactly 1) | A JSON object show a list of the logging categories that are active
-*Example from Dash Core 20.0.1*
+*Example from Dash Core 21.1.0*
Include a category in logging
```bash
-dash-cli -testnet logging '["llmq", "spork"]'
+dash-cli -testnet logging '["llmq", "chainlocks"]'
```
Result:
```json
{
- "net": false,
- "tor": false,
- "mempool": false,
- "http": false,
- "bench": false,
- "zmq": false,
- "walletdb": false,
- "rpc": false,
- "estimatefee": false,
"addrman": false,
- "selectcoins": false,
- "reindex": false,
+ "bench": false,
+ "chainlocks": true,
"cmpctblock": false,
- "rand": false,
- "prune": false,
- "proxy": false,
- "mempoolrej": false,
- "libevent": false,
"coindb": false,
- "qt": false,
- "leveldb": false,
- "validation": false,
- "i2p": false,
- "chainlocks": false,
+ "coinjoin": false,
+ "creditpool": false,
+ "ehf": false,
+ "estimatefee": false,
"gobject": false,
+ "http": false,
+ "i2p": false,
"instantsend": false,
+ "leveldb": false,
+ "libevent": false,
"llmq": true,
"llmq-dkg": false,
"llmq-sigs": false,
+ "lock": false,
+ "mempool": false,
+ "mempoolrej": false,
"mnpayments": false,
"mnsync": false,
- "coinjoin": false,
- "spork": true,
+ "net": false,
"netconn": false,
- "creditpool": false,
- "ehf": false
+ "proxy": false,
+ "prune": false,
+ "qt": false,
+ "rand": false,
+ "reindex": false,
+ "rpc": false,
+ "selectcoins": false,
+ "spork": false,
+ "tor": false,
+ "validation": false,
+ "walletdb": false,
+ "zmq": false
}
```
Excluding a previously included category (without including any new ones):
```bash
-dash-cli -testnet logging '[]' '["spork"]'
+dash-cli -testnet logging '[]' '["chainlocks"]'
```
Result:
```json
{
- "net": false,
- "tor": false,
- "mempool": false,
- "http": false,
- "bench": false,
- "zmq": false,
- "walletdb": false,
- "rpc": false,
- "estimatefee": false,
"addrman": false,
- "selectcoins": false,
- "reindex": false,
+ "bench": false,
+ "chainlocks": false,
"cmpctblock": false,
- "rand": false,
- "prune": false,
- "proxy": false,
- "mempoolrej": false,
- "libevent": false,
"coindb": false,
- "qt": false,
- "leveldb": false,
- "validation": false,
- "i2p": false,
- "chainlocks": false,
+ "coinjoin": false,
+ "creditpool": false,
+ "ehf": false,
+ "estimatefee": false,
"gobject": false,
+ "http": false,
+ "i2p": false,
"instantsend": false,
+ "leveldb": false,
+ "libevent": false,
"llmq": true,
"llmq-dkg": false,
"llmq-sigs": false,
+ "lock": false,
+ "mempool": false,
+ "mempoolrej": false,
"mnpayments": false,
"mnsync": false,
- "coinjoin": false,
- "spork": false,
+ "net": false,
"netconn": false,
- "creditpool": false,
- "ehf": false
+ "proxy": false,
+ "prune": false,
+ "qt": false,
+ "rand": false,
+ "reindex": false,
+ "rpc": false,
+ "selectcoins": false,
+ "spork": false,
+ "tor": false,
+ "validation": false,
+ "walletdb": false,
+ "zmq": false
}
```
diff --git a/docs/api/remote-procedure-calls-evo.md b/docs/api/remote-procedure-calls-evo.md
index 9d6d2edc..fac14de0 100644
--- a/docs/api/remote-procedure-calls-evo.md
+++ b/docs/api/remote-procedure-calls-evo.md
@@ -2063,7 +2063,7 @@ The `quorum info` RPC returns information about a specific quorum.
| Name | Type | Presence | Description |
| ---------- | ------ | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `llmqType` | number | Required
(exactly 1) | [Type of quorums](https://github.com/dashpay/dips/blob/master/dip-0006.md#current-llmq-types) to list:
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
+| `llmqType` | number | Required
(exactly 1) | [Type of quorums](https://github.com/dashpay/dips/blob/master/dip-0006/llmq-types.md) to list:
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
*Parameter #2---quorum hash*
@@ -2190,7 +2190,7 @@ The `quorum list` RPC displays the status of the current DKG process.
| → → →
`llmqType` | string | Required
(exactly 1) | *Added in Dash Core 18.0.0*
[Quorum type name](https://github.com/dashpay/dips/blob/master/dip-0006/llmq-types.md) |
| → → →
`quorumIndex` | number | Required
(exactly 1) | *Added in Dash Core 18.0.0*
The index of the quorum |
| → → →
`status` | object | Required
(exactly 1) | DKG session status information |
-| → → → →
`llmqType` | number | Required
(exactly 1) | [Type of quorum](https://github.com/dashpay/dips/blob/master/dip-0006.md#current-llmq-types):
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
+| → → → →
`llmqType` | number | Required
(exactly 1) | [Type of quorum](https://github.com/dashpay/dips/blob/master/dip-0006/llmq-types.md):
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
| → → → →
`quorumHash` | string (hex) | Required
(exactly 1) | The block hash of the quorum |
| → → → →
`quorumHeight` | number | Required
(exactly 1) | The block height of the quorum |
| → → → →
`phase` | number | Required
(exactly 1) | The active DKG phase
`1` - Initialized
`2` - Contributing
`3` - Complaining
`4` - Justifying
`5` - Committing
`6` - Finalizing |
@@ -2861,7 +2861,7 @@ The `quorum sign` RPC requests threshold-signing for a message.
| Name | Type | Presence | Description |
| ---------- | ------ | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `llmqType` | number | Required
(exactly 1) | [Type of quorum](https://github.com/dashpay/dips/blob/master/dip-0006.md#current-llmq-types):
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
+| `llmqType` | number | Required
(exactly 1) | [Type of quorum](https://github.com/dashpay/dips/blob/master/dip-0006/llmq-types.md):
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
*Parameter #2---id*
@@ -2902,7 +2902,7 @@ For general signing requests, any 32 byte hex string can be provided as the requ
| Name | Type | Presence | Description |
| ------------------- | ------------ | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| result | object | Required
(exactly 1) | JSON object containing signature share details |
-| →
`llmqType` | number | Required
(exactly 1) | [Type of quorum](https://github.com/dashpay/dips/blob/master/dip-0006.md#current-llmq-types):
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
+| →
`llmqType` | number | Required
(exactly 1) | [Type of quorum](https://github.com/dashpay/dips/blob/master/dip-0006/llmq-types.md):
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
| →
`quorumHash` | string (hex) | Required
(exactly 1) | The quorum identifier |
| →
`quorumMember` | number | Required
(exactly 1) | Which quorum member created this signature share |
| →
`id` | string (hex) | Required
(exactly 1) | Signing request ID |
@@ -2957,7 +2957,7 @@ The `quorum getrecsig` RPC gets the recovered signature for a previous threshold
| Name | Type | Presence | Description |
| ---------- | ------ | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `llmqType` | number | Required
(exactly 1) | [Type of quorum](https://github.com/dashpay/dips/blob/master/dip-0006.md#current-llmq-types):
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
+| `llmqType` | number | Required
(exactly 1) | [Type of quorum](https://github.com/dashpay/dips/blob/master/dip-0006/llmq-types.md):
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
*Parameter #2---id*
@@ -2976,7 +2976,7 @@ The `quorum getrecsig` RPC gets the recovered signature for a previous threshold
| Name | Type | Presence | Description |
| ----------------- | ------------ | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| result | bool | Required
(exactly 1) | Recovered signature details |
-| →
`llmqType` | number | Required
(exactly 1) | [Type of quorum](https://github.com/dashpay/dips/blob/master/dip-0006.md#current-llmq-types):
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
+| →
`llmqType` | number | Required
(exactly 1) | [Type of quorum](https://github.com/dashpay/dips/blob/master/dip-0006/llmq-types.md):
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
| →
`quorumHash` | string (hex) | Required
(exactly 1) | The block hash of the quorum |
| →
`id` | string (hex) | Required
(exactly 1) | The signing session ID |
| →
`msgHash` | string (hex) | Required
(exactly 1) | The message hash |
@@ -3016,7 +3016,7 @@ Used for testing on the RegTest network only.
| Name | Type | Presence | Description |
| ---------- | ------ | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `llmqType` | number | Required
(exactly 1) | [Type of quorum](https://github.com/dashpay/dips/blob/master/dip-0006.md#current-llmq-types):
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
+| `llmqType` | number | Required
(exactly 1) | [Type of quorum](https://github.com/dashpay/dips/blob/master/dip-0006/llmq-types.md):
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
*Parameter #2---id*
@@ -3062,7 +3062,7 @@ Used for testing on the RegTest network only.
| Name | Type | Presence | Description |
| ---------- | ------ | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `llmqType` | number | Required
(exactly 1) | [Type of quorum](https://github.com/dashpay/dips/blob/master/dip-0006.md#current-llmq-types):
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
+| `llmqType` | number | Required
(exactly 1) | [Type of quorum](https://github.com/dashpay/dips/blob/master/dip-0006/llmq-types.md):
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
*Parameter #2---id*
@@ -3119,7 +3119,7 @@ The [`quorum` RPC](../api/remote-procedure-calls-evo.md#quorum) checks which quo
| `result` | Array of objects | Required
(exactly 1) | Array containing info for quorum's the masternode belongs to |
| →
Quorum | object | Required
(0 or more) | An object describing quorum details |
| → →
`height` | number | Required
(exactly 1) | Block height of the quorum |
-| → →
`type` | string | Required
(exactly 1) | [Type of quorum](https://github.com/dashpay/dips/blob/master/dip-0006.md#current-llmq-types) |
+| → →
`type` | string | Required
(exactly 1) | [Type of quorum](https://github.com/dashpay/dips/blob/master/dip-0006/llmq-types.md) |
| → →
`quorumHash` | string (hex) | Required
(exactly 1) | The hash of the quorum |
| → →
`minedBlock` | string (hex) | Required
(exactly 1) | The hash of the block that established the quorum |
| → →
`quorumPublicKey` | string (hex) | Required
(exactly 1) | Quorum public key |
@@ -3742,6 +3742,78 @@ Result:
*See also: none*
+### Quorum PlatformSign
+
+:::{versionadded} 21.0.0
+:::
+
+The `quorum platformsign` RPC requests threshold-signing for a message. It signs messages only for
+Platform quorums. It is equivalent to `quorum sign `.
+
+*Parameter #1---id*
+
+| Name | Type | Presence | Description |
+| ---- | ------------ | ----------------------- | ----------- |
+| `id` | string (hex) | Required
(exactly 1) | Signing request ID |
+
+*Parameter #2---message hash*
+
+| Name | Type | Presence | Description |
+| --------- | ------------ | ----------------------- | -------------------------------- |
+| `msgHash` | string (hex) | Required
(exactly 1) | Hash of the message to be signed |
+
+*Parameter #3---quorum hash*
+
+| Name | Type | Presence | Description |
+| ------------ | ------------ | -------------------- | --------------------- |
+| `quorumHash` | string (hex) | Optional
(0 or 1) | The quorum identifier |
+
+*Parameter #4---submit*
+
+| Name | Type | Presence | Description |
+| -------- | ---- | -------------------- | ----------- |
+| `submit` | bool | Optional
(0 or 1) | Submits the signature share to the network if this is `true` (default). Returns an object containing the signature share if this is `false`. |
+
+*Result---(if submit = `true`) status*
+
+| Name | Type | Presence | Description |
+| ------ | ---- | ----------------------- | ---------------------------------- |
+| result | bool | Required
(exactly 1) | True or false depending on success |
+
+*Result---(if submit = `false`) signature share JSON object*
+
+| Name | Type | Presence | Description |
+| ------------------- | ------------ | ----------------------- | ----------- |
+| result | object | Required
(exactly 1) | JSON object containing signature share details |
+| →
`llmqType` | number | Required
(exactly 1) | [Type of quorum](https://github.com/dashpay/dips/blob/master/dip-0006/llmq-types.md):
`4` - LLMQ_100_67 |
+| →
`quorumHash` | string (hex) | Required
(exactly 1) | The quorum identifier |
+| →
`quorumMember` | number | Required
(exactly 1) | Which quorum member created this signature share |
+| →
`id` | string (hex) | Required
(exactly 1) | Signing request ID |
+| →
`msgHash` | string (hex) | Required
(exactly 1) | Hash of the message that was signed |
+| →
`signHash` | string (hex) | Required
(exactly 1) | Hash of `llmqType`, `quorumHash`, `id`, and `msgHash` |
+| →
`signature` | string (hex) | Required
(exactly 1) | Signature share |
+
+*Example from Dash Core 21.0.0*
+
+Submit signature share to network (default):
+
+```bash
+dash-cli -testnet quorum platformsign \
+ "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234" \
+ "51c11d287dfa85aef3eebb5420834c8e443e01d15c0b0a8e397d67e2e51aa239"
+```
+
+Result:
+
+```json
+false
+```
+
+_See also_
+
+* [Quorum Sign](#quorum-sign): requests threshold-signing for a message.
+* [Quorum Info](#quorum-info): retrieves information about a specific quorum, including its members and the threshold required for signing.
+
### Quorum RotationInfo
The `quorum rotationinfo` RPC returns quorum rotation information. The response is a JSON representation of the data that would be returned in a [`qrinfo` message](../reference/p2p-network-data-messages.md#qrinfo).
@@ -3942,7 +4014,7 @@ The `quorum selectquorum` RPC returns information about the quorum that would/sh
| Name | Type | Presence | Description |
| ---------- | ------ | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `llmqType` | number | Required
(exactly 1) | [Type of quorums](https://github.com/dashpay/dips/blob/master/dip-0006.md#current-llmq-types) to list:
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
+| `llmqType` | number | Required
(exactly 1) | [Type of quorums](https://github.com/dashpay/dips/blob/master/dip-0006/llmq-types.md) to list:
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
*Parameter #2---request id*
@@ -4012,7 +4084,7 @@ The `quorum verify` RPC tests if a quorum signature is valid for a request id an
| Name | Type | Presence | Description |
| ---------- | ------ | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `llmqType` | number | Required
(exactly 1) | [Type of quorum](https://github.com/dashpay/dips/blob/master/dip-0006.md#current-llmq-types):
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
+| `llmqType` | number | Required
(exactly 1) | [Type of quorum](https://github.com/dashpay/dips/blob/master/dip-0006/llmq-types.md):
`1` - LLMQ_50_60
`2` - LLMQ_400_60
`3` - LLMQ_400_85
`4` - LLMQ_100_67 |
*Parameter #2---id*
diff --git a/docs/dashcore/wallet-arguments-and-commands-dashd.md b/docs/dashcore/wallet-arguments-and-commands-dashd.md
index d0bccef9..2fcc6b27 100644
--- a/docs/dashcore/wallet-arguments-and-commands-dashd.md
+++ b/docs/dashcore/wallet-arguments-and-commands-dashd.md
@@ -1181,7 +1181,7 @@ The quorum names used in these options are:
| 106 | llmq_test_platform |
| 107 | llmq_devnet_platform |
-Refer to [this table in DIP-6 - LLMQs](https://github.com/dashpay/dips/blob/master/dip-0006.md#current-llmq-types) for details on each quorum type.
+Refer to [this table in DIP-6 - LLMQs](https://github.com/dashpay/dips/blob/master/dip-0006/llmq-types.md) for details on each quorum type.
### Regtest Options
diff --git a/docs/guide/dash-features-masternode-quorums.md b/docs/guide/dash-features-masternode-quorums.md
index 6282bf02..f5a510f6 100644
--- a/docs/guide/dash-features-masternode-quorums.md
+++ b/docs/guide/dash-features-masternode-quorums.md
@@ -86,7 +86,7 @@ Note the following timeouts defined by Dash Core related to signing sessions:
Mainnet and Testnet only use quorums of pre-defined sizes that are hard coded into Dash Core. RegTest and Devnet environments each have a quorum that supports custom size and threshold parameters that are controlled via command line or configuration file parameters (`llmqtestparams`/`llmqdevnetparams`).
-A list of all the quorums and their default sizes can be found in the [Current LLMQ Types table](https://github.com/dashpay/dips/blob/master/dip-0006.md#current-llmq-types) found in DIP-6.
+A list of all the quorums and their default sizes can be found in the [Current LLMQ Types table](https://github.com/dashpay/dips/blob/master/dip-0006/llmq-types.md) found in DIP-6.
The specific quorum type used for a feature can vary based on the network. The following table shows which quorums are used for each feature on the various networks: