8000 versionbits refactoring by ajtowns · Pull Request #29039 · bitcoin/bitcoin · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

versionbits refactoring #29039

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

Merged
merged 15 commits into from
Apr 29, 2025
Merged

versionbits refactoring #29039

merged 15 commits into from
Apr 29, 2025

Conversation

ajtowns
Copy link
Contributor
@ajtowns ajtowns commented Dec 9, 2023

Increases the encapsulation/modularity of the versionbits code, moving more of the logic into the versionbits module rather than having it scattered across validation and rpc code. Updates unit/fuzz tests to test the actual code used rather than just a close approximation of it.

@DrahtBot
Copy link
Contributor
DrahtBot commented Dec 9, 2023

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Code Coverage & Benchmarks

For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/29039.

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK TheCharlatan, darosior, achow101
Concept NACK luke-jr
Concept ACK naumenkogs

If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #32247 (BIP-348 (OP_CHECKSIGFROMSTACK) (regtest only) by jamesob)
  • #31989 (BIP-119 (OP_CHECKTEMPLATEVERIFY) (regtest only) by jamesob)
  • #31974 (Drop testnet3 by Sjors)
  • #26201 (Remove Taproot activation height by Sjors)

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

@ajtowns ajtowns changed the title 202312 vbits simplify versionbits refactoring Dec 9, 2023
@ajtowns ajtowns force-pushed the 202312-vbits-simplify branch from e95ed89 to e8134a5 Compare December 9, 2023 04:39
@ajtowns ajtowns force-pushed the 202312-vbits-simplify branch from e8134a5 to 72b22e3 Compare December 9, 2023 04:45
@ajtowns ajtowns marked this pull request as draft December 9, 2023 04:50
@ajtowns
Copy link
Contributor Author
ajtowns commented Dec 9, 2023

At the end of this sequence of patches the VersionBitsCache object provides a standalone interface to all the "versionbits" features needed by bitcoin core, which means that if the BIP9/speedy trial implementation is changed in future, it should be possible to do that in one place, without needing to change validation/RPC code as well.

