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: