Skip to content

Conversation

@DashCoreAutoGuix
Copy link
Owner

@DashCoreAutoGuix DashCoreAutoGuix commented Sep 30, 2025

Summary

Backport of Bitcoin Core PR bitcoin#27441

This PR updates the documentation to correctly reference the PR links for sqlite and qrencode version updates in the dependencies.md file.

Bitcoin commit: a12d9cf

Changes

  • Added PR link #25378 for SQLite version 3.38.5

Test Plan

This is a documentation-only change. No functional testing required.

Original PR Description

Followup to bitcoin#27312 & bitcoin#25378.


Backported as part of batch 409 for version 0.25


Note

Adds platform PoSe ban p2p message and bumps protocol to 70238; refactors LockPoints/validation and time utils; migrates wallet/RPC to util::Result with UX tweaks; updates filters/REST and extensive tests.

  • Protocol/P2P:
    • Introduces platform ban message and bumps protocol to 70238; consolidates chainlock types/namespaces.
  • Consensus/Validation:
    • Reworks LockPoints/sequence lock computation and mempool reorg checks; improves BIP30 handling; moves flush timers to members.
  • Util/Time:
    • Removes GetTimeMillis; adds SystemClock and related helpers.
  • Wallet/RPC:
    • Migrates many APIs to util::Result; adjusts RPC args/results (e.g., descriptors next_index, address fields); adds -walletcrosschain; clearer passphrase null-character errors.
  • Filters/REST:
    • REST supports count via query; blockfilterheaders tweaks; filters include AssetLockTx credit outputs.
  • Tests:
    • Broad updates and new tests (platform_ban, crosschain, datacarrier, etc.) aligning with new behavior.

Written by Cursor Bugbot for commit 23a048f. This will update automatically on new commits. Configure here.

knst and others added 30 commits August 19, 2025 21:58
Test has never worked as expected.
It is expected instant send quorum; helper mine_cycle_quorum should be used here
… is ready

This flag is easy to forget and if it is forgotten, everything works as expected,
but extra 24 * 3 useless blocks are generated for each
…ignatures in quorum commitments

