-
Notifications
You must be signed in to change notification settings - Fork 1.2k
chore: merge master 23.0.2 back into develop #7044
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-authored-by: thephez <thephez@users.noreply.github.com>
Replace Bitcoin Core PR numbers (>7000) with their corresponding Dash Core backport PR numbers in release notes: - bitcoin#24098 -> dashpay#6784 (REST API endpoints) - bitcoin#22650 -> dashpay#6569 (deprecatedrpc=addresses removal) - bitcoin#22918 -> dashpay#6577 (getblock verbosity level 3) - bitcoin#23093 -> dashpay#6577 (newkeypool RPC) - bitcoin#24629 -> dashpay#6784 (pruneblockchain fix) - bitcoin#25158 -> dashpay#6780 (abandoned field in wallet RPCs)
ebf3a64 docs: typos (pasta) 4ad5533 docs: typos (pasta) f407453 doc: Replace Bitcoin Core PR references with Dash Core backport PRs (pasta) 78d0725 docs: add note on proto bump and platformban p2p (pasta) e0519c3 docs: fix whitespace errors (pasta) bc8db22 docs: minor improvements to release notes (pasta) c338511 docs: reorganize rpc updates to organize extended address changes (thephez) 700c46e style: make heading style consistent (thephez) bd636bd docs: add contributors (pasta) 6d29bc3 docs: revert changes deferred to v24 (pasta) 615f5ff docs: make the downgrade warning more confident (pasta) 567771a Apply suggestions from code review (PastaPastaPasta) 2b3211a docs: add link to 22.1.3 release notes (pasta) 548a38a docs: remove individual release notes files (pasta) e770c25 docs: add v23.0.0 release notes and archive v22.1.3 (pasta) Pull request description: ## Issue being fixed or feature implemented Add release notes for v23 ## What was done? ## How Has This Been Tested? ## Breaking Changes ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: UdjinM6: utACK ebf3a64 Tree-SHA512: 9e11cb70d8b9abd0e8c4c53b4337b319416f8c785ae98fc65a8e4ba1778433876654969d93ee28c5021074b9b3f490c76647af3a5f89d7d4c25244ff27ff83d9
af85608 fix: improve governance/proposal dialog strings (UdjinM6) Pull request description: ## Issue being fixed or feature implemented - make strings easier to translate - stop translating non-translatable strings - use `%n` where possible ## What was done? ## How Has This Been Tested? ## Breaking Changes n/a ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ Top commit has no ACKs. Tree-SHA512: bba2247fc64f152656972d7e30c12eea6d892a622751c8e798a0ccb522c297356b1ae3964d9db25aa1c920eb71d862e026b0a490ddce784563aea9caa5445425
9ae459f ro (UdjinM6) c3cc47a bg (UdjinM6) c0c1162 vi (UdjinM6) 0970d9b ar (UdjinM6) 04d9f06 th (UdjinM6) 32651c7 ko (UdjinM6) 2c0bd3a ja (UdjinM6) 7b5e6ee zh_TW (UdjinM6) 6e243b2 zh_CN (UdjinM6) 3b5f27a tr (UdjinM6) b609d38 sk (UdjinM6) 5179544 fi (UdjinM6) 6c3c628 pt (UdjinM6) 236f2ce pl (UdjinM6) ddc40a9 nl (UdjinM6) 00c7afe it (UdjinM6) bc58127 fr (UdjinM6) 6bbb222 es (UdjinM6) fbbf013 de (UdjinM6) fdf5645 ru (UdjinM6) 10d5bd5 en + dashstrings.cpp (UdjinM6) Pull request description: ## Issue being fixed or feature implemented NOTE: translated via Claude ## What was done? ## How Has This Been Tested? ## Breaking Changes ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ Top commit has no ACKs. Tree-SHA512: 0f07c9b2eaec01c4678e87d3b490ebaa1c090304c619dbf5d6db1e323b4f856b436be3ca8ac474dfbd54faae3d90b24508f2548bba2a75fca6a64fc244cdd4e3
…points, seeds and SECURITY.md for v23 0a1407b docs: update supported versions in SECURITY.md (Kittywhiskers Van Gogh) 8727d3c chore: update testnet seeds for v23 (Kittywhiskers Van Gogh) e1116f6 chore: update mainnet seeds for v23 (Kittywhiskers Van Gogh) d9fe32f chore: drop unreachable onion seeds (Kittywhiskers Van Gogh) 4e52655 chore: update `m_assumed_blockchain_size` for v23 (Kittywhiskers Van Gogh) adb2992 chore: update minimum chain work, tx stats and checkpoints for v23 (Kittywhiskers Van Gogh) Pull request description: ## Additional Information * The blocks used as checkpoints are * For mainnet, block 2361500 (`0x0x0000000000000009ba1e8f47851d036bb618a4f6565eb3c32d1f647d450ff195`, [Insight](https://explorer.dash.org/insight/block/0000000000000009ba1e8f47851d036bb618a4f6565eb3c32d1f647d450ff195)) * For testnet, block 1239600 (`0x00000107d42829a38e31c1a38c660d621e1ca376a880df1520e85e38af175d3a`, [Insight](https://insight.testnet.networks.dash.org/insight/block/00000107d42829a38e31c1a38c660d621e1ca376a880df1520e85e38af175d3a)) * `m_assumed_{blockchain,chain_state}_size` calculations * Mainnet synced till block 2361620, Dash Core v22.1.3 (release) ```bash $ du --exclude ~/.dashcore/testnet3 --max-depth=0 -h ~/.dashcore 49G /home/debian/.dashcore $ python3 -c "print(round(49*1.1))" # 10% leeway 54 $ du --max-depth=0 -h ~/.dashcore/chainstate 240M /home/debian/.dashcore/chainstate ``` As `m_assumed_chain_state_size` is still <1GB, we don't update it * Testnet synced till block 1352330, Dash Core f650f65 (pre-release) ```bash $ du --max-depth=0 -h ~/.dashcore/testnet3 8.7G /home/debian/.dashcore/testnet3 $ python3 -c "print(round(8.7*1.1))" # 10% leeway 10 $ du --max-depth=0 -h ~/.dashcore/testnet3/chainstate 68M /home/debian/.dashcore/chainstate ``` * Mainnet seeds generated using `protx list valid 1 2361500`, testnet seeds generated using `protx list valid 1 1353660`, commenting out deduplication ([source](https://github.com/dashpay/dash/blob/e4fa575ac463d04a745830f43bb28daf31b41d26/contrib/seeds/makeseeds.py#L203-L205)) and raising the `MAX_SEEDS_PER_ASN` to 10 ([source](https://github.com/dashpay/dash/blob/e4fa575ac463d04a745830f43bb28daf31b41d26/contrib/seeds/makeseeds.py#L23)) ## Breaking Changes None expected. ## Checklist - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)** - [x] I have added or updated relevant unit/integration/functional/e2e tests **(note: N/A)** - [x] I have made corresponding changes to the documentation **(note: N/A)** - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: UdjinM6: utACK 0a1407b Tree-SHA512: c4c463b91da0a4c35b0ddadcd9a261424551f49f6889c848ae02d912671e3b6fec07b4725cecce04a755fab7443939eeb0fb51e2b53a8dbe83db7287712df095
25ecd50 fix: follow-up for 6920 to update checkpoints for testnet in man pages (Konstantin Akimov) 28a0689 fix: fixup checkpoints in man (Konstantin Akimov) faa58da docs: update man pages for 23.0 (Konstantin Akimov) Pull request description: ## Issue being fixed or feature implemented dashpay#6884 ## What was done? updated man pages for v23 release ## How Has This Been Tested? N/A ## Breaking Changes N/A ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone ACKs for top commit: UdjinM6: utACK 25ecd50 Tree-SHA512: 7c72cbf0acf36ec4fb3b1b1e4fb7b480f7677e118df7ac3a0455989bb6a309190c3c1d7a38ae4f8e0f648d99bfbcef6da9c1a5efb1c616f4d0e8d8603746bd69
…ftforks]` help text, drop extra `generate`s from test, resolve macOS GID issue 39e847c fix: do not create group if GID is already taken (Kittywhiskers Van Gogh) 36db83a fix: annotate `getblockchaininfo[softforks]` as `OBJ_DYN` (Kittywhiskers Van Gogh) e4ace44 fix: repair IP extraction in `makeseeds.py`, read from `core_p2p` arr (Kittywhiskers Van Gogh) 9ef8c53 test: drop extra `generate`s from `wallet_signrawtransactionwithwallet` (Kittywhiskers Van Gogh) Pull request description: ## Additional Information * The help text for `getblockchaininfo['softforks']` was introduced in [bitcoin#16060](bitcoin#16060) (backported in [dash#5255](dashpay#5255)) _but_ the `RPCResult` help text was introduced in [bitcoin#17809](bitcoin#17809), backported _before_ [bitcoin#16060](bitcoin#16060). This resulted in the help text for `softforks` deviating from upstream without the output to match (which is aligned with upstream). This has since been resolved as the output structure hasn't changed, only the help text. * [bitcoin#22818](bitcoin#22818) (backported in [dash#6214](dashpay#6214)) activated many softforks at height 1, which rendered the block generation calls in `wallet_signrawtransactionwithwallet.py` ([source](https://github.com/dashpay/dash/blob/3e6e8f57c45fb24107816a10854ed8f349c4aa20/test/functional/wallet_signrawtransactionwithwallet.py#L132-L133)) no longer necessary, additionally [bitcoin#22550](bitcoin#22550) (backported in [dash#6189](dashpay#6189)) added assertions to validate CSV/CLTV activation that were not included in the backport. This has since been resolved, replacing the `generate` calls with assertions. * The locktime height was dropped from `1000` to `100` (matching with upstream, [source](https://github.com/bitcoin/bitcoin/blob/24.x/test/functional/wallet_signrawtransactionwithwallet.py#L219)) as we are no longer generating enough blocks to reach that height anymore. * `makeseeds.py` is currently mangled because [dash#6666](dashpay#6666) updated the script to look for the `core_p2p` purpose even though purpose code support was spun-off into [dash#6674](dashpay#6674). This meant, in between [dash#6666](dashpay#6666) and [dash#6674](dashpay#6674 merger, `makeseeds.py` was broken. This necessitated a fix that was introduced as e714c06 ([dash#6858](dashpay#6858)) but meant that after [dash#6674](dashpay#6674), `makeseeds.py` is broken again. This has been resolved as part of this PR. * macOS users who want to utilise the `develop` container ([source](https://github.com/dashpay/dash/blob/b82450aa7dce2307b13e6fe282f7c4f84b48cbbf/contrib/containers/develop/Dockerfile)) need to set the `USER_ID` and `GROUP_ID` `args` to avoid permissions issues. This creates a slight problem as the GID for `staff` is 20 on macOS but Linux uses GID 20 for `dialout`, so creating a group with GID 20 will _fail_. As we only care about the GID, it is safe to skip the group creation step and assign the user to the group anyways as we do it by GID and _not_ name (the user will be presented as a member of the `dialout` group). This should resolve issues for macOS users trying to build the `develop` container. ## Breaking Changes None expected. ## Checklist - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)** - [x] I have added or updated relevant unit/integration/functional/e2e tests - [x] I have made corresponding changes to the documentation **(note: N/A)** - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK 39e847c knst: utACK 39e847c UdjinM6: utACK 39e847c Tree-SHA512: 0ecb8bb930d54d4b9024a6e94a2fe3b49c7334666e5f67d38920ac58f54332fb8b4f62bd883bd949969d60b6b5183c7a20a3593f24c2e6bbbb0de143b3de8fe1
d89646d fix: logic error in `CheckDecryptionKey` (UdjinM6) Pull request description: ## Issue being fixed or feature implemented The issue was introduced via dashpay@392b51b ## What was done? ## How Has This Been Tested? ## Breaking Changes ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK d89646d knst: utACK d89646d Tree-SHA512: 31419798b3c05bb3c4c30cf02b819c899e0d0e0048775d907099c6507afaf189d12eeb8ec33232801e1874fe9c156558e7936a43f34cce1409ca273c3bc1919c
…dition c0faae0 fix: reuse best clsig to avoid potential race condition (Kittywhiskers Van Gogh) 98dc874 trivial: use `GetBestChainLockHeight()` (Kittywhiskers Van Gogh) Pull request description: ## Additional Information Fix for potential race condition identified by CodeRabbit in [dash#6933](dashpay#6933) ([comment](dashpay#6933 (comment))) ## Breaking Changes None expected. ## Checklist - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)** - [x] I have added or updated relevant unit/integration/functional/e2e tests **(note: N/A)** - [x] I have made corresponding changes to the documentation **(note: N/A)** - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: UdjinM6: utACK c0faae0 Tree-SHA512: 74762c5d715405a32af4a58553c05dc2fd98cdb7f038a519cf244a7c84a6a536ff341d8e8f534dbb6a0df952730314f85c52738c4d5b2e72fa74a4f02a6b2237
…s for composite methods 5978985 fix: don't treat arrays/objects as string literals for composite methods (Kittywhiskers Van Gogh) Pull request description: ## Additional Information thephez identified a bug where attempting to specify arrays as expected by `coreP2PAddrs`, `platformHTTPSAddrs` or `platformP2PAddrs` using `dash-cli` or the Qt wallet resulted in errors (see below) ``` $ ./src/dash-cli --testnet protx register_prepare "6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000" 1 '["1.1.1.1:19999"]' "yhq7ifNCtTKEpY4Yu5XPCcztQco6Fh6JsZ" "93746e8731c57f87f79b3620a7982924e2931717d49540a85864bd543de11c43fb868fd63e501a1db37e19ed59ae6db4" "yTretFTpoi3oQ3maZk5QadGaDWPiKnmDBc" 0 "yNbNZyCiTYSFtDwEXt7jChV7tZVYX862ua" error code: -8 error message: Error setting coreP2PAddrs[0] to '["1.1.1.1:19999"]' (invalid input) ``` This was not caught by functional tests as they send fully formed JSON messages and do not require JSON client interpretation, which both `dash-cli` and Dash Qt require, this pull request adds additional handling to ensure that arrays and objects are interpreted if they are likely to be so (starting and ending with curly or square brackets) or otherwise passed as-is as a string. What this pull request _isn't_ is full fledged conversion support for composite RPC arguments to other non-string types like integers, the scope here is specifically to allow for the backwards compatibility logic for `coreP2PAddrs`, `platformHTTPSAddrs` or `platformP2PAddrs` to work as intended. With this pull request, the following result is expected (see below) ``` $ ./src/dash-cli --testnet protx register_prepare "6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000" 1 '["1.1.1.1:19999"]' "yhq7ifNCtTKEpY4Yu5XPCcztQco6Fh6JsZ" "93746e8731c57f87f79b3620a7982924e2931717d49540a85864bd543de11c43fb868fd63e501a1db37e19ed59ae6db4" "yTretFTpoi3oQ3maZk5QadGaDWPiKnmDBc" 0 "yNbNZyCiTYSFtDwEXt7jChV7tZVYX862ua" error code: -32603 error message: No funds at specified address yNbNZyCiTYSFtDwEXt7jChV7tZVYX862ua ``` ## Breaking Changes None expected. ## Checklist - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have added or updated relevant unit/integration/functional/e2e tests - [x] I have made corresponding changes to the documentation **(note: N/A)** - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: UdjinM6: utACK 5978985 Tree-SHA512: 9271d7a4c5f463611a10c7edcb0cea929d6d7e0c07d6b962f4aca40483f84ff17b29e3d6b84c465c267734ff6e93e2148e11af0ad19ce58585ed3200fc3e3b01
9531028 security: Store mnemonic words in secure memory (pasta) 5024589 doc: Add release notes for PR dashpay#6946 (pasta) a0b15cf refactor: Simplify wallet lock state handling in CreateWalletActivity (UdjinM6) 34914f1 feat: Add menu option to show recovery phrase for existing wallets (UdjinM6) 3b16a88 fix: Restore dialog size when going back from verification to word list (UdjinM6) f79a750 refactor: Move wallet creation dialog styles from C++ to CSS (UdjinM6) fd3c1eb Simplify mnemonic retrieval (pasta) 9894f47 Fix trailing whitespace in wallet creation files (pasta) e08e29f qt: Fix potential infinite loop and missing include in mnemonic verification (pasta) 77c3aeb qt: Improve wallet creation UI flow (pasta) f3219ee qt: avoid modifying QString during regex iteration in GUIUtil::loadStyleSheet (pasta) Pull request description: ## Issue being fixed or feature implemented Improve QT wallet creation process to display the seed to users. Release notes tbd ## What was done? <img width="438" height="236" alt="Screenshot 2025-11-05 at 21 07 38" src="https://github.com/user-attachments/assets/c7fda5bf-cb5f-4ccb-a3a3-7c74c1f01ce8" /> <img width="425" height="332" alt="Screenshot 2025-11-05 at 21 07 50" src="https://github.com/user-attachments/assets/3861b0bc-6f53-41e9-b800-12e7e81b1524" /> <img width="573" height="403" alt="Screenshot 2025-11-05 at 21 08 09" src="https://github.com/user-attachments/assets/bffd2400-5cf0-4d34-9ec4-f8f2a875cbfa" /> <img width="560" height="396" alt="Screenshot 2025-11-05 at 21 08 18" src="https://github.com/user-attachments/assets/36a54cc2-9422-4f79-82c4-cbadd1127910" /> <img width="480" height="383" alt="Screenshot 2025-11-05 at 21 08 42" src="https://github.com/user-attachments/assets/02e31e2c-f7bf-49ca-a13e-2a04a824c7ad" /> <img width="474" height="379" alt="Screenshot 2025-11-05 at 21 09 10" src="https://github.com/user-attachments/assets/35cc1169-b616-4678-ab64-f05a871032b7" /> <img width="479" height="378" alt="Screenshot 2025-11-05 at 21 09 26" src="https://github.com/user-attachments/assets/b124b15f-f0f3-4dc7-a327-3861dd6ac5ab" /> ## Breaking Changes None ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: UdjinM6: ACK 9531028 Tree-SHA512: eb618eb68bc055a0fd0e434f7039efe75c420ffd01422211acde21e622d5ce0243a7a9d96e9bd654c7015f18b1beff044526cbe804f01dee9c961a7a0ebe1204
6fd7059 chore: mark v23 as release (pasta) ae08f53 docs: integrate 6946 release notes into final (pasta) 74a222d Merge dashpay#6946: feat: show seed on wallet creation (pasta) 877343a Merge dashpay#6943: fix: don't treat arrays/objects as string literals for composite methods (pasta) 00368fb Merge dashpay#6940: fix: reuse best clsig to avoid potential race condition (pasta) 8eceb98 Merge dashpay#6938: fix: logic error in `CheckDecryptionKey` (pasta) 3f30664 Merge dashpay#6929: fix: repair `makeseeds.py`, `getblockchaininfo[softforks]` help text, drop extra `generate`s from test, resolve macOS GID issue (pasta) 7ba4f1c Merge dashpay#6928: docs: update man pages for 23.0 (pasta) a6c1d6a Merge dashpay#6920: chore: update minimum chain work, tx stats, checkpoints, seeds and SECURITY.md for v23 (pasta) 84df1f0 Merge dashpay#6909: chore: Translations 2025-10 (pasta) a6449b1 Merge dashpay#6885: fix: improve governance/proposal dialog strings (pasta) Pull request description: ## Issue being fixed or feature implemented See commits ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: UdjinM6: utACK 6fd7059 Tree-SHA512: a0d93a61a4f4978fbe120bea832ce683a8ae7c16c892a381d91ddc4b25344c0f3ad3306a1a30a166a7dfa6e38e4532708587cc23cc372126828b8e22d141dc85
35dc258 chore: trivial cleanup (UdjinM6) 96de036 fix: HD chain encryption check ordering issue (UdjinM6) Pull request description: ## Issue being fixed or feature implemented Previously, LoadHDChain() would fail if CRYPTED_HDCHAIN records were read before MASTER_KEY records during wallet loading, because the check `m_storage.HasEncryptionKeys() != chain.IsCrypted()` would incorrectly fail when mapMasterKeys was still empty. This PR fixes the issue by: - Adding an optional fSkipEncryptionCheck parameter to LoadHDChain() - Skipping the encryption check during wallet loading in ReadKeyValue() - Adding comprehensive validation in LoadWallet() after all records are loaded to ensure HD chain encryption consistency ## What was done? ## How Has This Been Tested? run tests ## Breaking Changes n/a ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK 35dc258 Tree-SHA512: f986209cb03a87559ddf417a7b0f833303968918086f125170b372d0856f5dd22d41ff3577e788ed100133d6862ca532228c857c4e862f526e53609b0324568e
04b647f doc: update `dependencies.md` (Kittywhiskers Van Gogh) 5046964 depends: add patches included with Qt 5.15.19 (Kittywhiskers Van Gogh) 0286d78 depends: Qt 5.15.18 (Kittywhiskers Van Gogh) Pull request description: ## Motivation Bitcoin switched to Qt 6.x in [bitcoin#30997](bitcoin#30997), upgrading from Qt 5.15.16 to Qt 6.7.3. This transition was enabled by, alongside a series of changes to GUI code, migrating the build system to CMake (see [bitcoin#30454](bitcoin#30454)). While efforts have been undertaken to bridge the gap between the pre-transition Autotools infrastructure and our infrastructure, migration is complicated by two factors: * The need for significant OOO backports to bridge the gap * Our divergence from upstream's GUI implementation that will require manual assessment to follow best Qt 6 practices This means that the timeline to migration is medium-term at best but in the meanwhile, the latest OSS version of Qt is 5.15.18 ([source](https://lists.qt-project.org/pipermail/announce/2025-October/000592.html)) and between 5.15.16 and 5.15.19 (the as-of-this-writing, still proprietary release of Qt, [source](https://www.qt.io/blog/commercial-lts-qt-5.15.19-released)), mitigations for vulnerabilities have been included ([source](https://wiki.qt.io/List_of_known_vulnerabilities_in_Qt_products)). While Qt 5.15.19 OSS is not available, critical patches shipped with them are. This pull request updates our Qt depends to the latest available OSS release (v5.15.18) and includes the patches included in the 5.15.19 release. ## Additional Information * Guidance on patch application has been taken from the `qt@5` Homebrew formula ([source](https://github.com/Homebrew/homebrew-core/blob/013dad6a9c390da76aacba8249afa47d4c807a85/Formula/q/qt@5.rb)). * The patches themselves have been sourced from Qt ([source](https://download.qt.io/archive/qt/5.15/)) and modified to fit the build's directory structure, it should remain identical otherwise. *`clang_18_libpng.patch` has been dropped as it is already included in v5.15.18 ## Breaking Changes None expected. ## Checklist - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)** - [x] I have added or updated relevant unit/integration/functional/e2e tests **(note: N/A)** - [x] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK 04b647f UdjinM6: light ACK 04b647f Tree-SHA512: 02e497e32561fcd91c4a08cf389a522cec14b8fc98cd3b5c4bc108d829dc32009c8ade52651e4f56d0d43b9cbad2d2cff9a6ec95e1bfc5a4b2167c0a8d47e791
…Diffs()` when `nVersion` is present 65c33ea fix: correct BLS scheme setting in `MigrateLegacyDiffs()` when `nVersion` is present (UdjinM6) Pull request description: ## Issue being fixed or feature implemented BLS public key legacy scheme is only being set when `nVersion` field is missing and needed to be auto-filled, instead of being set whenever a `pubKeyOperator` field is present. ## What was done? Moved the `SetLegacy()` call outside the `nVersion` check. ## How Has This Been Tested? Migrate on mainnet at block 2367886 ## Breaking Changes n/a ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: kwvg: utACK 65c33ea Tree-SHA512: e68bc9ae9dc8fa0c780b64225ea1b9be10c1a097dd10cbc5d7d91a6e84ac0ffb75c37dd2b7bd60e7e93f25b8c395e74054b9e2360f3ea549b9e293fd2308e15e
…instant send database 42b3341 perf: remove duplicated check of same key in the instant send database (Konstantin Akimov) Pull request description: ## Issue being fixed or feature implemented Previous implementation checked both Deterministic and Non-deterministic instant send locks; though once non-determinstic has been removed, implementation has been updated and now the same key is checked twice. ## What was done? This PR removes duplicated check ## How Has This Been Tested? See CI ## Breaking Changes N/A ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone ACKs for top commit: PastaPastaPasta: utACK [42b3341](dashpay@42b3341) kwvg: utACK 42b3341 UdjinM6: utACK 42b3341 Tree-SHA512: f0213e7ad8f4d380561538d194a9fc9ed1b1ed4580f1848aa14d7958b817ac716e09bb4b83f611a86b2f1b8d920fb65f87721b35bee8f7e84b97193eae459adb
f8be956 refactor: rename second BuildNewListFromBlock variant to RebuildListFromBlock (UdjinM6) f3ee1d7 refactor: move verification progress log out of VerifySnapshotPair (UdjinM6) f482f01 fix: drop redundant thread safety annotations (UdjinM6) 6df3a7c docs: add release notes for evodb verify/repair RPCs (UdjinM6) 7decd15 docs: add comprehensive evodb verify/repair documentation (UdjinM6) 17b556a feat: add evodb verify and repair RPC commands (UdjinM6) 5379fce refactor: add CDeterministicMNList::IsEqual method (UdjinM6) 496ed89 refactor: add BuildNewListFromBlock overload accepting explicit prevList (UdjinM6) Pull request description: ## Issue being fixed or feature implemented dashpay#6961 should fix the issue for new nodes migrating to v23. This PR aims to provide tools for nodes that updated before the fix implemented in dashpay#6961. ## What was done? Preparatory Refactoring (2 commits) 1. BuildNewListFromBlock overload - Added method overload that accepts explicit prevList parameter instead of loading from database. Needed for repair to rebuild from trusted snapshots. 2. CDeterministicMNList::IsEqual - Added equality comparison method to verify recalculated diffs produce correct results. Main Feature (1 commit) 3. evodb verify and repair RPCs - Core implementation: - Two new hidden RPC commands for diagnosing/repairing corrupted evodb diffs - evodb verify - Read-only verification between snapshots (every 576 blocks) - evodb repair - Recalculates corrupted diffs from blockchain data - Fail-fast on critical errors, efficient 16MB batched writes, cache clearing Documentation (2 commits) 4. Comprehensive docs - Full technical documentation in doc/evodb-verify-repair.md 5. Release notes - Short user-facing notes in doc/release-notes-6969.md Key Points - Purpose: Repair corrupted evodb diffs without full reindex (when possible) - Use cases: After crashes, disk corruption, or suspected database issues - Limitations: Can't repair missing snapshots (needs reindex), requires unpruned blocks - Performance: I/O intensive, logs progress every 100 snapshot pairs - Safety: Verifies repairs before committing, clears caches, clear error messages ## How Has This Been Tested? 1. Sync on testnet/mainet with v22.1.3 (save evodb from datadir for repeated experiments) and stop the node 2. Start v23 (with `--noconnect` to avoid altering blocks and chainstate), wait for migration to finish and stop the node 3. Start a node with this patch and run: 1. `evodb verify`, should see a bunch of errors in `verificationErrors` 2. `evodb repair`, should see same errors in `verificationErrors` and none in `repairErrors` (can specify start/stop params from errors in `verificationErrors` to speed things up a bit, `verificationErrors` should look accordingly) 3. `evodb verify` or `evodb repair` again, should see no errors now ## Breaking Changes n/a ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK f8be956 Tree-SHA512: 0cddb7f9fb3ae5519ae8cdb868aafbaeace35ca9f5fa7319d7ddbee3466e7765a21a8bae402983e3fc8f0a2ffab32c8bc60149af65bc2522143ca939b081c605
f961e04 fix: initialize BLS in benchmarking setup (pasta) Pull request description: ## Issue being fixed or feature implemented Crashes like below happen when BLS bench's are ran w/o BLS_DKG bench's ``` > $ ./src/bench/bench_dash --filter="BLS_.*" [±ci/run-bench ●] | ns/op | op/s | err% | total | benchmark |--------------------:|--------------------:|--------:|----------:|:---------- | 70,625.77 | 14,159.14 | 0.5% | 0.08 | `BLS_PubKeyAggregate_Batch_100` | 143,101.94 | 6,988.03 | 0.6% | 0.17 | `BLS_PubKeyAggregate_Batch_200` | 16,714.92 | 59,826.77 | 1.4% | 0.02 | `BLS_PubKeyAggregate_Batch_25` | 2,733.86 | 365,783.71 | 0.9% | 0.01 | `BLS_PubKeyAggregate_Batch_5` | 34,708.34 | 28,811.52 | 0.7% | 0.04 | `BLS_PubKeyAggregate_Batch_50` | 77,659.39 | 12,876.74 | 0.5% | 0.09 | `BLS_PubKeyAggregate_Iterative_100` | 155,927.75 | 6,413.23 | 0.8% | 0.19 | `BLS_PubKeyAggregate_Iterative_200` | 18,291.67 | 54,669.70 | 1.3% | 0.02 | `BLS_PubKeyAggregate_Iterative_25` | 2,830.29 | 353,320.46 | 0.5% | 0.01 | `BLS_PubKeyAggregate_Iterative_5` | 37,932.04 | 26,362.94 | 0.9% | 0.05 | `BLS_PubKeyAggregate_Iterative_50` | 777.73 | 1,285,787.58 | 1.5% | 0.01 | `BLS_PubKeyAggregate_Normal` | 390.42 | 2,561,315.62 | 1.2% | 0.01 | `BLS_SecKeyAggregate_Normal` | 516,138.10 | 1,937.47 | 0.3% | 0.62 | `BLS_Sign_Normal` | 1,463.50 | 683,294.10 | 0.8% | 0.01 | `BLS_SignatureAggregate_Normal` expected valid but it is invalid Assertion failure: assertion: false file: bls.cpp, line: 301 function: operator() 0#: (0x103732300) stacktraces.cpp:640 - __assert_rtn 1#: (0x102AB46CC) basic_ostream.h - BLS_Verify_Batched(ankerl::nanobench::Bench&)::$_0::operator()() const 2#: (0x102AB46CC) nanobench.h:1221 - ankerl::nanobench::Bench& ankerl::nanobench::Bench::run<BLS_Verify_Batched(ankerl::nanobench::Bench&)::$_0>(BLS_Verify_Batched(ankerl::nanobench::Bench&)::$_0&&) 3#: (0x102AAFBE4) vector:1933 - std::__1::vector<bool, std::__1::allocator<bool>>::__destroy_vector::operator()[abi:ne190102]() 4#: (0x102AAFBE4) vector:1942 - std::__1::vector<bool, std::__1::allocator<bool>>::~vector[abi:ne190102]() 5#: (0x102AAFBE4) vector:1942 - std::__1::vector<bool, std::__1::allocator<bool>>::~vector[abi:ne190102]() 6#: (0x102AAFBE4) bls.cpp:305 - BLS_Verify_Batched(ankerl::nanobench::Bench&) 7#: (0x102A9605C) function.h - std::__1::__function::__value_func<void (ankerl::nanobench::Bench&)>::operator()[abi:ne190102](ankerl::nanobench::Bench&) const 8#: (0x102A9605C) function.h:989 - std::__1::function<void (ankerl::nanobench::Bench&)>::operator()(ankerl::nanobench::Bench&) const 9#: (0x102A9605C) bench.cpp:120 - benchmark::BenchRunner::RunAll(benchmark::Args const&) 10#: (0x102AA8EE4) string:1881 - std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::__is_long[abi:ne190102]() const 11#: (0x102AA8EE4) string:1212 - std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::~basic_string() 12#: (0x102AA8EE4) string:1210 - std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::~basic_string() 13#: (0x102AA8EE4) bench.h:54 - benchmark::Args::~Args() 14#: (0x102AA8EE4) bench.h:54 - benchmark::Args::~Args() 15#: (0x102AA8EE4) bench_bitcoin.cpp:137 - main 16#: (0x1919C0274) <unknown-file> - ??? Assertion failed: (false), function operator(), file bls.cpp, line 301. [1] 20836 abort ./src/bench/bench_dash --filter="BLS_.*" ``` ## What was done? Don't assume scheme ## How Has This Been Tested? Bench ran ## Breaking Changes ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: UdjinM6: ACK f961e04 Tree-SHA512: b71017742a6217d0aaac01113e0878e5adf4b0d33f97631784110cabab11cc09696505309089e5fc7eec1803d373a9e753b275268e14b418dd97787d47fd3ba4
…epair operations 084bb62 chore: clang-format (UdjinM6) ce506bc perf: reduce cs_main lock scope in evodb verify/repair operations (UdjinM6) Pull request description: ## Issue being fixed or feature implemented Previously, evodb_verify_or_repair_impl held cs_main for the entire operation, which could take minutes when verifying/repairing large block ranges. This caused significant lock contention and blocked other operations requiring cs_main. This commit reduces the cs_main lock scope to only the initial setup phase where we resolve block indexes from the active chain. The actual verification and repair work (applying diffs, rebuilding lists from blocks, verifying snapshots) now runs without holding cs_main. ## What was done? Changes: - Wrap block index resolution in a scoped cs_main lock - Remove AssertLockHeld(cs_main) from helper functions: * RecalculateAndRepairDiffs * CollectSnapshotBlocks * VerifySnapshotPair * RepairSnapshotPair * RebuildListFromBlock (CSpecialTxProcessor) - Update function signatures to remove EXCLUSIVE_LOCKS_REQUIRED(cs_main) ## How Has This Been Tested? Run evodb verify/repair on a mainnet node and monitor logs - it keeps processing other stuff while rpc command is still running. ## Breaking Changes This is safe because: - CBlockIndex pointers remain valid after lock release (never deleted) - Block parent relationships (pprev, GetAncestor) are immutable - ReadBlockFromDisk takes cs_main internally when accessing nFile/nDataPos - Helper functions only process already-loaded block data and snapshots - ChainLocks prevent deep reorgs in Dash anyway ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: kwvg: utACK 084bb62 knst: utACK 084bb62 Tree-SHA512: aa0db93133767cc6de897d2989c35f00d1cd0506c51463a86cb76cbbe51ea8be5372efb9dbc16791992d8128bc26812e075d13c30c396f97f22198e9611e75dc
… at node startup 2e5fdd8 feat: verify and repair evodb diffs automatically at node startup (UdjinM6) Pull request description: ## Issue being fixed or feature implemented Automatically verify and repair deterministic masternode list diffs in evodb during node startup. Helps detect and fix database corruption without manual intervention. ## What was done? - Add `DB_LIST_REPAIRED` marker to track when repair is complete - Skip repair during reindex (fresh rebuild) - Add `-forceevodbrepair` flag to force re-verification - Shutdown gracefully on critical errors with user instructions - Run in background thread with minimal `cs_main` locking ## How Has This Been Tested? Run a node, check logs ## Breaking Changes n/a ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: PastaPastaPasta: utACK 2e5fdd8 kwvg: utACK 2e5fdd8 --- nit suggestions to be considered only if other reviews request changes, else disregard Tree-SHA512: 6f78e90057bd3e2f8cc7948ce8c6cd14ac0f33395b2c552d89f2abda50159ebfe1f957a2dcf59bc712a495bf12a7f796ab9f3902f90035add70475bffe37def2
3cce090 fix: include QDebug directly (pasta) Pull request description: ## Issue being fixed or feature implemented QT packages shipped with Debian 13 currently doesn't build, due to missing QDebug include. ## What was done? directly include ## How Has This Been Tested? Builds on Debian 13 w/ system packages ## Breaking Changes ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: knst: utACK 3cce090 kwvg: utACK 3cce090 UdjinM6: utACK 3cce090 Tree-SHA512: 4a0e2d7e4cdc7d1d805d6e2e002be6f029af807b69ea15a2199fa884a1afab12524570f1b2ef3615dbf4cd9ea59f2d22e98110450d7335f8694f335b8d5014c8
… size based on output flag b220dec fix: update BuildTestVectors call to adjust batch size based on output flag (pasta) Pull request description: ## Issue being fixed or feature implemented see dashpay#7011 ## What was done? ## How Has This Been Tested? runs locally; but I didn't reproduce the failure, likely due to different compilation flags. Even with undefined sanitizer, I couldn't reproduce. ## Breaking Changes ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: UdjinM6: utACK b220dec Tree-SHA512: 5cfb630c576abf7f019348fd4acd878ab44485bd0b658521660259ed1ea0570b46eafbbd783bc58f2b707d549f6daf74e1c8f16a636b597d1c3e9aab386f5722
…k size just 64kb instead 16Mb def5d0a chore: fix indentation (UdjinM6) 7a93394 test: inline node_p2p_port to dynamically_prepare_masternode instead passing args (Konstantin Akimov) 37c6855 fix: priority -fastprune over -tinyblock (Konstantin Akimov) 375bf9d test: new commandline argument -tinyblk to use blk size just 64kb instead 1Mb (Konstantin Akimov) 99f8abf test: avoid copy-paste when update dip3 params in dash.conf (Konstantin Akimov) 2972e84 test: removed duplicated code from dynamically_initialize_datadir with dash.conf preparation (Konstantin Akimov) 521d92f tests: unify dash.conf for dynamically added masternodes and statically added (Konstantin Akimov) Pull request description: ## Issue being fixed or feature implemented Even trivial functional tests that have only genesis blocks without any funds still creates 2 files 17 Mbs in total: 16Mb files for blk00000.dat and 1Mb for rev00000.dat for each node: ``` $ test/functional/rpc_help.py --nocleanup <succeed> $ find /tmp/dash_func_test_5coohz_8 -ls | grep -E '/rev|blk' 436679 1024 -rw------- 1 knst knst 1048576 Nov 17 02:08 /tmp/dash_func_test_5coohz_8/node0/regtest/blocks/rev00000.dat 436673 16384 -rw------- 1 knst knst 16777216 Nov 17 02:08 /tmp/dash_func_test_5coohz_8/node0/regtest/blocks/blk00000.dat ``` It doesn't look like a lot for a single test, but we have 300 functional tests, in average ~3 nodes -> more than 10Gb of mostly zeroes written on disk for each CI run. Files are not sparse and indeed takes IO and disk space. ## What was done? Introduced a new command line argument `-tinyblk` which reduce allocated space for empty blk files to 64kb only. It works similar as `-fastprune` but doesn't affect pruning settings; only block size. Also minor refactoring for functional tests to avoid copy-past code when writting dash.conf for case of statically and dynamically added new nodes; duplicated code is unified. ## How Has This Been Tested? CI succeed for this PR: https://github.com/dashpay/dash/actions/runs/19412323566/job/55536154684?pr=6986 While `develop` fails: https://github.com/dashpay/dash/actions/runs/19392476511 ``` Unhandled exception. System.IO.IOException: No space left on device : '/home/runner/actions-runner/cached/_diag/Worker_20251116-201117-utc.log' ``` Local run: ``` 1602527 64 -rw------- 1 knst knst 65536 Nov 17 04:12 /tmp/dash_func_test_bw8hmeiz/node0/regtest/blocks/blk00000.dat 1602533 64 -rw------- 1 knst knst 65536 Nov 17 04:12 /tmp/dash_func_test_bw8hmeiz/node0/regtest/blocks/rev00000.dat ``` 64kb only. Some other tests that have more blocks and transactions in blocks have increased data file correctly as expected, for example: ``` 1505724 320 -rw------- 1 knst knst 327680 Nov 17 04:05 ./feature_llmq_simplepose_268/node0/regtest/blocks/blk00000.dat ``` Local run with 30 parallel jobs (-j30) become ~10seconds faster (195s -> 180+); for 20 jobs - no difference as IO is no more limiting factor. ## Breaking Changes N/A ## Checklist: - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [x] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone ACKs for top commit: UdjinM6: light ACK def5d0a kwvg: utACK def5d0a Tree-SHA512: 6b0bcfdfb07e711a939dacc5c068527647bf1e65c10d8cfe9231facab6072d7a080376d38906708225b8851930bace0b20d1741a3da3daf346e292d237a72387
…v23.0.1 736bb26 chore: bump manpages for 23.0.1 (pasta) d5c7d25 chore: bump nMinimumChainWork and defaultAssumeValid (pasta) 4f8aa71 chore: bump version to 23.0.1 (pasta) 0865b7c docs: add release notes for 23.0.1 (pasta) 2048b42 Merge dashpay#6986: test: new commandline argument -tinyblk to use blk size just 64kb instead 16Mb (pasta) 1a9b20c Merge dashpay#7013: fix: update BuildTestVectors call to adjust batch size based on output flag (pasta) 36e4679 Merge dashpay#7009: fix: include QDebug directly (pasta) 69d0c9c Merge dashpay#6999: feat: verify and repair evodb diffs automatically at node startup (pasta) ca16437 Merge dashpay#6996: perf: reduce cs_main lock scope in evodb verify/repair operations (pasta) 207526e Merge dashpay#6977: fix: bls benchmarks crash when ran independently (pasta) 226aaf4 Merge dashpay#6969: feat: add evodb verify and repair RPC commands (pasta) 92abe9b Merge dashpay#6964: perf: remove duplicated check of same key in the instant send database (pasta) 5a1ec4c Merge dashpay#6961: fix: correct BLS scheme setting in `MigrateLegacyDiffs()` when `nVersion` is present (pasta) bf653d3 Merge dashpay#6949: depends: Qt 5.15.18 (pasta) faf58cd merge bitcoin#30774: Qt 5.15.16 (Kittywhiskers Van Gogh) 6a995f5 Merge dashpay#6944: fix: HD chain encryption check ordering issue (pasta) Pull request description: ## Issue being fixed or feature implemented See commits; release v23.0.1 ## What was done? see commits ## How Has This Been Tested? ## Breaking Changes ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: kwvg: utACK 736bb26 Tree-SHA512: fe02c4c3e520b11af54d09c47bda94112313456f9f1cb6d14e78ef16704b2a8ec8feb80fa914c55e152db2bcac7f278291824aaa36c8079eb9e0c9bff9e554a4
…ction wrapper 55220cc fix: drop gsl usage from RebuildListFromBlock function wrapper (UdjinM6) Pull request description: ## Issue being fixed or feature implemented This fixes guix non-determinism for apple-darwin builds. kudos to knst@ for discovering this ## What was done? ## How Has This Been Tested? ## Breaking Changes ## Checklist: - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [ ] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: knst: ACK 55220cc Tree-SHA512: fdf79804a71c681d08a428812b308b37344eedd94b8e22042bed84452a27107f1efb21b147405a30dac1f69a18cab2e11c06004abcab451e8b8fa18b42b2ae0e
fe1cff3 chore: bump release to 23.0.2 (pasta) a8f15c1 Merge dashpay#7032: fix: drop gsl usage from RebuildListFromBlock function wrapper (pasta) Pull request description: ## Issue being fixed or feature implemented 23.0.2 release ## What was done? see commits ## How Has This Been Tested? ## Breaking Changes ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_ ACKs for top commit: UdjinM6: utACK fe1cff3 Tree-SHA512: aa46c073cb0997afbe13c710d5812aad62721941ad46665a075feef009229ed462b27e2eeddc5a0380e0972c54fb7fdddb467b474791b5c9cf21ca5ddb85f974
✅ No Merge Conflicts DetectedThis PR currently has no conflicts with other open PRs. |
WalkthroughThis patch release updates Dash Core from v23.0.0 (October 2025) to v23.0.2 (December 2025). Changes include: bumping the client build version component from 0 to 2 in Estimated code review effort🎯 2 (Simple) | ⏱️ ~15–20 minutes
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (5)
doc/release-notes.md (2)
1-3: Grammar: Fix "bugfixes" → "bug fixes" in release notes intro.Formal release documentation uses two-word "bug fixes" rather than the single-word "bugfixes" for consistency with industry standard technical writing.
Apply this diff to correct the terminology:
- This is a new patch version release, bringing various bugfixes, performance improvements, and new tooling for database maintenance. + This is a new patch version release, bringing various bug fixes, performance improvements, and new tooling for database maintenance.
28-43: Style: Reduce repetition of "Fixed" sentence starters.Lines 35–39 show three successive "Fixed" sentences, which violates writing style guidelines. Consider rewriting at least one entry to vary the sentence structure.
Apply this diff to improve readability by varying sentence starters:
- Fixed HD chain encryption check ordering issue where `LoadHDChain()` would fail if `CRYPTED_HDCHAIN` records were read before `MASTER_KEY` records during wallet loading (dash#6944). - Corrected BLS scheme setting in `MigrateLegacyDiffs()` when `nVersion` is present. The legacy scheme was only being set when the `nVersion` field was missing instead of whenever a `pubKeyOperator` field is present (dash#6961). - Fixed BLS benchmarks crash when ran independently without BLS_DKG benchmarks (dash#6977). - Fixed build issue on Debian 13 by including `QDebug` directly in Qt code (dash#7009). - Fixed `BuildTestVectors` call to adjust batch size based on output flag (dash#7013). + Addressed HD chain encryption check ordering where `LoadHDChain()` would fail if `CRYPTED_HDCHAIN` records were read before `MASTER_KEY` records during wallet loading (dash#6944). + Corrected BLS scheme setting in `MigrateLegacyDiffs()` when `nVersion` is present. The legacy scheme was only being set when the `nVersion` field was missing instead of whenever a `pubKeyOperator` field is present (dash#6961). + Fixed BLS benchmarks crash when ran independently without BLS_DKG benchmarks (dash#6977). + Fixed build issue on Debian 13 by including `QDebug` directly in Qt code (dash#7009). + Updated `BuildTestVectors` call to adjust batch size based on output flag (dash#7013).doc/release-notes/dash/release-notes-23.0.0.md (3)
1-9: Grammar: Fix "bugfixes" → "bug fixes" for consistency with formal documentation.Line 3 uses single-word "bugfixes"; formal release documentation should use two-word "bug fixes".
Apply this diff to align with standard technical writing conventions:
- This is a new major version release, bringing new features, various bugfixes and other improvements. + This is a new major version release, bringing new features, various bug fixes and other improvements.
3-5: Style: Vary sentence openers to reduce repetition.Lines 4–5 both begin with "This release," creating repetitive phrasing. Reword one sentence to improve readability.
Apply this diff to improve sentence variety:
- This is a new major version release, bringing new features, various bug fixes and other improvements. - This release is **mandatory** for all masternodes. - This release is optional but recommended for all other nodes. + This is a new major version release, bringing new features, various bug fixes and other improvements. + Masternodes **must** upgrade to this version. + For other nodes, this release is optional but recommended.
52-59: Clarity: Refine phrasing in "Other notable changes" section.Line 54 ("index from scratch and reindex are up to 20% faster") is grammatically unclear. "Reindex" is repeated in quick succession, which clouds the meaning.
Apply this diff to improve clarity:
- * Performance of block validation in Dash Core has been significantly improved, index from - scratch and reindex are up to 20% faster compared to v22.x. + * Performance of block validation in Dash Core has been significantly improved. Creating indexes from scratch and + re-indexing are up to 20% faster compared to v22.x.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (47)
configure.ac(1 hunks)doc/man/dash-cli.1(3 hunks)doc/man/dash-qt.1(6 hunks)doc/man/dash-tx.1(2 hunks)doc/man/dash-wallet.1(2 hunks)doc/man/dashd.1(5 hunks)doc/release-notes-14707.md(0 hunks)doc/release-notes-22650.md(0 hunks)doc/release-notes-22918.md(0 hunks)doc/release-notes-23093.md(0 hunks)doc/release-notes-24098.md(0 hunks)doc/release-notes-24629.md(0 hunks)doc/release-notes-25158.md(0 hunks)doc/release-notes-26618.md(0 hunks)doc/release-notes-27068.md(0 hunks)doc/release-notes-6389.md(0 hunks)doc/release-notes-6482.md(0 hunks)doc/release-notes-6505.md(0 hunks)doc/release-notes-6567.md(0 hunks)doc/release-notes-6579.md(0 hunks)doc/release-notes-6594.md(0 hunks)doc/release-notes-6607.md(0 hunks)doc/release-notes-6608.md(0 hunks)doc/release-notes-6628.md(0 hunks)doc/release-notes-6634.md(0 hunks)doc/release-notes-6648.md(0 hunks)doc/release-notes-6649.md(0 hunks)doc/release-notes-6665.md(0 hunks)doc/release-notes-6666.md(0 hunks)doc/release-notes-6685.md(0 hunks)doc/release-notes-6686.md(0 hunks)doc/release-notes-6690.md(0 hunks)doc/release-notes-6711.md(0 hunks)doc/release-notes-6720.md(0 hunks)doc/release-notes-6723.md(0 hunks)doc/release-notes-6729.md(0 hunks)doc/release-notes-6811.md(0 hunks)doc/release-notes-6813.md(0 hunks)doc/release-notes-6825.md(0 hunks)doc/release-notes-6835.md(0 hunks)doc/release-notes-6837.md(0 hunks)doc/release-notes-6877.md(0 hunks)doc/release-notes.md(4 hunks)doc/release-notes/dash/release-notes-22.1.3.md(1 hunks)doc/release-notes/dash/release-notes-23.0.0.md(1 hunks)doc/release-notes/release-notes-24408.md(0 hunks)src/chainparams.cpp(2 hunks)
💤 Files with no reviewable changes (37)
- doc/release-notes-6720.md
- doc/release-notes-6666.md
- doc/release-notes-6567.md
- doc/release-notes-6729.md
- doc/release-notes-22918.md
- doc/release-notes-6877.md
- doc/release-notes-6837.md
- doc/release-notes-6649.md
- doc/release-notes-6665.md
- doc/release-notes-6690.md
- doc/release-notes-23093.md
- doc/release-notes-6723.md
- doc/release-notes-14707.md
- doc/release-notes/release-notes-24408.md
- doc/release-notes-6607.md
- doc/release-notes-6686.md
- doc/release-notes-27068.md
- doc/release-notes-6634.md
- doc/release-notes-6648.md
- doc/release-notes-24629.md
- doc/release-notes-6711.md
- doc/release-notes-6608.md
- doc/release-notes-26618.md
- doc/release-notes-6505.md
- doc/release-notes-6579.md
- doc/release-notes-24098.md
- doc/release-notes-6813.md
- doc/release-notes-6685.md
- doc/release-notes-6835.md
- doc/release-notes-6628.md
- doc/release-notes-6482.md
- doc/release-notes-22650.md
- doc/release-notes-6389.md
- doc/release-notes-6811.md
- doc/release-notes-6594.md
- doc/release-notes-25158.md
- doc/release-notes-6825.md
🧰 Additional context used
📓 Path-based instructions (2)
{guix-build*,releases,**/guix-build*,releases/**,.github/**,depends/**,ci/**,contrib/**,doc/**}
📄 CodeRabbit inference engine (CLAUDE.md)
Do not make changes to build system files (guix-build*), release artifacts, or avoid changes to .github, depends, ci, contrib, and doc directories unless specifically prompted
Files:
doc/release-notes/dash/release-notes-22.1.3.mddoc/man/dash-tx.1doc/release-notes/dash/release-notes-23.0.0.mddoc/man/dashd.1doc/man/dash-qt.1doc/man/dash-cli.1doc/release-notes.mddoc/man/dash-wallet.1
src/**/*.{cpp,h,hpp,cc}
📄 CodeRabbit inference engine (CLAUDE.md)
Dash Core implementation must be written in C++20, requiring at least Clang 16 or GCC 11.1
Files:
src/chainparams.cpp
🧠 Learnings (8)
📓 Common learnings
Learnt from: kwvg
Repo: dashpay/dash PR: 6543
File: src/wallet/receive.cpp:240-251
Timestamp: 2025-02-06T14:34:30.466Z
Learning: Pull request #6543 is focused on move-only changes and refactoring, specifically backporting from Bitcoin. Behavior changes should be proposed in separate PRs.
Learnt from: knst
Repo: dashpay/dash PR: 6871
File: contrib/guix/libexec/build.sh:358-360
Timestamp: 2025-10-05T20:38:28.457Z
Learning: In the Dash repository, when backporting code from Bitcoin Core, typos and minor issues in comments should be kept as-is to reduce merge conflicts in future backports, even if they remain unfixed in Bitcoin Core's master branch.
📚 Learning: 2025-10-05T20:38:28.457Z
Learnt from: knst
Repo: dashpay/dash PR: 6871
File: contrib/guix/libexec/build.sh:358-360
Timestamp: 2025-10-05T20:38:28.457Z
Learning: In the Dash repository, when backporting code from Bitcoin Core, typos and minor issues in comments should be kept as-is to reduce merge conflicts in future backports, even if they remain unfixed in Bitcoin Core's master branch.
Applied to files:
doc/release-notes/dash/release-notes-22.1.3.mddoc/release-notes/dash/release-notes-23.0.0.mddoc/man/dashd.1doc/man/dash-qt.1doc/release-notes.md
📚 Learning: 2025-11-24T16:41:22.457Z
Learnt from: CR
Repo: dashpay/dash PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-24T16:41:22.457Z
Learning: Dash extends Bitcoin Core through composition with minimal changes to the Bitcoin Core foundation
Applied to files:
doc/release-notes/dash/release-notes-22.1.3.md
📚 Learning: 2025-11-04T18:23:28.175Z
Learnt from: UdjinM6
Repo: dashpay/dash PR: 6933
File: src/governance/classes.cpp:147-154
Timestamp: 2025-11-04T18:23:28.175Z
Learning: In src/governance/classes.cpp, CSuperblock::GetPaymentsLimit intentionally uses synthetic difficulty constants (nBits = 1 for mainnet, powLimit for networks with min difficulty) and simple height-based V20 activation checks instead of actual chain block data. This is by design because superblocks themselves are "synthetic" governance payment blocks, not regular mined blocks.
Applied to files:
src/chainparams.cpp
📚 Learning: 2025-11-24T16:41:22.457Z
Learnt from: CR
Repo: dashpay/dash PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-24T16:41:22.457Z
Learning: Applies to src/{validation,txmempool}/**/*.{cpp,h} : Block validation and mempool handling must use extensions to Bitcoin Core mechanisms for special transaction validation and enhanced transaction relay
Applied to files:
src/chainparams.cpp
📚 Learning: 2025-06-06T11:53:09.094Z
Learnt from: kwvg
Repo: dashpay/dash PR: 6665
File: src/evo/providertx.h:82-82
Timestamp: 2025-06-06T11:53:09.094Z
Learning: In ProTx serialization code (SERIALIZE_METHODS), version checks should use hardcoded maximum flags (/*is_basic_scheme_active=*/true, /*is_extended_addr=*/true) rather than deployment-based flags. This is because serialization code should be able to deserialize any structurally valid ProTx up to the maximum version the code knows how to handle, regardless of current consensus validity. Validation code, not serialization code, is responsible for checking whether a ProTx version is consensus-valid based on deployment status.
Applied to files:
src/chainparams.cpp
📚 Learning: 2025-11-24T16:41:22.457Z
Learnt from: CR
Repo: dashpay/dash PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-24T16:41:22.457Z
Learning: Applies to src/{masternode,evo,llmq,governance,coinjoin}/**/*.{cpp,h} : Use Dash-specific database implementations: CFlatDB for persistent storage (MasternodeMetaStore, GovernanceStore, SporkStore, NetFulfilledRequestStore) and CDBWrapper extensions for Evolution/DKG/InstantSend/Quorum/RecoveredSigs data
Applied to files:
doc/release-notes/dash/release-notes-23.0.0.mddoc/release-notes.md
📚 Learning: 2025-07-23T09:30:34.631Z
Learnt from: kwvg
Repo: dashpay/dash PR: 6761
File: src/chainlock/signing.h:5-6
Timestamp: 2025-07-23T09:30:34.631Z
Learning: Dash Core uses BITCOIN_ prefix for header guards as the standard convention, inherited from Bitcoin Core. Only a few BLS-specific files in src/bls/ use DASH_ prefix. The vast majority of files (385+) use BITCOIN_ prefix.
Applied to files:
doc/man/dashd.1doc/man/dash-qt.1
🪛 LanguageTool
doc/release-notes/dash/release-notes-22.1.3.md
[style] ~3-~3: This is not the usual sequence for adjectives that have no special emphasis.
Context: # Dash Core version v22.1.3 This is a new minor version release, bringing various bugfi...
(EN_ADJ_ORDER)
[grammar] ~3-~3: Ensure spelling is correct
Context: ...minor version release, bringing various bugfixes and performance improvements. This rele...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
doc/release-notes/dash/release-notes-23.0.0.md
[grammar] ~3-~3: Ensure spelling is correct
Context: ...release, bringing new features, various bugfixes and other improvements. This release is...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~4-~4: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...e is mandatory for all masternodes. This release is optional but recommended for...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~202-~202: Consider using “formerly” to strengthen your wording.
Context: ...e now validated at startup. Values that previously worked and were considered valid can no...
(PREVIOUSLY_FORMERLY)
[style] ~230-~230: Consider using a different verb for a more formal wording.
Context: ...) ### Mobile CoinJoin Compatibility - Fixed an issue where CoinJoin funds mixed in ...
(FIX_RESOLVE)
doc/release-notes.md
[grammar] ~3-~3: Ensure spelling is correct
Context: ...patch version release, bringing various bugfixes, performance improvements, and new tool...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~39-~39: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...bugdirectly in Qt code (dash#7009). - FixedBuildTestVectors` call to adjust batch...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
🪛 markdownlint-cli2 (0.18.1)
doc/release-notes/dash/release-notes-22.1.3.md
29-29: Heading style
Expected: atx; Actual: setext
(MD003, heading-style)
34-34: Heading style
Expected: atx; Actual: setext
(MD003, heading-style)
39-39: Heading style
Expected: atx; Actual: setext
(MD003, heading-style)
44-44: Heading style
Expected: atx; Actual: setext
(MD003, heading-style)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: linux64_sqlite-build / Build source
- GitHub Check: linux64_ubsan-build / Build source
- GitHub Check: linux64_fuzz-build / Build source
- GitHub Check: linux64-build / Build source
- GitHub Check: Lint / Run linters
🔇 Additional comments (12)
src/chainparams.cpp (1)
221-226: nMinimumChainWork / defaultAssumeValid bumps look consistent; just confirm they match the actual 23.0.2 anchorsThe new mainnet/testnet
nMinimumChainWorkanddefaultAssumeValidvalues (with heights 2381436 and 1374139 in the comments) follow the existing pattern and line up with the hashes referenced in the manpages. Nothing else around them changes, so this is a straightforward anchor update.Please double-check that:
- both hashes are on the best chain at those heights, and
- they are exactly the values used when cutting v23.0.2 on
master,so develop and master stay in lockstep on these consensus-ish constants.
Also applies to: 420-425
configure.ac (1)
5-5: Version build bump to 2 matches the v23.0.2 docsUpdating
_CLIENT_VERSION_BUILDto2keeps the Autotools/configured version in sync with the v23.0.2 manpages and release notes. Leaving_CLIENT_VERSION_IS_RELEASEasfalseondevelopis also consistent with a merge-back of a tagged release rather than turning develop into the release branch itself.doc/release-notes/dash/release-notes-22.1.3.md (1)
1-125: Release notes content and structure look fine; just confirm the compare link once the tag existsThe 22.1.3 notes follow the existing Dash Core template (intro, upgrade guidance, categorized changes, credits, older releases) and the individual bullets read plausibly for a small bugfix/perf/doc release.
Before tagging, it’s worth quickly checking that:
v22.1.2exists anddashpay:v22.1.3is the intended tag/namespace in the compare URL,so the
[set-of-changes]link resolves as expected after the tag is pushed. Otherwise no changes needed from a code-review perspective.doc/man/dash-wallet.1 (1)
2-11: dash-wallet manpage updates are consistent and helpfulThe v23.0.2/date bump, the added note about using
-datadir/-wallet/-regtest/-testnetto target a wallet, and the explicit MIT URL all look correct and align with the rest of the release docs. No further changes needed.Also applies to: 110-112
doc/man/dash-cli.1 (1)
2-18: dash-cli manpage: version bump and -named synopsis look correctThe updated version/date lines, the explicit
-named <command> [name=value]...synopsis entry, and the license URL adjustment all align with the current CLI behavior and the rest of the v23.0.2 documentation.Also applies to: 10-16, 164-165
doc/man/dash-tx.1 (1)
2-13: dash-tx manpage matches expected 23.0.2 CLI behaviorThe v23.0.2 metadata, the clarified options for
-create,-json,-txid, and the chain-selection flags all look in line with the tool’s behavior, and the license line keeps the same meaning with a clearer URL. Nothing to change here.Also applies to: 14-48, 120-122
doc/man/dash-qt.1 (1)
2-10: dash-qt manpage is consistent with chainparams and current options; just verify the documented ranges/categories
- Version/date and DESCRIPTION correctly show v23.0.2.
- The
-assumevalidmainnet/testnet hashes line up withconsensus.defaultAssumeValidinsrc/chainparams.cpp, which is what we want for help text.- The new
-par/-parblsranges (-14to 15 / 33) and the updated-debugcategory list (nolockentry) look like they were regenerated from current CLI options, and the font-weight default tweak is purely UI docs.It’d be good to double-check that:
- the
ArgsManager/ option parsing code enforces these same ranges for-parand-parbls, and- the runtime set of debug categories exactly matches what’s documented here,
to avoid drift between the binary and the manpage.
Also applies to: 23-31, 126-135, 866-877, 1158-1161, 1190-1191
doc/man/dashd.1 (1)
2-10: dashd manpage updates align with chainparams and CLI; mirror the same verification as for dash-qtThe daemon manpage’s v23.0.2/version bump, updated
-assumevalidhashes, adjusted-par/-parblsranges, and revised debug category list all match what’s documented for dash-qt and what’s insrc/chainparams.cpp.As with the GUI manpage, it’s worth confirming that:
- the
-par/-parblsbounds here are exactly whatdashdenforces, and- the listed debug categories reflect the actual set supported at runtime,
so operator-facing docs stay in lockstep with the binary.
Also applies to: 21-28, 124-132, 866-875, 1139-1140
doc/release-notes.md (2)
69-70: Verify release note links for v23.0.0 and v22.1.3.Confirm that the GitHub links to
release-notes-23.0.0.mdandrelease-notes-22.1.3.mdare correctly formed and that these files exist in the repository at the specified paths:doc/release-notes/dash/release-notes-23.0.0.mdanddoc/release-notes/dash/release-notes-22.1.3.md.
45-47: Qt 5.15.18 does not include patches for the referenced CVEs—it is vulnerable to them.The CVE numbers are correctly formatted and correspond to real published security advisories. However, the release notes contain a factual error: CVE-2025-4211 and CVE-2025-5455 are unpatched vulnerabilities in Qt 5.15.18—they are fixed in Qt 5.15.19, not 5.15.18. CVE-2025-30348 also affects Qt versions including 5.15.18 and is fixed in later releases. Claiming that Qt 5.15.18 "includes security patches" for these CVEs is misleading; the update to 5.15.18 does not resolve these vulnerabilities. Consider clarifying the actual security status or upgrading to Qt 5.15.19 or later.
⛔ Skipped due to learnings
Learnt from: kwvg Repo: dashpay/dash PR: 6838 File: src/governance/signing.cpp:232-242 Timestamp: 2025-10-03T11:30:10.766Z Learning: The Dash codebase dropped C++17 support in PR #6380 and now requires C++20 or later, as configured in configure.ac. C++20 features, including std::ranges algorithms like std::ranges::any_of, are appropriate and preferred where they improve code clarity.doc/release-notes/dash/release-notes-23.0.0.md (2)
245-245: Verify release notes links and historical references.Confirm that all GitHub links to older release notes files exist and are correctly formatted. Spot-check the historical releases section to ensure links point to valid files.
121-182: This documentation review task is outside the standard scope for changes to thedoc/directory.Per the coding guidelines, changes to the
doc/directory should not be made unless specifically prompted. While verifying that release notes accurately document extended address support features is important for operators, this review comment's verification request cannot be fully substantiated in this context due to sandbox environment limitations preventing access to PR history.If you need to verify the extended address documentation accuracy, please provide:
- Direct references to the specific commits or PR descriptions for #6811, #6665, and #6666
- Context confirming this documentation review is within the scope of the current review task
Alternatively, if this is a backport from Bitcoin Core or similar upstream project, ensure the documentation faithfully reflects the upstream changes rather than being independently verified.
PastaPastaPasta
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
utACK 491db4a
kwvg
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
utACK 491db4a
Issue being fixed or feature implemented
Includes changes from 23.0.0 release too because we never merged it back.
What was done?
How Has This Been Tested?
Breaking Changes
Checklist: