Skip to content
Open

v23.0 #525

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/core/api/remote-procedure-call-quick-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ These RPCs are all Dash-specific and not found in Bitcoin Core
## [Evolution RPCs](../api/remote-procedure-calls-evo.md)

* [BLS](../api/remote-procedure-calls-evo.md#bls): provides a set of commands to execute BLS-related actions. _Updated in Dash Core 19.0.0_
* [ProTx](../api/remote-procedure-calls-evo.md#protx): provides a set of commands to execute ProTx related actions. _Updated in Dash Core 20.1.0_
* [ProTx](../api/remote-procedure-calls-evo.md#protx): provides a set of commands to execute ProTx related actions. **Updated in Dash Core 23.0.0**
* [Quorum](../api/remote-procedure-calls-evo.md#quorum): provides a set of commands for quorums (LLMQs). **Updated in Dash Core 22.0.0**
* [SubmitChainLock](../api/remote-procedure-calls-evo.md#submitchainlock): allows the submission of a ChainLock signature. _New in Dash Core 20.1.0_
* [VerifyChainLock](../api/remote-procedure-calls-evo.md#verifychainlock): tests if a quorum signature is valid for a ChainLock. _New in Dash Core 0.17.0_
Expand Down
301 changes: 197 additions & 104 deletions docs/core/api/remote-procedure-calls-evo.md

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions docs/user/masternodes/hosting.rst
Original file line number Diff line number Diff line change
Expand Up @@ -126,13 +126,13 @@ https://nodehub.io

- Operated by: NodeHub LLC
- Services: Hosting, Governance, Stats, Monitoring
- Cost: $4.80/month (charged daily at $0.16)
- Cost: $3.90/month (charged daily at $0.13)
- Accepts DASH as payment
- `Site <https://nodehub.io?utm_source=dashpay-docs&utm_medium=hosting-services>`__
- `Email <hello@nodehub.io>`__
- `Twitter <https://twitter.com/nodehubio>`__
- `X <https://x.com/nodehubio>`__
- `Telegram <https://t.me/nodehub>`__
- `Discord <https://discord.nodehub.io>`__
- `Discord <https://discord.com/invite/vvm6sem>`__


Gentarium
Expand Down
4 changes: 2 additions & 2 deletions docs/user/masternodes/setup-testnet.rst
Original file line number Diff line number Diff line change
Expand Up @@ -505,7 +505,7 @@ argument to the command as follows:
transaction
- ``collateralIndex``: The output index of the 1000 Dash funding
transaction
- ``ipAndPort``: Masternode IP address and port, in the format
- ``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
Expand All @@ -531,7 +531,7 @@ Example (remove line breaks if copying)::
protx register_prepare
16347a28f4e5edf39f4dceac60e2327931a25fdee1fb4b94b63eeacf0d5879e3
1
45.76.230.239:19999
["45.76.230.239:19999"]
yfgxFhqrdDG15ZWKJAN6dQvn6dZdgBPAip
99f20ed1538e28259ff80044982372519a2e6e4cdedb01c96f8f22e755b2b3124fbeebdf6de3587189cf44b3c6e7670e
yfRaZN8c3Erpqj9iKnmQ9QDBeUuRhWV3Mg
Expand Down
4 changes: 2 additions & 2 deletions docs/user/masternodes/setup.rst
Original file line number Diff line number Diff line change
Expand Up @@ -573,7 +573,7 @@ argument to the command as follows:
transaction
- ``collateralIndex``: The output index of the 1000 Dash funding
transaction
- ``ipAndPort``: Masternode IP address and port, in the format
- ``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
Expand All @@ -599,7 +599,7 @@ Example (remove line breaks if copying)::
protx register_prepare
16347a28f4e5edf39f4dceac60e2327931a25fdee1fb4b94b63eeacf0d5879e3
1
45.76.230.239:19999
["45.76.230.239:19999"]
yfgxFhqrdDG15ZWKJAN6dQvn6dZdgBPAip
99f20ed1538e28259ff80044982372519a2e6e4cdedb01c96f8f22e755b2b3124fbeebdf6de3587189cf44b3c6e7670e
yfRaZN8c3Erpqj9iKnmQ9QDBeUuRhWV3Mg
Expand Down
176 changes: 176 additions & 0 deletions scripts/core-rpc-tools/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
# Dash Core RPC Documentation Tools

This directory contains tools to assist with updating Dash Core RPC documentation when new versions are released.

## Overview

These scripts automate the process of:

1. Extracting all RPC command help text from Dash Core
2. Comparing RPC definitions between versions
3. Generating human-readable change summaries

This workflow helps documentation maintainers quickly identify what changed between Dash Core versions and update the RPC reference docs accordingly.

## Prerequisites

### Required Software

* **dash-cli**: The Dash Core command-line interface (from your local Dash Core build or installation)
* **Running Dash node**: A Dash node with RPC access (testnet, mainnet, or regtest)
* **Python 3**: For running the comparison script
* **jq**: For JSON processing (used by dump-cli-help.sh)
* **Bash**: For running the shell script

### Setup

1. Ensure your Dash node is running and synced
2. Verify dash-cli can connect to your node:

```bash
dash-cli -testnet getblockchaininfo
```

3. Install jq if not already installed:

```bash
# Ubuntu/Debian
sudo apt-get install jq

# macOS
brew install jq
```

## Complete Workflow

### Step 1: Dump RPC Help for the Old Version

First, dump all RPC help text from the version you're upgrading FROM:

```bash
cd scripts/core-rpc-tools

# Set path to your dash-cli for version 22.1.3 (example)
CLI="$HOME/dashcore-22.1.3/bin/dash-cli" NET_ARGS="-testnet" ./dump-cli-help.sh
```

This generates two files:

* `dash-cli-help-22.1.3-<timestamp>.txt` - Human-readable text file
* `dash-cli-help-22.1.3-<timestamp>.jsonl` - Machine-readable JSONL file

### Step 2: Dump RPC Help for the New Version

Switch to the new Dash Core version and dump its help:

```bash
# Restart your node with the new version
# Then dump help again
cd ~/code/dashpay-docs/scripts/core-rpc-tools
CLI="$HOME/dashcore-23.0.0/bin/dash-cli" NET_ARGS="-testnet" ./dump-cli-help.sh
```

This generates:

* `dash-cli-help-23.0.0-<timestamp>.txt`
* `dash-cli-help-23.0.0-<timestamp>.jsonl`

### Step 3: Generate Change Summary

Compare the two versions and generate a detailed change report:

```bash
# Pass the two JSONL files as command-line arguments
python3 generate-rpc-change-summary.py \
dash-cli-help-22.1.3-<timestamp>.jsonl \
dash-cli-help-23.0.0-<timestamp>.jsonl
```

This generates:

* `rpc-changes-summary-22.1.3-to-23.0.0.md` - Comprehensive change summary

## Script Details

### dump-cli-help.sh

**Purpose**: Extracts help text for all RPC commands and subcommands from dash-cli.

**Usage**:

```bash
./dump-cli-help.sh
```

**Configuration via Environment Variables**:

```bash
# Custom dash-cli path
CLI="/path/to/dash-cli" ./dump-cli-help.sh

# Different network
NET_ARGS="" ./dump-cli-help.sh # mainnet
```

**How It Works**:

1. Runs `dash-cli help` to get the full command list
2. Iterates through each command and captures `dash-cli help <command>`
3. Detects "family" RPCs (commands with subcommands like `protx`, `bls`, `coinjoin`)
4. For family RPCs, discovers and captures help for each subcommand
5. Outputs both human-readable text and structured JSONL format
6. Automatically extracts version from `dash-cli -version` and includes it in filenames

**Output Files**:

* **Text file** (`.txt`): Formatted for human reading, with headers and separators
* **JSONL file** (`.jsonl`): One JSON object per line, structured for machine parsing
* Metadata header with version, network, timestamp
* One record per command/subcommand with:
* `command`: Top-level command name
* `subcommand`: Subcommand name (null for root commands)
* `qualified`: Full command string (e.g., "protx register")
* `signature_tail`: Argument signature from help list
* `is_family`: Whether this is a family RPC with subcommands
* `help_raw`: Complete help text
* `help_sha256`: Hash for detecting changes

### generate-rpc-change-summary.py

**Purpose**: Compares two JSONL help dumps and generates a detailed change summary.

**Usage**:

```bash
python3 generate-rpc-change-summary.py <old_version.jsonl> <new_version.jsonl>
```

**Examples**:

```bash
# Compare version 22.1.3 to 23.0.0
python3 generate-rpc-change-summary.py \
dash-cli-help-22.1.3-20251104T214929Z.jsonl \
dash-cli-help-23.0.0-20251104T213450Z.jsonl

# The script automatically extracts version info from the JSONL metadata
# and creates an appropriately named output file
```

## Output Files Reference

After running the complete workflow, you'll have these files:

| File | Purpose | Format |
|------|---------|--------|
| `dash-cli-help-{version}-{timestamp}.txt` | Human-readable help dump | Plain text with headers |
| `dash-cli-help-{version}-{timestamp}.jsonl` | Machine-readable help dump | JSONL (one JSON per line) |
| `rpc-changes-summary-{oldver}-to-{newver}.md` | Change summary report | Markdown |

**Recommended versioning**: Keep all JSONL files in version control to track historical changes:

```bash
git add dash-cli-help-*.jsonl
git add rpc-changes-summary-*.md
git commit -m "feat: add RPC change analysis for <version>"
```
Loading