Skip to content

Commit 772a33e

Browse files
committed
Squashed 'depend/bitcoin/' changes from 29f05b91cf8..dcb6dd33f5f
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 bitcoin/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
1 parent 5571e63 commit 772a33e

File tree

649 files changed

+32926
-19735
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

649 files changed

+32926
-19735
lines changed

.cirrus.yml

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -124,15 +124,6 @@ task:
124124
env:
125125
FILE_ENV: "./ci/test/00_setup_env_arm.sh"
126126

127-
task:
128-
name: 'Win64-cross'
129-
<< : *GLOBAL_TASK_TEMPLATE
130-
persistent_worker:
131-
labels:
132-
type: small
133-
env:
134-
FILE_ENV: "./ci/test/00_setup_env_win64.sh"
135-
136127
task:
137128
name: 'CentOS, depends, gui'
138129
<< : *GLOBAL_TASK_TEMPLATE

.github/ISSUE_TEMPLATE/good_first_issue.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ body:
2828
id: useful-skills
2929
attributes:
3030
label: Useful Skills
31-
description: For example, “`std::thread`”, “Qt5 GUI and async GUI design” or “basic understanding of Bitcoin mining and the Bitcoin Core RPC interface”.
31+
description: For example, “`std::thread`”, “Qt6 GUI and async GUI design” or “basic understanding of Bitcoin mining and the Bitcoin Core RPC interface”.
3232
value: |
3333
* Compiling Bitcoin Core from source
3434
* Running the C++ unit tests and the Python functional tests
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Copyright (c) The Bitcoin Core developers
4+
# Distributed under the MIT software license, see the accompanying
5+
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
6+
7+
export LC_ALL=C.UTF-8
8+
9+
set -o errexit -o pipefail -o xtrace
10+
11+
12+
echo "Running test-one-commit on $( git log -1 )"
13+
14+
# Use clang++, because it is a bit faster and uses less memory than g++
15+
CC=clang CXX=clang++ cmake -B build -DWERROR=ON -DWITH_ZMQ=ON -DBUILD_GUI=ON -DBUILD_BENCH=ON -DBUILD_FUZZ_BINARY=ON -DWITH_USDT=ON -DCMAKE_CXX_FLAGS='-Wno-error=unused-member-function'
16+
17+
cmake --build build -j "$( nproc )" && ctest --output-on-failure --stop-on-failure --test-dir build -j "$( nproc )"
18+
19+
./build/test/functional/test_runner.py -j $(( $(nproc) * 2 )) --combinedlogslen=99999999

.github/workflows/ci.yml

Lines changed: 163 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ env:
2121
CI_FAILFAST_TEST_LEAVE_DANGLING: 1 # GHA does not care about dangling processes and setting this variable avoids killing the CI script itself on error
2222
MAKEJOBS: '-j10'
2323

24+
defaults:
25+
run:
26+
# Enforce fail-fast behavior for all platforms.
27+
# See: https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#exit-codes-and-error-action-preference
28+
shell: bash
29+
2430
jobs:
2531
test-each-commit:
2632
name: 'test each commit'
@@ -65,14 +71,17 @@ jobs:
6571
EXCLUDE_MERGE_BASE_ANCESTORS=^${MERGE_BASE}^@
6672
fi
6773
echo "TEST_BASE=$(git rev-list -n$((${{ env.MAX_COUNT }} + 1)) --reverse HEAD $EXCLUDE_MERGE_BASE_ANCESTORS | head -1)" >> "$GITHUB_ENV"
74+
- run: |
75+
git fetch origin "${GITHUB_BASE_REF}"
76+
git config user.email "ci@example.com"
77+
git config user.name "CI"
6878
- run: |
6979
sudo apt-get update
70-
sudo apt-get install clang ccache build-essential cmake pkgconf python3-zmq libevent-dev libboost-dev libsqlite3-dev libdb++-dev systemtap-sdt-dev libzmq3-dev qtbase5-dev qttools5-dev qttools5-dev-tools qtwayland5 libqrencode-dev -y
80+
sudo apt-get install clang ccache build-essential cmake ninja-build pkgconf python3-zmq libevent-dev libboost-dev libsqlite3-dev systemtap-sdt-dev libzmq3-dev qt6-base-dev qt6-tools-dev qt6-l10n-tools libqrencode-dev -y
7181
- name: Compile and run tests
7282
run: |
7383
# Run tests on commits after the last merge commit and before the PR head commit
74-
# Use clang++, because it is a bit faster and uses less memory than g++
75-
git rebase --exec "echo Running test-one-commit on \$( git log -1 ) && CC=clang CXX=clang++ cmake -B build -DWERROR=ON -DWITH_ZMQ=ON -DBUILD_GUI=ON -DBUILD_BENCH=ON -DBUILD_FUZZ_BINARY=ON -DWITH_BDB=ON -DWITH_USDT=ON -DBUILD_KERNEL_LIB=ON -DBUILD_KERNEL_TEST=ON -DCMAKE_CXX_FLAGS='-Wno-error=unused-member-function' && cmake --build build -j $(nproc) && ctest --output-on-failure --stop-on-failure --test-dir build -j $(nproc) && ./build/test/functional/test_runner.py -j $(( $(nproc) * 2 )) --combinedlogslen=99999999" ${{ env.TEST_BASE }}
84+
git rebase --exec "git merge --no-commit origin/${GITHUB_BASE_REF} && ./.github/ci-test-each-commit-exec.sh && git reset --hard" ${{ env.TEST_BASE }}
7685
7786
macos-native-arm64:
7887
name: ${{ matrix.job-name }}
@@ -124,7 +133,7 @@ jobs:
124133
run: |
125134
# A workaround for "The `brew link` step did not complete successfully" error.
126135
brew install --quiet python@3 || brew link --overwrite python@3
127-
brew install --quiet coreutils ninja pkgconf gnu-getopt ccache boost libevent zeromq qt@5 qrencode
136+
brew install --quiet coreutils ninja pkgconf gnu-getopt ccache boost libevent zeromq qt@6 qrencode
128137
129138
- name: Set Ccache directory
130139
run: echo "CCACHE_DIR=${RUNNER_TEMP}/ccache_dir" >> "$GITHUB_ENV"
@@ -150,10 +159,8 @@ jobs:
150159
# https://github.com/actions/cache/blob/main/tips-and-workarounds.md#update-a-cache
151160
key: ${{ github.job }}-${{ matrix.job-type }}-ccache-${{ github.run_id }}
152161

153-
win64-native:
162+
windows-native-dll:
154163
name: ${{ matrix.job-name }}
155-
# Use latest image, but hardcode version to avoid silent upgrades (and breaks).
156-
# See: https://github.com/actions/runner-images#available-images.
157164
runs-on: windows-2022
158165

159166
if: ${{ vars.SKIP_BRANCH_PUSH != 'true' || github.event_name == 'pull_request' }}
@@ -168,11 +175,11 @@ jobs:
168175
job-type: [standard, fuzz]
169176
include:
170177
- job-type: standard
171-
generate-options: '-DBUILD_GUI=ON -DWITH_BDB=ON -DWITH_ZMQ=ON -DBUILD_BENCH=ON -DWERROR=ON -DBUILD_KERNEL_LIB=ON -DBUILD_UTIL_CHAINSTATE=ON -DBUILD_KERNEL_TEST=OFF'
172-
job-name: 'Win64 native, VS 2022'
178+
generate-options: '-DBUILD_GUI=ON -DWITH_ZMQ=ON -DBUILD_BENCH=ON -DBUILD_KERNEL_LIB=ON -DBUILD_UTIL_CHAINSTATE=ON -DBUILD_KERNEL_TEST=OFF -DWERROR=ON'
179+
job-name: 'Windows native, VS 2022'
173180
- job-type: fuzz
174181
generate-options: '-DVCPKG_MANIFEST_NO_DEFAULT_FEATURES=ON -DVCPKG_MANIFEST_FEATURES="wallet" -DBUILD_GUI=OFF -DBUILD_FOR_FUZZING=ON -DWERROR=ON'
175-
job-name: 'Win64 native fuzz, VS 2022'
182+
job-name: 'Windows native, fuzz, VS 2022'
176183

177184
steps:
178185
- name: Checkout
@@ -185,19 +192,21 @@ jobs:
185192
arch: x64
186193

187194
- name: Get tool information
195+
shell: pwsh
188196
run: |
189197
cmake -version | Tee-Object -FilePath "cmake_version"
190198
Write-Output "---"
191199
msbuild -version | Tee-Object -FilePath "msbuild_version"
192200
$env:VCToolsVersion | Tee-Object -FilePath "toolset_version"
193201
py -3 --version
194202
Write-Host "PowerShell version $($PSVersionTable.PSVersion.ToString())"
203+
bash --version
195204
196205
- name: Using vcpkg with MSBuild
197206
run: |
198-
Set-Location "$env:VCPKG_INSTALLATION_ROOT"
199-
Add-Content -Path "triplets\x64-windows.cmake" -Value "set(VCPKG_BUILD_TYPE release)"
200-
Add-Content -Path "triplets\x64-windows-static.cmake" -Value "set(VCPKG_BUILD_TYPE release)"
207+
echo "set(VCPKG_BUILD_TYPE release)" >> "${VCPKG_INSTALLATION_ROOT}/triplets/x64-windows.cmake"
208+
# Workaround for libevent, which requires CMake 3.1 but is incompatible with CMake >= 4.0.
209+
sed -i '1s/^/set(ENV{CMAKE_POLICY_VERSION_MINIMUM} 3.5)\n/' "${VCPKG_INSTALLATION_ROOT}/scripts/ports.cmake"
201210
202211
- name: vcpkg tools cache
203212
uses: actions/cache@v4
@@ -214,7 +223,7 @@ jobs:
214223

215224
- name: Generate build system
216225
run: |
217-
cmake -B build --preset vs2022-static -DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_INSTALLATION_ROOT\scripts\buildsystems\vcpkg.cmake" ${{ matrix.generate-options }}
226+
cmake -B build --preset vs2022 -DCMAKE_TOOLCHAIN_FILE="${VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake" ${{ matrix.generate-options }}
218227
219228
- name: Save vcpkg binary cache
220229
uses: actions/cache/save@v4
@@ -226,13 +235,24 @@ jobs:
226235
- name: Build
227236
working-directory: build
228237
run: |
229-
cmake --build . -j $env:NUMBER_OF_PROCESSORS --config Release
238+
cmake --build . -j $NUMBER_OF_PROCESSORS --config Release
239+
240+
- name: Get bitcoind manifest
241+
if: matrix.job-type == 'standard'
242+
working-directory: build
243+
run: |
244+
mt.exe -nologo -inputresource:bin/Release/bitcoind.exe -out:bitcoind.manifest
245+
cat bitcoind.manifest
246+
echo
247+
mt.exe -nologo -inputresource:bin/Release/bitcoind.exe -validate_manifest
230248
231249
- name: Run test suite
232250
if: matrix.job-type == 'standard'
233251
working-directory: build
252+
env:
253+
QT_PLUGIN_PATH: '${{ github.workspace }}\build\vcpkg_installed\x64-windows\Qt6\plugins'
234254
run: |
235-
ctest --output-on-failure --stop-on-failure -j $env:NUMBER_OF_PROCESSORS -C Release
255+
ctest --output-on-failure --stop-on-failure -j $NUMBER_OF_PROCESSORS -C Release
236256
237257
- name: Run functional tests
238258
if: matrix.job-type == 'standard'
@@ -242,26 +262,146 @@ jobs:
242262
BITCOINCLI: '${{ github.workspace }}\build\bin\Release\bitcoin-cli.exe'
243263
BITCOINUTIL: '${{ github.workspace }}\build\bin\Release\bitcoin-util.exe'
244264
BITCOINWALLET: '${{ github.workspace }}\build\bin\Release\bitcoin-wallet.exe'
265+
BITCOINCHAINSTATE: '${{ github.workspace }}\build\bin\Release\bitcoin-chainstate.exe'
245266
TEST_RUNNER_EXTRA: ${{ github.event_name != 'pull_request' && '--extended' || '' }}
246-
shell: cmd
247-
run: py -3 test\functional\test_runner.py --jobs %NUMBER_OF_PROCESSORS% --ci --quiet --tmpdirprefix=%RUNNER_TEMP% --combinedlogslen=99999999 --timeout-factor=%TEST_RUNNER_TIMEOUT_FACTOR% %TEST_RUNNER_EXTRA%
267+
run: py -3 test/functional/test_runner.py --jobs $NUMBER_OF_PROCESSORS --ci --quiet --tmpdirprefix="${RUNNER_TEMP}" --combinedlogslen=99999999 --timeout-factor=${TEST_RUNNER_TIMEOUT_FACTOR} ${TEST_RUNNER_EXTRA}
248268