7733740 fix: add missing log for case of no public key is provided (Konstantin Akimov)
43ed80d fix: increased "max amount of threads" for bls check from 31 to 33 (Konstantin Akimov)
2d4fe1b fix: set proper state after async signatures validation in block processor (Konstantin Akimov)
8530c92 fix: replace strings Bls to BLS in command line help (Konstantin Akimov)
7a86e19 refactor: drop unused flag from ProcessCommitment (Konstantin Akimov)
0f3a8e4 feat: add -parbls and validate async quorumSig and membersSig in QC (Konstantin Akimov)
76e4e72 refactor: split quorum commitment verification and its signatures (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  During blocks validation, quorum commitments are processed in single thread.
  While some blocks have up to 32 commitments (blocks which have rotation quorums commitment), each quorum commitment have hundreds public keys to validate and 2 signature (quorum signature and public key signature). It takes up to 30% in total indexing time and up to 1 second for heavy blocks.

  ## What was done?
  `CCheckQueue` which is used for validation ECDSA signatures is used now for validation of BLS signatures in quorum commitments.
  Quorum signature and members signatures are validated simultaneously now which makes performance improvement even for blocks which has only 1 commitment.

  ## How Has This Been Tested?
  Invalidated + reconsidered 15k blocks (~1 months worth)
  This PR makes validation of Quorum Commitment 3.5x times faster; overall indexing 25% faster on my 12 cores environment.

  PR:
  <img width="770" alt="image" src="https://github.com/user-attachments/assets/6f1d9815-e8f1-4294-a376-ebbfd7a312c9" />
  ```
  2025-05-28T10:17:56Z [bench]         - m_qblockman: 0.03ms [28.90s]
  2025-05-28T10:17:56Z [bench]   - Connect total: 9.01ms [184.16s (11.86ms/blk)]
  2025-05-28T10:17:56Z [bench] - Connect block: 9.21ms [190.33s (12.25ms/blk)]
  ```

  develop:
  <img width="770" alt="image" src="https://github.com/user-attachments/assets/af7e5379-b3ce-4df0-ab90-f34649011f46" />
  ```
  2025-05-22T18:39:44Z [bench]         - m_qblockman: 0.03ms [96.90s]
  2025-05-22T18:39:44Z [bench]   - Connect total: 9.31ms [252.80s (16.28ms/blk)]
  2025-05-22T18:39:44Z [bench] - Connect block: 9.50ms [258.90s (16.67ms/blk)]
  ```

  ## Breaking Changes
  N/A

  ## 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
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  UdjinM6:
    utACK 7733740

Tree-SHA512: 59de70d645fa7be2fcf9978d46a36bf4cea83654152c76671014b0508271f8adf11a0610aa7f2eda7f3937d932075eef45ecd06887d8d4d751d2637a52c7062e
… for constituent hashes, apply stronger optimizations

44eebe7 chore: resolve `constVariable` linter error (Kittywhiskers Van Gogh)
30bf19d crypto: isolate sphlib sources and apply stronger optimizations to it (Kittywhiskers Van Gogh)
3ec483e bench: more final proof of work benchmark to `pow_hash` (Kittywhiskers Van Gogh)
fb54ce0 bench: add benchmarks for constituent hash algorithms for proof of work (Kittywhiskers Van Gogh)
ee6efaa refactor: remove unused macros and function definitions (Kittywhiskers Van Gogh)
32156b2 build: assume true 64-bit target, assume `SPH_64` and related macros (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  * sphlib requires platforms to be `SPH_64` in order to build variants like Blake512 ([source](https://github.com/dashpay/dash/blob/489c5f0127891c2d058b65e00750ff3100d6d7b8/src/crypto/x11/blake.c#L632-L663)) and Bmw512 ([source](https://github.com/dashpay/dash/blob/489c5f0127891c2d058b65e00750ff3100d6d7b8/src/crypto/x11/bmw.c#L545-L576)). While other variants have alternate implementations for non-`SPH_64` platforms like Groestl ([source](https://github.com/dashpay/dash/blob/489c5f0127891c2d058b65e00750ff3100d6d7b8/src/crypto/x11/groestl.c#L46-L56)), non-`SPH_64` platforms _cannot_ build Blake512 or Bmw512.

    As X11 (and by extension, Dash) requires both, we can safely assume that Dash Core doesn't support non-`SPH_64` targets and can remove fallback code.

  * To inform decisions when optimizing X11, this pull request introduces benchmarks for all constituent hash algorithms across the same set of data sizes (32b, 80b, 128b, 512b, 1024b, 2048b and 1M), all tests can be run with `bench_dash --filter="Pow(.*)"` and can be filtered by data size with `bench_dash --filter="Pow(.*)1024b(.*)"` (see below)

    <details>
    <summary>Benchmarks:</summary>

    ```
    |             ns/byte |              byte/s |    err% |        ins/byte |        cyc/byte |    IPC |       bra/byte |   miss% |     total | benchmark
    |--------------------:|--------------------:|--------:|----------------:|----------------:|-------:|---------------:|--------:|----------:|:----------
    |                1.60 |      625,125,455.46 |    0.3% |           25.60 |            7.10 |  3.603 |           0.13 |    0.0% |      0.01 | `Pow_Blake512_1024b`
    |                0.75 |    1,333,435,941.89 |    0.2% |           17.06 |            3.33 |  5.124 |           0.12 |    0.0% |      0.01 | `Pow_Bmw512_1024b`
    |                6.24 |      160,132,129.57 |    0.0% |          118.36 |           27.74 |  4.267 |           0.25 |    0.4% |      0.01 | `Pow_Cubehash512_1024b`
    |               14.64 |       68,308,839.95 |    0.0% |          261.17 |           65.02 |  4.017 |           1.63 |    0.6% |      0.01 | `Pow_Echo512_1024b`
    |                8.72 |      114,678,066.51 |    0.1% |          169.16 |           38.73 |  4.368 |           0.25 |    0.4% |      0.01 | `Pow_Groestl512_1024b`
    |                8.87 |      112,774,410.39 |    0.1% |          153.89 |           39.38 |  3.907 |           0.15 |    0.6% |      0.01 | `Pow_Jh512_1024b`
    |                3.79 |      264,078,320.88 |    0.1% |           81.14 |           16.81 |  4.826 |           0.23 |    0.0% |      0.01 | `Pow_Keccak512_1024b`
    |                6.87 |      145,603,041.03 |    0.1% |          131.55 |           30.46 |  4.319 |           1.11 |    0.1% |      0.01 | `Pow_Luffa512_1024b`
    |                7.54 |      132,578,659.24 |    0.1% |          119.56 |           33.48 |  3.572 |           0.26 |    0.4% |      0.01 | `Pow_Shavite512_1024b`
    |                7.24 |      138,072,734.74 |    0.5% |          129.58 |           32.09 |  4.037 |           2.38 |    0.0% |      0.01 | `Pow_Simd512_1024b`
    |                1.17 |      857,609,484.77 |    0.0% |           20.67 |            5.18 |  3.992 |           0.15 |    0.0% |      0.01 | `Pow_Skein512_1024b`
    |               11.45 |       87,351,960.89 |    0.0% |          195.23 |           50.85 |  3.840 |           1.30 |    0.1% |      0.01 | `Pow_X11_1024b`
    ```

    </details>

  * This pull request also makes changes that result in performance impact, the baseline measurement is given below

    Build parameters: `LDFLAGS="-Wl,--as-needed -Wl,-O2" CC=clang-16 CXX=clang++-16 ./configure --prefix=$(pwd)/depends/x86_64-linux-gnu --enable-reduce-exports --disable-tests --disable-gui-tests --disable-fuzz --disable-fuzz-binary --disable-ccache --disable-maintainer-mode --disable-dependency-tracking --without-gui`

    <details>

    <summary>Baseline benchmarks (489c5f0):</summary>

    ```
    |             ns/byte |              byte/s |    err% |        ins/byte |        cyc/byte |    IPC |       bra/byte |   miss% |     total | benchmark
    |--------------------:|--------------------:|--------:|----------------:|----------------:|-------:|---------------:|--------:|----------:|:----------
    |              321.49 |        3,110,502.97 |    0.1% |        5,527.82 |        1,427.78 |  3.872 |          38.97 |    0.1% |      0.01 | `X11_0032b_single`
    |              128.63 |        7,774,397.65 |    0.1% |        2,211.03 |          571.22 |  3.871 |          15.56 |    0.1% |      0.01 | `X11_0080b_single`
    |               81.97 |       12,199,203.11 |    0.1% |        1,404.79 |          364.00 |  3.859 |           9.80 |    0.1% |      0.01 | `X11_0128b_single`
    |               21.55 |       46,394,313.29 |    0.1% |          368.03 |           95.73 |  3.844 |           2.51 |    0.1% |      0.01 | `X11_0512b_single`
    |               11.48 |       87,085,396.93 |    0.1% |          195.23 |           51.00 |  3.828 |           1.30 |    0.1% |      0.01 | `X11_1024b_single`
    |                1.43 |      700,791,473.89 |    0.1% |           22.61 |            6.33 |  3.572 |           0.09 |    0.0% |      0.02 | `X11_1M`
    |                6.45 |      155,097,633.83 |    0.0% |          108.83 |           28.64 |  3.801 |           0.69 |    0.1% |      0.01 | `X11_2048b_single`
    ```

    </details>

    Enablement of small footprint for JH, CubeHash (~10% improvement)

    <details>

    <summary>Benchmarks (30bf19d):</summary>

    ```
    |             ns/byte |              byte/s |    err% |        ins/byte |        cyc/byte |    IPC |       bra/byte |   miss% |     total | benchmark
    |--------------------:|--------------------:|--------:|----------------:|----------------:|-------:|---------------:|--------:|----------:|:----------
    |              291.68 |        3,428,360.28 |    0.1% |        5,135.01 |        1,294.73 |  3.966 |          41.91 |    0.1% |      0.01 | `Pow_X11_0032b`
    |              117.46 |        8,513,845.07 |    0.1% |        2,053.90 |          518.66 |  3.960 |          16.74 |    0.1% |      0.01 | `Pow_X11_0080b`
    |               75.22 |       13,293,803.11 |    0.1% |        1,305.23 |          332.11 |  3.930 |          10.53 |    0.1% |      0.01 | `Pow_X11_0128b`
    |               19.65 |       50,880,118.90 |    0.0% |          342.12 |           86.79 |  3.942 |           2.70 |    0.1% |      0.01 | `Pow_X11_0512b`
    |               10.46 |       95,567,763.92 |    0.1% |          181.60 |           46.21 |  3.930 |           1.39 |    0.1% |      0.01 | `Pow_X11_1024b`
    |                1.20 |      835,966,628.21 |    0.4% |           21.24 |            5.28 |  4.023 |           0.09 |    0.0% |      0.01 | `Pow_X11_1M`
    |                5.83 |      171,499,428.31 |    0.2% |          101.34 |           25.75 |  3.936 |           0.74 |    0.1% |      0.01 | `Pow_X11_2048b`
    ```

    </details>

  ## 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 44eebe7

Tree-SHA512: 26afe6b005b76285f8d7032e516d70daaa257e64066d77a4626f9da17f5b7208d5ca345975074fb539bcd7984ba2a923d02c73c2e9cdbe440d2fb7175df8b542
…57/158)

Implements extraction of special transaction fields for compact block filters,
achieving feature parity with bloom filters. SPV clients can now detect special
transactions using either filtering mechanism.

Changes:
- Add ExtractSpecialTxFilterElements() to extract fields from special txs
- Integrate special tx extraction into BasicFilterElements()
- Support all special transaction types:
  * ProRegTx: collateral, owner/voting keys, payout script
  * ProUpServTx: ProTx hash, operator payout
  * ProUpRegTx: ProTx hash, voting key, payout script
  * ProUpRevTx: ProTx hash
  * AssetLockTx: credit output scripts
- Add comprehensive unit tests for all transaction types
- Add functional tests with actual AssetLockTx transactions
- Use delegation pattern to avoid circular dependencies

The implementation mirrors CheckSpecialTransactionMatchesAndUpdate() to ensure
consistent behavior between bloom and compact filters.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Remove unused CService variable that triggers -Werror compilation warning
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
- Rename misleading test_proregister_tx_filter to test_assetlock_basic
- Remove excessive debug logging throughout
- Add proper filter verification by comparing filter sizes
- Document why only AssetLockTx is tested functionally
- Use control blocks to verify special tx fields increase filter size

The improved tests now properly verify that special transaction fields
are included in filters by comparing sizes rather than relying on logs.
Functional tests updates in p2p_blockfilters.py:

- Simplify sign/send by using signed hex directly; remove unused variables

- Fail fast: assert AssetLockTx is included in mined block and has creditOutputs

- Strengthen assertion: require at least one credit output

- Rename lockTx_payload -> lock_tx_payload for snake_case consistency

- Downgrade verbose info logs to debug to keep tests quieter
…r extraction in sync

Add maintenance notes in ExtractSpecialTxFilterElements and CBloomFilter::CheckSpecialTransactionMatchesAndUpdate to ensure future changes update both implementations together.
Add skip_test_if_missing_module to call skip_if_no_wallet() to avoid failures when built without wallet.
Replace raw > assertions with assert_greater_than and import it, so failing output includes compared values.
…lback to avoid temporary allocations; adjust helpers and call site
This commit adds versioning to the blockfilter index to prevent nodes
from starting with an incompatible index format after the special
transaction support was added.

- Add CURRENT_VERSION = 2 to BlockFilterIndex
- Check version on startup and fail if incompatible
- Write version for new indexes
- Provide clear error messages with recovery instructions
- Add release notes documenting the breaking change

The index format changed when special transaction support was added,
but without versioning, nodes would silently serve incorrect filters
to SPV clients. This change ensures data integrity by forcing a
rebuild of incompatible indexes.
…nodes only

2b17480 fix(tests): add feature_masternode_params.py to test runner (pasta)
bcff97a test: remove unused import from feature_masternode_params (pasta)
fcd1b8c doc: add disk space requirement note to release notes (pasta)
cec4ae0 test: address code review feedback for feature_masternode_params (pasta)
4e33c24 fix: specify utf8 (pasta)
ac5c499 chore: trailing whitespace (pasta)
2fabaa9 fix: Address code review feedback for masternode-only BIP157 (pasta)
90ef2d5 refactor: Enable BIP157 block filters only for masternodes (pasta)
d40ae45 test: fix tests incompatible with default peerblockfilters=1 (pasta)
d6c11f0 test: fix feature_index_prune.py for new peerblockfilters default (pasta)
2a88db9 test: Fix feature_index_prune.py to explicitly disable indices (pasta)
4412ced test: Fix feature_index_prune.py to work with new blockfilterindex defaults (pasta)
e6e9ff8 test: Fix functional tests to work with new blockfilterindex defaults (pasta)
ef2a1e3 Fix initialization error when using default blockfilterindex value (pasta)
fbde721 docs: Fix PR number in release notes - rename to 6711 (pasta)
0274cd2 docs: Add release notes for PR dashpay#6708 (pasta)
ac7e03e Enable BIP157 block filters index and serving by default (pasta)

Pull request description:

  ## Issue being fixed or feature implemented
  This pull request introduces automatic enabling of BIP157 compact block filters specifically for masternodes to improve privacy and functionality for light clients connecting to them. Regular nodes retain the existing default settings.

  ## What was done?
  - **Automatic Enablement for Masternodes**: When a node is configured as a masternode (via `-masternodeblsprivkey`), both `-peerblockfilters` and `-blockfilterindex=basic` are now automatically enabled.
  - **Regular Nodes Unchanged**: Regular (non-masternode) nodes keep the previous defaults with both options disabled (`-peerblockfilters=false` and `-blockfilterindex=0`).
  - **Opt-out Available**: Masternodes can still explicitly disable these features if needed by setting `-peerblockfilters=0` or `-blockfilterindex=0`.
  - **Release Notes**: Updated to clearly document this masternode-specific behavior and the ~1GB disk space requirement for the block filter index.
  - **Tests**: Added functional test to verify the parameter interactions and that the settings are correctly applied only to masternodes.

  ## How Has This Been Tested?
  - Built locally
  - Added new functional test `feature_masternode_params.py` that verifies:
    - Regular nodes have filters disabled by default
    - Masternodes have filters auto-enabled
    - Masternodes can explicitly disable filters
    - Parameter interaction logging works correctly

  ## Breaking Changes
  None - this only affects masternodes and they can opt out if needed.

  ## Checklist:
    _Go over all the following points, and put an `x` in all the boxes that apply._
  - [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
  - [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:
  UdjinM6:
    utACK 2b17480

Tree-SHA512: 6a11305cf54c7584de4ca8dbe520e022e23f211ec6b0e2ee7679073f75a465ead927814f3f01f77e8576f96a187167511204d1906d380937f98310948933dc83
…coin#25656, bitcoin#25616, bitcoin#26005, bitcoin#24855, bitcoin#18554, bitcoin#17204, bitcoin#20562, bitcoin#21166, bitcoin#25044, bitcoin#25364, bitcoin#25525, bitcoin#25512, bitcoin#24678, bitcoin#26747, partial bitcoin#22154, bitcoin#24584 (wallet backports: part 8)

c0f9225 merge bitcoin#26747: fix confusing error / GUI crash on cross-chain legacy wallet restore (Kittywhiskers Van Gogh)
d63ca8a merge bitcoin#24678: Prevent wallet unload on GetWalletForJSONRPCRequest (Kittywhiskers Van Gogh)
2a880d8 merge bitcoin#25512: remove wallet dependency and refactor rpc_signrawtransaction.py (Kittywhiskers Van Gogh)
f405790 merge bitcoin#25525: remove wallet dependency from mempool_updatefromblock.py (Kittywhiskers Van Gogh)
c24c9ea merge bitcoin#25364: remove wallet dependency from feature_nulldummy.py (Kittywhiskers Van Gogh)
a118fe1 test: reduce `num_nodes` in `feature_nulldummy.py` to 1 (Kittywhiskers Van Gogh)
c6eabc1 merge bitcoin#25044: Use MiniWallet in rpc_rawtransaction.py (Kittywhiskers Van Gogh)
4e0725e merge bitcoin#21166: Introduce DeferredSignatureChecker and have SignatureExtractorClass subclass it (Kittywhiskers Van Gogh)
f883122 merge bitcoin#20562: Test that a fully signed tx given to signrawtx is unchanged (Kittywhiskers Van Gogh)
c349dad merge bitcoin#17204: Do not turn OP_1NEGATE in scriptSig into 0x0181 in signing code (Kittywhiskers Van Gogh)
c5e8bd6 merge bitcoin#18554: ensure wallet files are not reused across chains (Kittywhiskers Van Gogh)
0fca914 merge bitcoin#24855: Fix `setwalletflag` disabling of flags (Kittywhiskers Van Gogh)
f15a1b9 merge bitcoin#26005: Fix error handling (copy_file failure in RestoreWallet, and in general via interfaces) (Kittywhiskers Van Gogh)
240765e merge bitcoin#25616: Return `util::Result` from WalletLoader methods (Kittywhiskers Van Gogh)
bd897fa merge bitcoin#25656: return util::Result from `GetReservedDestination` methods (Kittywhiskers Van Gogh)
56accfe merge bitcoin#25721: Replace BResult with util::Result (Kittywhiskers Van Gogh)
03939f2 partial bitcoin#24584: avoid mixing different `OutputTypes` during coin selection (Kittywhiskers Van Gogh)
50ca8cf refactor: remove `CKey` overload for `Create{,AndProcess}Block()` (Kittywhiskers Van Gogh)
9e23b11 merge bitcoin#25218: introduce generic 'Result' class and connect it to CreateTransaction and GetNewDestination (Kittywhiskers Van Gogh)
ec764fd partial bitcoin#22154: Add OutputType::BECH32M and related wallet support for fetching bech32m addresses (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  * The `CKey` overload for `Create{,AndProcess}Block()` was introduced as a convenience function in [dash#2264](dashpay#2264). To allow for the easier backport of [bitcoin#24584](bitcoin#24584) (by resolving an ambiguous overload error) and because `GetScriptForRawPubKey` makes the same construction, it was opted to realign with upstream and drop the overload.

  * Even though we don't actively support any address types that utilize Bech32m, [bitcoin#25656](bitcoin#25656) assumes that `GetReservedDestination` modifies a `bilingual_str` for its error case in order to encapsulate it in a `util::Result`. In order to complete that backport, [bitcoin#22154](bitcoin#22154) has been partially backported.

  * `CKeyHolder` has always assumed that `GetReservedDestination` will succeed without validation of this assumption ([source](https://github.com/dashpay/dash/blob/develop/src/coinjoin/util.cpp#L29-L33)). As [bitcoin#25656](bitcoin#25656) forces us to unwrap the returned value, this assumption has been documented with an `assert` ([source](https://github.com/dashpay/dash/blob/bd897fa7097d3d68d19b8a9af14b23f4007645ca/src/coinjoin/util.cpp#L32-L34))

  * When backporting [bitcoin#21166](bitcoin#21166), we don't have the luxury of a `scriptWitness` to include the redemption script, so `rpc_signrawtransaction.py` must import the script in order to spend it. This creates an additional complication as descriptor wallets do not permit wallets to mix descriptors with and without private keys ([source](https://github.com/dashpay/dash/blob/cc9da5d9e28bf9a7b411dc390523ac6d2dd09de6/src/wallet/rpc/backup.cpp#L1758)) and as P2SH descriptors don't involve a private key, those specific subtests need to be skipped for descriptor wallets.

    * `OP_TRUE` has been appended to the script, this mirrors the `OP_TRUE` in the `scriptWitness` ([source](https://github.com/bitcoin/bitcoin/blob/a97a9298cea085858e1a65a5e9b20d7a9e0f7303/test/functional/rpc_signrawtransaction.py#L270))

  * The subtest `test_signing_with_missing_prevtx_info()` introduced in [bitcoin#25044](bitcoin#25044) requires an extra `walletpassphrase` as the preceding tests that unlock the wallet are not called for descriptor wallets, making the call necessary. It is redundant but harmless for legacy wallets.

  * With the backport of [bitcoin#19937](bitcoin#19937) in [dash#6726](dashpay#6726) (as ae7e4cb), we can remove a workaround in `feature_nulldummy.py` where we used two nodes to satisfy `getblocktemplate`'s requirement of a connected node as that requirement was lifted on test chains.

  ## Breaking Changes

  None expected.

  ## How Has This Been Tested?

  A full CoinJoin session run on c0f9225

  ![CoinJoin session run on build c0f9225](https://github.com/user-attachments/assets/1dd31814-8d4a-47ab-95e5-5684818f3971)

  ## 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 c0f9225
  UdjinM6:
    utACK c0f9225

Tree-SHA512: 2217281ea75afe3eb6061e1acbd42afb66ff2ab28c15a3ad03bdb528ef4e40ea30bf1adad8d0ba93310a3d561d6c3f2ad95780b0b972af238523c6f2950a39c7
Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
PastaPastaPasta and others added 29 commits September 25, 2025 10:40
…627, #711, #658, #813, #825, #626, #831, #835 (qt backports: part 5)

20763f1 merge bitcoin-core/gui#835: Fix crash when closing wallet (Kittywhiskers Van Gogh)
b47b1f6 merge bitcoin-core/gui#831: GUIUtil::bringToFront workaround for Wayland (Kittywhiskers Van Gogh)
493768c merge bitcoin-core/gui#626: Showing Local Addresses in Node Window (Kittywhiskers Van Gogh)
4e1b06b merge bitcoin-core/gui#825: Show maximum mempool size in information window (Kittywhiskers Van Gogh)
568753a merge bitcoin-core/gui#813: Don't permit port in proxy IP option (Kittywhiskers Van Gogh)
dc3771e merge bitcoin-core/gui#658: Never change the prune checkbox after the user has touched it (Kittywhiskers Van Gogh)
9f103fb fix: hide the entire transaction widget if discreet mode is enabled (Kittywhiskers Van Gogh)
e9b347f merge bitcoin-core/gui#711: Disable unused special members functions in `UnlockContext` (Kittywhiskers Van Gogh)
8829549 merge bitcoin-core/gui#627: Apply translator comments to reset options confirmation dialog (Kittywhiskers Van Gogh)
d496df0 merge bitcoin-core/gui#612: Drop unused `QFrame`s in `SendCoinsEntry` (Kittywhiskers Van Gogh)
9e4ee65 merge bitcoin-core/gui#617: Reset options, notify user about backup creation (Kittywhiskers Van Gogh)
cc2df46 merge bitcoin-core/gui#594: replace deprecated Q_OS_MAC with Q_OS_MACOS (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  | `develop` (e23a658)                                       | This PR                                                      |
  | ------------------------------------------------------------ | ------------------------------------------------------------ |
  | ![image](https://github.com/user-attachments/assets/a792bcac-f6f1-4a25-929d-7abc1161625f) | ![image](https://github.com/user-attachments/assets/12daab53-2f84-41c5-938c-87eea367242f) |
  | ![image](https://github.com/user-attachments/assets/fc7ae896-e110-41f7-acd0-cff45e8e3774) | ![image](https://github.com/user-attachments/assets/4441816a-dd2d-4585-a6c9-7aaa771ba65b) |
  | ![image](https://github.com/user-attachments/assets/e884561d-1eef-461b-b852-2fadb493e4e3) | ![image](https://github.com/user-attachments/assets/89edd930-da0c-4d67-b767-1f3298e11a61) |

  ## 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:
  UdjinM6:
    utACK 20763f1

Tree-SHA512: 6e047d42685f9f710cd966b838ba354f57628e31314f73fc3f6f9b48bbf8fadac1940a48d19b8cfcf9cee47ec00a16a6f21d43c905d1683fba20e42633054606
…ehind `-deprecatedrpc=service`, mark `platform{P2P,HTTP}Port` as deprecated

ed3db7c docs: mark `platformP2PPort` and `platformHTTPPort` as deprecated (Kittywhiskers Van Gogh)
ac77d42 docs: clarify that deprecation extends to `address` in `masternodelist` (Kittywhiskers Van Gogh)
bbcd9d5 rpc: remove `-deprecatedrpc=service` gating for `service` (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  * dashpay#6666

  * No help text has been updated to mark `platformP2PPort` and `platformHTTPPort` as deprecated outputs as we do not generate help text that mentions what these fields represent. This gap will be addressed in a future PR and the text "(DEPRECATED)" will be appended there.
    * Like `service`, the field is only marked as deprecated in documentation but is accessible without any additional runtime flags.

  ## Breaking Changes

  Refer to release notes.

  ## 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
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK ed3db7c

Tree-SHA512: 44c524f01b829c3890c88ada19dd5da547a7b0df28f70b750196aabfc61cb0b5598359df649b78147a05fba41bfae474b4411aeae0632b701dde1004576a5396
…eleration for Echo512 and Shavite512, improve benchmark stability

005967b crypto: drop naive AES backends (Kittywhiskers Van Gogh)
d131fcc crypto: implement Shavite512's full `Compress()` routine (Kittywhiskers Van Gogh)
31f93ad crypto: unroll Echo512's `FullStateRound()` (Kittywhiskers Van Gogh)
fa68c70 crypto: implement ARM NEON backend for Echo512's `ShiftAndMix()` (Kittywhiskers Van Gogh)
963215b crypto: implement ARM AES backend for Shavite512's `CompressElement()` (Kittywhiskers Van Gogh)
959c9ee crypto: implement ARM AES backend for Echo512's `FullStateRound()` (Kittywhiskers Van Gogh)
76bd236 crypto: implement naive ARM AES backend for simple rounds (Kittywhiskers Van Gogh)
f2ececc crypto: implement AES-NI backend for Shavite512's `CompressElement()` (Kittywhiskers Van Gogh)
e1bbec4 crypto: avoid extra load/store in Echo512's `ShiftAndMix()` (Kittywhiskers Van Gogh)
250dcce crypto: combine Echo512's Shift and Mix operations (Kittywhiskers Van Gogh)
71d6ef9 crypto: implement SSSE3 backend for Echo512's `ShiftRows()` (Kittywhiskers Van Gogh)
da38871 crypto: implement SSSE3 backend for Echo512's `MixColumns()` (Kittywhiskers Van Gogh)
31a6732 crypto: implement AES-NI backend for Echo512's `FullStateRound()` (Kittywhiskers Van Gogh)
1f2eb21 crypto: implement naive AES-NI backend for simple rounds (Kittywhiskers Van Gogh)
cba39c5 const: use function pointer to allow for switching implementation (Kittywhiskers Van Gogh)
d6d3518 crypto: replace hardcoded AES transform tables with constexpr tables (Kittywhiskers Van Gogh)
20fc998 refactor: move software AES round to header (Kittywhiskers Van Gogh)
386742b refactor: remove large footprint Shavite512 impl, switch to C++ (Kittywhiskers Van Gogh)
7e8607e refactor: remove large footprint Echo512 impl, switch to C++ (Kittywhiskers Van Gogh)
c4e7a40 fix: suppress unaligned memory UBSan warnings if supported by arch (Kittywhiskers Van Gogh)
830928c bench: set minimum epoch iterations to improve `pow_hash` stability (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  ### Important

  * Due to the build system changes done in this PR, switching between commits in this branch or between this branch and any other branch (like `develop`) will likely require `git -dfx src/bench src/crypto src/primitives` and re-running `./autogen.sh` and `./configure`.

  * As the dispatcher doesn't kick in until _after_ genesis block validation, the correctness of the implementation can be validated by applying a commit that would retrigger the validation in the benchmark ([commit](dashpay@23d15b2)). This is not included in this PR as it negatively impacts benchmark results in some builds ([comment](dashpay#6796 (comment))).

  * While working on the ARMv7/ARMv8 backends, it was noticed that the `pow_hash` benchmark's error rate on Apple Silicon can go as high as ~15%, even on repeated runs, which reduces the reliability of benchmark results and hinders decision-making. To mitigate this, `minEpochIterations` has been reintroduced and set to 20 (up from pre-[dash#6752](dashpay#6752 10).

    Baseline measurements were taken against this change _before_ large footprint removal.

  ### Misc.

  * `libdashconsensus` is built with hardware optimizations disabled, which is currently set with `DISABLE_OPTIMIZED_SHA256` (introduced in [bitcoin#29180](bitcoin#29180)). To align with upstream behavior, our platform-specific code is disabled in the library as well using the macro to mean "disable optimizations".

  * Despite not being specified in Apple's documentation ([source](https://developer.apple.com/documentation/kernel/1387446-sysctlbyname/determining_instruction_set_characteristics)), some versions of macOS report NEON (a.k.a. advanced SIMD) using `hw.optional.arm.AdvSIMD` instead of `hw.optional.AdvSIMD`, so we check for that `sysctl` as well (see [google/cpufeatures#390](google/cpu_features#390))

  * Unaligned memory accesses are hardware-supported by platforms like x86_64 and sphlib utilizes them to improve performance ([source](https://github.com/dashpay/dash/blob/893b46a000c5088ce92f8625e74d7e3c126e0cdb/src/crypto/x11/sph_types.h#L117-L132)). When switching to the small footprint implementation of Shavite512, this triggers a UBSan error ([build](https://github.com/dashpay/dash/actions/runs/17896732544/job/50884688479#step:10:292)).

    As this is intentional behavior, we have opted to suppress the error by conditionally suppressing alignment sanitization _if_ the target platform supports it and it has been enabled (i.e. `SPH_UPTR` is set, which it is by default).

  ## Benchmarks

  ### Apple M1, macOS Sequoia 15.7

  * **Build Information:** Apple Clang 17 (clang-1700.3.19.1), Xcode 26.0 (17A324)
  * **Depends Config:** `MULTIPROCESS=1 CC=clang CXX=clang++ HOST=aarch64-apple-darwin`
  * **Build Config:** `CC=clang CXX=clang++ CFLAGS="-O2 -g" LDFLAGS="-Wl,-O2" ./configure --prefix=$(pwd)/depends/aarch64-apple-darwin --enable-reduce-exports --without-gui --disable-fuzz-binary --disable-maintainer-mode --disable-dependency-tracking --disable-ccache`

  **Baseline**

  * <details>

    <summary>Echo512:</summary>

    ```
    |             ns/byte |              byte/s |    err% |     total | benchmark
    |--------------------:|--------------------:|--------:|----------:|:----------
    |               39.68 |       25,201,342.83 |    0.2% |      0.01 | `Pow_Echo512_0032b`
    |               16.09 |       62,143,122.31 |    1.2% |      0.01 | `Pow_Echo512_0080b`
    |               19.63 |       50,943,039.85 |    0.2% |      0.01 | `Pow_Echo512_0128b`
    |               12.24 |       81,674,975.07 |    0.9% |      0.01 | `Pow_Echo512_0512b`
    |               10.94 |       91,442,178.90 |    0.4% |      0.01 | `Pow_Echo512_1024b`
    |               10.30 |       97,063,958.41 |    0.3% |      0.01 | `Pow_Echo512_2048b`
    |                9.72 |      102,906,236.78 |    0.4% |      0.11 | `Pow_Echo512_1M`
    ```

    </details>

  * <details>

    <summary>Shavite512:</summary>

    ```
    |             ns/byte |              byte/s |    err% |     total | benchmark
    |--------------------:|--------------------:|--------:|----------:|:----------
    |               15.18 |       65,869,311.23 |    0.5% |      0.01 | `Pow_Shavite512_0032b`
    |                6.08 |      164,380,032.21 |    0.5% |      0.01 | `Pow_Shavite512_0080b`
    |                7.50 |      133,291,221.55 |    0.4% |      0.01 | `Pow_Shavite512_0128b`
    |                4.69 |      213,338,740.34 |    0.6% |      0.01 | `Pow_Shavite512_0512b`
    |                4.25 |      235,339,069.77 |    0.8% |      0.01 | `Pow_Shavite512_1024b`
    |                4.02 |      248,784,999.42 |    0.7% |      0.01 | `Pow_Shavite512_2048b`
    |                3.75 |      266,841,572.42 |    0.4% |      0.04 | `Pow_Shavite512_1M`
    ```

    </details>

  * <details>

    <summary>X11:</summary>

    ```
    |             ns/byte |              byte/s |    err% |     total | benchmark
    |--------------------:|--------------------:|--------:|----------:|:----------
    |              249.10 |        4,014,450.39 |    0.2% |      0.01 | `Pow_X11_0032b`
    |              100.76 |        9,924,687.87 |    0.7% |      0.01 | `Pow_X11_0080b`
    |               63.72 |       15,694,749.39 |    0.4% |      0.01 | `Pow_X11_0128b`
    |               16.99 |       58,861,757.72 |    0.3% |      0.01 | `Pow_X11_0512b`
    |                9.27 |      107,817,565.81 |    0.2% |      0.01 | `Pow_X11_1024b`
    |                5.28 |      189,479,026.11 |    0.8% |      0.01 | `Pow_X11_2048b`
    |                1.37 |      731,462,009.69 |    0.7% |      0.01 | `Pow_X11_1M`
    ```

    </details>

  **Optimized**

  * <details>

    <summary>Echo512:</summary>

    ```
    |             ns/byte |              byte/s |    err% |     total | benchmark
    |--------------------:|--------------------:|--------:|----------:|:----------
    |               14.34 |       69,741,448.00 |    0.8% |      0.01 | `Pow_Echo512_0032b`
    |                5.68 |      176,124,721.60 |    0.0% |      0.01 | `Pow_Echo512_0080b`
    |                7.32 |      136,556,992.52 |    1.5% |      0.01 | `Pow_Echo512_0128b`
    |                4.31 |      232,035,714.32 |    0.1% |      0.01 | `Pow_Echo512_0512b`
    |                3.97 |      251,961,418.41 |    0.8% |      0.01 | `Pow_Echo512_1024b`
    |                3.62 |      276,147,242.57 |    0.1% |      0.01 | `Pow_Echo512_2048b`
    |                3.43 |      291,830,314.57 |    0.4% |      0.82 | `Pow_Echo512_1M`
    ```

    </details>

  * <details>

    <summary>Shavite512:</summary>

    ```
    |             ns/byte |              byte/s |    err% |     total | benchmark
    |--------------------:|--------------------:|--------:|----------:|:----------
    |               17.16 |       58,273,414.75 |    0.9% |      0.01 | `Pow_Shavite512_0032b`
    |                6.81 |      146,755,834.13 |    0.2% |      0.01 | `Pow_Shavite512_0080b`
    |                8.34 |      119,878,248.65 |    1.2% |      0.01 | `Pow_Shavite512_0128b`
    |                5.05 |      197,863,716.10 |    0.7% |      0.01 | `Pow_Shavite512_0512b`
    |                4.55 |      219,843,493.16 |    0.8% |      0.01 | `Pow_Shavite512_1024b`
    |                4.40 |      227,519,688.25 |    0.5% |      0.01 | `Pow_Shavite512_2048b`
    |                3.79 |      263,911,928.82 |    0.1% |      0.91 | `Pow_Shavite512_1M`
    ```

    </details>

  * <details>

    <summary>X11:</summary>

    ```
    |             ns/byte |              byte/s |    err% |     total | benchmark
    |--------------------:|--------------------:|--------:|----------:|:----------
    |              224.98 |        4,444,913.98 |    1.1% |      0.01 | `Pow_X11_0032b`
    |               90.76 |       11,017,721.52 |    1.7% |      0.01 | `Pow_X11_0080b`
    |               57.66 |       17,343,058.47 |    0.6% |      0.01 | `Pow_X11_0128b`
    |               15.79 |       63,347,591.25 |    0.3% |      0.01 | `Pow_X11_0512b`
    |                8.39 |      119,204,486.51 |    0.7% |      0.01 | `Pow_X11_1024b`
    |                4.98 |      200,909,248.89 |    1.1% |      0.01 | `Pow_X11_2048b`
    |                1.33 |      751,189,042.44 |    0.2% |      0.32 | `Pow_X11_1M`
    ```

    </details>

  ### AMD Ryzen 5 5600G, Ubuntu 24.04 (Noble)

  * **Build Information:** Ubuntu Clang 18.1.8
  * **Depends Config:** `MULTIPROCESS=1 CC=clang-18 CXX=clang++-18 HOST=x86_64-pc-linux-gnu`
  * **Build Config:** `CC=clang-18 CXX=clang++-18 CFLAGS="-O2 -g" LDFLAGS="-Wl,--as-needed -Wl,-O2" ./configure --prefix=$(pwd)/depends/x86_64-pc-linux-gnu --enable-reduce-exports --without-gui --disable-fuzz-binary --disable-maintainer-mode --disable-dependency-tracking --disable-ccache`

  **Baseline**

  * <details>

    <summary>Echo512:</summary>

    ```
    |             ns/byte |              byte/s |    err% |        ins/byte |        cyc/byte |    IPC |       bra/byte |   miss% |     total | benchmark
    |--------------------:|--------------------:|--------:|----------------:|----------------:|-------:|---------------:|--------:|----------:|:----------
    |               51.81 |       19,300,083.40 |    0.2% |          916.31 |          230.13 |  3.982 |           6.19 |    0.5% |      0.01 | `Pow_Echo512_0032b`
    |               20.72 |       48,266,658.57 |    0.1% |          366.56 |           92.01 |  3.984 |           2.49 |    0.5% |      0.01 | `Pow_Echo512_0080b`
    |               25.67 |       38,953,174.42 |    0.1% |          456.97 |          113.97 |  4.009 |           2.95 |    0.5% |      0.01 | `Pow_Echo512_0128b`
    |               16.00 |       62,491,477.70 |    0.1% |          285.25 |           71.06 |  4.014 |           1.81 |    0.6% |      0.01 | `Pow_Echo512_0512b`
    |               14.38 |       69,562,745.47 |    0.1% |          256.63 |           63.83 |  4.020 |           1.63 |    0.6% |      0.01 | `Pow_Echo512_1024b`
    |               13.65 |       73,272,852.80 |    0.1% |          242.32 |           60.27 |  4.020 |           1.53 |    0.6% |      0.01 | `Pow_Echo512_2048b`
    |               12.84 |       77,877,131.11 |    0.0% |          228.02 |           56.70 |  4.022 |           1.44 |    0.6% |      3.07 | `Pow_Echo512_1M`
    ```

    </details>

  * <details>

    <summary>Shavite512:</summary>

    ```
    |             ns/byte |              byte/s |    err% |        ins/byte |        cyc/byte |    IPC |       bra/byte |   miss% |     total | benchmark
    |--------------------:|--------------------:|--------:|----------------:|----------------:|-------:|---------------:|--------:|----------:|:----------
    |               26.75 |       37,379,255.99 |    0.0% |          423.31 |          118.82 |  3.563 |           1.41 |    0.0% |      0.01 | `Pow_Shavite512_0032b`
    |               10.71 |       93,360,115.43 |    0.0% |          169.35 |           47.57 |  3.560 |           0.58 |    0.0% |      0.01 | `Pow_Shavite512_0080b`
    |               13.26 |       75,436,781.19 |    0.0% |          210.04 |           58.87 |  3.568 |           0.45 |    0.0% |      0.01 | `Pow_Shavite512_0128b`
    |                8.26 |      121,051,101.55 |    0.0% |          130.99 |           36.69 |  3.570 |           0.27 |    0.0% |      0.01 | `Pow_Shavite512_0512b`
    |                7.44 |      134,444,187.57 |    0.0% |          117.82 |           33.04 |  3.566 |           0.24 |    0.4% |      0.01 | `Pow_Shavite512_1024b`
    |                7.06 |      141,686,987.23 |    0.2% |          111.23 |           31.18 |  3.568 |           0.23 |    0.2% |      0.01 | `Pow_Shavite512_2048b`
    |                6.65 |      150,409,844.26 |    0.1% |          104.65 |           29.37 |  3.563 |           0.21 |    0.0% |      1.60 | `Pow_Shavite512_1M`
    ```

    </details>

  * <details>

    <summary>X11:</summary>

    ```
    |             ns/byte |              byte/s |    err% |        ins/byte |        cyc/byte |    IPC |       bra/byte |   miss% |     total | benchmark
    |--------------------:|--------------------:|--------:|----------------:|----------------:|-------:|---------------:|--------:|----------:|:----------
    |              326.13 |        3,066,305.67 |    0.0% |        5,979.73 |        1,448.47 |  4.128 |          41.00 |    0.1% |      0.01 | `Pow_X11_0032b`
    |              130.47 |        7,664,483.17 |    0.0% |        2,391.79 |          579.50 |  4.127 |          16.38 |    0.1% |      0.01 | `Pow_X11_0080b`
    |               83.00 |       12,048,837.15 |    0.0% |        1,516.78 |          368.62 |  4.115 |          10.30 |    0.1% |      0.01 | `Pow_X11_0128b`
    |               21.78 |       45,920,017.94 |    0.0% |          395.29 |           96.72 |  4.087 |           2.64 |    0.1% |      0.01 | `Pow_X11_0512b`
    |               11.50 |       86,977,849.93 |    0.0% |          208.38 |           51.07 |  4.081 |           1.36 |    0.1% |      0.01 | `Pow_X11_1024b`
    |                6.38 |      156,826,545.04 |    0.0% |          114.92 |           28.16 |  4.081 |           0.72 |    0.1% |      0.01 | `Pow_X11_2048b`
    |                1.21 |      827,082,388.48 |    0.1% |           21.65 |            5.34 |  4.052 |           0.09 |    0.0% |      0.29 | `Pow_X11_1M`
    ```

    </details>

  **Optimized**

  * <details>

    <summary>Echo512:</summary>

    ```
    |             ns/byte |              byte/s |    err% |        ins/byte |        cyc/byte |    IPC |       bra/byte |   miss% |     total | benchmark
    |--------------------:|--------------------:|--------:|----------------:|----------------:|-------:|---------------:|--------:|----------:|:----------
    |               17.52 |       57,085,952.31 |    0.0% |          166.19 |           77.77 |  2.137 |           7.88 |    0.0% |      0.01 | `Pow_Echo512_0032b`
    |                7.01 |      142,732,714.40 |    0.1% |           66.51 |           31.10 |  2.139 |           3.16 |    0.0% |      0.01 | `Pow_Echo512_0080b`
    |                8.69 |      115,084,427.41 |    0.1% |           81.58 |           38.56 |  2.116 |           3.76 |    0.0% |      0.01 | `Pow_Echo512_0128b`
    |                5.36 |      186,499,101.72 |    0.1% |           50.51 |           23.79 |  2.123 |           2.31 |    0.1% |      0.01 | `Pow_Echo512_0512b`
    |                4.79 |      208,614,198.78 |    0.1% |           45.33 |           21.29 |  2.129 |           2.07 |    0.0% |      0.01 | `Pow_Echo512_1024b`
    |                4.51 |      221,584,256.28 |    0.0% |           42.74 |           20.04 |  2.133 |           1.95 |    0.0% |      0.01 | `Pow_Echo512_2048b`
    |                4.27 |      234,154,680.31 |    0.0% |           40.15 |           18.95 |  2.119 |           1.83 |    0.0% |      1.02 | `Pow_Echo512_1M`
    ```

    </details>

  * <details>

    <summary>Shavite512:</summary>

    ```
    |             ns/byte |              byte/s |    err% |        ins/byte |        cyc/byte |    IPC |       bra/byte |   miss% |     total | benchmark
    |--------------------:|--------------------:|--------:|----------------:|----------------:|-------:|---------------:|--------:|----------:|:----------
    |               10.12 |       98,853,454.39 |    0.5% |           69.47 |           44.93 |  1.546 |           8.38 |    0.0% |      0.01 | `Pow_Shavite512_0032b`
    |                3.98 |      251,044,756.51 |    0.1% |           27.81 |           17.69 |  1.572 |           3.36 |    0.0% |      0.01 | `Pow_Shavite512_0080b`
    |                4.89 |      204,696,173.21 |    0.1% |           32.78 |           21.69 |  1.511 |           3.90 |    0.0% |      0.01 | `Pow_Shavite512_0128b`
    |                3.01 |      332,315,588.24 |    0.1% |           20.08 |           13.37 |  1.502 |           2.42 |    0.1% |      0.01 | `Pow_Shavite512_0512b`
    |                2.70 |      369,999,483.82 |    0.2% |           17.96 |           12.00 |  1.496 |           2.17 |    0.0% |      0.01 | `Pow_Shavite512_1024b`
    |                2.55 |      392,427,831.38 |    0.0% |           16.90 |           11.32 |  1.493 |           2.05 |    0.0% |      0.01 | `Pow_Shavite512_2048b`
    |                2.39 |      418,541,658.56 |    0.0% |           15.84 |           10.60 |  1.494 |           1.92 |    0.0% |      0.57 | `Pow_Shavite512_1M`
    ```

    </details>

  * <details>

    <summary>X11:</summary>

    ```
    |             ns/byte |              byte/s |    err% |        ins/byte |        cyc/byte |    IPC |       bra/byte |   miss% |     total | benchmark
    |--------------------:|--------------------:|--------:|----------------:|----------------:|-------:|---------------:|--------:|----------:|:----------
    |              271.74 |        3,679,981.60 |    0.1% |        4,875.78 |        1,206.89 |  4.040 |          49.66 |    0.0% |      0.01 | `Pow_X11_0032b`
    |              108.70 |        9,199,814.12 |    0.2% |        1,950.20 |          482.28 |  4.044 |          19.84 |    0.0% |      0.01 | `Pow_X11_0080b`
    |               69.40 |       14,408,573.10 |    0.2% |        1,240.79 |          308.15 |  4.027 |          12.47 |    0.0% |      0.01 | `Pow_X11_0128b`
    |               18.33 |       54,546,702.44 |    0.1% |          326.29 |           81.43 |  4.007 |           3.18 |    0.0% |      0.01 | `Pow_X11_0512b`
    |                9.78 |      102,262,967.62 |    0.2% |          173.88 |           43.39 |  4.007 |           1.63 |    0.0% |      0.01 | `Pow_X11_1024b`
    |                5.48 |      182,512,076.76 |    0.1% |           97.67 |           24.33 |  4.015 |           0.86 |    0.0% |      0.01 | `Pow_X11_2048b`
    |                1.20 |      835,292,126.52 |    0.0% |           21.62 |            5.31 |  4.068 |           0.09 |    0.0% |      0.29 | `Pow_X11_1M`
    ```

    </details>

  ## Breaking Changes

  Platforms that partially support the set of extensions for x86_64 (SSSE3, SSE4.1 and AES-NI) or ARMv7/ARMv8 (NEON and crypto extensions for AES) may experience different performance characteristics.

  The following cases may experience performance degradation due to moving to a small-footprint variant and the overhead (and lost optimization opportunity) incurred by runtime dispatching.

  * Platforms other than x86_64 or ARMv7 and above (there are no backends that implement optimized routines for them)
  * x86_64 or ARMv7/ARMv8, without extensions (i.e. older chips, OS/Hypervisor-level disablement of extensions)
  * Operating systems other than Windows, macOS, Linux and FreeBSD (there are no dispatch routines for other platforms)
  * Using `libdashconsensus` (optimizations are disabled wholesale for the library following upstream behavior)

  ## 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 **(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/light-ACK 005967b

Tree-SHA512: 8b23f8e4e591faa4fbdb75ef85a64fed5f0429c804e650e8389789468d7e594998b11228794d650adfaeaf65085d157f98533983a7893d8db5ba587341c86e44
58ccc88 lint: add creat and ba into ignore-words for lint-spelling (brunoerg)
bad0e7f doc: Fix typos pointed out by lint-spelling (brunoerg)

Pull request description:

  Occuring -> occurring (random.h)
  Covert -> convert (chacha_poly_aead.cpp)
  Fix `nWe` false positive in blockchain.cpp (bitcoin#24203 (comment))

  Got it by linter, other ones are false positives.

ACKs for top commit:
  prusnak:
    ACK 58ccc88

Tree-SHA512: b350d0e64968b96ead226da0be6aa4ca3f8e482ae401697867684ce8478e96b954124b3dea6dcd697aad4206f209f32f238d7cf0a0589075f24f5cf629c563f3
94c7dd9 doc: Fix typos from codespell lint (Yerzhan Mazhkenov)

Pull request description:

  Typos from codespell linter: https://cirrus-ci.com/task/6677401661865984?logs=lint#L856
  - txrequest.cpp: `annoucements` ==> `announcements`
  - contrib/guix/README.md:298: `stil` ==> `still`
  - contrib/guix/guix-build:18: `invokable` ==> `invocable`
  - contrib/guix/libexec/prelude.bash:12: `invokable` ==> `invocable`
  - src/test/fuzz/tx_pool.cpp:37: `acess` ==> `access`
  - src/txorphanage.h:29: `orginating` ==> `originating`

ACKs for top commit:
  practicalswift:
    cr ACK 94c7dd9: thnaks fro fiixng tpyos!
  jarolrod:
    ACK 94c7dd9

Tree-SHA512: e0fac462a2f9e68b6a161c9f5d95b4d0648ce5c618fd7cd243d57db8f0256138b8823b166ea406b21e95586eae43047df1ef0df04616858082a39c1d1eb13a86
… in comments

f565b28 Fixup option name in bench message (Ben Woosley)
bf209ac doc: Fix spelling errors identified by codespell in coments (Ben Woosley)

Pull request description:

  From the output [here](https://cirrus-ci.com/task/5275612980969472?logs=lint#L849):
  ```
  src/qt/test/addressbooktests.cpp:185: wilcard ==> wildcard
  src/qt/test/addressbooktests.cpp:191: wilcard ==> wildcard
  src/test/miniscript_tests.cpp:227: nd ==> and, 2nd
  src/test/versionbits_tests.cpp:260: everytime ==> every time
  src/util/time.h:89: precicion ==> precision
  src/util/time.h:90: precicion ==> precision
  ^ Warning: codespell identified likely spelling errors. Any false positives? Add them to the list of ignored words in test/lint/spelling.ignore-words.txt
  ```

  ~~I left the 'nd' in miniscript_tests as-is, as it's valid miniscript,
  and I'm wary of whitelisting it.~~

ACKs for top commit:
  dunxen:
    ACK f565b28

Tree-SHA512: 501a426c5f6f9761e2c8f980d5d955611428a827321888f53e0ae9526b0fecd43f9d1fa845fc70ae2489d77be6dc0b5b371dff55c5146f4b39ed874f4a1ea917
…saction`

71038a1 rpc: Fix documentation assertion for `getrawtransaction` (laanwj)

Pull request description:

  When `getrawtransaction` is successfully used on a coinbase transaction, there is an assertion error. This is very unlikely but happens in the `interface_usdt_utxocache.py` test in bitcoin#24358.

  This does the following:

  - Add missing "coinbase" documentation.

  - Synchronize documentation between `getrawtransaction` and  `decoderawtransaction`, the two users of `TxToUniv` that have detailed   documentation. `decodepsbt` and `getblock` also uses it but fortunately elides this block.

  - Change "vout[].amount" to `STR_AMOUNT` for consistency.

  - Add maintainer comment to keep the two places synchronized. It might  be possible to get smarter with deduplication, but there are some  extra fields that prevent the obvious way.

ACKs for top commit:
  jonatack:
    ACK 71038a1

Tree-SHA512: 962236130455d805190ff9a5c971e4e25c17db35614a90ce340264ec953b0ad7fb814eb33ae430b5073955a8a350f72bdd67ba93e35f9c70e5175b836a767a35
fa58427 doc: Use DecodeTxDoc helper (MarcoFalke)

Pull request description:

ACKs for top commit:
  fanquake:
    ACK fa58427
  shaavan:
    ACK fa58427

Tree-SHA512: 58652f15f858822e4fceeba6967866a4866d2455f1547f4814dd4113409da16117616c5b62eb58a6bead5433a4d28c598809a0ff79b6f377d138cad3b2edb2d7
bf77fea test: fix incorrect named args in txpackage tests (fanquake)

Pull request description:

  Final non-scripted-diff commit split from bitcoin#24661.

  Could be tested with: `./autogen.sh && ./configure CC=clang-12 CXX=clang++-12 && make clean && bear make -j9 && ( cd ./src/ && run-clang-tidy-12 -j9 )`.

  Motivation:
  > Incorrect named args are source of bugs, like bitcoin#22979.

  > To allow them being checked by clang-tidy, use a format it can understand.

ACKs for top commit:
  ajtowns:
    ACK bf77fea

Tree-SHA512: a13bfb5fc70424b13fbeec7f164d7a0d3b72b27ebec11dfd4115b7782a0037f26e9349e06eef8a6b17b8f529e0c7f43ae37a9c252bde65706dd164704d207d5f
…guments

37a16ff refactor: fix clang-tidy named args usage (fanquake)

Pull request description:

  > Incorrect named args are source of bugs, like bitcoin#22979.

  > To allow them being checked by clang-tidy, use a format it can understand.

  Picks up bitcoin#23545, with some additional changes and some feedback addressed.

  With these changes invoking `./autogen.sh && ./configure CC=clang-12 CXX=clang++-12 && make clean && bear make -j9 && ( cd ./src/ && run-clang-tidy-12 -j9 )` no-longer results in named argument errors out of `clang-tidy`.

  Ultimately I think we should just add `clang-tidy-*` jobs to the CI and automate things away.

ACKs for top commit:
  MarcoFalke:
    cr ACK 37a16ff

Tree-SHA512: 9bfc0d006eb187755b4fdb0bd92cee9266fc0816be42065ef7dcd885b9020ff12e3cdd7ca3a831613a56a0206d448e690ee4e1fa37628fa2013860e17f416ff3
c848a45 test: fix connman UB by calling derived constructor (chinggg)

Pull request description:

  Hopefully closes bitcoin#24373 by calling `ConnmanTestMsg` test-constructor to avoid undefined behavior in process_message.cpp after casting `g_setup->m_node.connman`.

Top commit has no ACKs.

Tree-SHA512: c3dce9dcce33614c7b739edf28e416b600ab3d38d16cdb0430490e8ffc9b64aff9292006ae6fe7c636ab0627893bb21f69435893bdfb129a9a865be92baa6f17
…C help

1d95b5c doc: cleanups to mempool rest endpoints (brunoerg)
b941dec docs: update `/rest/chaininfo` doc referring to RPC help (brunoerg)

Pull request description:

  Internally, `/rest/chaininfo` gets the infos from `getblockchaininfo` and I just realized the documentation of it in `REST-interface.md` is outdated compared to the `getblockchaininfo` RPC one. This PR removes the documentation of the fields and adds a reference to the RPC help.

ACKs for top commit:
  jonatack:
    ACK 1d95b5c

Tree-SHA512: 643db202e13e8372105460b0871facb11586dc0ff5e86ec9e105a178bcfeefa3555bb047cd28cfaeb3e747f5a2055e27961813c9e299ba7b2d36151e81049507
abcb876  doc: add more info to dependencies.md (Pavol Rusnak)

Pull request description:

  Follow-up to bitcoin#23565

  I added more info to dependencies.md - especially links to `depends/packages/*.mk` files and link to PRs where used versions were bumped.

  Preview at: https://github.com/prusnak/bitcoin/blob/dependencies/doc/dependencies.md

ACKs for top commit:
  fanquake:
    ACK abcb876 - I didn't click on or test all of the links, but this looks ok.

Tree-SHA512: e91deb639afebeb37f7bf05dddad8f70547b51688e938a30692e59dbd7c9e49d52b7f9bfacb74ef60c98862b6f8f444199d0ae06973c42dc647314bc1ffc22d5
0218171 contrib: Remove invalid nodes from seeds list (Wladimir J. van der Laan)
3b09f2b net: 0.19 hardcoded seeds update (Wladimir J. van der Laan)
801d341 contrib: makeseeds: More fancy output (Wladimir J. van der Laan)
ed76299 contrib: makeseeds: Limit per network, instead of total (Wladimir J. van der Laan)
c254a9e contrib: makeseeds: dedup by ip,port (Wladimir J. van der Laan)
3314d87 contrib: makeseeds: Factor out ASN lookup (Wladimir J. van der Laan)
301c2b1 contrib: makeseeds: Improve logging and filtering (Wladimir J. van der Laan)

Pull request description:

  - contrib: Improve makeseeds script
  - net: 0.19 hardcoded seeds update

  Sources:
  - http://bitcoin.sipa.be/seeds.txt.gz (Sipa)
  - https://github.com/bitcoin/bitcoin/files/3671913/dnsseed.dump.tar.gz (Sjors)

  Output:
  ```
  Initial: IPv4 418690, IPv6 55861, Onion 2747
  Skip entries with invalid address: IPv4 418690, IPv6 55861, Onion 2747
  After removing duplicates: IPv4 409220, IPv6 54028, Onion 2717
  Skip entries from suspicious hosts: IPv4 409219, IPv6 54028, Onion 2717
  Enforce minimal number of blocks: IPv4 106719, IPv6 46342, Onion 2621
  Require service bit 1: IPv4 106384, IPv6 46241, Onion 2542
  Require minimum uptime: IPv4 5300, IPv6 1153, Onion 201
  Require a known and recent user agent: IPv4 4642, IPv6 1060, Onion 141
  Filter out hosts with multiple bitcoin ports: IPv4 4642, IPv6 1060, Onion 141
  Look up ASNs and limit results, both per ASN and globally: IPv4 464, IPv6 48, Onion 141
  ```

ACKs for top commit:
  Sjors:
    ACK 0218171. I also checked that `chainparamsseeds.h` is generated from `nodes_main.txt`. Sounds like we should look at this script a bit more outside release moments :-)

Tree-SHA512: c1f5795fe88d14800c4da918387368d51e85f4319f2ce3c0359851d041767e2883f32b1da371bba22bd5f0b442ac3e5ea7d685c233ad2cc4045c930f973b0aa2
c457fb1 improve clarity and up max ipv6 ASNs (Baas)

Pull request description:

  This PR attempts to address some of the areas of improvement raised in bitcoin#17020 . Concretely, my proposed change is fairly minor but addresses the following changes to [`makeseeds.py`](https://github.com/bitcoin/bitcoin/blob/master/contrib/seeds/makeseeds.py):

  - Increase max seeds per ASN for IPv6 to 10 as recommended [here](bitcoin#16999 (comment)), while keeping max seeds per ASN for IPv4 at 2.
  - Bump `MIN_BLOCKS` to 730000.
  - Improved script clarity: added function types and more docs to functions, added progress indicator when performing ASN lookup, and change string formatting to better align with [bitcoin python style guidelines](https://github.com/bitcoin/bitcoin/blob/master/test/functional/README.md#style-guidelines)

  With the different ASN limits for IPv4 and IPv6, and the new minimum block requirement, the current stats look look like:
  ```
    IPv4   IPv6  Onion Pass
  470689  73238      0 Initial
  470689  73238      0 Skip entries with invalid address
  470689  73238      0 After removing duplicates
  470688  73238      0 Skip entries from suspicious hosts
    6098   1676      0 Enforce minimal number of blocks
    5252   1443      0 Require service bit 1
    3812    898      0 Require minimum uptime
    3738    877      0 Require a known and recent user agent
    3715    869      0 Filter out hosts with multiple bitcoin ports
     512    512      0 Look up ASNs and limit results per ASN and per net
  ```
  The new ASN max seeds of 10 allows for 512 IPv6 addresses to be included, up from the ~150 that was filtered by the previous version.

  While there is more to do for bitcoin#17020 , these changes I think are fairly isolated from the rest and should make it a bit easier for others to get up to speed with what the functions in the script do.

ACKs for top commit:
  laanwj:
    Concept and code review ACK c457fb1

Tree-SHA512: 3ed67868443cc50544e23b27e2341758c3a8866997b0dba47b137032d5e1a13428855daaeed682626ed471542b44435635178d54848a2cd6fe73777679428032
…eeds

2f629f8 contrib: Remove suspicious hosts list from makeseeds (laanwj)

Pull request description:

  I have some qualms about maintaining a suspicious hosts list as part as the repository\*. But also, it's stale and irrelevant. I've checked the entire list and none of them is connectable. Only one still appars in `nodes_main.txt` but with low uptime and an old subversion string so it wouldn't be picked in the first place. This change removes the list and the functionality to use it.

  | IP               | 8333 connectable    | in `nodes_main.txt`   |
  |------------------|---------------------|-----------------------|
  | 130.211.129.106  |      no  | no    |
  | 148.251.238.178  |      no  | no    |
  | 176.9.46.6       |      no  | yes: /Satoshi:0.9.2.1/    |
  | 178.63.107.226   |      no  | no    |
  | 54.173.72.127    |      no  | no    |
  | 54.174.10.182    |      no  | no    |
  | 54.183.64.54     |      no  | no    |
  | 54.194.231.211   |      no  | no    |
  | 54.66.214.167    |      no  | no    |
  | 54.66.220.137    |      no  | no    |
  | 54.67.33.14      |      no  | no    |
  | 54.77.251.214    |      no  | no    |
  | 54.94.195.96     |      no  | no    |
  | 54.94.200.247    |      no  | no    |
  | 83.81.130.26     |      no  | no    |
  | 88.198.17.7      |      no  | no    |

  ref: bitcoin#17020 (comment)

  \* besides the commit noise, potential legal issues around accountability and liability that would come with maintaining such a blocklist actively, I don't think we should expose the project to

ACKs for top commit:
  Empact:
    ACK bitcoin@2f629f8
  jonatack:
    ACK 2f629f8
  1440000bytes:
    ACK bitcoin@2f629f8

Tree-SHA512: 3159d7df7cf66415a5db6058b62e5696efcf6c46b0ec38090e22ba26d9b375eb1a88f510b71769eb7b4f14e7007d2b64e1709cf6b1300ade3f7277d50efb3ddb
…to `{evo,llmq}/types.h`

e7d35e6 refactor: drop `CDeterministicMNListPtr` (Kittywhiskers Van Gogh)
1010fea refactor: consolidate `llmq::CFinalCommitmentPtr` definitions (Kittywhiskers Van Gogh)
44edad9 refactor: consolidate `llmq::CQuorum{,C}Ptr` definitions (Kittywhiskers Van Gogh)
9325db9 refactor: consolidate `CDeterministicMNCPtr` definitions (Kittywhiskers Van Gogh)

Pull request description:

  ## Motivation

  Consolidating frequently defined types to module-specific headers should prevent redefinition (often required to avoid undesirable dependency chains) and make code easier to read.

  ## Additional Information

  * Depends on dashpay#6828

  * Depends on dashpay#6851 (supersedes portions of this PR)

  ## 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 e7d35e6

Tree-SHA512: 2fa1d8b5b4e4d30051e2f7cec2c8ece2b35412f28d331eadcdfb5722563a43f3d259d4e6ee3a02daf815cdeb50d0eb8ca5dec15604986884f7b2164daa5cc402
64d2f67 fmt: removed dub newline in p2p_platform_ban.py (Konstantin Akimov)
af6f2cc fixup: prevent flipping "is banned" for the equal height (Konstantin Akimov)
efc3a3d fix: no flipping ban/unban if it's the same height for p2p message for node revive (Konstantin Akimov)
0e0e1ce fix: enforce quorum hash while validation platform ban p2p message (Konstantin Akimov)
8ec5e20 fix: misusing m_inventory for ProcessMessageRet (Konstantin Akimov)
2af2844 fix: return ret instead {}, missing usage (Konstantin Akimov)
42f9d7c refactor: let PostProcessMessage do the job II (Konstantin Akimov)
d221a65 refactor: let PostProcessMessage do the job (Konstantin Akimov)
0860a12 fix: add missing call of EraseObjectRequest for platform ban p2p message (Konstantin Akimov)
33c4e36 refactor: rename day_of_blocks to PLATFORM_BAN_WINDOW_BLOCKS (Konstantin Akimov)
4b4bcfd refactor: rename argument name from from to node II (Konstantin Akimov)
ff705fc refactor: rename argument name from from to node (Konstantin Akimov)
6d31876 refactor: fixes based on code review and better documenting of classes (Konstantin Akimov)
6cb94d2 refactor: use LRU cache instead map to limit size of seen platform ban messages (Konstantin Akimov)
4dd0830 refactor: use std::move to make a copy of PlatformBan message (Konstantin Akimov)
5affcc9 fix: bump version in masternode meta store (Konstantin Akimov)
0cd4e42 fix: add list of valid mns for mine_quorum helper in p2p_platform_ban.py (Konstantin Akimov)
c0621a7 fix: add missing LOCK for m_platform_ban (Konstantin Akimov)
fbd0cf9 test: functional test p2p_platform_ban.py (Konstantin Akimov)
73e0b3f test: add platforban message to test framework (Konstantin Akimov)
0f80a02 feat!: implementation of Platform PoSe Ban p2p message (Konstantin Akimov)
2322929 feat!: add new protocol version PLATFORM_BAN_VERSION = 70236 (Konstantin Akimov)
94b362c test: removed on_feefilter that has never been implemented for Dash (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented
  It implements [DIP-0031 ](https://github.com/dashpay/dips/blob/master/dip-0031.md)

  ## What was done?
  Implemented p2p message in inventory system and functional tests for it.

  ## How Has This Been Tested?
  See `test/functional/p2p_platform_ban.py`

  ## Breaking Changes
  It bumps protocol version `MIN_MASTERNODE_PROTO_VERSION` for MN to 70236.

  ## 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
  - [ ] I have made corresponding changes to the documentation
  - [x] I have assigned this pull request to a milestone

ACKs for top commit:
  UdjinM6:
    re-utACK 64d2f67
  PastaPastaPasta:
    utACK 64d2f67

Tree-SHA512: 6b79c553f0fd223d9c9dbdd961fb5afdb218b43b3991bfbddfcad09350cc8fd224bb5e3382705b49bf1f19d8e1d1a16957d76ced312d7fc2f8ad716fbcb556b9
…3858, bitcoin#24137, bitcoin#24409, bitcoin#24453, bitcoin#24510, bitcoin#24524, bitcoin#24600, bitcoin#24601, bitcoin#24608, bitcoin#24658, bitcoin-core/gui#441

a368392 Merge bitcoin#24409: Always output license/copyright info with `-version` (MarcoFalke)
a392e3d Merge bitcoin#24600: doc: mention that BDB is for the legacy wallet in build-freebsd.md (fanquake)
9fb1ce2 Merge bitcoin#24658: doc: mention that BDB is for the legacy wallet in build-netbsd.md (fanquake)
356cefd Merge bitcoin#24601: ci: add ci/scratch dir to .gitignore (MarcoFalke)
3629f4a Merge bitcoin#24608: doc: clarify that BDB is only required for the legacy wallet in build-unix.md (fanquake)
b43f6c9 Merge bitcoin#18815: bench: Add logging benchmark (MarcoFalke)
6ea60b0 Merge bitcoin#24510: test: check for importprunedfunds RPC errors (MarcoFalke)
dda83b3 Merge bitcoin#24453: Bugfix: doc: Correct change_address/changeAddress in wallet RPC help (MarcoFalke)
5478b75 Merge bitcoin#24524: doc: remove Boost LDFLAGS from netBSD build docs (fanquake)
b11d4e1 Merge bitcoin-core/gui#441: Add Create Unsigned button to SendConfirmationDialog (Hennadii Stepanov)
320c5d4 Merge bitcoin#22490: test: Disable automatic connections per default in the functional tests (MarcoFalke)
f6198ab Merge bitcoin#24137: doc: Rework generate* doc (fanquake)
4180b62 Merge bitcoin#23858: test: Fix rpc_scantxoutset intermittent issue (MarcoFalke)

Pull request description:

  ## Issue being fixed or feature implemented
  Regular backports from bitcoin v23, v24

  ## What was done?
  See commits

  ## How Has This Been Tested?
  Run unit & functional tests

  ## Breaking Changes
  RPCs `generatetoaddress`, `generatetodescriptor`, `generateblock` are hidden now so far as they are available only for RegTest

  ## 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 a368392
  kwvg:
    utACK a368392

Tree-SHA512: f62dad9e3cebb4fcf67d5f04f9d98d87f0532bd866900e2bf3737db7af33a5d476799276268edc3a31a04553fbd9bc5ae06cca17741b7520051f197a2de7b54f
a8b366a refactor: clean up exceeding qt includes (Konstantin Akimov)

Pull request description:

  ## Issue being fixed or feature implemented

  New code lines appear,
  Old code lines are disappearing,
  Includes still remain.

  ## What was done?
  Reviewed all Qt-related includes and drop unused.
  It is easy to do, because in most of the cases the include name matches to the used class name.
  Popular exceptions are `qApp` for QApplication, `qDebug` for `QDebug`, `QApplication::clipboard` for `QClipboard` in our codebase.
  Some leftovers have been fixed manually.

      #!/bin/bash

      for s in $(find . -maxdepth 1 -name '*.h' -or -name '*.cpp') ; do
          [[ $s == ./moc_* ]] && continue
          grep '^#include <Q.*>$' $s | awk '{print $NF}' | sed 's/[<>]//g' | sort | uniq | xargs -I{} bash -c "grep -c \"[^<]{}\" $s >/dev/null || echo \"$s - {}\""
      done

  ## How Has This Been Tested?
  Run build with & without patch
  It saves ~30-40seconds of single-cpu time; which equals to 3-5 seconds of building time overall for my multi-core machine.

  ## 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 a8b366a
  kwvg:
    utACK a8b366a

Tree-SHA512: 784431e040d5fe9ca64baca198badb9f936315dc31641e9b492f168d89109d8f7edf595a322e45171d2f953a04dd5bbb6cc6d124d3ecca0dee661d7a908d6079
…4661, bitcoin#24716, bitcoin#24721, bitcoin#24724, bitcoin#24776, bitcoin#24818, bitcoin#24841, bitcoin#24862

f0d5a82 fix: actually missing argument discovered by linter after bitcoin#24661 (Konstantin Akimov)
d118138 Merge bitcoin#24862: contrib: Remove suspicious hosts list from makeseeds (fanquake)
69f2bf9 Merge bitcoin#24818: net: improve and address issues in makeseeds.py (laanwj)
4f8df9d Merge bitcoin#16999: net: 0.19 seeds update (Wladimir J. van der Laan)
e714c06 fix: make makeseeds.py works (Konstantin Akimov)
cecb9e2 Merge bitcoin#24586: doc: add more info to dependencies.md (fanquake)
b34009c Merge bitcoin#24776: docs: update /rest/chaininfo doc referring to RPC help (MarcoFalke)
9d5b230 Merge bitcoin#24841: test: fix connman UB by calling derived constructor (MarcoFalke)
e8b5e1c Merge bitcoin#24661: refactor: Use clang-tidy syntax for C++ named arguments (MarcoFalke)
cca9584 Merge bitcoin#24724: test: fix incorrect named args in txpackage tests (MarcoFalke)
cbc653c Merge bitcoin#24721: doc: Use DecodeTxDoc helper (MarcoFalke)
6bcbc72 Merge bitcoin#24716: rpc: Fix documentation assertion for `getrawtransaction` (MarcoFalke)

Pull request description:

  ## What was done?
  Regular backports from Bitcoin Core v24

  ## How Has This Been Tested?
  Run unit & functional tests.

  To test `makeseeds.py`:

      src/dash-cli protx list valid 1 1715321 > protx_list.json
      python3 makeseeds.py < protx_list.json > nodes_main.txt

  ## Breaking Changes
  N/A

  ## 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 f0d5a82
  kwvg:
    utACK f0d5a82

Tree-SHA512: eb6e947d686b1241d0d79a0fd311c43021134cac4d56068b56e311c0de1cd8a6e57a5326da6b70025f48ebb8d30ca068422de765ed2e9fa4954574b4d209dd9e
9820d50 fix(qt): adjust css for SendCoinsEntry (UdjinM6)

Pull request description:

  ## Issue being fixed or feature implemented
  d496df0 (dashpay#6829) changed `SendCoinsEntry` class from `QStackedWidget` to `QWidget` but we forgot to update `css` accordingly so GUI is a bit broken now.

  <img width="947" height="51" alt="Screenshot 2025-09-29 at 19 06 30" src="https://github.com/user-attachments/assets/ecb184db-82c2-4a0b-a37c-f4f00c4e9e33" />

  ## What was done?
  Adjust css to match cpp

  ## How Has This Been Tested?
  Compile and check GUI, should look the same way it did before d496df0

  <img width="928" height="49" alt="Screenshot 2025-09-29 at 19 07 25" src="https://github.com/user-attachments/assets/ad51c157-294f-4ef8-a3e4-97ab5f211226" />

  ## 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:
    ![](https://github.com/user-attachments/assets/8ba990e6-7d87-41ee-aa68-509dce57dba9)

---

ACK 9820d50

Tree-SHA512: cd3db58be58fec533c6817a336cb6eddee93fbac9c57128c15f613260e2e318b0f2cd678f46f4ed74e6fc3b2394eb0292fe480c9c8742d5f54673dd4d90ca2d3
…5200 (spelling errors)

00f1ceb fix: some typos and mispells by linter for dash specific code (Konstantin Akimov)
9f01400 Merge bitcoin#25200: doc: Fix spelling errors identified by codespell in comments (MacroFake)
6753e26 Merge bitcoin#21626: doc: Fix typos from codespell (fanquake)
60d9516 Merge bitcoin#24203: doc: Fix typos pointed out by lint-spelling (MarcoFalke)

Pull request description:

  ## Issue being fixed or feature implemented
  Output of spelling linter is pretty long and dirty, this PR clear it up a bit

  ## What was done?
  Backports + extra fixes for Dash specific code

  ## How Has This Been Tested?
  Reviewed output of https://github.com/dashpay/dash/actions/runs/18056747144/job/51387575631?pr=6855

  ## 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:
  kwvg:
    utACK 00f1ceb

Tree-SHA512: c7aa47ef70fb96efdac58cbcf3d32de41940e903e6c9318bd16f7ae72599abd6439c0bd154b1a231e720cc9767fe4be129a07bac0d1bdb3f26cff92ed255af9f
@coderabbitai
Copy link

coderabbitai bot commented Sep 30, 2025

Important

Review skipped

More than 25% of the files skipped due to max files limit. The review is being skipped to prevent a low-quality review.

116 files out of 300 files are above the max files limit of 100. Please upgrade to Pro plan to get higher limits.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch backport-0.25-batch-409-pr-27441

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.

❤️ Share
🧪 Early access (Sonnet 4.5): enabled

We are currently testing the Sonnet 4.5 model, which is expected to improve code review quality. However, this model may lead to increased noise levels in the review comments. Please disable the early access features if the noise level causes any inconvenience.

Note:

  • Public repositories are always opted into early access features.
  • You can enable or disable early access features from the CodeRabbit UI or by updating the CodeRabbit configuration file.

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.