From 7603128d4b6e4eabe41412f715c6e2614984cc29 Mon Sep 17 00:00:00 2001 From: thephez Date: Tue, 11 Nov 2025 16:50:06 -0500 Subject: [PATCH 1/7] docs: update masternode setup and maintenance for ext addr --- docs/user/masternodes/maintenance.rst | 58 ++++++++++++++++--------- docs/user/masternodes/setup-testnet.rst | 38 +++++++--------- docs/user/masternodes/setup.rst | 42 ++++++++---------- 3 files changed, 71 insertions(+), 67 deletions(-) diff --git a/docs/user/masternodes/maintenance.rst b/docs/user/masternodes/maintenance.rst index 19efa6a79..543c801cb 100644 --- a/docs/user/masternodes/maintenance.rst +++ b/docs/user/masternodes/maintenance.rst @@ -115,12 +115,19 @@ Regular masternodes A masternode ProUpServTx can be created from DMT by clicking the **Update service** button, or from Dash Core using the following syntax:: - protx update_service proTxHash ipAndPort operatorKey (operatorPayoutAddress feeSourceAddress) + protx update_service proTxHash coreP2PAddrs operatorKey (operatorPayoutAddress feeSourceAddress) Where: +.. note:: + + As of Dash Core v23.0, the ``coreP2PAddrs`` field accepts + backwards-compatible input. + + - ``proTxHash``: The transaction id of the initial ProRegTx -- ``ipAndPort``: IP and port in the form "ip:port" +- ``coreP2PAddrs``: Array of masternode address(es), in the format + ``x.x.x.x:yyyy`` - ``operatorKey``: The operator BLS private key associated with the registered operator public key - ``operatorPayoutAddress`` (optional): The address used for operator @@ -133,8 +140,11 @@ Where: Example:: - protx update_service d6ec9a03e1251ac8c34178f47b6d763dc4ea6d96fd6eddb3c7aae2359e0f474a 140.82.59.51:10002 4308daa8de099d3d5f81694f6b618381e04311b9e0345b4f8b025392c33b0696 yf6Cj6VcCfDxU5yweAT3NKKvm278rVbkhu + protx update_service d6ec9a03e1251ac8c34178f47b6d763dc4ea6d96fd6eddb3c7aae2359e0f474a '["140.82.59.51:10002"]' 4308daa8de099d3d5f81694f6b618381e04311b9e0345b4f8b025392c33b0696 yf6Cj6VcCfDxU5yweAT3NKKvm278rVbkhu +:: + + # Transaction ID returned fad61c5f21cf3c0832f782c1444d3d2e2a8dbff39c5925c38033730e64ecc598 The masternode is now removed from the PoSe-banned list, and the IP:port @@ -148,17 +158,21 @@ Evonodes An evonode ProUpServTx can be created from DMT by clicking the **Update service** button, or from Dash Core using the following syntax:: - protx update_service_evo proTxHash ipAndPort operatorKey platformNodeId platformP2PPort platformHTTPPort (operatorPayoutAddress feeSourceAddress) + protx update_service_evo proTxHash coreP2PAddrs operatorKey platformNodeId platformP2PAddrs platformHTTPSAddrs (operatorPayoutAddress feeSourceAddress) Where: + As of Dash Core v23.0, ``coreP2PAddrs``, ``platformP2PAddrs``, and + ``platformHTTPSAddrs`` fields accept backwards-compatible input. + - ``proTxHash``: The transaction id of the initial ProRegTx -- ``ipAndPort``: IP and port in the form "ip:port" +- ``coreP2PAddrs``: Array of masternode address(es), in the format + ``x.x.x.x:yyyy`` - ``operatorKey``: The operator BLS private key associated with the registered operator public key - ``platformNodeId``: The Platform node ID derived from Platform P2P public key. -- ``platformP2PPort``: TCP port for Platform peer-to-peer communication between nodes (26656 for mainnet). -- ``platformHTTPPort``: TCP port of Platform HTTP API interface (443 for mainnet). +- ``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 ``operatorReward`` value. Enter ``""`` to use the @@ -169,8 +183,11 @@ Where: Example:: - protx update_service_evo d6ec9a03e1251ac8c34178f47b6d763dc4ea6d96fd6eddb3c7aae2359e0f474a 140.82.59.51:10002 4308daa8de099d3d5f81694f6b618381e04311b9e0345b4f8b025392c33b0696 972a33056d57359de8acfa4fb8b29dc1c14f76b8 26656 443 yf6Cj6VcCfDxU5yweAT3NKKvm278rVbkhu + protx update_service_evo d6ec9a03e1251ac8c34178f47b6d763dc4ea6d96fd6eddb3c7aae2359e0f474a '["140.82.59.51:10002"]' 4308daa8de099d3d5f81694f6b618381e04311b9e0345b4f8b025392c33b0696 972a33056d57359de8acfa4fb8b29dc1c14f76b8 26656 443 yf6Cj6VcCfDxU5yweAT3NKKvm278rVbkhu +:: + + # Transaction ID returned fad61c5f21cf3c0832f782c1444d3d2e2a8dbff39c5925c38033730e64ecc598 The evonode is now removed from the PoSe-banned list. The IP:port, @@ -191,21 +208,21 @@ payout addr.** buttons, or from Dash Core using the following syntax:: protx update_registrar proTxHash operatorKeyAddr votingKeyAddr payoutAddress (feeSourceAddress) .. warning:: - After v19 hard fork activation, ``protx update_registrar_legacy`` must - be used if a legacy scheme BLS key is being used to registrar update a - masternode. + + Previously, ``protx update_registrar_legacy`` could be used to register a masternode with + a legacy scheme BLS key. The legacy commands were deprecated as of Dash Core v23.0, so it + is now recommended to generate a new basic scheme BLS key instead. This can be done by + following the :ref:`Generate a BLS key pair ` instructions. Where: - ``proTxHash``: The transaction id of the initial ProRegTx -- ``operatorKeyAddr``: An updated BLS public key, or ``""`` to use the - last on-chain operator key -- ``votingKeyAddr``: An updated voting key address, or ``""`` to use the - last on-chain voting key -- ``payoutAddress``: An updated Dash address for owner payments, or - ``""`` to use the last on-chain operator key -- ``feeSourceAddress`` (optional): An address used to fund ProTx fee. - ``PayoutAddress`` will be used if not specified. +- ``operatorKeyAddr``: An updated BLS public key, or ``""`` to use the last on-chain operator key +- ``votingKeyAddr``: An updated voting key address, or ``""`` to use the last on-chain voting key +- ``payoutAddress``: An updated Dash address for owner payments, or ``""`` to use the last on-chain + operator key +- ``feeSourceAddress`` (optional): An address used to fund ProTx fee. ``PayoutAddress`` will be used + if not specified. Example to update payout address:: @@ -233,8 +250,7 @@ Where: - ``operatorKey``: The operator BLS private key associated with the registered operator public key - ``reason``: Integer value indicating the revocation `reason `__ -- ``feeSourceAddress`` (optional): An address used to fund ProTx fee. - ``operatorPayoutAddress`` will be used if not specified. +- ``feeSourceAddress`` (optional): An address used to fund ProTx fee. If not specified, ``operatorPayoutAddress`` will be used. Example:: diff --git a/docs/user/masternodes/setup-testnet.rst b/docs/user/masternodes/setup-testnet.rst index ade85fcc8..9868d6d62 100644 --- a/docs/user/masternodes/setup-testnet.rst +++ b/docs/user/masternodes/setup-testnet.rst @@ -492,33 +492,25 @@ syntax:: operatorPubKey votingKeyAddr operatorReward payoutAddress (feeSourceAddress) .. warning:: - After v19 hard fork activation, ``protx register_prepare_legacy`` must - be used if a legacy scheme BLS key is being used to register a masternode. - It's recommended to instead generate a new basic scheme BLS key where - possible. This can be done by following the - :ref:`Generate a BLS key pair ` instructions. + Previously, ``protx register_prepare_legacy`` could be used to register a masternode with a legacy + scheme BLS key. The legacy commands were deprecated as of Dash Core v23.0, so it is now recommended + to generate a new basic scheme BLS key instead. This can be done by following the :ref:`Generate a + BLS key pair ` instructions. Open a text editor such as notepad to prepare this command. Replace each argument to the command as follows: -- ``collateralHash``: The txid of the 1000 Dash collateral funding - transaction -- ``collateralIndex``: The output index of the 1000 Dash funding - transaction -- ``coreP2PAddrs``: Array of masternode address(es), in the format - ``x.x.x.x:yyyy`` -- ``ownerKeyAddr``: The new Dash address generated above for the - owner/voting address -- ``operatorPubKey``: The BLS public key generated above (or provided - by your hosting service) -- ``votingKeyAddr``: The new Dash address generated above, or the - address of a delegate, used for proposal voting -- ``operatorReward``: The percentage of the block reward allocated to - the operator as payment -- ``payoutAddress``: A new or existing Dash address to receive the - owner's masternode rewards -- ``feeSourceAddress``: An (optional) address used to fund ProTx fee. - ``payoutAddress`` will be used if not specified. +- ``collateralHash``: The txid of the 1000 Dash collateral funding transaction +- ``collateralIndex``: The output index of the 1000 Dash funding transaction +- ``coreP2PAddrs``: Array of masternode address(es), in the format ``x.x.x.x:yyyy`` +- ``ownerKeyAddr``: The new Dash address generated above for the owner/voting address +- ``operatorPubKey``: The BLS public key generated above (or provided by your hosting service) +- ``votingKeyAddr``: The new Dash address generated above, or the address of a delegate, used for + proposal voting +- ``operatorReward``: The percentage of the block reward allocated to the operator as payment +- ``payoutAddress``: A new or existing Dash address to receive the owner's masternode rewards +- ``feeSourceAddress``: An (optional) address used to fund ProTx fee. ``payoutAddress`` will be used + if not specified. Note that the operator is responsible for :ref:`specifying their own reward ` address in a separate ``update_service`` diff --git a/docs/user/masternodes/setup.rst b/docs/user/masternodes/setup.rst index acd84c346..358d5e2b8 100644 --- a/docs/user/masternodes/setup.rst +++ b/docs/user/masternodes/setup.rst @@ -560,33 +560,29 @@ syntax:: operatorPubKey votingKeyAddr operatorReward payoutAddress (feeSourceAddress) .. warning:: - After v19 hard fork activation, ``protx register_prepare_legacy`` must - be used if a legacy scheme BLS key is being used to register a masternode. - It's recommended to instead generate a new basic scheme BLS key where - possible. This can be done by following the - :ref:`Generate a BLS key pair ` instructions. + Previously, ``protx register_prepare_legacy`` could be used to register a masternode with a legacy + scheme BLS key. The legacy commands were deprecated as of Dash Core v23.0, so it is now recommended + to generate a new basic scheme BLS key instead. This can be done by following the :ref:`Generate a + BLS key pair ` instructions. Open a text editor such as notepad to prepare this command. Replace each argument to the command as follows: -- ``collateralHash``: The txid of the 1000 Dash collateral funding - transaction -- ``collateralIndex``: The output index of the 1000 Dash funding - transaction -- ``coreP2PAddrs``: Array of masternode address(es), in the format - ``x.x.x.x:yyyy`` -- ``ownerKeyAddr``: The new Dash address generated above for the - owner/voting address -- ``operatorPubKey``: The BLS public key generated above (or provided - by your hosting service) -- ``votingKeyAddr``: The new Dash address generated above, or the - address of a delegate, used for proposal voting -- ``operatorReward``: The percentage of the block reward allocated to - the operator as payment -- ``payoutAddress``: A new or existing Dash address to receive the - owner's masternode rewards -- ``feeSourceAddress``: An (optional) address used to fund ProTx fee. - ``payoutAddress`` will be used if not specified. +.. note:: + + As of Dash Core v23.0, the ``coreP2PAddrs`` field accepts backwards-compatible input. + +- ``collateralHash``: The txid of the 1000 Dash collateral funding transaction +- ``collateralIndex``: The output index of the 1000 Dash funding transaction +- ``coreP2PAddrs``: Array of masternode address(es), in the format ``x.x.x.x:yyyy`` +- ``ownerKeyAddr``: The new Dash address generated above for the owner/voting address +- ``operatorPubKey``: The BLS public key generated above (or provided by your hosting service) +- ``votingKeyAddr``: The new Dash address generated above, or the address of a delegate, used for + proposal voting +- ``operatorReward``: The percentage of the block reward allocated to the operator as payment +- ``payoutAddress``: A new or existing Dash address to receive the owner's masternode rewards +- ``feeSourceAddress``: An (optional) address used to fund ProTx fee. ``payoutAddress`` will be used + if not specified. Note that the operator is responsible for :ref:`specifying their own reward ` address in a separate ``update_service`` From cc2f2a1e85909e9f887ecdd43f4b4e49c7864ffe Mon Sep 17 00:00:00 2001 From: thephez Date: Wed, 12 Nov 2025 09:03:35 -0500 Subject: [PATCH 2/7] docs: admonition update --- docs/user/masternodes/maintenance.rst | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/user/masternodes/maintenance.rst b/docs/user/masternodes/maintenance.rst index 543c801cb..abfe1335f 100644 --- a/docs/user/masternodes/maintenance.rst +++ b/docs/user/masternodes/maintenance.rst @@ -121,8 +121,7 @@ Where: .. note:: - As of Dash Core v23.0, the ``coreP2PAddrs`` field accepts - backwards-compatible input. + As of Dash Core v23.0, the ``coreP2PAddrs`` field accepts backwards-compatible input. - ``proTxHash``: The transaction id of the initial ProRegTx @@ -162,8 +161,10 @@ button, or from Dash Core using the following syntax:: Where: - As of Dash Core v23.0, ``coreP2PAddrs``, ``platformP2PAddrs``, and - ``platformHTTPSAddrs`` fields accept backwards-compatible input. +.. note:: + + As of Dash Core v23.0, ``coreP2PAddrs``, ``platformP2PAddrs``, and ``platformHTTPSAddrs`` + fields accept backwards-compatible input. - ``proTxHash``: The transaction id of the initial ProRegTx - ``coreP2PAddrs``: Array of masternode address(es), in the format From 50d0c2cd6af999c1ab19f4adb5ad18c58f23a23f Mon Sep 17 00:00:00 2001 From: thephez Date: Wed, 12 Nov 2025 09:27:39 -0500 Subject: [PATCH 3/7] docs(p2p): update isdlock --- .../reference/p2p-network-instantsend-messages.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/core/reference/p2p-network-instantsend-messages.md b/docs/core/reference/p2p-network-instantsend-messages.md index 3ae045e92..bd8190c25 100644 --- a/docs/core/reference/p2p-network-instantsend-messages.md +++ b/docs/core/reference/p2p-network-instantsend-messages.md @@ -44,16 +44,22 @@ dcd5497d105932e609016dac075f02df *Added in protocol version 70220 of Dash Core* ::: -The [`isdlock` message](../reference/p2p-network-instantsend-messages.md#isdlock) is used to provide details of transactions that have been locked by InstantSend. The message includes all details present in the [`islock` message](../reference/p2p-network-deprecated-messages.md#islock) along with additional version and cycle information introduced by [DIP22](https://github.com/dashpay/dips/blob/master/dip-0022.md). This enables nodes to determine what quorum signed the message and validate the signature in the future after the quorum is no longer active. Additional details about the change are available in [DIP22 - Making InstantSend Deterministic using Quorum Cycles](https://github.com/dashpay/dips/blob/master/dip-0022.md). +:::{versionchanged} 23.0.0 +As of protocol version 70237, the `cycleHash` field represents the DKG cycle starting block of the signing quorum instead of the DKG cycle starting block corresponding to the current chain height. This change is fully backwards compatible with older versions of Dash Core. +::: + +The [`isdlock` message](../reference/p2p-network-instantsend-messages.md#isdlock) is used to provide details of transactions that have been locked by InstantSend. The message includes all details present in the deprecated [`islock` message](../reference/p2p-network-deprecated-messages.md#islock) along with additional version and cycle information introduced by [DIP22](https://github.com/dashpay/dips/blob/master/dip-0022.md). This enables nodes to determine what quorum signed the message and validate the signature in the future after the quorum is no longer active. Additional details about the change are available in [DIP22 - Making InstantSend Deterministic using Quorum Cycles](https://github.com/dashpay/dips/blob/master/dip-0022.md). + +The request ID for an isdlock can be calculated deterministically using the formula: `hash("islock" + serialized_inputs)`, where "islock" is a string prefix and the inputs are serialized in their COutPoint format. This ID is used for quorum signature verification and can be obtained via the [`getislocks` RPC command](../api/remote-procedure-calls-raw-transactions.md#getislocks). | Bytes | Name | Data type | Description | | --- | --- | --- | --- | -| 1 | version | uint8 | The version of the islock message | +| 1 | version | uint8 | The version of the isdlock message | | 1-9 | inputsSize | compactSize uint | Number of inputs | | 36 * `inputsSize`| inputs | COutPoint | Outpoints used in the transaction | | 32 | txid | uint256 | TXID of the locked transaction | -| 32 | cycleHash | uint256 | Block hash of first block of the cycle in which the quorum signing this islock is active | -| 96 | sig | byte[] | LLMQ BLS Signature
**Note**: serialized using the basic BLS scheme after Dash 19.0 activation | +| 32 | cycleHash | uint256 | Block hash of first block of the DKG cycle in which the quorum signing this isdlock is active.
**Note**: As of v23.0.0 (protocol 70237), this represents the signing quorum's cycle, not the current height's cycle | +| 96 | sig | byte[] | LLMQ BLS Signature serialized using the basic BLS scheme | The following annotated hexdump shows a [`isdlock` message](../reference/p2p-network-instantsend-messages.md#isdlock). (The message header has been omitted.) From 26ba35f6b3b94d2b83a0da63fe73f28b942282ec Mon Sep 17 00:00:00 2001 From: thephez Date: Wed, 12 Nov 2025 09:30:02 -0500 Subject: [PATCH 4/7] docs: fix typo --- docs/user/masternodes/maintenance.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/user/masternodes/maintenance.rst b/docs/user/masternodes/maintenance.rst index abfe1335f..4e6670af2 100644 --- a/docs/user/masternodes/maintenance.rst +++ b/docs/user/masternodes/maintenance.rst @@ -220,8 +220,8 @@ Where: - ``proTxHash``: The transaction id of the initial ProRegTx - ``operatorKeyAddr``: An updated BLS public key, or ``""`` to use the last on-chain operator key - ``votingKeyAddr``: An updated voting key address, or ``""`` to use the last on-chain voting key -- ``payoutAddress``: An updated Dash address for owner payments, or ``""`` to use the last on-chain - operator key +- ``payoutAddress``: An updated Dash address for owner payments, or ``""`` to use the currently + active payout address - ``feeSourceAddress`` (optional): An address used to fund ProTx fee. ``PayoutAddress`` will be used if not specified. From b5e1570a4a86e676b86151064762a21bd02b361b Mon Sep 17 00:00:00 2001 From: thephez Date: Wed, 12 Nov 2025 09:34:31 -0500 Subject: [PATCH 5/7] docs: typo fix --- docs/user/masternodes/maintenance.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user/masternodes/maintenance.rst b/docs/user/masternodes/maintenance.rst index 4e6670af2..21c99f4bc 100644 --- a/docs/user/masternodes/maintenance.rst +++ b/docs/user/masternodes/maintenance.rst @@ -222,7 +222,7 @@ Where: - ``votingKeyAddr``: An updated voting key address, or ``""`` to use the last on-chain voting key - ``payoutAddress``: An updated Dash address for owner payments, or ``""`` to use the currently active payout address -- ``feeSourceAddress`` (optional): An address used to fund ProTx fee. ``PayoutAddress`` will be used +- ``feeSourceAddress`` (optional): An address used to fund ProTx fee. ``payoutAddress`` will be used if not specified. Example to update payout address:: From 32b2d3464be0755fe477c276c7837e06e36bd1b6 Mon Sep 17 00:00:00 2001 From: thephez Date: Wed, 12 Nov 2025 09:51:17 -0500 Subject: [PATCH 6/7] docs: update proto version table --- docs/core/reference/p2p-network-protocol-versions.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/core/reference/p2p-network-protocol-versions.md b/docs/core/reference/p2p-network-protocol-versions.md index f89db2ccc..45fdefcf7 100644 --- a/docs/core/reference/p2p-network-protocol-versions.md +++ b/docs/core/reference/p2p-network-protocol-versions.md @@ -10,10 +10,11 @@ The table below lists some notable versions of the P2P network protocol, with the most recent versions listed first. -As of Dash Core 22.1.2, the most recent protocol version is 70236. +As of Dash Core 23.0.0, the most recent protocol version is 70238. | Version | Initial Release | Major Changes |---------|------------------------------------|-------------- +| 70238 | [Dash Core 23.0.0](https://github.com/dashpay/dash/blob/v23.0.0/doc/release-notes.md)
(Nov 2025) | • [Platform Proof-of-Service ban support](https://github.com/dashpay/dash/pull/6613)
• [Fix isdlock cycleHash](https://github.com/dashpay/dash/pull/6608)
• MIN_PEER_PROTO_VERSION set to 70221 | 70236 | [Dash Core 22.1.2](https://github.com/dashpay/dash/blob/v22.1.2/doc/release-notes.md)
(Apr 2025) | • [Optimized quorum diff processing](https://github.com/dashpay/dash/pull/6587)
• [Improved the performance of deterministic masternode list management](https://github.com/dashpay/dash/pull/6625) | 70235 | [Dash Core 22.0](https://github.com/dashpay/dash/blob/v22.0.0/doc/release-notes.md)
(Nov 2024) | • [P2P protocol encryption (BIP 324)](https://github.com/dashpay/dash-issues/issues/7)
• [DSQ via inventory](https://github.com/dashpay/dash/pull/6148)
• [Support 8000 compressed headers per request](https://github.com/dashpay/dash/pull/6239/) | 70233 | [Dash Core 21.1](https://github.com/dashpay/dash/blob/v21.1.0/doc/release-notes.md)
(Aug 2024) | • [Enhanced hard fork update](https://github.com/dashpay/dash/pull/6175) From 3036395044771eed02430f337ee4f4f32fed4ff9 Mon Sep 17 00:00:00 2001 From: thephez Date: Wed, 12 Nov 2025 11:36:38 -0500 Subject: [PATCH 7/7] docs: update cli info and script Script now can take help output and directly update the markdown file --- .../wallet-arguments-and-commands-dash-cli.md | 49 +---- .../wallet-arguments-and-commands-dash-qt.md | 128 ++++++++----- .../wallet-arguments-and-commands-dash-tx.md | 38 ---- ...llet-arguments-and-commands-dash-wallet.md | 38 ---- .../wallet-arguments-and-commands-dashd.md | 144 ++++++++------ scripts/core-help-parsing.sh | 176 +++++++++++++++--- 6 files changed, 325 insertions(+), 248 deletions(-) mode change 100644 => 100755 scripts/core-help-parsing.sh diff --git a/docs/core/dashcore/wallet-arguments-and-commands-dash-cli.md b/docs/core/dashcore/wallet-arguments-and-commands-dash-cli.md index e6f1a78a6..101625040 100644 --- a/docs/core/dashcore/wallet-arguments-and-commands-dash-cli.md +++ b/docs/core/dashcore/wallet-arguments-and-commands-dash-cli.md @@ -48,7 +48,9 @@ View [the list of RPCs](../api/remote-procedure-call-quick-reference.md) for mor Print this help message and exit -addrinfo - Get the number of addresses known to the node, per network and total. + Get the number of addresses known to the node, per network and total, + after filtering for quality and recency. The total number of + addresses known to the node may be higher. -color= Color setting for CLI output (default: auto). Valid values: always, auto @@ -63,8 +65,8 @@ View [the list of RPCs](../api/remote-procedure-call-quick-reference.md) for mor Specify data directory -generate - Generate blocks immediately, equivalent to RPC getnewaddress followed by - RPC generatetoaddress. Optional positional integer arguments are + Generate blocks, equivalent to RPC getnewaddress followed by RPC + generatetoaddress. Optional positional integer arguments are number of blocks to generate (default: 1) and maximum iterations to try (default: 1000000), equivalent to RPC generatetoaddress nblocks and maxtries arguments. Example: dash-cli -generate 4 @@ -72,8 +74,8 @@ View [the list of RPCs](../api/remote-procedure-call-quick-reference.md) for mor -getinfo Get general information from the remote server. Note that unlike - server-side RPC calls, the results of -getinfo is the result of - multiple non-atomic requests. Some entries in the result may + server-side RPC calls, the output of -getinfo is the result of + multiple non-atomic requests. Some entries in the output may represent results from different states (e.g. wallet balance may be as of a different block from the chain state reported) @@ -153,43 +155,6 @@ View [the list of RPCs](../api/remote-procedure-call-quick-reference.md) for mor -devnet= Use devnet chain with provided name - -highsubsidyblocks= - The number of blocks with a higher than normal subsidy to mine at the - start of a chain. Block after that height will have fixed subsidy - base. (default: 0, devnet-only) - - -highsubsidyfactor= - The factor to multiply the normal block subsidy by while in the - highsubsidyblocks window of a chain (default: 1, devnet-only) - - -llmqchainlocks= - Override the default LLMQ type used for ChainLocks. Allows using - ChainLocks with smaller LLMQs. (default: llmq_devnet, - devnet-only) - - -llmqdevnetparams=: - Override the default LLMQ size for the LLMQ_DEVNET quorum (devnet-only) - - -llmqinstantsenddip0024= - Override the default LLMQ type used for InstantSendDIP0024. (default: - llmq_devnet_dip0024, devnet-only) - - -llmqmnhf= - Override the default LLMQ type used for EHF. (default: llmq_devnet, - devnet-only) - - -llmqplatform= - Override the default LLMQ type used for Platform. (default: - llmq_devnet_platform, devnet-only) - - -minimumdifficultyblocks= - The number of blocks that can be mined with the minimum difficulty at - the start of a chain (default: 0, devnet-only) - - -powtargetspacing= - Override the default PowTargetSpacing value in seconds (default: 2.5 - minutes, devnet-only) - -testnet Use the test chain. Equivalent to -chain=test diff --git a/docs/core/dashcore/wallet-arguments-and-commands-dash-qt.md b/docs/core/dashcore/wallet-arguments-and-commands-dash-qt.md index d093abdb0..122ccc836 100644 --- a/docs/core/dashcore/wallet-arguments-and-commands-dash-qt.md +++ b/docs/core/dashcore/wallet-arguments-and-commands-dash-qt.md @@ -36,14 +36,15 @@ options](#ui-options). If this block is in the chain assume that it and its ancestors are valid and potentially skip their script verification (0 to verify all, default: - 000000000000001cf26547602d982dcaa909231bbcd1e70c0eb3c65de25473ba, + 0000000000000009ba1e8f47851d036bb618a4f6565eb3c32d1f647d450ff195, testnet: - 000000eef20eb0062abd4e799967e98bdebb165dd1c567ab4118c1c86c6e948f) + 00000107d42829a38e31c1a38c660d621e1ca376a880df1520e85e38af175d3a) -blockfilterindex= Maintain an index of compact filters by block (default: 0, values: basic). If is not supplied or if = 1, indexes for - all known types are enabled. + all known types are enabled. Automatically enabled for + masternodes with value 'basic'. -blocknotify= Execute command when the best block changes (%s in cmd is replaced by @@ -119,14 +120,18 @@ options](#ui-options). -minimumchainwork= Minimum work assumed to exist on a valid chain in hex (default: - 000000000000000000000000000000000000000000009eb0f1d7fefc8750aebb, + 00000000000000000000000000000000000000000000ae8d578b28f390b9c630, testnet: - 000000000000000000000000000000000000000000000000031ee38bc0876cef) + 000000000000000000000000000000000000000000000000036073cd80626b9c) -par= Set the number of script verification threads (-16 to 15, 0 = auto, <0 = leave that many cores free, default: 0) + -parbls= + Set the number of BLS verification threads (-16 to 33, 0 = auto, <0 = + leave that many cores free, default: 0) + -persistmempool Whether to save the mempool on shutdown and load on restart (default: 1) @@ -217,7 +222,7 @@ options](#ui-options). -dnsseed Query for peer addresses via DNS lookup, if low on addresses (default: 1 - unless -connect used) + unless -connect used or -maxconnections=0) -externalip= Specify your own public address @@ -239,7 +244,8 @@ options](#ui-options). none) -listen - Accept connections from outside (default: 1 if no -proxy or -connect) + Accept connections from outside (default: 1 if no -proxy, -connect or + -maxconnections=0) -listenonion Automatically create Tor onion service (default: 1) @@ -259,8 +265,8 @@ options](#ui-options). -maxtimeadjustment Maximum allowed median peer time offset adjustment. Local perspective of - time may be influenced by peers forward or backward by this - amount. (default: 4200 seconds) + time may be influenced by outbound peers forward or backward by + this amount (default: 4200 seconds). -maxuploadtarget= Tries to keep outbound traffic under the given target per 24h. Limit @@ -276,9 +282,10 @@ options](#ui-options). Enable all P2P network activity (default: 1). Can be changed by the setnetworkactive RPC command - -onion= + -onion= Use separate SOCKS5 proxy to reach peers via Tor onion services, set - -noonion to disable (default: -proxy) + -noonion to disable (default: -proxy). May be a local file path + prefixed with 'unix:'. -onlynet= Make automatic outbound connections only to network (ipv4, ipv6, @@ -287,7 +294,8 @@ options](#ui-options). allow multiple networks. -peerblockfilters - Serve compact block filters to peers per BIP 157 (default: 0) + Serve compact block filters to peers per BIP 157 (default: 0, + automatically enabled for masternodes) -peerbloomfilters Support filtering of blocks and transaction with bloom filters (default: @@ -298,17 +306,15 @@ options](#ui-options). peer, wait this amount of time before considering disconnection based on inactivity (minimum: 1, default: 60) - -permitbaremultisig - Relay non-P2SH multisig (default: 1) - -port= Listen for connections on . Nodes not using the default ports (default: 9999, testnet: 19999, regtest: 19899) are unlikely to get incoming connections. Not relevant for I2P (see doc/i2p.md). - -proxy= + -proxy= Connect through SOCKS5 proxy, set -noproxy to disable (default: - disabled) + disabled). May be a local file path prefixed with 'unix:' if the + proxy supports it. -proxyrandomize Randomize credentials for every proxy connection. This enables Tor @@ -340,11 +346,10 @@ options](#ui-options). Enable transaction reconciliations per BIP 330 (default: 0) -upnp - Use UPnP to map the listening port (default: 1 when listening and no - -proxy) + Use UPnP to map the listening port (default: 0) -v2transport - Support v2 transport (default: 0) + Support v2 transport (default: 1) -whitebind=<[permissions@]addr> Bind to the given address and add permission flags to the peers @@ -441,9 +446,6 @@ options](#ui-options). Specify the number of seconds between periodic measurements (default: 60) - -statsport= - Specify statsd port (default: 8125) - -statsprefix= Specify an optional string prepended to every stats key (default: ) @@ -466,6 +468,11 @@ options](#ui-options). being used. Always enabled for wallets with "avoid_reuse" enabled, otherwise default: 0. + -consolidatefeerate= + The maximum feerate (in DASH/kvB) at which transaction building may use + more inputs than strictly necessary so that the wallet's UTXO + pool can be reduced (default: 0.00001). + -createwalletbackups= Number of automatic wallet backups (default: 10) @@ -637,9 +644,12 @@ options](#ui-options). This option is only used by tests to improve their performance (default: false) + -walletcrosschain + Allow reusing wallet files across chains (default: 0) + -walletrejectlongchains Wallet will not create transactions that violate mempool chain limits - (default: 0) + (default: 1) ``` @@ -816,25 +826,25 @@ options](#ui-options). -checkpoints Enable rejection of any forks from the known historical chain until - block 2175051 (default: 1) + block 2361500 (default: 1) -debug= - Output debugging information (default: -nodebug, supplying is - optional). If is not supplied or if = 1, - output all debugging information. can be: addrman, - bench, chainlocks, cmpctblock, coindb, coinjoin, creditpool, ehf, - estimatefee, gobject, http, i2p, instantsend, ipc, leveldb, - libevent, llmq, llmq-dkg, llmq-sigs, lock, mempool, mempoolrej, - mnpayments, mnsync, net, netconn, proxy, prune, qt, rand, - reindex, rpc, selectcoins, spork, tor, txreconciliation, + Output debug and trace logging (default: -nodebug, supplying + is optional). If is not supplied or if = 1, + output all debug and trace logging. can be: addrman, + bench, blockstorage, chainlocks, cmpctblock, coindb, coinjoin, + creditpool, ehf, estimatefee, gobject, http, i2p, instantsend, + ipc, leveldb, libevent, llmq, llmq-dkg, llmq-sigs, mempool, + mempoolrej, mnpayments, mnsync, net, netconn, proxy, prune, qt, + rand, reindex, rpc, selectcoins, spork, tor, txreconciliation, validation, walletdb, zmq. This option can be specified multiple times to output multiple categories. -debugexclude= - Exclude debugging information for a category. Can be used in conjunction - with -debug=1 to output debug logs for all categories except the - specified category. This option can be specified multiple times - to exclude multiple categories. + Exclude debug and trace logging for a category. Can be used in + conjunction with -debug=1 to output debug and trace logging for + all categories except the specified category. This option can be + specified multiple times to exclude multiple categories. -deprecatedrpc= Allows deprecated RPC method(s) to be used @@ -868,6 +878,20 @@ options](#ui-options). -logips Include IP addresses in debug output (default: 0) + -loglevel=|: + Set the global or per-category severity level for logging categories + enabled with the -debug configuration option or the logging RPC: + info, debug, trace (default=debug); warning and error levels are + always logged. If : is supplied, the setting + will override the global one and may be specified multiple times + to set multiple category-specific levels. can be: + addrman, bench, blockstorage, chainlocks, cmpctblock, coindb, + coinjoin, creditpool, ehf, estimatefee, gobject, http, i2p, + instantsend, ipc, leveldb, libevent, llmq, llmq-dkg, llmq-sigs, + mempool, mempoolrej, mnpayments, mnsync, net, netconn, proxy, + prune, qt, rand, reindex, rpc, selectcoins, spork, tor, + txreconciliation, validation, walletdb, zmq. + -logsourcelocations Prepend debug output with name of the originating source location (source file, line number and function name) (default: 0) @@ -929,10 +953,6 @@ options](#ui-options). Stop running after reaching the given height in the main chain (default: 0) - -testactivationheight=name@height. - Set the activation height of 'name' (bip147, bip34, dersig, cltv, csv, - brr, dip0001, dip0008, v20, mn_rr). (regtest-only) - -uacomment= Append comment to the user agent string @@ -945,9 +965,6 @@ options](#ui-options). ```text - -bip147height= - Override BIP147 activation height (regtest-only) - -budgetparams=:: Override masternode, budget and superblock start heights (regtest-only) @@ -961,9 +978,6 @@ options](#ui-options). -dip3params=: Override DIP3 activation and enforcement heights (regtest-only) - -dip8params= - Override DIP8 activation height (regtest-only) - -highsubsidyblocks= The number of blocks with a higher than normal subsidy to mine at the start of a chain. Block after that height will have fixed subsidy @@ -1005,6 +1019,10 @@ options](#ui-options). Override the default LLMQ size for the LLMQ_TEST quorum (default: 3:2, regtest-only) + -llmqtestplatformparams=: + Override the default LLMQ size for the LLMQ_TEST_PLATFORM quorum + (default: 3:2, regtest-only) + -minimumdifficultyblocks= The number of blocks that can be mined with the minimum difficulty at the start of a chain (default: 0, devnet-only) @@ -1018,6 +1036,10 @@ options](#ui-options). can be solved instantly. This is intended for regression testing tools and app development. Equivalent to -chain=regtest + -testactivationheight=name@height. + Set the activation height of 'name' (bip147, bip34, dersig, cltv, csv, + brr, dip0001, dip0008, dip0024, v19, v20, mn_rr). (regtest-only) + -testnet Use the test chain. Equivalent to -chain=test @@ -1061,6 +1083,9 @@ options](#ui-options). Fees (in DASH/kB) smaller than this are considered zero fee for relaying, mining and transaction creation (default: 0.00001) + -permitbaremultisig + Relay non-P2SH multisig (default: 1) + -whitelistforcerelay Add 'forcerelay' permission to whitelisted inbound peers with default permissions. This will relay transactions even if the @@ -1097,10 +1122,11 @@ options](#ui-options). Accept public REST requests (default: 0) -rpcallowip= - Allow JSON-RPC connections from specified source. Valid for are a - single IP (e.g. 1.2.3.4), a network/netmask (e.g. - 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This - option can be specified multiple times + Allow JSON-RPC connections from specified source. Valid values for + are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. + 1.2.3.4/255.255.255.0), a network/CIDR (e.g. 1.2.3.4/24), all + ipv4 (0.0.0.0/0), or all ipv6 (::/0). This option can be + specified multiple times -rpcauth= Username and HMAC-SHA-256 hashed password for JSON-RPC connections. The diff --git a/docs/core/dashcore/wallet-arguments-and-commands-dash-tx.md b/docs/core/dashcore/wallet-arguments-and-commands-dash-tx.md index 813b095f8..03610a431 100644 --- a/docs/core/dashcore/wallet-arguments-and-commands-dash-tx.md +++ b/docs/core/dashcore/wallet-arguments-and-commands-dash-tx.md @@ -49,43 +49,6 @@ Usage: -devnet= Use devnet chain with provided name - -highsubsidyblocks= - The number of blocks with a higher than normal subsidy to mine at the - start of a chain. Block after that height will have fixed subsidy - base. (default: 0, devnet-only) - - -highsubsidyfactor= - The factor to multiply the normal block subsidy by while in the - highsubsidyblocks window of a chain (default: 1, devnet-only) - - -llmqchainlocks= - Override the default LLMQ type used for ChainLocks. Allows using - ChainLocks with smaller LLMQs. (default: llmq_devnet, - devnet-only) - - -llmqdevnetparams=: - Override the default LLMQ size for the LLMQ_DEVNET quorum (devnet-only) - - -llmqinstantsenddip0024= - Override the default LLMQ type used for InstantSendDIP0024. (default: - llmq_devnet_dip0024, devnet-only) - - -llmqmnhf= - Override the default LLMQ type used for EHF. (default: llmq_devnet, - devnet-only) - - -llmqplatform= - Override the default LLMQ type used for Platform. (default: - llmq_devnet_platform, devnet-only) - - -minimumdifficultyblocks= - The number of blocks that can be mined with the minimum difficulty at - the start of a chain (default: 0, devnet-only) - - -powtargetspacing= - Override the default PowTargetSpacing value in seconds (default: 2.5 - minutes, devnet-only) - -testnet Use the test chain. Equivalent to -chain=test @@ -146,5 +109,4 @@ Usage: set=NAME:JSON-STRING Set register NAME to given JSON-STRING - ``` diff --git a/docs/core/dashcore/wallet-arguments-and-commands-dash-wallet.md b/docs/core/dashcore/wallet-arguments-and-commands-dash-wallet.md index e96f89109..2f5646a9c 100644 --- a/docs/core/dashcore/wallet-arguments-and-commands-dash-wallet.md +++ b/docs/core/dashcore/wallet-arguments-and-commands-dash-wallet.md @@ -72,43 +72,6 @@ Usage: -devnet= Use devnet chain with provided name - -highsubsidyblocks= - The number of blocks with a higher than normal subsidy to mine at the - start of a chain. Block after that height will have fixed subsidy - base. (default: 0, devnet-only) - - -highsubsidyfactor= - The factor to multiply the normal block subsidy by while in the - highsubsidyblocks window of a chain (default: 1, devnet-only) - - -llmqchainlocks= - Override the default LLMQ type used for ChainLocks. Allows using - ChainLocks with smaller LLMQs. (default: llmq_devnet, - devnet-only) - - -llmqdevnetparams=: - Override the default LLMQ size for the LLMQ_DEVNET quorum (devnet-only) - - -llmqinstantsenddip0024= - Override the default LLMQ type used for InstantSendDIP0024. (default: - llmq_devnet_dip0024, devnet-only) - - -llmqmnhf= - Override the default LLMQ type used for EHF. (default: llmq_devnet, - devnet-only) - - -llmqplatform= - Override the default LLMQ type used for Platform. (default: - llmq_devnet_platform, devnet-only) - - -minimumdifficultyblocks= - The number of blocks that can be mined with the minimum difficulty at - the start of a chain (default: 0, devnet-only) - - -powtargetspacing= - Override the default PowTargetSpacing value in seconds (default: 2.5 - minutes, devnet-only) - -testnet Use the test chain. Equivalent to -chain=test @@ -136,5 +99,4 @@ Usage: wipetxes Wipe all transactions from a wallet - ``` diff --git a/docs/core/dashcore/wallet-arguments-and-commands-dashd.md b/docs/core/dashcore/wallet-arguments-and-commands-dashd.md index 3f9108fbf..c6e18ac85 100644 --- a/docs/core/dashcore/wallet-arguments-and-commands-dashd.md +++ b/docs/core/dashcore/wallet-arguments-and-commands-dashd.md @@ -34,14 +34,15 @@ The following sections show all available options including debug options that a If this block is in the chain assume that it and its ancestors are valid and potentially skip their script verification (0 to verify all, default: - 000000000000001cf26547602d982dcaa909231bbcd1e70c0eb3c65de25473ba, + 0000000000000009ba1e8f47851d036bb618a4f6565eb3c32d1f647d450ff195, testnet: - 000000eef20eb0062abd4e799967e98bdebb165dd1c567ab4118c1c86c6e948f) + 00000107d42829a38e31c1a38c660d621e1ca376a880df1520e85e38af175d3a) -blockfilterindex= Maintain an index of compact filters by block (default: 0, values: basic). If is not supplied or if = 1, indexes for - all known types are enabled. + all known types are enabled. Automatically enabled for + masternodes with value 'basic'. -blocknotify= Execute command when the best block changes (%s in cmd is replaced by @@ -117,14 +118,18 @@ The following sections show all available options including debug options that a -minimumchainwork= Minimum work assumed to exist on a valid chain in hex (default: - 000000000000000000000000000000000000000000009eb0f1d7fefc8750aebb, + 00000000000000000000000000000000000000000000ae8d578b28f390b9c630, testnet: - 000000000000000000000000000000000000000000000000031ee38bc0876cef) + 000000000000000000000000000000000000000000000000036073cd80626b9c) -par= Set the number of script verification threads (-16 to 15, 0 = auto, <0 = leave that many cores free, default: 0) + -parbls= + Set the number of BLS verification threads (-16 to 33, 0 = auto, <0 = + leave that many cores free, default: 0) + -persistmempool Whether to save the mempool on shutdown and load on restart (default: 1) @@ -215,7 +220,7 @@ The following sections show all available options including debug options that a -dnsseed Query for peer addresses via DNS lookup, if low on addresses (default: 1 - unless -connect used) + unless -connect used or -maxconnections=0) -externalip= Specify your own public address @@ -237,7 +242,8 @@ The following sections show all available options including debug options that a none) -listen - Accept connections from outside (default: 1 if no -proxy or -connect) + Accept connections from outside (default: 1 if no -proxy, -connect or + -maxconnections=0) -listenonion Automatically create Tor onion service (default: 1) @@ -257,8 +263,8 @@ The following sections show all available options including debug options that a -maxtimeadjustment Maximum allowed median peer time offset adjustment. Local perspective of - time may be influenced by peers forward or backward by this - amount. (default: 4200 seconds) + time may be influenced by outbound peers forward or backward by + this amount (default: 4200 seconds). -maxuploadtarget= Tries to keep outbound traffic under the given target per 24h. Limit @@ -274,9 +280,10 @@ The following sections show all available options including debug options that a Enable all P2P network activity (default: 1). Can be changed by the setnetworkactive RPC command - -onion= + -onion= Use separate SOCKS5 proxy to reach peers via Tor onion services, set - -noonion to disable (default: -proxy) + -noonion to disable (default: -proxy). May be a local file path + prefixed with 'unix:'. -onlynet= Make automatic outbound connections only to network (ipv4, ipv6, @@ -285,7 +292,8 @@ The following sections show all available options including debug options that a allow multiple networks. -peerblockfilters - Serve compact block filters to peers per BIP 157 (default: 0) + Serve compact block filters to peers per BIP 157 (default: 0, + automatically enabled for masternodes) -peerbloomfilters Support filtering of blocks and transaction with bloom filters (default: @@ -296,17 +304,15 @@ The following sections show all available options including debug options that a peer, wait this amount of time before considering disconnection based on inactivity (minimum: 1, default: 60) - -permitbaremultisig - Relay non-P2SH multisig (default: 1) - -port= Listen for connections on . Nodes not using the default ports (default: 9999, testnet: 19999, regtest: 19899) are unlikely to get incoming connections. Not relevant for I2P (see doc/i2p.md). - -proxy= + -proxy= Connect through SOCKS5 proxy, set -noproxy to disable (default: - disabled) + disabled). May be a local file path prefixed with 'unix:' if the + proxy supports it. -proxyrandomize Randomize credentials for every proxy connection. This enables Tor @@ -338,11 +344,10 @@ The following sections show all available options including debug options that a Enable transaction reconciliations per BIP 330 (default: 0) -upnp - Use UPnP to map the listening port (default: 1 when listening and no - -proxy) + Use UPnP to map the listening port (default: 0) -v2transport - Support v2 transport (default: 0) + Support v2 transport (default: 1) -whitebind=<[permissions@]addr> Bind to the given address and add permission flags to the peers @@ -439,9 +444,6 @@ The following sections show all available options including debug options that a Specify the number of seconds between periodic measurements (default: 60) - -statsport= - Specify statsd port (default: 8125) - -statsprefix= Specify an optional string prepended to every stats key (default: ) @@ -464,6 +466,11 @@ The following sections show all available options including debug options that a being used. Always enabled for wallets with "avoid_reuse" enabled, otherwise default: 0. + -consolidatefeerate= + The maximum feerate (in DASH/kvB) at which transaction building may use + more inputs than strictly necessary so that the wallet's UTXO + pool can be reduced (default: 0.00001). + -createwalletbackups= Number of automatic wallet backups (default: 10) @@ -635,9 +642,12 @@ The following sections show all available options including debug options that a This option is only used by tests to improve their performance (default: false) + -walletcrosschain + Allow reusing wallet files across chains (default: 0) + -walletrejectlongchains Wallet will not create transactions that violate mempool chain limits - (default: 0) + (default: 1) ``` @@ -814,25 +824,25 @@ The following sections show all available options including debug options that a -checkpoints Enable rejection of any forks from the known historical chain until - block 2175051 (default: 1) + block 2361500 (default: 1) -debug= - Output debugging information (default: -nodebug, supplying is - optional). If is not supplied or if = 1, - output all debugging information. can be: addrman, - bench, chainlocks, cmpctblock, coindb, coinjoin, creditpool, ehf, - estimatefee, gobject, http, i2p, instantsend, ipc, leveldb, - libevent, llmq, llmq-dkg, llmq-sigs, lock, mempool, mempoolrej, - mnpayments, mnsync, net, netconn, proxy, prune, qt, rand, - reindex, rpc, selectcoins, spork, tor, txreconciliation, + Output debug and trace logging (default: -nodebug, supplying + is optional). If is not supplied or if = 1, + output all debug and trace logging. can be: addrman, + bench, blockstorage, chainlocks, cmpctblock, coindb, coinjoin, + creditpool, ehf, estimatefee, gobject, http, i2p, instantsend, + ipc, leveldb, libevent, llmq, llmq-dkg, llmq-sigs, mempool, + mempoolrej, mnpayments, mnsync, net, netconn, proxy, prune, qt, + rand, reindex, rpc, selectcoins, spork, tor, txreconciliation, validation, walletdb, zmq. This option can be specified multiple times to output multiple categories. -debugexclude= - Exclude debugging information for a category. Can be used in conjunction - with -debug=1 to output debug logs for all categories except the - specified category. This option can be specified multiple times - to exclude multiple categories. + Exclude debug and trace logging for a category. Can be used in + conjunction with -debug=1 to output debug and trace logging for + all categories except the specified category. This option can be + specified multiple times to exclude multiple categories. -deprecatedrpc= Allows deprecated RPC method(s) to be used @@ -866,6 +876,20 @@ The following sections show all available options including debug options that a -logips Include IP addresses in debug output (default: 0) + -loglevel=|: + Set the global or per-category severity level for logging categories + enabled with the -debug configuration option or the logging RPC: + info, debug, trace (default=debug); warning and error levels are + always logged. If : is supplied, the setting + will override the global one and may be specified multiple times + to set multiple category-specific levels. can be: + addrman, bench, blockstorage, chainlocks, cmpctblock, coindb, + coinjoin, creditpool, ehf, estimatefee, gobject, http, i2p, + instantsend, ipc, leveldb, libevent, llmq, llmq-dkg, llmq-sigs, + mempool, mempoolrej, mnpayments, mnsync, net, netconn, proxy, + prune, qt, rand, reindex, rpc, selectcoins, spork, tor, + txreconciliation, validation, walletdb, zmq. + -logsourcelocations Prepend debug output with name of the originating source location (source file, line number and function name) (default: 0) @@ -927,10 +951,6 @@ The following sections show all available options including debug options that a Stop running after reaching the given height in the main chain (default: 0) - -testactivationheight=name@height. - Set the activation height of 'name' (bip147, bip34, dersig, cltv, csv, - brr, dip0001, dip0008, v20, mn_rr). (regtest-only) - -uacomment= Append comment to the user agent string @@ -943,9 +963,6 @@ The following sections show all available options including debug options that a ```text - -bip147height= - Override BIP147 activation height (regtest-only) - -budgetparams=:: Override masternode, budget and superblock start heights (regtest-only) @@ -959,9 +976,6 @@ The following sections show all available options including debug options that a -dip3params=: Override DIP3 activation and enforcement heights (regtest-only) - -dip8params= - Override DIP8 activation height (regtest-only) - -highsubsidyblocks= The number of blocks with a higher than normal subsidy to mine at the start of a chain. Block after that height will have fixed subsidy @@ -1003,6 +1017,10 @@ The following sections show all available options including debug options that a Override the default LLMQ size for the LLMQ_TEST quorum (default: 3:2, regtest-only) + -llmqtestplatformparams=: + Override the default LLMQ size for the LLMQ_TEST_PLATFORM quorum + (default: 3:2, regtest-only) + -minimumdifficultyblocks= The number of blocks that can be mined with the minimum difficulty at the start of a chain (default: 0, devnet-only) @@ -1016,6 +1034,10 @@ The following sections show all available options including debug options that a can be solved instantly. This is intended for regression testing tools and app development. Equivalent to -chain=regtest + -testactivationheight=name@height. + Set the activation height of 'name' (bip147, bip34, dersig, cltv, csv, + brr, dip0001, dip0008, dip0024, v19, v20, mn_rr). (regtest-only) + -testnet Use the test chain. Equivalent to -chain=test @@ -1059,6 +1081,9 @@ The following sections show all available options including debug options that a Fees (in DASH/kB) smaller than this are considered zero fee for relaying, mining and transaction creation (default: 0.00001) + -permitbaremultisig + Relay non-P2SH multisig (default: 1) + -whitelistforcerelay Add 'forcerelay' permission to whitelisted inbound peers with default permissions. This will relay transactions even if the @@ -1095,10 +1120,11 @@ The following sections show all available options including debug options that a Accept public REST requests (default: 0) -rpcallowip= - Allow JSON-RPC connections from specified source. Valid for are a - single IP (e.g. 1.2.3.4), a network/netmask (e.g. - 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This - option can be specified multiple times + Allow JSON-RPC connections from specified source. Valid values for + are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. + 1.2.3.4/255.255.255.0), a network/CIDR (e.g. 1.2.3.4/24), all + ipv4 (0.0.0.0/0), or all ipv6 (::/0). This option can be + specified multiple times -rpcauth= Username and HMAC-SHA-256 hashed password for JSON-RPC connections. The @@ -1189,8 +1215,7 @@ The following options can only be used for specific network types. These options devnet-only) -llmqdevnetparams=: - Override the default LLMQ size for the LLMQ_DEVNET quorum (default: 3:2, - devnet-only) + Override the default LLMQ size for the LLMQ_DEVNET quorum (devnet-only) -llmqinstantsenddip0024= Override the default LLMQ type used for InstantSendDIP0024. (default: @@ -1252,8 +1277,13 @@ Refer to [this table in DIP-6 - LLMQs](https://github.com/dashpay/dips/blob/mast Override the default LLMQ size for the LLMQ_TEST quorum (default: 3:2, regtest-only) - -vbparams=::(::(:::)) - Use given start/end times for specified version bits deployment - (regtest-only). Specifying window, threshold/thresholdstart, - thresholdmin, falloffcoeff and mnactivation is optional. + -llmqtestplatformparams=: + Override the default LLMQ size for the LLMQ_TEST_PLATFORM quorum + (default: 3:2, regtest-only) + + -vbparams=::(:min_activation_height(::(:::))) + Use given start/end times and min_activation_height for specified + version bits deployment (regtest-only). Specifying window, + threshold/thresholdstart, thresholdmin, falloffcoeff and + mnactivation is optional. ``` diff --git a/scripts/core-help-parsing.sh b/scripts/core-help-parsing.sh old mode 100644 new mode 100755 index 863a74451..ca3f23898 --- a/scripts/core-help-parsing.sh +++ b/scripts/core-help-parsing.sh @@ -6,6 +6,50 @@ # Examples: # dash-qt --help-debug | ./scripts/core-help-parsing.sh # dash-cli --help | ./scripts/core-help-parsing.sh +# dashd --help | ./scripts/core-help-parsing.sh --update docs/core/dashcore/wallet-arguments-and-commands-dashd.md + +# Parse command-line arguments +UPDATE_FILE="" +SHOW_HELP=false + +while [[ $# -gt 0 ]]; do + case $1 in + --update) + UPDATE_FILE="$2" + shift 2 + ;; + --help|-h) + SHOW_HELP=true + shift + ;; + *) + echo "Error: Unknown option '$1'" >&2 + exit 1 + ;; + esac +done + +# Show help if requested +if [[ "$SHOW_HELP" == "true" ]]; then + cat << 'EOF' +Usage: COMMAND --help | ./scripts/core-help-parsing.sh [OPTIONS] + +Parse Dash Core help output into formatted markdown. + +Options: + --update FILE Update FILE in-place, replacing content from ### Options + until the next # or ## heading + --help, -h Show this help message + +Examples: + # Output to stdout (default) + dashd --help | ./scripts/core-help-parsing.sh + + # Update file in-place + dashd --help | ./scripts/core-help-parsing.sh --update docs/core/dashcore/wallet-arguments-and-commands-dashd.md +EOF + exit 0 +fi # Ensure input is being piped if [ -t 0 ]; then @@ -13,31 +57,119 @@ if [ -t 0 ]; then exit 1 fi -# Read the piped input and process sections -in_code_block=false -while IFS= read -r line; do - # Match section headers (e.g., "Options:") - if [[ "$line" =~ ^[A-Za-z].*:$ ]]; then - # Close the previous code block if it's open - if [[ "$in_code_block" == "true" ]]; then - echo '```' +# Function to process help input and format as markdown +process_help_output() { + local in_code_block=false + local current_section="" + while IFS= read -r line; do + # Match section headers (e.g., "Options:") + if [[ "$line" =~ ^[A-Za-z].*:$ ]]; then + # Extract section name + local section_name="${line%:}" + + # Skip the "Usage" section as it's typically already documented manually + if [[ "$section_name" == "Usage" ]]; then + current_section="Usage" + in_code_block=false + continue + fi + + # Close the previous code block if it's open + if [[ "$in_code_block" == "true" ]]; then + echo '```' + echo + fi + + # Write the new section heading + echo "### $section_name" echo + echo '```text' + in_code_block=true + current_section="$section_name" + else + # Append all lines (including blank ones) to the current section's code block + # But skip lines if we're in the Usage section + if [[ "$in_code_block" == "true" && "$current_section" != "Usage" ]]; then + echo "$line" + fi fi + done - # Write the new section heading - echo "### ${line%:}" - echo - echo '```text' - in_code_block=true - else - # Append all lines (including blank ones) to the current section's code block - if [[ "$in_code_block" == "true" ]]; then - echo "$line" - fi + # Close the last code block if it's open + if [[ "$in_code_block" == "true" ]]; then + echo '```' fi -done +} + +# If --update flag is used, update the file in-place +if [[ -n "$UPDATE_FILE" ]]; then + # Check if file exists + if [[ ! -f "$UPDATE_FILE" ]]; then + echo "Error: File '$UPDATE_FILE' not found." >&2 + exit 1 + fi + + # Read and validate the input first + raw_input=$(cat) + + # Check if input is empty + if [[ -z "$raw_input" ]]; then + echo "Error: No help output received. File not updated." >&2 + exit 1 + fi + + # Check if input looks like an error message (starts with "Error", "Invalid", "Unknown", etc.) + # Only check the first few lines to avoid false positives in actual help text + first_lines=$(echo "$raw_input" | head -n 3) + if echo "$first_lines" | grep -qE "^(Error|Invalid|Unknown|Usage error)"; then + echo "Error: Help command returned an error. File not updated." >&2 + echo "Output received:" >&2 + echo "$raw_input" >&2 + exit 1 + fi + + # Format the input + formatted_output=$(echo "$raw_input" | process_help_output) + + # Double-check formatted output isn't empty + if [[ -z "$formatted_output" ]]; then + echo "Error: Formatting produced no output. File not updated." >&2 + exit 1 + fi + + # Create a temporary file + temp_file=$(mktemp) + + # Process the target file + found_options=false + found_end=false + while IFS= read -r line; do + # If we haven't found ### Options yet, keep the line + if [[ "$found_options" == "false" ]]; then + if [[ "$line" =~ ^###\ Options$ ]]; then + found_options=true + # Insert the formatted help output (which includes ### Options) + echo "$formatted_output" >> "$temp_file" + else + echo "$line" >> "$temp_file" + fi + # If we found ### Options, skip lines until we find # or ## + elif [[ "$found_end" == "false" ]]; then + if [[ "$line" =~ ^##?[[:space:]] ]]; then + found_end=true + echo "$line" >> "$temp_file" + fi + # Skip all other lines between ### Options and next # or ## + else + # After finding the end marker, keep all remaining lines + echo "$line" >> "$temp_file" + fi + done < "$UPDATE_FILE" -# Close the last code block if it's open -if [[ "$in_code_block" == "true" ]]; then - echo '```' + # Replace the original file + mv "$temp_file" "$UPDATE_FILE" + echo "Successfully updated $UPDATE_FILE" >&2 +else + # Default behavior: output to stdout + cat | process_help_output fi