249269
- name: Clone corpora
250270
if: matrix.job-type == 'fuzz'
251271
run: |
252-
git clone --depth=1 https://github.com/bitcoin-core/qa-assets "$env:RUNNER_TEMP\qa-assets"
253-
Set-Location "$env:RUNNER_TEMP\qa-assets"
254-
Write-Host "Using qa-assets repo from commit ..."
272+
git clone --depth=1 https://github.com/bitcoin-core/qa-assets "${RUNNER_TEMP}/qa-assets"
273+
cd "${RUNNER_TEMP}/qa-assets"
274+
echo "Using qa-assets repo from commit ..."
255275
git log -1
256276
257277
- name: Run fuzz tests
258278
if: matrix.job-type == 'fuzz'
259279
working-directory: build
260280
env:
261281
BITCOINFUZZ: '${{ github.workspace }}\build\bin\Release\fuzz.exe'
262-
shell: cmd
263282
run: |
264-
py -3 test\fuzz\test_runner.py --par %NUMBER_OF_PROCESSORS% --loglevel DEBUG %RUNNER_TEMP%\qa-assets\fuzz_corpora
283+
py -3 test/fuzz/test_runner.py --par $NUMBER_OF_PROCESSORS --loglevel DEBUG "${RUNNER_TEMP}/qa-assets/fuzz_corpora"
284+
285+
windows-cross:
286+
name: 'Linux->Windows cross, no tests'
287+
runs-on: ubuntu-latest
288+
if: ${{ vars.SKIP_BRANCH_PUSH != 'true' || github.event_name == 'pull_request' }}
289+
290+
env:
291+
FILE_ENV: './ci/test/00_setup_env_win64.sh'
292+
DANGER_CI_ON_HOST_FOLDERS: 1
293+
294+
steps:
295+
- name: Checkout
296+
uses: actions/checkout@v4
297+
298+
- name: Set CI directories
299+
run: |
300+
echo "CCACHE_DIR=${{ runner.temp }}/ccache_dir" >> "$GITHUB_ENV"
301+
echo "BASE_ROOT_DIR=${{ runner.temp }}" >> "$GITHUB_ENV"
302+
echo "DEPENDS_DIR=${{ runner.temp }}/depends" >> "$GITHUB_ENV"
303+
echo "BASE_BUILD_DIR=${{ runner.temp }}/build" >> "$GITHUB_ENV"
304+
305+
- name: Depends cache
306+
uses: actions/cache@v4
307+
with:
308+
path: ${{ env.DEPENDS_DIR }}/built
309+
key: ${{ github.job }}-depends-${{ hashFiles('depends/**', 'ci/test/00_setup_env_win64.sh') }}
310+
311+
- name: Restore Ccache cache
312+
id: ccache-cache
313+
uses: actions/cache/restore@v4
314+
with:
315+
path: ${{ env.CCACHE_DIR }}
316+
key: ${{ github.job }}-ccache-${{ github.run_id }}
317+
restore-keys: ${{ github.job }}-ccache-
318+
319+
- name: CI script
320+
run: ./ci/test_run_all.sh
321+
322+
- name: Save Ccache cache
323+
uses: actions/cache/save@v4
324+
if: github.event_name != 'pull_request' && steps.ccache-cache.outputs.cache-hit != 'true'
325+
with:
326+
path: ${{ env.CCACHE_DIR }}
327+
key: ${{ github.job }}-ccache-${{ github.run_id }}
328+
329+
- name: Upload built executables
330+
uses: actions/upload-artifact@v4
331+
with:
332+
name: x86_64-w64-mingw32-executables-${{ github.run_id }}
333+
path: |
334+
${{ env.BASE_BUILD_DIR }}/bin/*.exe
335+
${{ env.BASE_BUILD_DIR }}/src/secp256k1/bin/*.exe
336+
${{ env.BASE_BUILD_DIR }}/src/univalue/*.exe
337+
${{ env.BASE_BUILD_DIR }}/test/config.ini
338+
339+
windows-native-test:
340+
name: 'Windows, test cross-built'
341+
runs-on: windows-2022
342+
needs: windows-cross
343+
344+
env:
345+
PYTHONUTF8: 1
346+
TEST_RUNNER_TIMEOUT_FACTOR: 40
347+
348+
steps:
349+
- name: Checkout
350+
uses: actions/checkout@v4
351+
352+
- name: Download built executables
353+
uses: actions/download-artifact@v4
354+
with:
355+
name: x86_64-w64-mingw32-executables-${{ github.run_id }}
356+
357+
- name: Run bitcoind.exe
358+
run: ./bin/bitcoind.exe -version
359+
360+
- name: Find mt.exe tool
361+
shell: pwsh
362+
run: |
363+
$sdk_dir = (Get-ItemProperty 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows Kits\Installed Roots' -Name KitsRoot10).KitsRoot10
364+
$sdk_latest = (Get-ChildItem "$sdk_dir\bin" -Directory | Where-Object { $_.Name -match '^\d+\.\d+\.\d+\.\d+$' } | Sort-Object Name -Descending | Select-Object -First 1).Name
365+
"MT_EXE=${sdk_dir}bin\${sdk_latest}\x64\mt.exe" >> $env:GITHUB_ENV
366+
367+
- name: Get bitcoind manifest
368+
shell: pwsh
369+
run: |
370+
& $env:MT_EXE -nologo -inputresource:bin\bitcoind.exe -out:bitcoind.manifest
371+
Get-Content bitcoind.manifest
372+
& $env:MT_EXE -nologo -inputresource:bin\bitcoind.exe -validate_manifest
373+
374+
- name: Run unit tests
375+
# Can't use ctest here like other jobs as we don't have a CMake build tree.
376+
run: |
377+
./bin/test_bitcoin.exe -l test_suite
378+
./src/secp256k1/bin/exhaustive_tests.exe
379+
./src/secp256k1/bin/noverify_tests.exe
380+
./src/secp256k1/bin/tests.exe
381+
./src/univalue/object.exe
382+
./src/univalue/unitester.exe
383+
384+
- name: Run benchmarks
385+
run: ./bin/bench_bitcoin.exe -sanity-check
386+
387+
- name: Adjust paths in test/config.ini
388+
shell: pwsh
389+
run: |
390+
(Get-Content "test/config.ini") -replace '(?<=^SRCDIR=).*', '${{ github.workspace }}' -replace '(?<=^BUILDDIR=).*', '${{ github.workspace }}' -replace '(?<=^RPCAUTH=).*', '${{ github.workspace }}/share/rpcauth/rpcauth.py' | Set-Content "test/config.ini"
391+
Get-Content "test/config.ini"
392+
393+
- name: Run util tests
394+
run: py -3 test/util/test_runner.py
395+
396+
- name: Run rpcauth test
397+
run: py -3 test/util/rpcauth-test.py
398+
399+
- name: Run functional tests
400+
env:
401+
# TODO: Fix the excluded test and re-enable it.
402+
EXCLUDE: '--exclude wallet_multiwallet.py'
403+
TEST_RUNNER_EXTRA: ${{ github.event_name != 'pull_request' && '--extended' || '' }}
404+
run: py -3 test/functional/test_runner.py --jobs $NUMBER_OF_PROCESSORS --ci --quiet --tmpdirprefix="$RUNNER_TEMP" --combinedlogslen=99999999 --timeout-factor=$TEST_RUNNER_TIMEOUT_FACTOR $EXCLUDE $TEST_RUNNER_EXTRA
265405

266406
asan-lsan-ubsan-integer-no-depends-usdt:
267407
name: 'ASan + LSan + UBSan + integer, no depends, USDT'

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# Patterns that are specific to a text editor, IDE, operating system, or user
2+
# environment are not added here. They should be added to your local gitignore
3+
# file instead:
4+
# https://docs.github.com/en/get-started/git-basics/ignoring-files#configuring-ignored-files-for-all-repositories-on-your-computer
5+
16
# Build subdirectories.
27
/*build*
38
!/build-aux

0 commit comments

Comments
 (0)