This also simplifies and modernises some of the code, much of which has been proposed previously (eg, removing the params arguments from AbstractThresholdConditionChecker was included in the first versions of #21380; making threshold a per-deployment params was part of #19573 and #21392).

After these changes, it should be possible to simplify the unit/fuzz tests a little, as they should now be able to use VersionBitsConditionChecker directly, since it no longer depends on access to Consensus::Params. (actually does this now)

@naumenkogs
Copy link
Member

Concept ACK. Looks cleaner. Will look in more detail when you undraft it.

Copy link
Member
@luke-jr luke-jr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Concept NACK, refactoring without a purpose, and probably makes more work for merging BIP8.

Rather than essentially duplicating StateName in the unit tests, expose
it via the impl header.
Base the unit test directly on `VersionBitsConditionChecker`, slightly
improving coverage, in particular adding coverage for the the logic
regarding setting the TOP_BITS.
Test `VersionBitsConditionChecker` behaviour directly, rather than
reimplementing it, thus slightly improving fuzz test coverage of the
real code.
@ajtowns ajtowns force-pushed the 202312-vbits-simplify branch from 47af1d5 to 7565563 Compare January 20, 2025 15:52
@DrahtBot DrahtBot mentioned this pull request Mar 3, 2025
Copy link
Member
@darosior darosior left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Concept ACK. A couple comments as i was reading through, will delve deeper soon.

Comment on lines 2382 to 2386
if (m_chainman.GetParams().IsTestChain()) {
return m_chainman.GetConsensus().DifficultyAdjustmentInterval();
} else {
return 2016;
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need for the condition on test network and the seemingly-magic 2016 value here, you could just always return DifficultyAdjustmentInterval()?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For non-testnets, the 2016 and 1815 figures WarningBitsConditionChecker in versionbits.cpp (by the end of this PR) are constrained by what we might expect to see in future from consensus change coordination signalling; while that currently matches DifficultyAdjustmentInterval, it doesn't need to -- for instance BIP 91 had a window of 336 blocks, and I think in practice would not have (did not) trigger this warning code. So I think it makes sense to leave them as constants, though perhaps some in-line documentation would help?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BIP9 does not define the period as configurable, it's always the retarget period. No strong opinion, but i find it surprising that the BIP9 warning mechanism should support (a specific type of) non-BIP9 deployments.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a679040: I find this intermediate state a bit confusing, but in the final result it looks fine to me: a default value for the period instance variable combined with a constructor that overrides it only on test networks


/** Detailed status of an enabled BIP9 deployment */
struct BIP9Info {
int since{0};
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doc nit: Maybe add some docstrings here, just like currently done with BIP9Stats?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added.

Copy link
Contributor
@TheCharlatan TheCharlatan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 7565563

@DrahtBot DrahtBot requested review from naumenkogs and darosior March 13, 2025 16:01
Copy link
Contributor
@TheCharlatan TheCharlatan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-ACK e301401

Just addressed nits; added some more docs and tests for IsActiveAfter.

Copy link
Member
@darosior darosior left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK e301401

@achow101
Copy link
Member
achow101 commented Apr 29, 2025

ACK e301401

refactoring without a purpose, and probably makes more work for merging BIP8.

While this currently doesn't have much purpose other than cleaning things up, I think it will make it easier to implement deployments in the future. The test coverage improvements are also a useful change.

I think right now is the best time to merge this PR. There's no soft fork that is in active deployment, nothing that is really relying on this code right now, and no urgency for this code to be used at this time. Thus cleaning it up and better encapsulating things makes sense right now before it conflicts with some soft fork that we're all expecting to happen. I also think that this will make it easier to use both BIP 8 and 9 deployments.

@achow101 achow101 merged commit 7db0961 into bitcoin:master Apr 29, 2025
18 checks passed
Sjors added a commit to Sjors/bitcoin that referenced this pull request Apr 30, 2025
The term "force" is ambiguous and not used in BIP9 where there ! rule prefix is introduced.

Additionally, bitcoin#29039 renamed gbt_vb_name to gbt_force_name which might increase the confusion.
Sjors added a commit to Sjors/bitcoin that referenced this pull request Apr 30, 2025
The term "force" is ambiguous and not used in BIP9 where there ! rule prefix is introduced.

Additionally, bitcoin#29039 renamed gbt_vb_name to gbt_force_name which might increase the confusion.
Copy link
Member
@Sjors Sjors left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Post merge ACK (did not study the test and fuzz changes). Agree this was a good time to merge.

The changes in 1198e7d which move logic from RPC to versionbits.cpp should make it easier to implement version bit signalling support in Stratum v2 (IPC). And reminded me that I actually need to look into that.

3bd32c2 would have been easier to follow if had been split between one commit that moves and another that modified it (adding m_caches, period, etc). But perhaps this was hard to avoid due to losing access to m_chainman.

I ran a partial IBD with -assumevalid=0 to sanity check that Taproot still activates at height 709,632.

Comment on lines 2382 to 2386
if (m_chainman.GetParams().IsTestChain()) {
return m_chainman.GetConsensus().DifficultyAdjustmentInterval();
} else {
return 2016;
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a679040: I find this intermediate state a bit confusing, but in the final result it looks fine to me: a default value for the period instance variable combined with a constructor that overrides it only on test networks

const struct VBDeploymentInfo& vbinfo = VersionBitsDeploymentInfo[pos];
std::string s = vbinfo.name;
if (!vbinfo.gbt_force) {
static std::string gbt_force_name(const std::string& name, bool gbt_force)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1198e7d: I find this new function name confusing, adding to the already confusingly named gbt_force. Opened #32386 to rename them.

Sjors added a commit to Sjors/bitcoin that referenced this pull request Apr 30, 2025
The term "force" is ambiguous and not used in BIP9 where there ! rule prefix is introduced.

Additionally, bitcoin#29039 renamed gbt_vb_name to gbt_force_name which might increase the confusion.

-BEGIN VERIFY SCRIPT-
sed -i s/gbt_force_name/gbt_rule_value/g ./src/rpc/mining.cpp
sed -i s/gbt_force/gbt_optional_rule/g $(git grep -l gbt_force)
-END VERIFY SCRIPT-
Sjors added a commit to Sjors/bitcoin that referenced this pull request Apr 30, 2025
The term "force" is ambiguous and not used in BIP9 where the ! rule
prefix is introduced.

Additionally, bitcoin#29039 renamed gbt_vb_name to gbt_force_name which
might increase the confusion.

-BEGIN VERIFY SCRIPT-
sed -i s/gbt_force_name/gbt_rule_value/g ./src/rpc/mining.cpp
sed -i s/gbt_force/gbt_optional_rule/g $(git grep -l gbt_force)
-END VERIFY SCRIPT-
glozow added a commit that referenced this pull request May 13, 2025
0750249 mining: document gbt_rule_value helper (Sjors Provoost)
5e87c3e scripted-diff: rename gbt_force and gbt_force_name (Sjors Provoost)

Pull request description:

  The term "force" is ambiguous and not used in [BIP9](https://github.com/bitcoin/bips/blob/master/bip-0009.mediawiki#getblocktemplate-changes) where there ! rule prefix is introduced.

  E.g. this code is hard to read:

  ```cpp
  if (!gbt_force) {
     s.insert(s.begin(), '!');
  ```

  Additionally, #29039 renamed `gbt_vb_name` to `gbt_force_name` which, at least for me, further increased the confusion.

  This is a pure (variable rename) refactor (plus documentation) and does not change behavior.

  Reminder of how to verify a scripted diff:

  ```sh
  test/lint/commit-script-check.sh origin/master..HEAD
  ```

ACKs for top commit:
  achow101:
    ACK 0750249
  janb84:
    ACK [0750249](0750249)
  musaHaruna:
    ACK [0750249](0750249)
  glozow:
    ACK 0750249, seems sensible

Tree-SHA512: 8c88a273a3b36040f6c641843bd20579d0065b051aad4b39fc14f0d2af2808690dff6772bd8b1a4d9699b72279a700d2661012651bc315433a123dcc8996adaa
stickies-v added a commit to stickies-v/py-bitcoinkernel that referenced this pull request May 23, 2025
dcb6dd33f5f kernel: Fix bitcoin-chainstate for windows
47743841f4d kernel: Add Purpose section to header documentation
6ec40e1b22a kernel: Add pure kernel bitcoin-chainstate
1159547d6a7 kernel: Add functions to get the block hash from a block
2021199f44c kernel: Add block index utility functions to C header
07b4660a30f kernel: Add function to read block undo data from disk to C header
aece5aef13e kernel: Add functions to read block from disk to C header
7a79da93a28 kernel: Add function for copying block data to C header
5e9219c70ab kernel: Add functions for the block validation state to C header
e2eb479e036  kernel: Add validation interface to C header
221ca0f6e14 kernel: Move validation state to a kernel header
f1eb10f1e73 kernel: Add interrupt function to C header
215913420c9 kernel: Add import blocks function to C header
25cf7111796  kernel: Add chainstate load options for in-memory dbs in C header
25fec7c54fa kernel: Add options for reindexing in C header
cdecd980c3b kernel: Add block validation to C header
d743c75026e kernel: Add chainstate loading when instantiating a ChainstateManager
ee3d80a8ae1 kernel: Add chainstate manager option for setting worker threads
04b9da7e5e0 kernel: Add chainstate manager object to C header
5e405ab5910 kernel: Add notifications context option to C header
9b0445fdbcd kernel: Move Synchronization enum to a kernel header
92b72c4592d kernel: Add chain params context option to C header
a3692c3860a kernel: Add kernel library context object
5e5f3c73638 kernel: Add logging to kernel library C header
db1efa9473c kernel: Move logging flags to a kernel header
c244ab1e830 kernel: Introduce initial kernel C header API
d08dd0579ba kernel: Move script flags to a kernel header
7710a31f0cb Merge bitcoin/bitcoin#32452: test: Remove legacy wallet RPC overloads
b81e5076aa5 Merge bitcoin/bitcoin#32514: scripted-diff: Remove unused leading newline in RPC docs
3023d7e6ad5 Merge bitcoin/bitcoin#32534: Update leveldb subtree to latest upstream
c461d152875 Merge bitcoin/bitcoin#32511: refactor: bdb removals
b15c386933e Merge bitcoin/bitcoin#32519: ci: Enable feature_init and wallet_reorgsrestore in valgrind task
7015052eba2 build: remove Wsuggest-override suppression from leveldb build
3f83c744ac2 Merge bitcoin/bitcoin#32526: fuzz: Delete wallet_notifications
fa1f10a49e7 doc: Fix minor typos in rpc help
0769c8fc999 Update leveldb subtree to latest upstream
e2c84b896fa Squashed 'src/leveldb/' changes from 4188247086..113db4962b
04c6c961b65 Merge bitcoin/bitcoin#32527: test: Remove unused verify_flags suppression
742b30549fc Merge bitcoin/bitcoin#32491: build: document why we check for `std::system`
fab5a3c803c test: Remove unused verify_flags suppression
c521192d8b9 Merge bitcoin/bitcoin#32485: Update minisketch subtree
3afde679c3b Merge bitcoin/bitcoin#32296: refactor: reenable `implicit-integer-sign-change` check for `serialize.h`
5af757bb784 Merge bitcoin/bitcoin#32505: depends: bump to latest config.guess and config.sub
c60455a6458 Merge bitcoin/bitcoin#32500: init: drop `-upnp`
e230affaa32 Merge bitcoin/bitcoin#32396: cmake: Add application manifests when cross-compiling for Windows
51be79c42b7 Merge bitcoin/bitcoin#32238: qt, wallet: Convert uint256 to Txid
f96ae941a1d Merge bitcoin/bitcoin#32525: build: Revert "Temporarily disable compiling `fuzz/utxo_snapshot.cpp` with MSVC
fad2faf6c5d fuzz: Delete wallet_notifications
fa2c6623626 build: Revert "Temporarily disable compiling `fuzz/utxo_snapshot.cpp` with MSVC"
fa2be605fee ci: Enable feature_init and wallet_reorgsrestore in valgrind task
725c9f7780e Merge bitcoin/bitcoin#31895: doc: Improve `dependencies.md`
bdc1cef1de8 Merge bitcoin/bitcoin#32507: ci: Exclude failing wallet_reorgsrestore.py from valgrind task for now
fae840e94b7 rpc: Reject beginning newline in RPC docs
e62423d6f15 doc: Improve dependencies.md documentation
a3520f9d561 doc: Add dependency self-compilation info
d1fdc84c549 doc: Remove Linux Kernel from dep. table
fa414eda083 scripted-diff: Remove unused leading newline in RPC docs
fafee853583 remove unused GetDestinationForKey
fac72fef27d remove unused GetAllDestinationsForKey
fa91d57de36 remove unused AddrToPubKey
8f4fed7ec70 symbol-check: Add check for application manifest in Windows binaries
2bb6ab8f1ba ci: Add "Get bitcoind manifest" steps to Windows CI jobs
282b4913c7e cmake: Add application manifests when cross-compiling for Windows
faecf158d99 remove unused Import* function signatures
fa981b90f53 ci: Exclude failing wallet_reorgsrestore.py from valgrind task for now
c779ee3a404 Merge bitcoin/bitcoin#32492: test: add skip_if_running_under_valgrind()
89c7b6b97ab Merge bitcoin/bitcoin#32498: doc: remove Carls substitute server from Guix docs
31d3eebfb92 Merge bitcoin/bitcoin#32343: common: Close non-std fds before exec in RunCommandJSON
486bc917907 depends: bump to latest config.sub
6880383427b depends: bump to latest config.guess
4b26ca0e2f1 Merge bitcoin/bitcoin#32502: wallet: Drop unused fFromMe from CWalletTx
d5786bc19a9 Merge bitcoin/bitcoin#32490: refactor: Remove UB in prevector reverse iterators
53eb5593f0a Merge bitcoin/bitcoin#32305: test: add test for decoding PSBT with MuSig2 PSBT key types (BIP 373)
e7a93723768 Merge bitcoin/bitcoin#32378: interfaces: refactor: move `Mining` and `BlockTemplate`  implementation to miner
5bf91ba8800 wallet: Drop unused fFromMe from CWalletTx
301993ebf7f init: drop -upnp
3b824169c77 doc: remove Carls substitute server from Guix docs
f1d78a3087f Merge bitcoin/bitcoin#31624: doc: warn that CheckBlock() underestimates sigops
516f0689b51 refactor: re-enable UBSan implicit-sign-change in serialize.h
5827e935077 refactor: use consistent size type for serialization template parameters
62fc42d475d interfaces: refactor: move `waitTipChanged` implementation to miner
c39ca9d4f7b interfaces: move getTip implementation to miner
33dfbbdff69 Merge bitcoin/bitcoin#32483: test: fix two intermittent failures in wallet_basic.py
8a65f038946 Merge bitcoin/bitcoin#32488: fuzz: Properly setup wallet in wallet_fees target
75a185ea3db test: add skip_if_running_under_valgrind()
8f4ba90b8ff build: document why we check for std::system
faf9082a5f6 test: Fix whitespace in prevector_tests.cpp
fa7f04c8a7b refactor: Remove UB in prevector reverse iterators
fa427ffceee fuzz: Properly setup wallet in wallet_fees target
f9d8910539a Merge bitcoin/bitcoin#31080: fees: document non-monotonic estimation edge case
31650b458b6 Merge bitcoin/bitcoin#32386: mining: rename gbt_force and gbt_force_name
bac43b957e5 Merge bitcoin/bitcoin#32312: test: Fix feature_pruning test after nTime typo fix
c9ab10910cd Merge bitcoin/bitcoin#31444: cluster mempool: add txgraph diagrams/mining/eviction
e7ad86e1ca3 test: fix another intermittent failure in wallet_basic.py
07350e204de test: Fix intermittent failure in wallet_basic.py
46b533dfe6f Update minisketch subtree to latest upstream
bf25a0918f9 Squashed 'src/minisketch/' changes from d1e6bb8bbf..ea8f66b1ea
8309a9747a8 Merge bitcoin/bitcoin#32028: Update `secp256k1` subtree to latest master
720f201e652 interfaces: refactor: move `waitNext` implementation to miner
e6c2f4ce7a8 interfaces: refactor: move `submitSolution` implementation to miner
02d4bc776bb interfaces: remove redundant coinbase fee check in `waitNext`
cbd8e3d5114 Merge bitcoin/bitcoin#32476: refactor: Remove unused HaveKey and HaveWatchOnly
915c1fa72c0 Update secp256k1 subtree to latest master
c31fcaaad38 Squashed 'src/secp256k1/' changes from 0cdc758a56..4187a46649
fabdc5ad06b Remove unused LegacyDataSPKM::HaveWatchOnly()
fa7b7f796ac Remove HaveKey helper, unused after sethdseed removal
8673e8f0191 txgraph: Special-case singletons in chunk index (optimization)
abdd9d35a34 txgraph: Skipping end of cluster has no impact (optimization)
604acc2c289 txgraph: Reuse discarded chunkindex entries (optimization)
c734081454d txgraph: Introduce TxGraph::GetWorstMainChunk (feature)
394dbe21427 txgraph: Introduce BlockBuilder interface (feature)
883df3648ee txgraph: Generalize GetClusterRefs to support subsections (preparation)
c28a602e007 txgraph: Introduce TxGraphImpl observer tracking (preparation)
9095d8ac1c3 txgraph: Maintain chunk index (preparation)
87e74e1242e txgraph: abstract out transaction ordering (refactor)
2614fea17fe txgraph: Add GetMainStagingDiagrams function (feature)
663a9cabf81 Merge bitcoin/bitcoin#32458: guix: move `*-check.py` scripts under contrib/guix/
05765b8818c Merge bitcoin/bitcoin#32472: doc: Fix typo
d847e17c965 doc: Fix typo
3edf400b102 Merge bitcoin/bitcoin#32469: cmake: Allow `WITH_DBUS` on all Unix-like systems
59e09e0fb7b Merge bitcoin-core/gui#871: qt, docs: Unify term "clipboard"
46f79dde67e Merge bitcoin-core/gui#841: Decouple WalletModel from RPCExecutor
5b7ed460c7c cmake: Allow `WITH_DBUS` on all Unix-like systems
746ab19d5a1 Merge bitcoin/bitcoin#32446: build: simplify *ifaddr handling
19b1e177d67 Merge bitcoin/bitcoin#32155: miner: timelock the coinbase to the mined block's height
6c6ef58b0b2 Merge bitcoin/bitcoin#32436: test: refactor: negate signature-s using libsecp256k1
b104d442277 test: Remove RPCOverloadWrapper
4d32c19516f test: Replace importpubkey
fe838dd391b test: Replace usage of addmultisigaddress
d3142077794 test: Replace usage of importaddress
fcc457573f9 test: Replace importprivkey with wallet_importprivkey
94c87bbbd06 test: Remove unnecessary importprivkey from wallet_createwallet
9a05b45da60 Merge bitcoin/bitcoin#32438: refactor: Removals after bdb removal
fa061bfcdb0 Remove create options from wallet tool
fa2125e7b8e Remove unused IsSingleKey
fab5e2a0948 doc: Remove note about bdb wallets
eeeef88d46f doc: fix typo in abortrescan rpc
fa7e5c15a79 Remove unused LegacyDataSPKM::DeleteRecords()
b070ce16966 Merge bitcoin/bitcoin#31360: depends: Avoid using helper variables in toolchain file
ffff9494729 remove NotifyWatchonlyChanged
fa62a013a55 remove dead flush()
fa5f3e62c88 vcpkg: Remove bdb
415650cea94 guix: move *-check.py scripts under contrib/guix
5b8752198e9 Merge bitcoin/bitcoin#32454: tracing: fix invalid argument in mempool_monitor
31c5ebc4007 tracing: fix invalid argument in mempool_monitor
ad5cd129f3c Merge bitcoin/bitcoin#30660: qa: Verify clean shutdown on startup failure
1656f6dbba8 Merge bitcoin/bitcoin#32448: contrib: remove bdb exception from FORTIFY check
a04f17a1882 doc: warn that CheckBlock() underestimates sigops
ab878a7e741 build: simplify *ifaddr handling
1b4ddb0c2d1 Merge bitcoin/bitcoin#32356: cmake: Respect user-provided configuration-specific flags
1ee698fde2e test: refactor: negate signature-s using libsecp256k1
f9dfe8d5e0d contrib: remove bdb exception from FORTIFY check
66c968b4b4a Merge bitcoin/bitcoin#32444: doc: swap "Docker image" for "container image"
64697529523 Merge bitcoin/bitcoin#32434: lint: Remove string exclusion from locale check
1372eb09c5d doc: swap "Docker image" for "container image"
03ebdd07930 Merge bitcoin/bitcoin#32437: crypto: disable ASan for sha256_sse4 with Clang
95bb305b96a Merge bitcoin/bitcoin#32429: docs: Improve `keypoolrefill` RPC docs
1b1b9f32cfd Merge bitcoin/bitcoin#32440: test: remove bdb assert in tool_wallet.py
e08e6567f2e test: remove assert_dump since it is not used anymore
ff35a4b021e docs: Improve `keypoolrefill` RPC docs
4b241867567 test: add test for decoding PSBT with MuSig2 PSBT key types (BIP 373)
8ba245cb831 test: add constants for MuSig2 PSBT key types (BIP 373)
4b6dd9790b6 test: remove bdb assert in tool_wallet.py
7343a1846ce depends: Avoid using helper variables in toolchain file
0671d66a8ee wallet, refactor: Convert uint256 to Txid in wallet
c8ed51e62be wallet, refactor: Convert uint256 to Txid in wallet interfaces
b3214cefe6d qt, refactor: Convert uint256 to Txid in the GUI
efac285a0d7 Merge bitcoin/bitcoin#28710: Remove the legacy wallet and BDB dependency
fa24fdcb7f4 lint: Remove string exclusion from locale check
4e8ab5e00fa crypto: disable ASan for sha256_sse4 with Clang
6d5edfcc585 Merge bitcoin/bitcoin#32388: fuzz: Remove unused TimeoutExpired catch in fuzz runner
de054df6dc3 contrib: Remove legacy wallet RPCs from bash completions
5dff04a1bba legacy spkm: Make IsMine() and CanProvide() private and migration only
c0f3f3264ff wallet: Remove unused db functions
83af1a3cca7 wallet: Delete LegacySPKM
59d3e4ed34e Merge bitcoin/bitcoin#32415: scripted-diff: adapt script error constant names in feature_taproot.py
fffb272c258 Merge bitcoin/bitcoin#29532: Refactor BnB tests
3bbdbc0a5e1 qt, docs: Unify term "clipboard"
8ede6dea0c5 wallet, rpc: Remove legacy wallet only RPCs
4de3cec28df test: rpcs disabled for descriptor wallets will be removed
84f671b01df test: Run multisig script limit test
810476f31e4 test: Remove unused options and variables, correct comments
04a7a7a28cd build, wallet, doc: Remove BDB
44057fe38cc Merge bitcoin/bitcoin#32287: build: Fix `macdeployqtplus` after switching to Qt 6
229943b5136 Merge bitcoin/bitcoin#32086: Shuffle depends instructions and recommend modern make for macOS
edde96376a2 cmake: Respect user-provided configuration-specific flags
22cff32319d doc: recommend gmake for FreeBSD
b645c520714 doc: recommend modern make for macOS depends
99e6490dc51 doc: shuffle depends instructions
1e0de7a6ba9 fees: document non-monotonic estimation edge case
baa848b8d38 Merge bitcoin/bitcoin#32405: build: replace header checks with `__has_include`
53ccb75f0c4 Merge bitcoin/bitcoin#32358: subprocess: Backport upstream changes
fa2c5484296 Merge bitcoin/bitcoin#32417: doc: Explain that .gitignore is not for IDE-specific excludes
fada115cbea doc: Explain that .gitignore is not for IDE-specific excludes
b5f580c5802 scripted-diff: adapt script error constant names in feature_taproot.py
eba5f9c4b63 Merge bitcoin/bitcoin#32403: test: remove Boost SIGCHLD workaround.
e1f543823b3 build: replace header checks with __has_include
3add6ab9adc test: remove Boost SIGCHLD workaround.
cd95c9d6a7e subprocess: check and handle fcntl(F_GETFD) failure
b7288decdf5 subprocess: Proper implementation of wait() on Windows
7423214d8de subprocess: Do not escape double quotes for command line arguments on Windows
bb9ffea53fb subprocess: Explicitly define move constructor of Streams class
174bd43f2e4 subprocess: Avoid leaking POSIX name aliases beyond `subprocess.h`
7997b7656f9 subprocess: Fix cross-compiling with mingw toolchain
647630462f1 subprocess: Get Windows return code in wait()
d3f511b4583 subprocess: Fix string_arg when used with rref
2fd3f2fec67 subprocess: Fix memory leaks
5b8046a6e89 Merge bitcoin/bitcoin#30611: validation: write chainstate to disk every hour
fc6346dbc8d Merge bitcoin/bitcoin#32389: doc: Fix test_bitcoin path
a0eed55398f run_command: Enable close_fds option to avoid lingering fds
c7c356a4486 cpp-subprocess: Iterate through /proc/self/fd for close_fds option on Linux
4f5e04da135 Revert "remove unneeded close_fds option from cpp-subprocess"
6cbc28b8dd6 doc: Fix test_bitcoin path
85368aafa0d test: Run simple tests at various feerates
d610951c154 test: Recreate BnB iteration exhaustion test
2a1b2754f14 test: Remove redundant repeated test
4781f5c8be5 test: Recreate simple BnB failure tests
a94030ae985 test: Recreate BnB clone skipping test
7db6f012c08 test: Move BnB feerate sensitivity tests
2bafc462610 test: Recreate simple BnB success tests
e976bd30450 validation: add randomness to periodic write interval
2e2f4106812 refactor: replace m_last_write with m_next_write
b557fa7a175 refactor: rename fDoFullFlush to should_write
d73bd9fbe48 validation: write chainstate to disk every hour
68ac9f116c0 Merge bitcoin/bitcoin#32383: util: Remove `fsbridge::get_filesystem_error_message()`
fa4804009ce fuzz: Remove unused TimeoutExpired catch in fuzz runner
0750249289c mining: document gbt_rule_value helper
5e87c3ec094 scripted-diff: rename gbt_force and gbt_force_name
97eaadc3bf9 util: Remove `fsbridge::get_filesystem_error_message()`
14b8dfb2bd5 Merge bitcoin/bitcoin#31398: wallet: refactor: various master key encryption cleanups
a60445cd04c Merge bitcoin/bitcoin#32355: Bugfix: Miner: Don't reuse block_reserved_weight for "block is full enough to give up" weight delta
2d5b4244147 Merge bitcoin/bitcoin#32351: test: avoid stack overflow in `FindChallenges` via manual iteration
0ed5f37afef Merge bitcoin/bitcoin#31014: net: Use GetAdaptersAddresses to get local addresses on Windows
7a4a2a38ea3 Merge bitcoin/bitcoin#27826: validation: log which peer sent us a header
4694732bc4c Merge bitcoin/bitcoin#32338: net: remove unnecessary check from AlreadyConnectedToAddress()
7db096121d3 Merge bitcoin/bitcoin#29039: versionbits refactoring
51d76634fb5 Merge bitcoin/bitcoin#32365: descriptors: Reject + sign while parsing unsigned
c5e44a04356 Merge bitcoin/bitcoin#32369: test: Use the correct node for doubled keypath test
32d55e28af6 test: Use the correct node for doubled keypath test
65714c162c1 Merge bitcoin/bitcoin#32327: test: Add missing check for empty stderr in util tester
a4eee6d50be Merge bitcoin/bitcoin#29124: test: Test that migration automatically repairs corrupted metadata with doubled derivation path
af6cffa36d1 Merge bitcoin/bitcoin#32350: test: Slim down previous releases bdb check
33e6538b307 Merge bitcoin/bitcoin#32360: test: Force named args for RPCOverloadWrapper optional args
3a29ba33dca Merge bitcoin/bitcoin#32357: depends: Fix cross-compiling `qt` package from macOS to Windows
fa655da1598 test: [refactor] Use ToIntegral in CheckInferDescriptor
fa55dd01df8 descriptors: Reject + sign when parsing multi threshold
fa6f77ed3c1 descriptors: Reject + sign in ParseKeyPathNum
7e8ef959d06 refactor: Fix Sonar rule `cpp:S4998` - avoid unique_ptr const& as parameter
e400ac53524 refactor: simplify repeated comparisons in `FindChallenges`
f670836112c test: remove old recursive `FindChallenges_recursive` implementation
b80d0bdee46 test: avoid stack overflow in `FindChallenges` via manual iteration
fa48be3ba44 test: Force named args for RPCOverloadWrapper optional args
aaaa45399ca test: Remove unused createwallet_passthrough
f409444d024 Merge bitcoin/bitcoin#32071: build: Drop option to disable hardening.
cccc1f4e919 test: Remove unused RPCOverloadWrapper is_cli field
d62c2d82e14 Merge bitcoin/bitcoin#32353: doc: Fix fuzz test_runner.py path
10845cd7cc8 qa: Add feature_framework_startup_failures.py
35e57fbe336 depends: Fix cross-compiling `qt` package from macOS to Windows
d2ac748e9e7 Merge bitcoin-core/gui#864: Crash fix, disconnect numBlocksChanged() signal during shutdown
524f981bb87 Bugfix: Miner: Don't reuse block_reserved_weight for "block is full enough to give up" weight delta
84de8c93e7d ci: Add `deploy` target for native macOS CI job
fad57e9e0fe build: Fix `macdeployqtplus` after switching to Qt 6
de90b47ea09 Merge bitcoin-core/gui#868: Replace stray tfm::format to cerr with qWarning
a58cb3b1c12 qa: sanity check mined block have their coinbase timelocked to height
8f2078af6a5 miner: timelock coinbase transactions
788aeebf343 qa: use prev height as nLockTime for coinbase txs created in unit tests
c76dbe9b8b6 qa: timelock coinbase transactions created in fuzz targets
9c94069d8b6 contrib: timelock coinbase transactions in signet miner
a5f52cfcc40 qa: timelock coinbase transactions created in functional tests
61f238e84ac doc: Fix fuzz test_runner.py path
c7e2b9e2644 tests: Test migration cleans up bad inactive chain derivation path
fa58f40b898 test: Slim down previous releases bdb check
f1b142856a4 test: Same addr, diff port is already connected
94e85a82a75 net: remove unnecessary check from AlreadyConnectedToAddress()
28e282ef9ae qa: assert_raises_message() - Stop assuming certain structure for exceptions
80e6ad9e302 Merge bitcoin/bitcoin#31250: wallet: Disable creating and loading legacy wallets
971952588da Merge bitcoin/bitcoin#32242: guix: Remove unused `file` package
ff69046e664 Merge bitcoin/bitcoin#32215: depends: Fix cross-compiling on macOS
4eee328a982 Merge bitcoin/bitcoin#32318: Fix failing util_time_GetTime test on Windows
71656bdfaa6 gui: crash fix, disconnect numBlocksChanged() signal during shutdown
3dbd50a576b Fix failing util_time_GetTime test on Windows
edd46566bd6 qt: Replace stray tfm::format to cerr with qWarning
458720e5e98 Merge bitcoin/bitcoin#32336: test: Suppress upstream `-Wduplicate-decl-specifier` in bpfcc
facb9b327b9 scripted-diff: Use bpf_cflags
fa0c1baaf89 test: Add imports for util bpf_cflags
9efe5466885 Merge bitcoin/bitcoin#31835: validation: set BLOCK_FAILED_CHILD correctly
bd158ab4e35 Merge bitcoin/bitcoin#32023: wallet: removed duplicate call to GetDescriptorScriptPubKeyMan
17bb63f9f9b wallet: Disallow loading legacy wallets
9f04e02ffae wallet: Disallow creating legacy wallets
6b247279b72 wallet: Disallow legacy wallet creation from the wallet tool
5e93b1fd6c1 bench: Remove WalletLoadingLegacy benchmark
56f959d829e wallet: Remove wallettool salvage
7a41c939f05 wallet: Remove -format and bdb from wallet tool's createfromdump
c847dee1488 test: remove legacy wallet functional tests
20a9173717b test: Remove legacy wallet tests from wallet_reindex.py
446d480cb22 test: Remove legacy wallet tests from wallet_backwards_compatibility.py
aff80298d05 test: wallet_signer.py bdb will be removed
f94f9399ac4 test: Remove legacy wallet unit tests
d9ac9dbd8ef tests, gui: Use descriptors watchonly wallet for watchonly test
9a4c92eb9ac Merge bitcoin/bitcoin#32226: ci: switch to LLVM 20 in tidy job
82d1e94838e Merge bitcoin/bitcoin#32310: test: Run all benchmarks in the sanity check
dda2d4e1766 Merge bitcoin/bitcoin#32113: fuzz: enable running fuzz test cases in Debug mode
faca46b0421 test: Run all benchmarks in the sanity check
e5a00b24972 Merge bitcoin/bitcoin#32309: bench: close wallets after migration
8406a9f4f13 Merge bitcoin/bitcoin#32325: ci: Add missing -Wno-error=array-bounds to valgrind fuzz
fadf12a56c2 test: Add missing check for empty stderr in util tester
fa653cb4169 ci: Add missing -Wno-error=array-bounds to valgrind fuzz
08aa7fe2326 ci: clang-tidy 20
2b85d31bcc2 refactor: starts/ends_with changes for clang-tidy 20
96a5cd8000d Merge bitcoin/bitcoin#32293: doc: Add deps install notes for multiprocess
2844adc8ba5 Merge bitcoin/bitcoin#32308: ci: Drop no longer necessary `-Wno-error=array-bounds`
cad39f86fb5 bench: ensure wallet migration benchmark runs exactly once
c1f458aaa06 ci: re-enable all benchmark runs
1da11dbc441 bench: clean up migrated descriptor wallets via loader teardown
3669ecd4ccd doc: Document fuzz build options
c1d01f59acc fuzz: enable running fuzz test cases in Debug mode
06439a14c88 Merge bitcoin/bitcoin#31953: rpc: Allow fullrbf fee bump in (psbt)bumpfee
3e78ac6811d Merge bitcoin/bitcoin#31243: descriptor: Move filling of keys from `DescriptorImpl::MakeScripts` to `PubkeyProvider::GetPubKey`
728e86e3f3d Merge bitcoin/bitcoin#31640: tests: improves tapscript unit tests
1f639efca5e qa: Work around Python socket timeout issue
e3d7533ac95 test: improves tapscript unit tests
2aa63d511af test: Use uninvolved pruned node in feature_pruning undo test
772ba7f9ce0 test: Fix nTimes typo in feature_pruning test
9b24a403fae qa: Only allow calling TestNode.stop() after connecting
6ad21b4c011 qa: Include ignored errors in RPC connection timeout
879243e81fd qa refactor: wait_for_rpc_connection - Treat OSErrors the same
d91a746815e Merge bitcoin/bitcoin#32306: ci: Temporarily disable `WalletMigration` benchmark
ff136d046ab Merge bitcoin/bitcoin#32213: msvc: Update vcpkg manifest
e34f12bdd41 ci: Drop no longer necessary `-Wno-error=array-bounds`
055254e212a Merge bitcoin/bitcoin#32300: feefrac: avoid integer overflow in temporary
33d40a6ad48 Merge bitcoin/bitcoin#32282: torcontrol: Fix addrOnion outdated comment
18a035145d6 ci: Temporarily disable `WalletMigration` benchmark
c7b592fbd7e Merge bitcoin/bitcoin#31247: psbt: MuSig2 Fields
e261eb8d50c tests: Add BIP 373 test vectors
26370c68d09 rpc: Include MuSig2 fields in decodepsbt
ff3d4608984 psbt: Implement un/ser of musig2 fields
5cb1241814b feefrac: avoid integer overflow in temporary
7f5a35cf4b3 doc: Add deps install notes for multiprocess
247e9de6222 Merge bitcoin/bitcoin#32191: Make TxGraph fuzz tests more deterministic
bfeacc18b36 Merge bitcoin/bitcoin#32154: fuzz: Avoid integer sanitizer warnings in policy_estimator target
fa86190e6ed rpc: Allow fullrbf fee bump
06f9ead9f95 Merge bitcoin/bitcoin#32271: doc: Document WITH_EXTERNAL_LIBMULTIPROCESS build option better
4a964868f8e Merge bitcoin/bitcoin#32288: ci: drop -priority-level from bench in win cross CI
cd01c9a173c Merge bitcoin/bitcoin#32250: ci: Slim down lint image
513e2020a9a guix: Remove unused `file` package
27f11217ca6 ci: drop -priority-level from bench in win cross CI
7a3afe6787b Merge bitcoin/bitcoin#32281: bench: Fix WalletMigration benchmark
e66e30c9e53 Merge bitcoin/bitcoin#31862: doc: Fix and clarify description of ZMQ message format
b6282dbd45d Merge bitcoin/bitcoin#32079: test: Add test coverage for rpcwhitelistdefault when unset
eb6b1003c12 Merge bitcoin/bitcoin#32286: test: Handle empty string returned by CLI as None in RPC tests
33df4aebae2 Merge bitcoin/bitcoin#31551: [IBD] batch block reads/writes during `AutoFile` serialization
679bb2aac20 Merge bitcoin/bitcoin#31958: rpc: add cli examples, update docs
dfa2813e31b Merge bitcoin/bitcoin#32248: Remove support for RNDR/RNDRRS for aarch64
7912cd41258 bench: Fix WalletMigration benchmark
938208d91a2 build: Resolve `@rpath` in `macdeployqtplus`
bcaa23a2b70 torcontrol: Fix addrOnion outdate comment
a4041c77f0e test: Handle empty string returned by CLI as None in RPC tests
abe43dfadd6 doc: release note for #27826
f9fa28788e6 Use LogBlockHeader for compact blocks
bad7c914793 Log which peer sent us a header
9d3e39c29c3 Log block header in net_processing
cdc32994fea Merge bitcoin/bitcoin#32272: [doc] archive 29.0 release notes
faeb1babe28 ci: refactor: Use version id over version codename consistently
12dc507c4a5 [doc] archive 29.0 release notes
acee5c59e68 descriptors: Have GetPrivKey fill keys directly
4b0303197e4 descriptors: Move FlatSigningProvider pubkey filling to GetPubKey
25a3b9b0f52 descriptors: Have GetPubKey fill origins directly
6268bde0af0 descriptor: Remove unused parent_info from BIP32PUbKeyProvider::GetPubKey
0ff072caa14 wallet, rpc: Only allow keypool import from single key descriptors
99a4ddf5ab1 Merge bitcoin/bitcoin#31785: Have createNewBlock() wait for tip, make rpc handle shutdown during long poll and wait methods
22770ce8cb1 Merge bitcoin/bitcoin#31282: refactor: Make node_id a const& in RemoveBlockRequest
9ccee9cd022 doc: Document WITH_EXTERNAL_LIBMULTIPROCESS build option better
8d801e3efbf optimization: bulk serialization writes in `WriteBlockUndo` and `WriteBlock`
520965e2939 optimization: bulk serialization reads in `UndoRead`, `ReadBlock`
51166559808 Merge bitcoin/bitcoin#32255: miniscript: Correct off-by-one assert guards (#31727 follow-up)
056cb3c0d2e refactor: clear up blockstorage/streams in preparation for optimization
67fcc648023 log: unify error messages for (read/write)[undo]block
a4de1604922 scripted-diff: shorten BLOCK_SERIALIZATION_HEADER_SIZE constant
6640dd52c9f Narrow scope of undofile write to avoid possible resource management issue
3197155f91a refactor: collect block read operations into try block
3693e4d6ee0 miniscript: Correct off-by-one assert guards
817edfb21e4 Merge bitcoin/bitcoin#32245: doc: Updates how to reproduce fuzz CI failure locally
fae322a43a4 ci: Slim down lint image
3333273a8f7 ci: Bump lint imagefile FROM base
2835216ec09 txgraph: make GroupClusters use partition numbers directly (optimization)
c72c8d5d45d txgraph: compare sequence numbers instead of Cluster* (bugfix)
b2bb27f40c7 Merge bitcoin/bitcoin#31741: multiprocess: Add libmultiprocess git subtree
7749d929a0d Remove support for RNDR/RNDRRS for aarch64 on Linux
a4fd565191e Merge bitcoin/bitcoin#31727: miniscript: convert non-critical asserts to CHECK_NONFATAL
e364e6b5096 Merge bitcoin/bitcoin#32176: net: Prevent accidental circuit sharing when using Tor stream isolation
8fe001d5972 doc: Updates how to reproduce fuzz CI failure locally
c58ae197a38 Merge bitcoin/bitcoin#32198: fuzz: Make p2p_headers_presync more deterministic
e1dfa4faebf Merge bitcoin/bitcoin#32237: qt: Update SetHexDeprecated to FromHex
b8cefeb2214 Merge bitcoin/bitcoin#32149: wallet, migration: Fix empty wallet crash
874da961d01 Merge bitcoin/bitcoin#32240: feefrac test: avoid integer overflow (bugfix)
faa3ce31998 fuzz: Avoid influence on the global RNG from peerman m_rng
faf4c1b6fc3 fuzz: Disable unused validation interface and scheduler in p2p_headers_presync
fafaca6cbc2 fuzz: Avoid setting the mock-time twice
fad22149f46 refactor: Use MockableSteadyClock in ReportHeadersPresync
fa9c38794ef test: Introduce MockableSteadyClock::mock_time_point and ElapseSteady helper
faf2d512c52 fuzz: Move global node id counter along with other global state
fa98455e4b1 fuzz: Set ignore_incoming_txs in p2p_headers_presync
faf2e238fbb fuzz: Shuffle files before testing them
868816d962a refactor: Remove SetHexDeprecated
6b63218ec2a qt: Update SetHexDeprecated to FromHex
bb92bb36f21 Merge bitcoin/bitcoin#32206: doc: Add fuzz based coverage report generation
021b4f72db2 Merge bitcoin/bitcoin#32216: bench: Match ConnectBlock tx output counts
ff5b7b0b0ac Merge bitcoin/bitcoin#32214: test: Remove fragile and ancient release 0.17 wallet test
873a45fba04 Merge bitcoin/bitcoin#32200: net: Add Tor extended SOCKS5 error codes
8d2ead2a86f Merge bitcoin/bitcoin#32185: coins: replace manual `CDBBatch` size estimation with LevelDB's native `ApproximateSize`
ad0eee54921 Merge bitcoin/bitcoin#32139: test: remove strict restrictions on rpc_deprecated test
a2bc330da86 feefrac test: avoid integer overflow (bugfix)
24d5033a62d Merge bitcoin/bitcoin#32114: test: Add encodable PUSHDATA1 examples to feature_taproot
cfe025ff0e1 Merge bitcoin/bitcoin#30535: feefrac: add support for evaluating at given size
58914ab459c fuzz: assert min diff between FeeFrac and CFeeRate
0c6bcfd8f73 feefrac: support both rounding up and down for Evaluate
ecf956ec9d3 feefrac: add support for evaluating at given size
7963aecead9 feefrac: add helper functions for 96-bit division
800c0dea9af feefrac: rework comments around Mul/MulFallback
fcfe008db25 feefrac fuzz: use arith_uint256 instead of ad-hoc multiply
46ff4220bff arith_uint256: modernize comparison operators
e419b0e17f8 refactor: Remove manual CDBBatch size estimation
8b5e19d8b5b refactor: Delegate to LevelDB for CDBBatch size estimation
751077c6e25 Coins: Add `kHeader` to `CDBBatch::size_estimate`
0dc74c92c06 Merge bitcoin/bitcoin#32212: test: Remove confusing and failing system time test
7677fde4c78 Add fuzz test coverage report generation
c77e3107b81 refactor: rename leftover WriteBlockBench
d42e82d6506 Merge bitcoin/bitcoin#32218: ci: Merge master in test-each-commit task (take 2)
0f602c5693e wallet, migration: Fix crash on empty wallet
fa10a1ded5b ci: Use GITHUB_BASE_REF over hard-coded master
fa0d0be05c0 ci: Merge master in test-each-commit task (take 2)
65dcbec7566 Merge bitcoin/bitcoin#32209: test: Preserve llvm profile path
b34d49a27e4 Merge bitcoin/bitcoin#32203: ci: Merge master in test-each-commit task
924f25f6fc7 bench: Match ConnectBlock tx output counts
d0cce4172c0 depends: Fix `mv` command compatibility with macOS
690f5da15a1 depends: Specify Objective C/C++ compilers for `native_qt` package
c5a7ffd1e8c preserve llvm profile env
fac978fb213 test: Remove fragile and ancient release 0.17 wallet test
42c13141b52 wallet, refactor: Decouple into HasLegacyRecords()
c66f7dab33f Merge bitcoin/bitcoin#32211: doc: Amend Qt 6 dependency packages for Ubuntu
ec81a72b369 net: Add randomized prefix to Tor stream isolation credentials
d85895e5a77 build, msvc: Build only required `qtbase` features
fe5a6dcc533 build, msvc: Update vcpkg manifest baseline
fadf8f078e8 test: Remove confusing and failing system time test
2e751f559ac doc: Amend Qt 6 dependency packages for Ubuntu
df82a245080 Merge bitcoin-core/gui#863: refactor: Post Qt 6 cleanup
77dff373a66 Merge bitcoin/bitcoin#32182: ci: Switch to dynamic library linkage in native Windows job
99b90228442 Merge bitcoin/bitcoin#32177: TxGraph: Increase fuzz coverage
3aa58bea8e7 qt, refactor: Inline `GUIUtil::SplitSkipEmptyParts` function
d1ec6db2493 qt, refactor: Inline `GUIUtil::GetImage` function
4b36ab3a6a0 qt, refactor: Remove outdated Qt version-specific code
faa807bdf8c ci: Merge master in test-each-commit task
7967fe5bfd3 ci: Switch to dynamic library linkage in native Windows job
639279e86a6 Merge bitcoin/bitcoin#30997: build: Switch to Qt 6
babb9f5db64 depends: remove non-native libmultiprocess build
5d105fb8c3f depends: Switch libmultiprocess packages to use local git subtree
9b35518d2f3 depends, moveonly: split up int_get_build_id function
2d373e27071 lint: Add exclusions for libmultiprocess subtree
e88ab394c16 doc: Update documentation to explain libmultiprocess subtree
d4bc5639829 cmake: Fix clang-tidy "no input files" errors
abdf3cb6456 cmake: Fix warnings from boost headers
8532fcb1c30 cmake: Fix ctest mptest "Unable to find executable" errors
d597ab1dee6 cmake: Support building with libmultiprocess subtree
69f0d4adb72 scripted-diff: s/WITH_MULTIPROCESS/ENABLE_IPC/ in cmake
3f6fb40114e Merge commit 'a2f28e4be96e92079a219567cf20214996aefc53' as 'src/ipc/libmultiprocess'
d6244f85c50 depends: Update libmultiprocess library to simplify cmake subtree build
a2f28e4be96 Squashed 'src/ipc/libmultiprocess/' content from commit 35944ffd23fa
b639417b39c net: Add Tor extended SOCKS5 error codes
f00345727b8 doc: Update `dependencies.md` for Qt 6
80b917991ed build, msvc: Update `vcpkg.json` for Qt 6
30dd1f1644e ci: Update for Qt 6
629d292f4d8 test: Update sanitizer suppressions for Qt 6
551e13abf82 guix: Adjust for Qt 6
c3e9bd086c4 qt: Fix compiling for Windows
ab399c4db2e depends: Add `native_qt` package
248613eb3ee depends: Factor out Qt modules' details
0268f52a4cd depends: Introduce customizable `$(package)_patches_path` variables
5e794e62024 depends: Bump `qt` package up to 6.7.3
6d4214925fa cmake: Require Qt 6 to build GUI
cfa7f70f6c9 Merge bitcoin/bitcoin#31933: doc: Add Clang/LLVM based coverage report generation
772996ac8be Merge bitcoin/bitcoin#32158: fuzz: Make partially_downloaded_block more deterministic
40de19164c4 Merge bitcoin/bitcoin#32118: fuzz: wallet: fix crypter target
5541f7ced77 Merge bitcoin/bitcoin#32187: refactor: Remove spurious virtual from final ~CZMQNotificationInterface
6f6f83a8ca2 Merge bitcoin/bitcoin#32193: test: fix spelling in Python code comment
16b084f88d8 Merge bitcoi
10000
n/bitcoin#32194: ci, windows: Do not exclude `wallet_migration.py` in command line
4a679936bbb ci, windows: Do not exclude `wallet_migration.py` in command line
449e2eb7e40 Merge bitcoin/bitcoin#32184: ci: Add workaround for vcpkg's `libevent` package
4774a0c9230 test: fix spelling in Python code comment
459807d566c test: remove strict restrictions on rpc_deprecated
c47f81e8ac1 net: Rename `_randomize_credentials` Proxy parameter to `tor_stream_isolation`
1a6fc04d815 Merge bitcoin/bitcoin#29500: test: create assert_not_equal util
6af68bb84bf Merge bitcoin/bitcoin#32166: torcontrol: Define tor reply code as const to improve our maintainability
6593293e47d Merge bitcoin/bitcoin#32110: contrib: document asmap-tool commands more thoroughly
c8ade107c84 Merge bitcoin/bitcoin#31806: fuzz: coinselection: cover `SetBumpFeeDiscount`
fa69c42fdf0 refactor: Remove spurious virtual from final ~CZMQNotificationInterface
ea36d2720a7 Merge bitcoin/bitcoin#31340: test: add missing segwitv1 test cases to `script_standard_tests`
80e47b19207 Merge bitcoin/bitcoin#32096: Move some tests and documentation from testnet3 to testnet4
30c59adda44 ci: Drop confusing comment
ef00a28414d ci: Add workaround for vcpkg's libevent package
7bb83f67181 test: create assert_not_equal util and add to where imports are needed
2929da1dd59 test: Add coverage for rpcwhitelistdefault when unset
fa513101212 contrib: Warn about using libFuzzer for coverage check
fa17cdb191d test: Avoid script check worker threads while fuzzing
fa900bb2dce contrib: Only print fuzz output on failure
74d9598bfbc Merge bitcoin/bitcoin#32134: descriptors: Multipath/PR 22838 follow-ups
a40bd374aaf Get*Union: disallow nulltpr Refs
57433502e67 CountDistinctClusters: nullptrs disallowed
8bca0d325a4 TxGraphImpl::Compact: m_main_clusterset.m_removed is always empty
2c5cf987e96 TxGraphImpl::PullIn: only allowed when staging exists
fa82fe2c736 contrib: Use -Xdemangler=llvm-cxxfilt in deterministic-*-coverage
fa7e9311305 contrib: Add optional parallelism to deterministic-fuzz-coverage
3358b1d1051 Merge bitcoin/bitcoin#31176: ci: Test cross-built Windows executables on Windows natively
8e4a0ddd508 torcontrol: Add comment explaining Proxy credential randomization for Tor privacy
f974359e218 test: Add encodable PUSHDATA1 examples to feature_taproot
ec5c0b26cef torcontrol: Define tor reply code as const to improve maintainability
3c3548a70ee validation: clarify final |= BLOCK_FAILED_VALID in InvalidateBlock
aac5488909f validation: correctly update BlockStatus for invalid block descendants
9e29653b424 test: check BlockStatus when InvalidateBlock is used
c99667583dd validation: fix traversal condition to mark BLOCK_FAILED_CHILD
7a93544cdcc doc: Fix and clarify description of ZMQ message format
56f271e9b9c descriptors refactor: Clarify multipath data relationships through local struct
7e974f474e2 descriptors refactor: Use range-for and limit scope of seen_multipath
3e167085bad test: Ensures test fails if witness is not hex
4c1906a500c Merge bitcoin/bitcoin#31992: cmake: Avoid fuzzer "multiple definition of `main'" errors
9acc25bcb67 Merge bitcoin/bitcoin#32153: wallet: remove redundant `Assert` call when block is disconnected
0a1e36effaa Merge bitcoin/bitcoin#32151: Follow-ups for txgraph #31363
e3c4bb12bab Merge bitcoin/bitcoin#32058: test: get rid of redundant TODO tag
930b237f163 Merge bitcoin/bitcoin#31874: qa wallet: Activate dormant checks in wallet_multisig_descriptor_psbt.py
a52b53926b5 clusterlin: add GetConnectedComponent
6afffba34e0 contrib: (asmap) add docs about encode and decode commands
67d5cc2a06e contrib: (asmap) add documentation on diff and diff-addrs commands
e047b1deca0 contrib: (asmap) add diff-addrs example to README
c7d5dcaa614 clusterlin: fix typos
777179bc27b txgraph: rename group_data in ApplyDependencies
74c23f80abb Merge bitcoin/bitcoin#32145: test: Add functional test for bitcoin-chainstate
bcb316bd888 Merge bitcoin/bitcoin#32050: test: avoid treating hash results as integers
fa6a007b8e7 fuzz: Avoid integer sanitizer warnings in policy_estimator target
ae6b6ea296a wallet: remove redundant `Assert` call when block is disconnected
a54baa86981 Merge bitcoin/bitcoin#32100: doc: clarify the documentation of `Assume` assertion
b131e1bfc07 Merge bitcoin/bitcoin#32101: Accept unordered tracepoints in interface_usdt_utxocache.py
8cc601196b9 Merge bitcoin/bitcoin#32129: doc: Update comments for AreInputsStandard to match code
140f0d89bf6 Merge bitcoin/bitcoin#32027: cmake: Add `NO_CACHE_IF_FAILED` option for checking linker flags
5dd6ebc7e13 Merge bitcoin/bitcoin#32148: test: fix intermittent timeout in p2p_ibd_stalling.py
b413b088ae8 Merge bitcoin/bitcoin#32141: fuzz: extract unsequenced operations with side-effects
e563cb5c606 Merge bitcoin/bitcoin#31849: depends: set `CMAKE_*_COMPILER_TARGET` in toolchain
603fcc07d59 Merge bitcoin/bitcoin#31896: refactor: Remove redundant and confusing calls to IsArgSet
84bbb40558f Merge bitcoin/bitcoin#32132: build: Remove bitness suffix from Windows installer
6971d3a0f52 Merge bitcoin/bitcoin#32144: lint: Remove needless borrow to fix Clippy warning
f1d129d9634 Merge bitcoin/bitcoin#31363: cluster mempool: introduce TxGraph
9f35d4d070b test: fix intermittent timeout in p2p_ibd_stalling.py
d065208f0f0 test: get rid of redundant TODO tag
248fdd88dcf test: accept unordered tracepoints in...
ca55613fd15 test: Add functional test for bitcoin-chainstate
32dcec269bf rpc: update RPC help of `createpsbt`
931117a46f5 rpc: update the doc for `data` field in `outputs` argument
aa7a898c236 doc: use testnet4 in developer docs
6c217d22fdc test: use testnet4 in argsman test
7c200ece805 test: use testnet4 in key_io_valid.json
d424bd59413 test: drop unused testnet3 magic bytes
8cfc09fafe5 test: cover testnet4 magic in assumeutxo.py
4281e3603a2 zmq: use testnet4 in zmq_sub.py example
3f9c716e7fc test: Fix docstring for cmake migration
52ede28a8ad doc: Update comments for AreInputsStandard to match code
35d17cd5eec qa wallet: Actually make use of expressions
b96f1a696aa add clang/llvm based coverage report generation
e3ce2bd9829 Remove needless borrow to fix Clippy warning
c0b7159de47 Merge bitcoin/bitcoin#32122: fuzz: Fix off-by-one in package_rbf target
b1de59e8965 fuzz: extract unsequenced operations with side-effects
99a92efdd9d descriptors doc: Correct Markdown format + wording
dfb7d58108d Merge bitcoin/bitcoin#31897: mining: drop unused  -nFees and sigops from CBlockTemplate
535b8747074 test: Combine rpcwhitelistdefault functions
0000fb3fd9f doc: Remove outdated and stale todo comment
fa2b529f926 refactor: Remove redundant call to IsArgSet
fa29842c1fe refactor: Remove IsArgSet guard when fallback value is provided
2b6ce9254da test: Update permissions and string formatting
fa5674c264d fuzz: Fix off-by-one in package_rbf target
1d281daf861 Merge bitcoin/bitcoin#32095: doc: clarify that testnet min-difficulty is not optional
a0d737cd7a7 Merge bitcoin/bitcoin#32073: net: Block v2->v1 transport downgrade if !fNetworkActive
77e553ab6a0 build: refactor: hardening flags -> core_interface
00ba3ba3034 build: Drop option for disabling hardening
f57db75e91d build: Use `-z noseparate-code` on NetBSD < 11.0
b3162d10ea9 Merge bitcoin/bitcoin#31656: test: Add expected result assertions
5f3848c63b2 Merge bitcoin/bitcoin#31278: wallet, rpc: deprecate settxfee and paytxfee
329a0dcdafe doc: clarify the documentation of `Assume`
fb2b05b1259 build: Remove bitness suffix from Windows installer
b2ea3656481 txgraph: Add Get{Ancestors,Descendants}Union functions (feature)
54bceddd3ab txgraph: Multiple inputs to Get{Ancestors,Descendant}Refs (preparation)
aded0470192 txgraph: Add CountDistinctClusters function (feature)
b685d322c97 txgraph: Add DoWork function (feature)
295a1ca8bbb txgraph: Expose ability to compare transactions (feature)
22c68cd153b txgraph: Allow Refs to outlive the TxGraph (feature)
82fa3573e19 txgraph: Destroying Ref means removing transaction (feature)
6b037ceddfd txgraph: Cache oversizedness of graphs (optimization)
8c70688965b txgraph: Add staging support (feature)
c99c7300b44 txgraph: Abstract out ClearLocator (refactor)
34aa3da5ade txgraph: Group per-graph data in ClusterSet (refactor)
36dd5edca5b txgraph: Special-case removal of tail of cluster (Optimization)
5801e0fb2b9 txgraph: Delay chunking while sub-acceptable (optimization)
57f5499882a txgraph: Avoid looking up the same child cluster repeatedly (optimization)
1171953ac60 txgraph: Avoid representative lookup for each dependency (optimization)
64f69ec8c38 txgraph: Make max cluster count configurable and "oversize" state (feature)
1d27b74c8e3 txgraph: Add GetChunkFeerate function (feature)
c80aecc24dd txgraph: Avoid per-group vectors for clusters & dependencies (optimization)
ee57e93099f txgraph: Add internal sanity check function (tests)
05abf336f99 txgraph: Add simulation fuzz test (tests)
8ad3ed26818 txgraph: Add initial version (feature)
6eab3b2d738 feefrac: Introduce tagged wrappers to distinguish vsize/WU rates
d4497738999 scripted-diff: (refactor) ClusterIndex -> DepGraphIndex
bfeb69f6e00 clusterlin: Make IsAcyclic() a DepGraph member function
0aa874a3578 clusterlin: Add FixLinearization function + fuzz test
55b931934a3 removed duplicate calling of GetDescriptorScriptPubKeyMan
05117e6e17f rpc: clarify longpoll behavior
5315278e7c7 Have createNewBlock() wait for a tip
8284229a28c refactor: deduplicate anchor witness program bytes (`0x4e,0x73`)
41f2f058d0b test: add missing segwitv1 test cases to `script_standard_tests`
770d39a3765 Merge bitcoin/bitcoin#31887: CLI cleanups
a203928693c Merge bitcoin/bitcoin#30538: Doc: add a comment referencing past vulnerability next to where it was fixed
b9c281011b7 Merge bitcoin/bitcoin#31689: Benchmark Chainstate::ConnectBlock duration
963355037fe depends: set CMAKE_*_COMPILER_TARGET in toolchain
af3dee0b8d4 Merge bitcoin/bitcoin#32074: contrib: Make deterministic-coverage error messages more readable
0ff66b1c4ab fuzz: coinselection: cover `SetBumpFeeDiscount`
28dc118001b fuzz: wallet: fix crypter target
80467593059 Merge bitcoin/bitcoin#31870: fuzz: split `coinselection` harness
2db00278ea5 Merge bitcoin/bitcoin#31910: qa: fix an off-by-one in utxo snapshot fuzz target and sanity check its snapshot data
c9a61509ba3 Merge bitcoin/bitcoin#31979: torcontrol: Limit reconnect timeout to max seconds and log delay in whole seconds
b43cfa20fdd Merge bitcoin/bitcoin#30142: doc: add guidance for RPC to developer notes
85feb094d4a Merge bitcoin/bitcoin#32092: test: Fix intermittent issue in p2p_orphan_handling.py
b858b729034 Merge bitcoin/bitcoin#31841: fuzz: Use immediate task runner to increase fuzz stability
fa7a40d952a contrib: Print deterministic-coverage runs
fa751639fb6 contrib: Make deterministic-coverage error messages more readable
c6eca6f3961 doc: add guidance for RPC to developer notes
fa310cc6f49 test: Fix intermittent issue in p2p_orphan_handling.py
25b56fd9b46 ci: Test cross-built Windows executables on Windows natively
288481aabd7 doc: clarify that testnet min-difficulty is not optional
3501bca8c7e ci: Move "Windows cross" job from Cirrus CI to GHA CI
f8619196ceb ci: Use `bash` by default for all platforms
6869fb41709 net: Block v2->v1 transport downgrade if !CConnman::fNetworkActive
2f2ab47bf74 Release notes
bf194c920cf wallet, rpc: deprecate settxfee and paytxfee
fa4fb6a8f15 fuzz: Use serial task runner to increase fuzz stability
e3014017bac test: add IsActiveAfter tests for versionbits
60950f77c35 versionbits: docstrings for BIP9Info
64a2795fd4f rpc: handle shutdown during long poll and wait methods
a3bf43343f0 rpc: drop unneeded IsRPCRunning() guards
f9cf8bd0ab7 Handle negative timeout for waitTipChanged()
226d81f8b70 mining: drop unused -nFees and sigops from CBlockTemplate
53ad845fb9e test: check fees and sigops in getblocktemplate
a82829f37e1 test: simplify (w)txid checks by avoiding .calc_sha256 calls
346a099fc1e test: avoid unneeded hash -> uint256 -> hash roundtrips
d423fd9ec83 cli, bugfix: for -getinfo, replace IsArgSet() with GetBoolArg()
e99e41b3070 cli, refactor: simplify public-only classes with structs
fdbfd250fbf cli, refactor: deduplicate NetworkStringToId()
be82139b2a1 cli, refactor: simplify DetailsRequested()
52ac17757ee cmake: Add `NO_CACHE_IF_FAILED` option for checking linker flags
f708498293c torcontrol: Limit reconnect timeout to max seconds and log delay in whole seconds
57d8b1f1b33 cmake: Avoid fuzzer "multiple definition of `main'" errors
8134a6b5d40 rpc: add cli example for `walletcreatefundedpsbt` RPC
a015b7e13da test: Add expected result assertions
63b534f97e5 fuzz: sanity check hardcoded snapshot in utxo_snapshot target
3b85eba83ab test util: split up ConnectBlock from MineBlock
ba82240553d fuzz: split `coinselection` harness
d1527f6b886 qa: correct off-by-one in utxo snapshot fuzz target
b9d4d5f66a5 net: Use GetAdaptersAddresses to get local addresses on Windows
7edaf8b64cb Benchmark Chainstate::ConnectBlock duration
eb0724f0dee doc: banman: reference past vuln due to unbounded banlist
ad616b6c013 doc: net: mention past vulnerability as rationale to limit incoming message size
4489117c3f6 doc: txrequest: point to past censorship vulnerability in tx re-request handling
68ac9542c45 doc: net_proc: reference past DoS vulnerability in orphan processing
c02d9f6dd53 doc: net_proc: reference past defect regarding invalid GETDATA types
5e3d9f21df2 doc: validation: add a reference to historical header spam vulnerability
a8333fc9ff9 scripted-diff: wallet: rename plain and encrypted master key variables
5a92077fd53 wallet: refactor: dedup master key decryption
846545947cd wallet: refactor: dedup master key encryption / derivation rounds setting
a6d9b415aa3 wallet: refactor: introduce `CMasterKey::DEFAULT_DERIVE_ITERATIONS` constant
62c209f50d9 wallet: doc: remove mentions of unavailable scrypt derivation method
ff0194a7ce9 miniscript: convert non-critical asserts to CHECK_NONFATAL
7565563bc7a tests: refactor versionbits fuzz test
2e4e9b9608c tests: refactor versionbits unit test
525c00f91bb versionbits: Expose VersionBitsConditionChecker via impl header
e74a7049b47 versionbits: Expose StateName function
d00d1ed52c8 versionbits: Split out internal details into impl header
37b9b67a395 versionbits: Simplify VersionBitsCache API
1198e7d2fd6 versionbits: Move BIP9 status logic for getblocktemplate to versionbits
b1e967c3ec9 versionbits: Move getdeploymentinfo logic to versionbits
3bd32c20550 versionbits: Move WarningBits logic from validation to versionbits
5da119e5d0e versionbits: Change BIP9Stats to uint32_t types
a679040ec19 consensus/params: Move version bits period/threshold to bip9 param
0ad7d7abdbc test: chainstate write test for periodic chainstate flush
e9d617095d4 versionbits: Remove params from AbstractThresholdConditionChecker
9bc41f1b48b versionbits: Use std::array instead of C-style arrays
fa21f83d298 ci: Use G++ in valgrind tasks
fabd05bf651 refactor: Fix net_processing iwyu includes
fa1622db208 refactor: Make node_id a const& in RemoveBlockRequest
002b792b9a8 gui: decouple WalletModel from RPCExecutor
REVERT: 29f05b91cf8 kernel: Add pure kernel bitcoin-chainstate
REVERT: b7733085a90 kernel: Add functions to get the block hash from a block
REVERT: a4f79616064 kernel: Add block index utility functions to C header
REVERT: 0a0062b85a7 kernel: Add function to read block undo data from disk to C header
REVERT: e49808a42d3 kernel: Add functions to read block from disk to C header
REVERT: 2f54bd53745 kernel: Add function for copying block data to C header
REVERT: c34ecbefbd8 kernel: Add functions for the block validation state to C header
REVERT: 0b46337ebe3 kernel: Add validation interface to C header
REVERT: 4c7a81a030e kernel: Add interrupt function to C header
REVERT: edf1d56fc05 kernel: Add import blocks function to C header
REVERT: 894b9c20447 kernel: Add chainstate load options for in-memory dbs in C header
REVERT: 157de0eccd3 kernel: Add options for reindexing in C header
REVERT: bdff17958b1 kernel: Add block validation to C header
REVERT: c52ca9447fc kernel: Add chainstate loading when instantiating a ChainstateManager
REVERT: 031a96dc6b7 kernel: Add chainstate manager option for setting worker threads
REVERT: c2f03a11251 kernel: Add chainstate manager object to C header
REVERT: 18ec1cc195b kernel: Add notifications context option to C header
REVERT: e3b03745f93 kernel: Add chain params context option to C header
REVERT: ef426234c07 kernel: Add kernel library context object
REVERT: 2c5e6b55922 kernel: Add logging to kernel library C header
REVERT: 20f1f67de07 kernel: Introduce initial kernel C header API

git-subtree-dir: depend/bitcoin
git-subtree-split: dcb6dd33f5fb68f2b363cdab237916278f89919b
TheCharlatan added a commit to TheCharlatan/rust-bitcoinkernel that referenced this pull request May 29, 2025
…417e0b3b1b0

1417e0b3b1b0 kernel: Fix bitcoin-chainstate for windows
4f07590a8bd6 kernel: Add Purpose section to header documentation
58c01a82c163 kernel: Add pure kernel bitcoin-chainstate
0416a292f545 kernel: Add functions to get the block hash from a block
8d25dfd1b2a2 kernel: Add block index utility functions to C header
eacf99dd3c28 kernel: Add function to read block undo data from disk to C header
3c012048c2f1 kernel: Add functions to read block from disk to C header
85f5264462e0 kernel: Add function for copying block data to C header
f136ca589153 kernel: Add functions for the block validation state to C header
9d7e19ee522d kernel: Add validation interface to C header
51555301a882 kernel: Add interrupt function to C header
61c4ac9c8e1f kernel: Add import blocks function to C header
4153ab77084e kernel: Add chainstate load options for in-memory dbs in C header
cb128288a0d9 kernel: Add options for reindexing in C header
7ead2a92be50 kernel: Add block validation to C header
9262ce715448 kernel: Add chainstate loading when instantiating a ChainstateManager
594b060da476 kernel: Add chainstate manager option for setting worker threads
7384b7325d5f kernel: Add chainstate manager object to C header
7920e23c22b8 kernel: Add notifications context option to C header
c0a86769e784 kernel: Add chain params context option to C header
3769d12882f9 kernel: Add kernel library context object
f7b435493bd7 kernel: Add logging to kernel library C header
62d0122c7ed0 kernel: Introduce initial kernel C header API
88b22acc3d6f Merge bitcoin/bitcoin#32528: rpc: Round verificationprogress to 1 for a recent tip
aee7cec0db8f Merge bitcoin/bitcoin#32364: refactor: validation: mark CheckBlockIndex as const
ce4600071243 Merge bitcoin/bitcoin#32509: qa: feature_framework_startup_failures.py fixes & improvements (#30660 follow-up)
d21612fc4b77 Merge bitcoin/bitcoin#32404: log: print reason when writing chainstate
9bd9aee5a656 Merge bitcoin/bitcoin#32487: blocks: avoid recomputing block header hash in `ReadBlock`
4173805a15c1 Merge bitcoin/bitcoin#32623: test: Add missing ipc subtree to lint
012f347685b8 Merge bitcoin/bitcoin#31375: multiprocess: Add bitcoin wrapper executable
38ad8027a26f Merge bitcoin/bitcoin#32439: guix: accomodate migration to codeberg
fa4b8b16c378 test: Add missing ipc subtree to lint
f7cc7f6468af Merge bitcoin/bitcoin#32591: test: fix and augment block tests of invalid_txs
87860143be79 Merge bitcoin/bitcoin#32270: test: fix pushdata scripts
c8d9baae942c guix: accomodate migration to codeberg
09ee8b7f2786 node: avoid recomputing block hash in `ReadBlock`
2bf173210fa1 test: exercise `ReadBlock` hash‑mismatch path
fab1e02086ce refactor: Pass verification_progress into block tip notifications
638a4c0bd8b5 Merge bitcoin/bitcoin#32596: wallet, rpc, doc: various legacy wallet removal cleanups in RPCs
53e9b71b2fd5 log: print reason for why should_write was triggered in `FlushStateToDisk`
e5cbea416b2f rpc: doc: remove redundant "descriptors" parameter in `createwallet` examples
7a05f941bb2c rpc: doc: drop descriptor wallet mentions in fast wallet rescan related RPCs
db465a50e23d wallet, rpc: remove obsolete "keypoololdest" result field/code
2df824f4e62b Merge bitcoin/bitcoin#32586: ci: Downgrade DEBUG=1 to -D_GLIBCXX_ASSERTIONS in centos task
0a8ab559514f Merge bitcoin/bitcoin#32467: checkqueue: make the queue non-optional for CCheckQueueControl and drop legacy locking macro usage
8fcd68450523 test: ensure reason is checked for invalid blocks rejection
1a689a2c8871 test: fix block tests of invalid_txs
d2c9fc84e171 Merge bitcoin/bitcoin#32533: test: properly check for per-tx sigops limit
fa079538e32d ci: Downgrade DEBUG=1 to -D_GLIBCXX_ASSERTIONS in centos task
35bf3f88398d Merge bitcoin/bitcoin#32400: random: Use modern Windows randomness functions
a42faa25d8f7 Merge bitcoin/bitcoin#32551: cmake: Remove `ENABLE_{SSE41,AVX2,X86_SHANI,ARM_SHANI}` from `bitcoin-build-config.h`
87ec923d3a7a Merge bitcoin/bitcoin#32475: wallet: Use `util::Error` throughout `AddWalletDescriptor` instead of returning `nullptr` for some errors
7763e86afa04 Merge bitcoin/bitcoin#32573: ci: Avoid && dropping errors
0a56ed1ac868 Merge bitcoin/bitcoin#32567: subprocess: Backport upstream changes
54e406a3055a Merge bitcoin/bitcoin#32459: qt: drop unused watch-only functionality
ec8120469430 Merge bitcoin/bitcoin#31622: psbt: add non-default sighash types to PSBTs and unify sighash type match checking
fab97f583f11 ci: Avoid && dropping errors
9a887baadebc Merge bitcoin/bitcoin#32344: Wallet:  Fix Non-Ranged Descriptors with Range [0,0] Trigger Unexpected Wallet Errors in AddWalletDescriptor
26fba39bda47 Merge bitcoin/bitcoin#32466: threading: drop CSemaphore in favor of c++20 std::counting_semaphore
878556947b0d Merge bitcoin/bitcoin#32333: doc: Add missing top-level description to pruneblockchain RPC
fd290730f530 validation: clean up and clarify CheckInputScripts logic
fad009af49c4 Merge bitcoin/bitcoin#32520: Remove legacy `Parse(U)Int*`
f66b14d2ecb0 test: fix pushdata scripts
0f9baba0fb6e Merge bitcoin/bitcoin#29868: Reintroduce external signer support for Windows
cf2cbfac6599 Merge bitcoin/bitcoin#32553: wallet: Fix logging of wallet version
bc4b04c5bfb4 Merge bitcoin/bitcoin#31864: doc: add missing copyright headers
e63a7034f038 subprocess: Don't add an extra whitespace at end of Windows command line
800b7cc42ca6 cmake: Add missed `SSE41_CXXFLAGS`
028476e71fdc cmake: Remove `ENABLE_ARM_SHANI` from `bitcoin-build-config.h`
1e900528d245 cmake: Remove `ENABLE_X86_SHANI` from `bitcoin-build-config.h`
8689628e2e36 cmake: Remove `ENABLE_AVX2` from `bitcoin-build-config.h`
a8e2342dca5e cmake: Remove `ENABLE_SSE41` from `bitcoin-build-config.h`
fa76b378e4b2 rpc: Round verificationprogress to exactly 1 for a recent tip
faf6304bdfdf test: Use mockable time in GuessVerificationProgress
c7c3bfadfc6e doc: add & amend copyright headers
f667000c83e7 contrib: remove outdated entries from copyright_header.py
0817f2d6cf52 doc: update MIT license URL
6854497b47ce contrib: remove GPL-3+ from debian/copyright
af65fd1a3330 Merge bitcoin/bitcoin#32560: ci: Move DEBUG=1 to centos task
548f6b8cdef5 Merge bitcoin/bitcoin#32562: doc: remove // for ... comments
7c87a0e3fb1b Merge bitcoin/bitcoin#32477: lint: Check for missing trailing newline
faf55fc80b11 doc: Remove ParseInt mentions in documentation
785e1407b0a3 wallet: Use util::Error throughout AddWalletDescriptor
1a3750789540 validation: use a lock for CCheckQueueControl
c3b0e6c7f482 validation: make CCheckQueueControl's CCheckQueue non-optional
4c8c90b5567a validation: only create a CCheckQueueControl if it's actually going to be used
11fed833b3ed threading: add LOCK_ARGS macro
33f8f8ae4ced Merge bitcoin/bitcoin#30221: wallet: Ensure best block matches wallet scan state
7054d24f119a Merge bitcoin-core/gui#875: Use WitnessV0KeyHash in TestAddAddressesToSendBook
4272966d0234 Merge bitcoin/bitcoin#32423: rpc: Undeprecate rpcuser/rpcpassword, store all credentials hashed in memory
7193245cd667 doc: remove For ... comments
33332829333b refactor: Remove unused Parse(U)Int*
1b9cdc933f6c net: drop win32 ifdef
19ba499b1f38 init: cerrno is used on all platforms
fa982f142544 Use WitnessV0KeyHash in TestAddAddressesToSendBook
fa58d6cdab00 ci: Move DEBUG=1 to centos task
ff1ee102c4ba Merge bitcoin/bitcoin#32561: doc: Adjust stale MSVC bug url
fa330a5e38a8 doc: Adjust stale MSVC bug url
88791fb97bc3 Merge bitcoin/bitcoin#32544: scripted-diff: test: remove 'descriptors=True' argument for `createwallet` calls
e8661aac752e wallet: drop watch-only things from interface
e99188e7daa1 qt: drop unused watch-only functionality
4b2cd0b41ff4 test: check that creating a wallet does not log version info
39a483c8e9dc test: Check that the correct versions are logged on wallet load
359ecd370499 walletdb: Log the wallet version after it has been read from disk
86de8c166800 scripted-diff: test: remove 'descriptors=True' argument for `createwallet` calls
7710a31f0cb6 Merge bitcoin/bitcoin#32452: test: Remove legacy wallet RPC overloads
b81e5076aa56 Merge bitcoin/bitcoin#32514: scripted-diff: Remove unused leading newline in RPC docs
3023d7e6ad52 Merge bitcoin/bitcoin#32534: Update leveldb subtree to latest upstream
fa84e6c36cb0 bitcoin-tx: Reject + sign in MutateTxDel*
face2519fac9 bitcoin-tx: Reject + sign in vout parsing
fa8acaf0b993 bitcoin-tx: Reject + sign in replaceable parsing
faff25a558ab bitcoin-tx: Reject + sign in locktime
dddd9e5fe38b bitcoin-tx: Reject + sign in nversion parsing
fab06ac03788 rest: Use SAFE_CHARS_URI in SanitizeString error msg
c461d1528758 Merge bitcoin/bitcoin#32511: refactor: bdb removals
b15c386933eb Merge bitcoin/bitcoin#32519: ci: Enable feature_init and wallet_reorgsrestore in valgrind task
7015052eba23 build: remove Wsuggest-override suppression from leveldb build
7bc64a8859c3 test: properly check for per-tx sigops limit
3f83c744ac28 Merge bitcoin/bitcoin#32526: fuzz: Delete wallet_notifications
fa1f10a49e7c doc: Fix minor typos in rpc help
0769c8fc999f Update leveldb subtree to latest upstream
e2c84b896fad Squashed 'src/leveldb/' changes from 4188247086..113db4962b
04c6c961b657 Merge bitcoin/bitcoin#32527: test: Remove unused verify_flags suppression
742b30549fc9 Merge bitcoin/bitcoin#32491: build: document why we check for `std::system`
fab5a3c803c7 test: Remove unused verify_flags suppression
c521192d8b9e Merge bitcoin/bitcoin#32485: Update minisketch subtree
3afde679c3b2 Merge bitcoin/bitcoin#32296: refactor: reenable `implicit-integer-sign-change` check for `serialize.h`
5af757bb7841 Merge bitcoin/bitcoin#32505: depends: bump to latest config.guess and config.sub
c60455a6458c Merge bitcoin/bitcoin#32500: init: drop `-upnp`
e230affaa321 Merge bitcoin/bitcoin#32396: cmake: Add application manifests when cross-compiling for Windows
51be79c42b7e Merge bitcoin/bitcoin#32238: qt, wallet: Convert uint256 to Txid
f96ae941a1db Merge bitcoin/bitcoin#32525: build: Revert "Temporarily disable compiling `fuzz/utxo_snapshot.cpp` with MSVC
fad2faf6c5d8 fuzz: Delete wallet_notifications
bf950c4544d3 qa: Improve suppressed errors output
075352ec8e57 qa: assert_raises_message() - search in str(e)
bd8ebbc4ab6a qa: Make --timeout-factor=0 result in a smaller factor
fa2c66236267 build: Revert "Temporarily disable compiling `fuzz/utxo_snapshot.cpp` with MSVC"
8888bb499dec rest: Reject + sign in /blockhashbyheight/
fafd43c69192 test: Reject + sign when parsing regtest deployment params
fa123afa0ef7 Reject + sign when checking -ipcfd
fa479857ed23 Reject + sign in SplitHostPort
fab4c2967d55 net: Reject + sign when parsing subnet mask
fa89652e68fc init: Reject + sign in -*port parsing
fa9c45577dfb cli: Reject + sign in -netinfo level parsing
fa980413257e refactor: Use ToIntegral in CreateFromDump
fa23ed7fc242 refactor: Use ToIntegral in ParseHDKeypath
fa2be605fee4 ci: Enable feature_init and wallet_reorgsrestore in valgrind task
725c9f7780e0 Merge bitcoin/bitcoin#31895: doc: Improve `dependencies.md`
bdc1cef1de84 Merge bitcoin/bitcoin#32507: ci: Exclude failing wallet_reorgsrestore.py from valgrind task for now
fae840e94b79 rpc: Reject beginning newline in RPC docs
e62423d6f151 doc: Improve dependencies.md documentation
a3520f9d561e doc: Add dependency self-compilation info
d1fdc84c5493 doc: Remove Linux Kernel from dep. table
135a0f0aa711 doc: Add missing top-level description to pruneblockchain RPC
fa414eda0834 scripted-diff: Remove unused leading newline in RPC docs
fafee8535839 remove unused GetDestinationForKey
fac72fef27de remove unused GetAllDestinationsForKey
fa91d57de36d remove unused AddrToPubKey
8f4fed7ec700 symbol-check: Add check for application manifest in Windows binaries
2bb6ab8f1baa ci: Add "Get bitcoind manifest" steps to Windows CI jobs
282b4913c7e4 cmake: Add application manifests when cross-compiling for Windows
faecf158d997 remove unused Import* function signatures
d8f05e7bf3ec qa: Fix dormant bug caused by multiple --tmpdir
fa981b90f531 ci: Exclude failing wallet_reorgsrestore.py from valgrind task for now
c779ee3a4044 Merge bitcoin/bitcoin#32492: test: add skip_if_running_under_valgrind()
89c7b6b97ab4 Merge bitcoin/bitcoin#32498: doc: remove Carls substitute server from Guix docs
6b4bcc162345 random: Use modern Windows randomness functions
31d3eebfb92a Merge bitcoin/bitcoin#32343: common: Close non-std fds before exec in RunCommandJSON
486bc9179072 depends: bump to latest config.sub
6880383427b4 depends: bump to latest config.guess
4b26ca0e2f1e Merge bitcoin/bitcoin#32502: wallet: Drop unused fFromMe from CWalletTx
d5786bc19a9f Merge bitcoin/bitcoin#32490: refactor: Remove UB in prevector reverse iterators
ee045b61efc1 rpc, psbt: Require sighashes match for descriptorprocesspsbt
2b7682c3729d psbt: use sighash type field to determine whether to remove non-witness utxos
28781b5f0670 psbt: Add sighash types to PSBT when not DEFAULT or ALL
15ce1bd73f80 psbt: Enforce sighash type of signatures matches psbt
1f71cd337ad7 wallet: Remove sighash type enforcement from FillPSBT
4c7d767e49b2 psbt: Check sighash types in SignPSBTInput and take sighash as optional
a11825694856 script: Add IsPayToTaproot()
d6001dcd4ada wallet: change FillPSBT to take sighash as optional
e58b680923b1 psbt: Return PSBTError from SignPSBTInput
2adfd8153257 tests: Test PSBT sighash type mismatch
5a5d26d6123e psbt: Require ECDSA signatures to be validly encoded
53eb5593f0a1 Merge bitcoin/bitcoin#32305: test: add test for decoding PSBT with MuSig2 PSBT key types (BIP 373)
e7a937237686 Merge bitcoin/bitcoin#32378: interfaces: refactor: move `Mining` and `BlockTemplate`  implementation to miner
5bf91ba8800d wallet: Drop unused fFromMe from CWalletTx
30a94b1ab9ae test, wallet: Remove concurrent writes test
b44b7c03fef0 wallet: Write best block record on unload
876a2585a8b6 wallet: Remove unnecessary database Close step on shutdown
98a1a5275c8c wallet: Remove chainStateFlushed
7fd3e1cf0c88 wallet, bench: Write a bestblock record in WalletMigration
6d3a8b195a82 wallet: Replace chainStateFlushed in loading with SetLastBlockProcessed
7bacabb204b6 wallet: Update best block record after block dis/connect
301993ebf7f8 init: drop -upnp
3b824169c776 doc: remove Carls substitute server from Guix docs
f1d78a3087fb Merge bitcoin/bitcoin#31624: doc: warn that CheckBlock() underestimates sigops
516f0689b511 refactor: re-enable UBSan implicit-sign-change in serialize.h
5827e9350779 refactor: use consistent size type for serialization template parameters
62fc42d475df interfaces: refactor: move `waitTipChanged` implementation to miner
c39ca9d4f7bc interfaces: move getTip implementation to miner
33dfbbdff69d Merge bitcoin/bitcoin#32483: test: fix two intermittent failures in wallet_basic.py
8a65f0389464 Merge bitcoin/bitcoin#32488: fuzz: Properly setup wallet in wallet_fees target
75a185ea3db3 test: add skip_if_running_under_valgrind()
8f4ba90b8ff4 build: document why we check for std::system
faf9082a5f68 test: Fix whitespace in prevector_tests.cpp
fa7f04c8a7b7 refactor: Remove UB in prevector reverse iterators
fa427ffceeef fuzz: Properly setup wallet in wallet_fees target
f9d8910539a2 Merge bitcoin/bitcoin#31080: fees: document non-monotonic estimation edge case
31650b458b6c Merge bitcoin/bitcoin#32386: mining: rename gbt_force and gbt_force_name
bac43b957e5f Merge bitcoin/bitcoin#32312: test: Fix feature_pruning test after nTime typo fix
c9ab10910cd7 Merge bitcoin/bitcoin#31444: cluster mempool: add txgraph diagrams/mining/eviction
e7ad86e1ca3b test: fix another intermittent failure in wallet_basic.py
07350e204ded test: Fix intermittent failure in wallet_basic.py
46b533dfe6fc Update minisketch subtree to latest upstream
bf25a0918f94 Squashed 'src/minisketch/' changes from d1e6bb8bbf..ea8f66b1ea
8309a9747a8d Merge bitcoin/bitcoin#32028: Update `secp256k1` subtree to latest master
720f201e6528 interfaces: refactor: move `waitNext` implementation to miner
e6c2f4ce7a84 interfaces: refactor: move `submitSolution` implementation to miner
02d4bc776bbe interfaces: remove redundant coinbase fee check in `waitNext`
fa9198af55df lint: Check for missing trailing newline
fa2b2aa27c29 lint: Add archived notes to default excludes
cbd8e3d51148 Merge bitcoin/bitcoin#32476: refactor: Remove unused HaveKey and HaveWatchOnly
915c1fa72c07 Update secp256k1 subtree to latest master
c31fcaaad38b Squashed 'src/secp256k1/' changes from 0cdc758a56..4187a46649
fabdc5ad06bc Remove unused LegacyDataSPKM::HaveWatchOnly()
fa7b7f796ac8 Remove HaveKey helper, unused after sethdseed removal
8673e8f01917 txgraph: Special-case singletons in chunk index (optimization)
abdd9d35a34d txgraph: Skipping end of cluster has no impact (optimization)
604acc2c289f txgraph: Reuse discarded chunkindex entries (optimization)
c734081454d7 txgraph: Introduce TxGraph::GetWorstMainChunk (feature)
394dbe21427e txgraph: Introduce BlockBuilder interface (feature)
883df3648ee9 txgraph: Generalize GetClusterRefs to support subsections (preparation)
c28a602e007f txgraph: Introduce TxGraphImpl observer tracking (preparation)
9095d8ac1c31 txgraph: Maintain chunk index (preparation)
87e74e1242ec txgraph: abstract out transaction ordering (refactor)
2614fea17fe3 txgraph: Add GetMainStagingDiagrams function (feature)
a5ac43d98d1a doc: Add release notes describing bitcoin wrapper executable
663a9cabf811 Merge bitcoin/bitcoin#32458: guix: move `*-check.py` scripts under contrib/guix/
258bda80c009 doc: Mention bitcoin wrapper executable in documentation
d2739d75c911 build: add bitcoin.exe to windows installer
ba649c00063a ci: Run multiprocess tests through wrapper executable
29bdd743bb84 test: Support BITCOIN_CMD environment variable
9c8c68891b43 multiprocess: Add bitcoin wrapper executable
5076d20fdb70 util: Add cross-platform ExecVp and GetExePath functions
05765b8818cf Merge bitcoin/bitcoin#32472: doc: Fix typo
d847e17c9656 doc: Fix typo
3edf400b1020 Merge bitcoin/bitcoin#32469: cmake: Allow `WITH_DBUS` on all Unix-like systems
59e09e0fb7b4 Merge bitcoin-core/gui#871: qt, docs: Unify term "clipboard"
46f79dde67e4 Merge bitcoin-core/gui#841: Decouple WalletModel from RPCExecutor
5b7ed460c7c1 cmake: Allow `WITH_DBUS` on all Unix-like systems
746ab19d5a13 Merge bitcoin/bitcoin#32446: build: simplify *ifaddr handling
6f7052a7b96f threading: semaphore: move CountingSemaphoreGrant to its own header
fd1546989293 threading: semaphore: remove temporary convenience types
1f89e2a49a21 scripted-diff: threading: semaphore: use direct types rather than the temporary convenience ones
f21365c4fc7f threading: replace CountingSemaphore with std::counting_semaphore
1acacfbad780 threading: make CountingSemaphore/CountingSemaphoreGrant template types
e6ce5f9e7874 scripted-diff: rename CSemaphore and CSemaphoreGrant
793166d3810e wallet: change the write semaphore to a BinarySemaphore
6790ad27f157 scripted-diff: rename CSemaphoreGrant and CSemaphore for net
d870bc94519a threading: add temporary semaphore aliases
19b1e177d673 Merge bitcoin/bitcoin#32155: miner: timelock the coinbase to the mined block's height
6c6ef58b0b22 Merge bitcoin/bitcoin#32436: test: refactor: negate signature-s using libsecp256k1
b104d4422770 test: Remove RPCOverloadWrapper
4d32c19516fd test: Replace importpubkey
fe838dd391be test: Replace usage of addmultisigaddress
d3142077794f test: Replace usage of importaddress
fcc457573f9b test: Replace importprivkey with wallet_importprivkey
94c87bbbd06e test: Remove unnecessary importprivkey from wallet_createwallet
9a05b45da60d Merge bitcoin/bitcoin#32438: refactor: Removals after bdb removal
e49a7274a214 rpc: Avoid join-split roundtrip for user:pass for auth credentials
98ff38a6f1a8 rpc: Perform HTTP user:pass split once in `RPCAuthorized`
879a17bcb1a5 rpc: Store all credentials hashed in memory
4ab9bedee9d8 rpc: Undeprecate rpcuser/rpcpassword, change message to security warning
fa061bfcdb0c Remove create options from wallet tool
fa2125e7b8e3 Remove unused IsSingleKey
fab5e2a0948a doc: Remove note about bdb wallets
eeeef88d46fe doc: fix typo in abortrescan rpc
fa7e5c15a795 Remove unused LegacyDataSPKM::DeleteRecords()
b070ce16966f Merge bitcoin/bitcoin#31360: depends: Avoid using helper variables in toolchain file
ffff94947298 remove NotifyWatchonlyChanged
fa62a013a558 remove dead flush()
fa5f3e62c880 vcpkg: Remove bdb
415650cea94f guix: move *-check.py scripts under contrib/guix
5b8752198e97 Merge bitcoin/bitcoin#32454: tracing: fix invalid argument in mempool_monitor
31c5ebc40078 tracing: fix invalid argument in mempool_monitor
ad5cd129f3cc Merge bitcoin/bitcoin#30660: qa: Verify clean shutdown on startup failure
7b816c4e00e2 threading: rename CSemaphore methods to match std::semaphore
1656f6dbba86 Merge bitcoin/bitcoin#32448: contrib: remove bdb exception from FORTIFY check
a04f17a18824 doc: warn that CheckBlock() underestimates sigops
ab878a7e7410 build: simplify *ifaddr handling
1b4ddb0c2d10 Merge bitcoin/bitcoin#32356: cmake: Respect user-provided configuration-specific flags
1ee698fde2e8 test: refactor: negate signature-s using libsecp256k1
f9dfe8d5e0d3 contrib: remove bdb exception from FORTIFY check
66c968b4b4a9 Merge bitcoin/bitcoin#32444: doc: swap "Docker image" for "container image"
646975295237 Merge bitcoin/bitcoin#32434: lint: Remove string exclusion from locale check
1372eb09c5d0 doc: swap "Docker image" for "container image"
03ebdd079302 Merge bitcoin/bitcoin#32437: crypto: disable ASan for sha256_sse4 with Clang
95bb305b96a8 Merge bitcoin/bitcoin#32429: docs: Improve `keypoolrefill` RPC docs
1b1b9f32cfdb Merge bitcoin/bitcoin#32440: test: remove bdb assert in tool_wallet.py
e08e6567f2e7 test: remove assert_dump since it is not used anymore
ff35a4b021e1 docs: Improve `keypoolrefill` RPC docs
4b2418675672 test: add test for decoding PSBT with MuSig2 PSBT key types (BIP 373)
8ba245cb8318 test: add constants for MuSig2 PSBT key types (BIP 373)
4b6dd9790b66 test: remove bdb assert in tool_wallet.py
97d383af6d54 Test updating non-ranged descriptor with [0,0] range succeeds
7343a1846ceb depends: Avoid using helper variables in toolchain file
0671d66a8ee0 wallet, refactor: Convert uint256 to Txid in wallet
c8ed51e62be9 wallet, refactor: Convert uint256 to Txid in wallet interfaces
b3214cefe6d8 qt, refactor: Convert uint256 to Txid in the GUI
efac285a0d70 Merge bitcoin/bitcoin#28710: Remove the legacy wallet and BDB dependency
fa24fdcb7f47 lint: Remove string exclusion from locale check
4e8ab5e00fa7 crypto: disable ASan for sha256_sse4 with Clang
6d5edfcc585b Merge bitcoin/bitcoin#32388: fuzz: Remove unused TimeoutExpired catch in fuzz runner
de054df6dc32 contrib: Remove legacy wallet RPCs from bash completions
5dff04a1bba8 legacy spkm: Make IsMine() and CanProvide() private and migration only
c0f3f3264ff7 wallet: Remove unused db functions
83af1a3cca7e wallet: Delete LegacySPKM
59d3e4ed34eb Merge bitcoin/bitcoin#32415: scripted-diff: adapt script error constant names in feature_taproot.py
fffb272c2587 Merge bitcoin/bitcoin#29532: Refactor BnB tests
3bbdbc0a5e1b qt, docs: Unify term "clipboard"
8ede6dea0c55 wallet, rpc: Remove legacy wallet only RPCs
4de3cec28dfb test: rpcs disabled for descriptor wallets will be removed
84f671b01df4 test: Run multisig script limit test
810476f31e42 test: Remove unused options and variables, correct comments
04a7a7a28cdc build, wallet, doc: Remove BDB
44057fe38ccc Merge bitcoin/bitcoin#32287: build: Fix `macdeployqtplus` after switching to Qt 6
229943b51368 Merge bitcoin/bitcoin#32086: Shuffle depends instructions and recommend modern make for macOS
3e6ac5bf7727 refactor: validation: mark CheckBlockIndex as const
61a51eccbba1 validation: don't use GetAll() in CheckBlockIndex()
edde96376a29 cmake: Respect user-provided configuration-specific flags
22cff32319de doc: recommend gmake for FreeBSD
b645c520714c doc: recommend modern make for macOS depends
99e6490dc51a doc: shuffle depends instructions
1e0de7a6ba92 fees: document non-monotonic estimation edge case
baa848b8d381 Merge bitcoin/bitcoin#32405: build: replace header checks with `__has_include`
3a18075aedd7 ci: Drop `-DENABLE_EXTERNAL_SIGNER=ON` configure option
719fa9f4ef68 build: Re-enable external signer support for Windows
6e5fc2bf9b18 test: Reintroduce Windows support in `system_tests/run_command` test
53ccb75f0c47 Merge bitcoin/bitcoin#32358: subprocess: Backport upstream changes
fa2c5484296f Merge bitcoin/bitcoin#32417: doc: Explain that .gitignore is not for IDE-specific excludes
fada115cbeaa doc: Explain that .gitignore is not for IDE-specific excludes
b5f580c58025 scripted-diff: adapt script error constant names in feature_taproot.py
eba5f9c4b63f Merge bitcoin/bitcoin#32403: test: remove Boost SIGCHLD workaround.
e1f543823b30 build: replace header checks with __has_include
3add6ab9adcd test: remove Boost SIGCHLD workaround.
cd95c9d6a7ec subprocess: check and handle fcntl(F_GETFD) failure
b7288decdf53 subprocess: Proper implementation of wait() on Windows
7423214d8dee subprocess: Do not escape double quotes for command line arguments on Windows
bb9ffea53fb0 subprocess: Explicitly define move constructor of Streams class
174bd43f2e46 subprocess: Avoid leaking POSIX name aliases beyond `subprocess.h`
7997b7656f99 subprocess: Fix cross-compiling with mingw toolchain
647630462f10 subprocess: Get Windows return code in wait()
d3f511b4583b subprocess: Fix string_arg when used with rref
2fd3f2fec67a subprocess: Fix memory leaks
5b8046a6e893 Merge bitcoin/bitcoin#30611: validation: write chainstate to disk every hour
fc6346dbc8dc Merge bitcoin/bitcoin#32389: doc: Fix test_bitcoin path
a0eed55398f8 run_command: Enable close_fds option to avoid lingering fds
c7c356a44865 cpp-subprocess: Iterate through /proc/self/fd for close_fds option on Linux
4f5e04da1350 Revert "remove unneeded close_fds option from cpp-subprocess"
6cbc28b8dd62 doc: Fix test_bitcoin path
85368aafa0d1 test: Run simple tests at various feerates
d610951c1546 test: Recreate BnB iteration exhaustion test
2a1b2754f14a test: Remove redundant repeated test
4781f5c8be55 test: Recreate simple BnB failure tests
a94030ae985b test: Recreate BnB clone skipping test
7db6f012c08c test: Move BnB feerate sensitivity tests
2bafc462610c test: Recreate simple BnB success tests
e976bd304501 validation: add randomness to periodic write interval
2e2f41068128 refactor: replace m_last_write with m_next_write
b557fa7a175f refactor: rename fDoFullFlush to should_write
d73bd9fbe483 validation: write chainstate to disk every hour
68ac9f116c02 Merge bitcoin/bitcoin#32383: util: Remove `fsbridge::get_filesystem_error_message()`
fa4804009ceb fuzz: Remove unused TimeoutExpired catch in fuzz runner
0750249289c0 mining: document gbt_rule_value helper
5e87c3ec094d scripted-diff: rename gbt_force and gbt_force_name
97eaadc3bf9f util: Remove `fsbridge::get_filesystem_error_message()`
14b8dfb2bd5e Merge bitcoin/bitcoin#31398: wallet: refactor: various master key encryption cleanups
a60445cd04c8 Merge bitcoin/bitcoin#32355: Bugfix: Miner: Don't reuse block_reserved_weight for "block is full enough to give up" weight delta
2d5b4244147b Merge bitcoin/bitcoin#32351: test: avoid stack overflow in `FindChallenges` via manual iteration
0ed5f37afef1 Merge bitcoin/bitcoin#31014: net: Use GetAdaptersAddresses to get local addresses on Windows
7a4a2a38ea37 Merge bitcoin/bitcoin#27826: validation: log which peer sent us a header
4694732bc4c3 Merge bitcoin/bitcoin#32338: net: remove unnecessary check from AlreadyConnectedToAddress()
7db096121d37 Merge bitcoin/bitcoin#29039: versionbits refactoring
51d76634fb57 Merge bitcoin/bitcoin#32365: descriptors: Reject + sign while parsing unsigned
c5e44a043563 Merge bitcoin/bitcoin#32369: test: Use the correct node for doubled keypath test
32d55e28af69 test: Use the correct node for doubled keypath test
65714c162c16 Merge bitcoin/bitcoin#32327: test: Add missing check for empty stderr in util tester
a4eee6d50be0 Merge bitcoin/bitcoin#29124: test: Test that migration automatically repairs corrupted metadata with doubled derivation path
af6cffa36d12 Merge bitcoin/bitcoin#32350: test: Slim down previous releases bdb check
33e6538b3076 Merge bitcoin/bitcoin#32360: test: Force named args for RPCOverloadWrapper optional args
3a29ba33dca6 Merge bitcoin/bitcoin#32357: depends: Fix cross-compiling `qt` package from macOS to Windows
fa655da15987 test: [refactor] Use ToIntegral in CheckInferDescriptor
fa55dd01df83 descriptors: Reject + sign when parsing multi threshold
fa6f77ed3c15 descriptors: Reject + sign in ParseKeyPathNum
7e8ef959d063 refactor: Fix Sonar rule `cpp:S4998` - avoid unique_ptr const& as parameter
e400ac53524d refactor: simplify repeated comparisons in `FindChallenges`
f670836112c0 test: remove old recursive `FindChallenges_recursive` implementation
b80d0bdee460 test: avoid stack overflow in `FindChallenges` via manual iteration
fa48be3ba443 test: Force named args for RPCOverloadWrapper optional args
aaaa45399ca3 test: Remove unused createwallet_passthrough
d05481df644c refactor: validation: mark SnapshotBase as const
f409444d0243 Merge bitcoin/bitcoin#32071: build: Drop option to disable hardening.
cccc1f4e9190 test: Remove unused RPCOverloadWrapper is_cli field
d62c2d82e14d Merge bitcoin/bitcoin#32353: doc: Fix fuzz test_runner.py path
10845cd7cc89 qa: Add feature_framework_startup_failures.py
35e57fbe336c depends: Fix cross-compiling `qt` package from macOS to Windows
d2ac748e9e7a Merge bitcoin-core/gui#864: Crash fix, disconnect numBlocksChanged() signal during shutdown
524f981bb873 Bugfix: Miner: Don't reuse block_reserved_weight for "block is full enough to give up" weight delta
84de8c93e7d4 ci: Add `deploy` target for native macOS CI job
fad57e9e0fe2 build: Fix `macdeployqtplus` after switching to Qt 6
de90b47ea098 Merge bitcoin-core/gui#868: Replace stray tfm::format to cerr with qWarning
a58cb3b1c12c qa: sanity check mined block have their coinbase timelocked to height
8f2078af6a55 miner: timelock coinbase transactions
788aeebf3435 qa: use prev height as nLockTime for coinbase txs created in unit tests
c76dbe9b8b6f qa: timelock coinbase transactions created in fuzz targets
9c94069d8b6c contrib: timelock coinbase transactions in signet miner
a5f52cfcc400 qa: timelock coinbase transactions created in functional tests
61f238e84ac6 doc: Fix fuzz test_runner.py path
c7e2b9e26444 tests: Test migration cleans up bad inactive chain derivation path
fa58f40b898b test: Slim down previous releases bdb check
f1b142856a4e test: Same addr, diff port is already connected
94e85a82a753 net: remove unnecessary check from AlreadyConnectedToAddress()
28e282ef9ae9 qa: assert_raises_message() - Stop assuming certain structure for exceptions
80e6ad9e3023 Merge bitcoin/bitcoin#31250: wallet: Disable creating and loading legacy wallets
971952588dae Merge bitcoin/bitcoin#32242: guix: Remove unused `file` package
ff69046e664f Merge bitcoin/bitcoin#32215: depends: Fix cross-compiling on macOS
2ae1788dd46a Skip range verification for non-ranged desc
4eee328a9820 Merge bitcoin/bitcoin#32318: Fix failing util_time_GetTime test on Windows
71656bdfaa6b gui: crash fix, disconnect numBlocksChanged() signal during shutdown
3dbd50a576be Fix failing util_time_GetTime test on Windows
edd46566bd66 qt: Replace stray tfm::format to cerr with qWarning
458720e5e98c Merge bitcoin/bitcoin#32336: test: Suppress upstream `-Wduplicate-decl-specifier` in bpfcc
facb9b327b9d scripted-diff: Use bpf_cflags
fa0c1baaf898 test: Add imports for util bpf_cflags
9efe54668858 Merge bitcoin/bitcoin#31835: validation: set BLOCK_FAILED_CHILD correctly
bd158ab4e35c Merge bitcoin/bitcoin#32023: wallet: removed duplicate call to GetDescriptorScriptPubKeyMan
17bb63f9f9b0 wallet: Disallow loading legacy wallets
9f04e02ffaee wallet: Disallow creating legacy wallets
6b247279b72d wallet: Disallow legacy wallet creation from the wallet tool
5e93b1fd6c1e bench: Remove WalletLoadingLegacy benchmark
56f959d829e9 wallet: Remove wallettool salvage
7a41c939f05f wallet: Remove -format and bdb from wallet tool's createfromdump
c847dee1488a test: remove legacy wallet functional tests
20a9173717b1 test: Remove legacy wallet tests from wallet_reindex.py
446d480cb22c test: Remove legacy wallet tests from wallet_backwards_compatibility.py
aff80298d05c test: wallet_signer.py bdb will be removed
f94f9399ac47 test: Remove legacy wallet unit tests
d9ac9dbd8ef5 tests, gui: Use descriptors watchonly wallet for watchonly test
9a4c92eb9ac2 Merge bitcoin/bitcoin#32226: ci: switch to LLVM 20 in tidy job
82d1e94838ee Merge bitcoin/bitcoin#32310: test: Run all benchmarks in the sanity check
dda2d4e17662 Merge bitcoin/bitcoin#32113: fuzz: enable running fuzz test cases in Debug mode
faca46b0421b test: Run all benchmarks in the sanity check
fadf12a56c29 test: Add missing check for empty stderr in util tester
08aa7fe23263 ci: clang-tidy 20
2b85d31bcc2f refactor: starts/ends_with changes for clang-tidy 20
3669ecd4ccd8 doc: Document fuzz build options
c1d01f59acc2 fuzz: enable running fuzz test cases in Debug mode
1f639efca5e7 qa: Work around Python socket timeout issue
2aa63d511aff test: Use uninvolved pruned node in feature_pruning undo test
772ba7f9ce09 test: Fix nTimes typo in feature_pruning test
9b24a403fae4 qa: Only allow calling TestNode.stop() after connecting
6ad21b4c0114 qa: Include ignored errors in RPC connection timeout
879243e81fd5 qa refactor: wait_for_rpc_connection - Treat OSErrors the same
513e2020a9ac guix: Remove unused `file` package
938208d91a27 build: Resolve `@rpath` in `macdeployqtplus`
abe43dfadd63 doc: release note for #27826
f9fa28788e63 Use LogBlockHeader for compact blocks
bad7c9147931 Log which peer sent us a header
9d3e39c29c31 Log block header in net_processing
d0cce4172c04 depends: Fix `mv` command compatibility with macOS
690f5da15a1e depends: Specify Objective C/C++ compilers for `native_qt` package
3c3548a70eed validation: clarify final |= BLOCK_FAILED_VALID in InvalidateBlock
aac5488909f7 validation: correctly update BlockStatus for invalid block descendants
9e29653b424b test: check BlockStatus when InvalidateBlock is used
c99667583dd9 validation: fix traversal condition to mark BLOCK_FAILED_CHILD
77e553ab6a0a build: refactor: hardening flags -> core_interface
00ba3ba30341 build: Drop option for disabling hardening
f57db75e91de build: Use `-z noseparate-code` on NetBSD < 11.0
55b931934a34 removed duplicate calling of GetDescriptorScriptPubKeyMan
e3014017bacf test: add IsActiveAfter tests for versionbits
60950f77c35e versionbits: docstrings for BIP9Info
b9d4d5f66a5a net: Use GetAdaptersAddresses to get local addresses on Windows
a8333fc9ff9a scripted-diff: wallet: rename plain and encrypted master key variables
5a92077fd531 wallet: refactor: dedup master key decryption
846545947cd3 wallet: refactor: dedup master key encryption / derivation rounds setting
a6d9b415aa3a wallet: refactor: introduce `CMasterKey::DEFAULT_DERIVE_ITERATIONS` constant
62c209f50d9c wallet: doc: remove mentions of unavailable scrypt derivation method
7565563bc7a5 tests: refactor versionbits fuzz test
2e4e9b9608c7 tests: refactor versionbits unit test
525c00f91bb2 versionbits: Expose VersionBitsConditionChecker via impl header
e74a7049b477 versionbits: Expose StateName function
d00d1ed52c8e versionbits: Split out internal details into impl header
37b9b67a3955 versionbits: Simplify VersionBitsCache API
1198e7d2fd66 versionbits: Move BIP9 status logic for getblocktemplate to versionbits
b1e967c3ec92 versionbits: Move getdeploymentinfo logic to versionbits
3bd32c20550e versionbits: Move WarningBits logic from validation to versionbits
5da119e5d0e6 versionbits: Change BIP9Stats to uint32_t types
a679040ec19e consensus/params: Move version bits period/threshold to bip9 param
0ad7d7abdbcf test: chainstate write test for periodic chainstate flush
e9d617095d4c versionbits: Remove params from AbstractThresholdConditionChecker
9bc41f1b48b2 versionbits: Use std::array instead of C-style arrays
002b792b9a85 gui: decouple WalletModel from RPCExecutor
REVERT: 4a4eeb94339b kernel: Fix bitcoin-chainstate for windows
REVERT: 9eb5d74b2d03 kernel: Add Purpose section to header documentation
REVERT: 7cf01306523b kernel: Add pure kernel bitcoin-chainstate
REVERT: 51aad49acdfe kernel: Add functions to get the block hash from a block
REVERT: a6ed3dec4d1d kernel: Add block index utility functions to C header
REVERT: 7aaefbbb3937 kernel: Add function to read block undo data from disk to C header
REVERT: 9535ffadba5c kernel: Add functions to read block from disk to C header
REVERT: 321ce88607fd kernel: Add function for copying block data to C header
REVERT: a15d107250f8 kernel: Add functions for the block validation state to C header
REVERT: f9f9a86402b1 kernel: Add validation interface to C header
REVERT: bac152a4fbe5 kernel: Add interrupt function to C header
REVERT: e1f204cb0de0 kernel: Add import blocks function to C header
REVERT: 75f25fa1b0b4 kernel: Add chainstate load options for in-memory dbs in C header
REVERT: 68acd5e0e904 kernel: Add options for reindexing in C header
REVERT: 04be23481105 kernel: Add block validation to C header
REVERT: 3cdc538d77d0 kernel: Add chainstate loading when instantiating a ChainstateManager
REVERT: a5a47d95e597 kernel: Add chainstate manager option for setting worker threads
REVERT: 5052b9bd823b kernel: Add chainstate manager object to C header
REVERT: 82f4769656b1 kernel: Add notifications context option to C header
REVERT: 7e32f6a9e897 kernel: Add chain params context option to C header
REVERT: af442d0d6cb1 kernel: Add kernel library context object
REVERT: e1a6c1b5b928 kernel: Add logging to kernel library C header
REVERT: 3339e6ca6a5f kernel: Introduce initial kernel C header API

git-subtree-dir: libbitcoinkernel-sys/bitcoin
git-subtree-split: 1417e0b3b1b03dd014a3459c10a5ae7ab0c3687f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants
0