Skip to content

Commit b70418c

Browse files
committed
Squashed 'depend/bitcoin/' changes from f157b0cbc7d..5991a69ee00
5991a69ee00 kernel: Add pure kernel bitcoin-chainstate 05b7d136684 kernel: Add functions to get the block hash from a block f18c792d843 kernel: Add block index utility functions to C header 89f5bf04673 kernel: Add function to read block undo data from disk to C header b4f71fc64e7 kernel: Add functions to read block from disk to C header 41306f081ad kernel: Add function for copying block data to C header 9385d9fc87e kernel: Add functions for the block validation state to C header 0bd9a710358 kernel: Add validation interface to C header 432710f3fc3 kernel: Add interrupt function to C header cb164ae1eb2 kernel: Add import blocks function to C header abd67fd93d0 kernel: Add chainstate load options for in-memory dbs in C header b98c2748e94 kernel: Add options for reindexing in C header 9d0efe1fc86 kernel: Add block validation to C header 87e364fc1ec kernel: Add chainstate loading when instantiating a ChainstateManager df1599b2d2a kernel: Add chainstate manager option for setting worker threads fb767002e97 kernel: Add chainstate manager object to C header 10b0fad2fd3 kernel: Add notifications context option to C header 39e7ad8d0dc kernel: Add chain params context option to C header 6285c353b89 kernel: Add kernel library context object 98d10160b6a kernel: Add logging to kernel library C header 4d663446de1 kernel: Introduce initial kernel C header API 698f86964c6 Merge bitcoin/bitcoin#31961: Require sqlite when building the wallet f4b3a5858ae Merge bitcoin/bitcoin#32064: build: Remove manpages when making MacOS app 92f553eaa92 Merge bitcoin/bitcoin#32038: depends: remove `NO_HARDEN` option 80b5e7f2cb7 build: Remove manpages when making MacOS app 1b251f6b679 Merge bitcoin/bitcoin#31649: consensus: Remove checkpoints (take 2) 5c2f04413e4 Merge bitcoin/bitcoin#32049: contrib: Fix `gen-bitcoin-conf.sh` 5d96c2eab9f Merge bitcoin/bitcoin#31907: qa: clarify and document one assumeutxo test case with malleated snapshot 57d611e53b3 Merge bitcoin/bitcoin#31757: wallet: fix crash on double block disconnection 199d47d9629 Merge bitcoin/bitcoin#32056: doc: Adjust path in comment de1ada079bf doc: Adjust path in comment 72c150dfe76 Merge bitcoin/bitcoin#32055: contrib: Fix deterministic-unittest-coverage tool path 3c5d1a46819 Remove checkpoints 632ae47372d update comment on MinimumChainWork check 893ca545850 contrib: Fix deterministic-unittest-coverage tool path c20a5ce106b Merge bitcoin/bitcoin#31901: contrib: Add deterministic-unittest-coverage a50af6e4c49 Merge bitcoin/bitcoin#32044: ci: Revert "Temporary workaround for old CCACHE_DIR cirrus env" a5a582d852e Merge bitcoin/bitcoin#31998: depends: patch around PlacementNew issue in capnp a24419f8bed contrib: Fix `gen-bitcoin-conf.sh`. eb9730ab658 Merge bitcoin/bitcoin#31987: wallet: Replace "non-0" with "non-zero" in translatable error message f347d7980e8 Merge bitcoin/bitcoin#31283: Add waitNext() to BlockTemplate interface fa21597064b ci: Revert "Temporary workaround for old CCACHE_DIR cirrus env" aa68ed27b89 Merge bitcoin/bitcoin#32041: build: bump CLIENT_VERSION_MAJOR to 29 a3f0e9a4336 [build] bump CLIENT_VERSION_MAJOR to 29 36b6f36ac47 build: require sqlite when building the wallet 5dfef6b9b37 depends: remove NO_HARDEN option 8cb6ab0b971 Merge bitcoin/bitcoin#32025: validation, fix: Use wtxid instead of txid in `CheckEphemeralSpends` 7bb4c82d8ba Merge bitcoin/bitcoin#32021: qa: Enable feature_init.py on Windows 1ef22ce3351 depends: patch around PlacementNew issue in capnp 502d47203e7 Merge bitcoin/bitcoin#31161: cmake: Set top-level target output locations e38f09b776c Merge bitcoin/bitcoin#31955: test: Fix authproxy named args debug logging 1d0a1a60e83 Merge bitcoin/bitcoin#32004: qt: 29.0 translations update 91328249470 qt: 29.0 translations update e637dc2c01c refactor: Replace uint256 type with Wtxid in PackageMempoolAcceptResult struct a3baead7cb8 validation: use wtxid instead of txid in CheckEphemeralSpends dbc89b604c4 Merge bitcoin/bitcoin#31960: seeds: add signet/testnet4, update makeseeds regex, minblocks, fixed seeds 45719390a14 Merge bitcoin/bitcoin#32011: Docs: fix typos in documentation files 4637cb1eec4 Merge bitcoin/bitcoin#32002: doc: add note to Windows build about stripping bins 5f732089d67 Merge bitcoin/bitcoin#32017: doc: warn against having qt6 installed on macOS a1aea3ea742 Merge bitcoin/bitcoin#31996: doc: link to benchcoin over bitcoinperf 5601bab4f8b Docs: fix typos in documentation files 59c4930394c qa: Enable feature_init.py on Windows c94195c077f doc: add note to windows build about stripping bin ee68b05f3d6 Merge bitcoin/bitcoin#32014: ci: Do not try to install for fuzz builds 093c757d7cf Merge bitcoin/bitcoin#32000: Update minisketch subtree to d1e6bb8bbf8ef104b9dd002cab14a71b91061177 a3c3f37e71e ci: Do not try to install for fuzz builds d79dab0fa99 doc: warn against having qt6 installed on macOS f0b659716bd seeds: update .gitignore with signet and testnet4 48f07ac9da4 chainparams: remove hardcoded signet seeds d4ab1150c40 chainparams: add signet fixed seeds if default network 49f155efbfb seeds: update fixed dns seeds 236687083fb makeseeds: regex improvements 98f84d6c233 generate-seeds: update and add signet c4ed23e5398 seeds: add testnet4 seeds 60f17dd8167 seeds: add signet seeds 2bcccaa4107 makeseeds: align I2P column header 94e21aa5fc5 makeseeds: update MIN_BLOCKS, add reminder to README 6ae7a3bc4e7 makeseeds: update user agent regex 9b0d2e50946 makeseeds: fix incorrect regex a9a2b669f3e Merge bitcoin/bitcoin#32003: doc: remove note about macOS self-signing c7d216ac946 Merge bitcoin/bitcoin#31993: ci: use LLVM 20.1.0 for MSAN 9f3dcacef73 Merge bitcoin/bitcoin#31978: kernel: pre-29.x chainparams and headerssync update c873ab6f23e doc: remove note about macOS self-signing bd0ee07310c Merge bitcoin/bitcoin#31407: guix: Notarize MacOS app bundle and codesign all MacOS and Windows binaries 11f8ab140fe test: wallet, coverage for crash on dup block disconnection during unclean shutdown 4fde88bc469 Update minisketch subtree to latest master f5d8b66a8cf Squashed 'src/minisketch/' changes from eb37a9b8e7..d1e6bb8bbf 0391d7e4c24 Merge bitcoin/bitcoin#31848: test, tracing: don't use problematic `bpf_usdt_readarg_p()` 36d4bd7fe32 Merge bitcoin/bitcoin#31997: doc: update location of minisketch repository 0c0a2717bc3 Merge bitcoin/bitcoin#31954: doc: update fuzz instructions when on macOS a2ab2faf4a8 Merge bitcoin/bitcoin#31982: scripted-diff: rename libmultiprocess repository 972b604dc42 doc: update location of minisketch repository 611999e0977 doc: link to benchcoin over bitcoinperf d76647eb8f1 ci: use LLVM 20.1.0 for MSAN c2341ebb5bb Merge bitcoin/bitcoin#31983: build: don't show ccache summary with MSVC 88debb3e429 Merge bitcoin/bitcoin#31940: Add assumeutxo chainparams to release-process.md c8dcb61172e Merge bitcoin/bitcoin#31985: doc: Bring reduce-memory.md up to date 11a2d3a63e9 [headerssync] update headerssync config for v29 dd23c532581 [kernel] update chainTxData for v29 80926af8c26 [kernel] update assumevalid and minimumChainWork for v29 0683b8ebf33 [kernel] update assumed blockchain and chainstate sizes for v29 e13c18f6ce5 Merge bitcoin/bitcoin#31969: Add mainnet assumeutxo param at height 880,000 e5ff4e416ec qa: use a clearer and documented amount error in malleated snapshot b34fdb5ade0 test: introduce output amount (de)compression routines 18e83534ace wallet: Replace "non-0" with "non-zero" in translatable error message a7911ed101f test: introduce VARINT (de)serialization routines c718bffc361 build: don't use ccache with MSVC fff4f93dff8 doc: Bring reduce-memory.md up to date 75486c8ed87 doc: update fuzz instructions when on macOS 18749efb072 scripted-diff: rename libmultiprocess repository 02fae336351 doc: add assumeutxo chainparams to release proc 15717f0ef39 Merge bitcoin/bitcoin#31916: init: Handle dropped UPnP support more gracefully afde95b4601 Merge bitcoin/bitcoin#31976: delete release note fragments for v29 ae92bd8e1b2 delete release note fragments for v29 79bbb381a1f Merge bitcoin/bitcoin#30901: cmake: Revamp handling of data files 14f16748557 chainparams: add mainnet assumeutxo param at height 880_000 3c1f72a3670 Merge bitcoin/bitcoin#31930: doc: Update translation generation instructions 75d5d235a6b doc: Update translation generation instructions 6876e5076ec Merge bitcoin/bitcoin#31943: test: add coverage for abandoning unconfirmed transaction 44041ae0eca init: Handle dropped UPnP support more gracefully fac1dd9dffb test: Fix authproxy named args debug logging 0bb8a01810e Merge bitcoin/bitcoin#31880: cmake: Add optional sources to `minisketch` library directly 3bb679e5de2 Merge bitcoin/bitcoin#31952: chore: remove redundant word d9ba427f9d0 chore: remove redundant word c12a2528ce6 Merge bitcoin/bitcoin#31415: test: fix TestShell initialization and reset() ba0a4391ff3 Merge bitcoin/bitcoin#31945: depends: Update libmultiprocess library to fix CI failures fa99c3b544b test: Exclude SeedStartup from coverage counts fa579d663d7 contrib: Add deterministic-unittest-coverage fa3940b1cbc contrib: deterministic-fuzz-coverage fixups faf905b9b69 doc: Remove unused -fPIC 073a017016e test: add coverage for abandoning unconfirmed transaction e486597f9a5 Merge bitcoin/bitcoin#31918: fuzz: add basic TxOrphanage::EraseForBlock cov 01f77157660 depends: Update libmultiprocess library to fix CI failure 279ab20bbd3 Merge bitcoin/bitcoin#31925: contrib: update `utxo_to_sqlite` tool documentation and comment f0ac24846f1 Merge bitcoin/bitcoin#31928: ci: Fix filtering out Qt-generated files from `compile_commands.json` 44bd3159244 Merge bitcoin/bitcoin#31676: fuzz: add targets for PCP and NAT-PMP port mapping requests d82dc104152 ci: Fix filtering out Qt generated files from `compile_commands.json` e747ed989eb contrib: fix read metadata related comment d3095ac35a8 contrib: update `dumptxoutset` command in utxo_to_sqlite doc ecf54a32ed2 cmake: Add support for builtin `codegen` target a8c78a0574d cmake: Revamp handling of data files 5b8fd7c3a6b Merge bitcoin-core/gui#854: qt: Update `src/qt/locale/bitcoin_en.xlf` after string freeze 568fcdddaec scripted-diff: Adjust documentation per top-level target output location 026bb226e96 cmake: Set top-level target output locations db63bfbe7cf Merge bitcoin/bitcoin#31580: test: Remove non-portable IPv6 test da3ed8b970a Merge bitcoin/bitcoin#31662: cmake: Do not modify `CMAKE_TRY_COMPILE_TARGET_TYPE` globally 9d7672bbcae Merge bitcoin/bitcoin#31742: contrib: fix BUILDDIR in gen-bitcoin-conf script and gen-manpages.py 77bf99012ae Merge bitcoin/bitcoin#30302: doc: clarify loadwallet path loading for wallets 8400b742fa6 fuzz: add basic TxOrphanage::EraseForBlock cov 46a9c73083e Merge bitcoin/bitcoin#31906: ci: Switch to gcr.io mirror to avoid rate limits 82ba9257157 Merge bitcoin/bitcoin#31366: cmake: Check `-Wno-*` compiler options for `leveldb` target f236854a5bd Merge bitcoin/bitcoin#31731: doc: update translation generation cmake example eb51963d870 Merge bitcoin/bitcoin#31884: cmake: Make implicit `libbitcoinkernel` dependencies explicit 7267ed05182 qt: Update `src/qt/locale/bitcoin_en.xlf` after string freeze 58f15d4b215 Merge bitcoin/bitcoin#31379: cmake: Fix passing `APPEND_*FLAGS` to `secp256k1` subtree 2c4b229c906 cmake: Introduce `FUZZ_LIBS` ea929c0848e scripted-diff: Rename CMake helper module 8d238c1dfde cmake: Delete `check_cxx_source_links*` macros 71bf8294a98 cmake: Convert `check_cxx_source_compiles_with_flags` to a function 88ee6800c96 cmake: Delete `check_cxx_source_links_with_flags` macro 09e8fd25b1a build: Don't override CMake's default try_compile target 303f8cca056 test: fix TestShell initialization and reset() e606c577cb2 Merge bitcoin/bitcoin#31899: cmake: Exclude generated sources from translation 758a93d6215 doc: update translation generation cmake example fd14995b6a8 Merge bitcoin/bitcoin#31908: Revert merge of PR #31826 e181bda061c guix: Apply all codesignatures to Windows binaries aafbd23fd97 guix: Apply codesignatures to all MacOS binaries 3656b828dc2 contrib: Sign all Windows binaries too 31d325464d0 contrib: Sign and notarize all MacOS binaries cadbd4137d8 miner: have waitNext return after 20 min on testnet d4020f502a6 Add waitNext() to BlockTemplate interface 3e9b12b3e0f Revert "Merge bitcoin/bitcoin#31826: random: Check `GetRNDRRS` is supported in `InitHardwareRand` to avoid infinite loop" fa8de4706a0 ci: Switch to gcr.io mirror to avoid rate limits 9ef429b6ae6 wallet: fix crash on double block disconnection 785649f3977 Merge bitcoin/bitcoin#29881: guix: use GCC 13 to build releases 139640079ff Merge bitcoin/bitcoin#31826: random: Check `GetRNDRRS` is supported in `InitHardwareRand` to avoid infinite loop dc3a7146337 Merge bitcoin/bitcoin#31794: wallet: abandon orphan coinbase txs, and their descendants, during startup 06757af2da5 Merge bitcoin/bitcoin#29156: tests: add functional test for miniscript decaying multisig ca6aa0b9bee doc: loadwallet loads from relative walletdir 710d5b5149d guix: Update signapple fa1e0a72281 gitignore: target/ ff4ddd3d2e3 Revert "cmake: Ensure generated sources are up to date for `translate` target" 03b3166aac5 cmake: Exclude generated sources from translation 43e287b3ff5 Merge bitcoin/bitcoin#31892: build: remove ENABLE_HARDENING condition from check-security 63d625f7610 Merge bitcoin/bitcoin#31893: test: remove scanning check on `wallet_importdescriptors` 9919e92022b cmake: Add optional sources to `minisketch` library directly 3b42e05aa9e cmake: Make implicit `libbitcoinkernel` dependencies explicit 3fd64efb437 cmake: Avoid using `OBJECT` libraries 28dec6c5f8b Merge bitcoin/bitcoin#31268: cmake: add optional source files to bitcoin_crypto and crc32c directly 50afaf3a389 Merge bitcoin/bitcoin#31836: contrib: Add deterministic-fuzz-coverage 405dd0e647e test: remove scanning check on `wallet_importdescriptors` 113a7a363fa build: remove ENABLE_HARDENING cond from check-security 9da0820ec55 Merge bitcoin/bitcoin#31869: cmake: Add `libbitcoinkernel` target db36a92c02b Merge bitcoin/bitcoin#31879: doc: add release note for #27432 (utxo-to-sqlite tool) 95722d048a8 doc: add release note for #27432 (utxo-to-sqlite tool) e4dd5a351bd test: wallet, abandon coinbase txs and their descendants during startup 09b150bb8ad In `InitHardwareRand`, do trail test for `RNDRRS` by `VerifyRNDRRS` 43e71f74988 Merge bitcoin/bitcoin#27432: contrib: add tool to convert compact-serialized UTXO set to SQLite database e53310c47ab Merge bitcoin/bitcoin#30529: Fix -norpcwhitelist, -norpcallowip, and similar corner case behavior 254fd89d39f Merge bitcoin/bitcoin#31863: random: Initialize variables in hardware RNG functions 75f8396c907 Merge bitcoin/bitcoin#30746: test: cover base[32|58|64] with symmetric roundtrip fuzz (and padding) tests c4b46b45898 Merge bitcoin/bitcoin#31629: wallet: fix rescanning inconsistency d0dfd6d3f60 Merge bitcoin/bitcoin#31865: build: move `rpc/external_signer` to node library ce4dbfc3590 Merge bitcoin/bitcoin#31851: doc: build: Fix instructions for msvc gui builds 504d0c21e26 Merge bitcoin/bitcoin#31439: validation: In case of a continued reindex, only activate chain in the end 0b48f77e101 Merge bitcoin/bitcoin#31413: rpc: Remove deprecated dummy alias for listtransactions::label 21a0efaf8c9 Merge bitcoin/bitcoin#29858: test: Add test for rpcwhitelistdefault 8a00b755e98 Merge bitcoin/bitcoin#31634: doc: Improve dependencies documentation e58605e04f3 Merge bitcoin/bitcoin#31854: net: reduce CAddress usage to CService or CNetAddr 3a914ab96bd cmake: Rename `bitcoinkernel` component to `libbitcoinkernel` 06b9236f432 Merge bitcoin/bitcoin#31359: cmake: Add `CheckLinkerSupportsPIE` module 7ce09a59921 cmake: Add `libbitcoinkernel` target e501246e77c build: move rpc/external_signer to node library 73e2ec13737 Merge bitcoin/bitcoin#31844: cmake: add a component for each binary 99755e04ffa random: Initialize variables in hardware RNG functions 7bbd761e816 Merge bitcoin/bitcoin#31421: cmake: Improve compatibility with Python version managers 9491676438a Merge bitcoin/bitcoin#31157: Cleanups to port mapping module post UPnP drop 109bfe9573b Merge bitcoin/bitcoin#31857: depends: avoid an unset `CMAKE_OBJDUMP` 14d1d8e2120 Merge bitcoin/bitcoin#31758: test: deduplicates p2p_tx_download constants fa3e409c9a0 contrib: Add deterministic-fuzz-coverage 2549fc6fd1c Merge bitcoin/bitcoin#31768: test: check `scanning` field from `getwalletinfo` 9b033bebb18 cmake: rename Kernel component to bitcoinkernel for consistency 2e0c92558e9 cmake: add and use install_binary_component a85e8c0e615 doc: Add some general documentation about negated options 96d30ed4f96 Merge bitcoin/bitcoin#31495: wallet: Utilize IsMine() and CanProvide() in migration to cover edge cases 490c8fa1782 doc: Add release notes summarizing negated option behavior changes. 458ef0a11b5 refactor: Avoid using IsArgSet() on -connect list option 752ab9c3c65 test: Add test to make sure -noconnect disables -dnsseed and -listen by default 3c2920ec98f refactor: Avoid using IsArgSet() on -signetseednode and -signetchallenge list options d05668922a2 refactor: Avoid using IsArgSet() on -debug, -loglevel, and -vbparams list options 3d1e8ca53a0 Normalize inconsistent -noexternalip behavior ecd590d4c1e Normalize inconsistent -noonlynet behavior 5544a19f863 Fix nonsensical bitcoin-cli -norpcwallet behavior 6e8e7f433fc Fix nonsensical -noasmap behavior b6ab3508064 Fix nonsensical -notest behavior 6768389917a Fix nonsensical -norpcwhitelist behavior e03409c70f7 Fix nonsensical -norpcbind and -norpcallowip behavior 40c4899bc20 Fix nonsensical -nobind and -nowhitebind behavior 5453e66fd91 Fix nonsensical -noseednode behavior c242fa5be35 Merge bitcoin/bitcoin#31858: chore: remove redundant word 4c62b37fcd2 chore: remove redundant word 251ea7367cf Merge bitcoin/bitcoin#31767: logging: Ensure -debug=0/none behaves consistently with -nodebug 2434aeab62b depends: avoid an unset CMAKE_OBJDUMP a5b0a441f85 Merge bitcoin/bitcoin#31855: chore: remove redundant word cd4bfaee103 net: reduce CAddress usage to CService or CNetAddr 033acdf03da chore: remove redundant word 55cf39e4c54 Merge bitcoin/bitcoin#31722: cmake: Copy `cov_tool_wrapper.sh.in` to the build tree c3fa043ae56 doc: build: Fix instructions for msvc gui builds 048ef98626b Merge bitcoin/bitcoin#31840: depends: add missing Darwin objcopy c73b59d47f1 fuzz: implement targets for PCP and NAT-PMP port mapping requests 1695c8ab5bd fuzz: in FuzzedSock::GetSockName(), return a random-length name 713bf66b1f7 Merge bitcoin/bitcoin#31500: depends: Fix compiling `libevent` package on NetBSD 0d472c19533 fuzz: never return an uninitialized sockaddr in FuzzedSock::GetSockName 39b7e2b5905 fuzz: add steady clock mocking to FuzzedSock 6fe1c35c05b pcp: make NAT-PMP error codes uint16_t 01906ce912e pcp: make the ToString method const a0b66b4bffa Revert "test: Disable known broken USDT test for now" ec47ba349d0 contrib: don't use bpf_usdt_readarg_p 35ae6ff60f6 test: don't use bpf_usdt_readarg_p ede388d03df Merge bitcoin/bitcoin#30911: build: simplify by flattening the dependency graph 534414ca9d4 Merge bitcoin/bitcoin#31678: ci: Skip read-write of default env vars 87ce116058f Merge bitcoin/bitcoin#31846: test: Remove stale gettime test fa3a4eafa11 test: Remove stale gettime test 42251e00e8b Merge bitcoin/bitcoin#30584: depends: Make default `host` and `build` comparable 0b6ed342b57 Merge bitcoin/bitcoin#31711: build: set build type and per-build-type flags as early as possible a44ccedcc2c Merge bitcoin/bitcoin#31818: guix: remove test-security/symbol-check scripts e8b3c44da6e build: Include all Windows binaries for codesigning dd4ec840eeb build: Include all MacOS binaries for codesigning 4e5c9ceb9dd guix: Rename Windows unsigned binaries to unsigned.zip d9d49cd533b guix: Rename MacOS binaries to unsigned.tar.gz c214e5268fa guix: Rename unsigned.tar.gz to codesigning.tar.gz 0264c5d86c7 cmake: use per-target components for bitcoin-qt and bitcoin-gui fb0546b1c5e ci: don't try to install for a fuzz build c65233230f1 Merge bitcoin/bitcoin#31022: test: Add mockable steady clock, tests for PCP and NATPMP implementations 86528937e5c Merge bitcoin/bitcoin#31834: build: disable bitcoin-node if daemon is not built 7afeaa24693 test: `-debug=0` and `-debug=none` behave similarly to `-nodebug` a8fedb36a71 logging: Ensure -debug=0/none behaves consistently with -nodebug d39d521d86a test: `-nodebug` clears previously set debug options 3edaf0b4286 depends: add missing Darwin objcopy 2507ebdf1b2 Merge bitcoin/bitcoin#31837: test: add missing sync to p2p_tx_download.py 79f02d56ef7 Merge bitcoin/bitcoin#30623: test: Fuzz the human-readable part of bech32 as well ff3171f96d3 Merge bitcoin/bitcoin#31614: test: expect that files may disappear from /proc/PID/fd/ 56a9b847bba build: set build type and per-build-type flags as early as possible 8fe552fe6e0 test: add missing sync to p2p_tx_download.py af76664b12d test: Test migration of a solvable script with no privkeys 17f01b0795e test: Test migration of taproot output scripts 1eb9a2a39fd test: Test migration of miniscript in legacy wallets e8c3efc7d8f wallet migration: Determine Solvables with CanProvide fa1b7cd6e2c migration: Skip descriptors which do not parse 440ea1ab639 legacy spkm: use IsMine() to extract watched output scripts b777e84cd70 legacy spkm: Move CanProvide to LegacyDataSPKM b1ab927bbf2 tests: Test migration of additional P2WSH scripts 1d813e4bf52 Merge bitcoin/bitcoin#31819: doc: swap CPPFLAGS for APPEND_CPPFLAGS 2ffea09820e build: disable bitcoin-node if daemon is not built f8d3e0edf47 Merge bitcoin/bitcoin#30205: test: add mocked Sock that can read/write custom data and/or CNetMessages 6b165f5906f Merge bitcoin/bitcoin#31384: mining: bugfix: Fix duplicate coinbase tx weight reservation 6a46be75c43 Merge bitcoin/bitcoin#31793: ci: Use clang-20 for sanitizer tasks 76c090145e9 guix: remove test-security/symbol-check scripts 329b60f595e Merge bitcoin/bitcoin#31810: TxOrphanage: account for size of orphans and count announcements bc3f59ca530 Merge bitcoin/bitcoin#31820: build: consistently use `CLIENT_NAME` in libbitcoinkernel.pc.in dead9086543 cmake: Improve compatibility with Python version managers e107bf78f9d [fuzz] TxOrphanage::SanityCheck accounting fb0ada982a7 Merge bitcoin/bitcoin#31811: test: test_inv_block, use mocktime instead of waiting f5b9a2f68c9 build: use CLIENT_NAME in libbitcoinkernel.pc.in ea687d20293 doc: swap CPPFLAGS for APPEND_CPPFLAGS 81eb6cc2c60 Merge bitcoin/bitcoin#31800: depends: Avoid using the `-ffile-prefix-map` compiler option 2f98d1e06ed Merge bitcoin/bitcoin#31814: ci: Bump fuzz task timeout 9cf746d6631 cmake: add optional source files to crc32c directly 9c7823c5b53 cmake: add optional source files to bitcoin_crypto directly faca7ac1321 ci: Bump fuzz task timeout 22dccea5532 [fuzz] txorphan byte accounting 982ce101781 add orphanage byte accounting to TxDownloadManagerImpl::CheckIsEmpty() c289217c014 [txorphanage] track the total number of announcements e5ea7daee01 [txorphanage] add per-peer weight accounting 672c69c688f [refactor] change per-peer workset to info map within orphanage 59cd0f0e091 [txorphanage] account for weight of orphans f93d6cb0caa Merge bitcoin/bitcoin#31809: Prepare "Open Transifex translations for v29.0" release step f605f7a9c26 build: refactor: set debug definitions in main CMakeLists 2706c5b7c8e test: test_inv_block, use mocktime instead of waiting 0a02e7fdeac test: deduplicates p2p_tx_download constants 2f27c910869 qt: Update the `src/qt/locale/bitcoin_en.xlf` translation source file 864386a7444 cmake: Ensure generated sources are up to date for `translate` target d6c229d8bd4 Merge bitcoin/bitcoin#31804: ci: Remove no longer needed `-Wno-error=documentation` 2b51dd384b4 Update Transifex slug for 29.x 82ba5051342 Merge bitcoin/bitcoin#31759: test: fixes p2p_ibd_txrelay wait time ae9eaa063b6 Merge bitcoin/bitcoin#31760: test: make sure we are on sync with a peer before checking if they have sent a message f1d7a6dfa14 ci: Remove no longer needed '-Wno-error=documentation' a43f08c4ae3 Merge bitcoin/bitcoin#25832: tracing: network connection tracepoints 407062f2ac9 depends: Avoid using the `-ffile-prefix-map` compiler option b9c241804c0 Merge bitcoin/bitcoin#30226: test: add validation for gettxout RPC response 1334ca6c070 Merge bitcoin/bitcoin#31437: func test: Expand tx download preference tests 33932d30e38 Merge bitcoin/bitcoin#31784: test: added additional coverage to waitforblock and waitforblockheight rpc's 2aa7be1744a Merge bitcoin/bitcoin#31358: depends: Avoid hardcoding `host_prefix` in toolchain file 386eecff5f1 doc: add release notes 3eaa0a3b663 miner: init: add `-blockreservedweight` startup option 777434a2cd1 doc: rpc: improve `getmininginfo` help text c8acd4032d5 init: fail to start when `-blockmaxweight` exceeds `MAX_BLOCK_WEIGHT` 5bb31633cc9 test: add `-blockmaxweight` startup option functional test 2c7d90a6d67 miner: bugfix: fix duplicate weight reservation in block assembler fa5a02bcfa2 ci: Use clang-20 for sanitizer tasks 474139aa9bf wallet: abandon inactive coinbase tx and their descendants during startup bb0879ddabc test: check `scanning` field from `getwalletinfo` 94ca99ac51d Merge bitcoin/bitcoin#31666: multi-peer orphan resolution followups 6f5ae1a5745 Merge bitcoin/bitcoin#31653: lint: Call more checks from test_runner e3622a96929 tracing: document that peer addrs can be >68 chars b19b526758f tracing: log_p2p_connections.bt example caa5486574b tracing: connection closed tracepoint b2ad6ede95e tracing: add misbehaving conn tracepoint 68c1ef4f19b tracing: add inbound connection eviction tracepoint 4d61d52f438 tracing: add outbound connection tracepoint 85b2603eec6 tracing: add inbound connection tracepoint 7e0db87d4ff test: added additional coverage to waitforblock and waitforblockheight rpc's f89f16846ec depends: Fix compiling `libevent` package on NetBSD 1172bc4157e Merge bitcoin-core/gui#850: psbt: Use SIGHASH_DEFAULT when signing PSBTs 85f96b01b77 Merge bitcoin/bitcoin#30909: wallet, assumeutxo: Don't Assume m_chain_tx_count, Improve wallet RPC errors 601a6a69172 Merge bitcoin/bitcoin#30965: kernel: Move block tree db open to block manager eaf4b928e72 Merge bitcoin/bitcoin#31746: test: Added coverage to the waitfornewblock rpc 992f37f2e10 Merge bitcoin/bitcoin#31600: rpc: have getblocktemplate mintime account for timewarp 12fa9511b5f build: simplify dependency graph c4e498300c7 build: avoid unnecessary dependencies on generated headers 8fa10edcd17 Merge bitcoin/bitcoin#31428: ci: Allow build dir on CI host 809d7e763cc Merge bitcoin/bitcoin#31751: test: fix intermittent timeout in p2p_1p1c_network.py 7426afbe624 [p2p] assign just 1 random announcer in AddChildrenToWorkSet 4c1fa6b28c2 test fix: make peer who sends MSG_TX announcement non-wtxidrelay 2da46b88f09 pass P2PTxInvStore init args to P2PInterface init e3bd51e4b52 [doc] how unique_parents can be empty 32eb6dc758a [refactor] assign local variable for wtxid 18820ccf6b2 multi-announcer orphan handling test fixups c4cc61db98f [fuzz] GetCandidatePeers 7704139cf0d [refactor] make GetCandidatePeers take uint256 and in-out vector 6e4d392a753 [refactor] rename to OrphanResolutionCandidate to MaybeAdd* 57221ad9797 [refactor] move parent inv-adding to OrphanResolutionCandidate 6835e9686c4 Merge bitcoin/bitcoin#31545: ci: optionally use local docker build cache c7869cb2143 Merge bitcoin/bitcoin#30844: RPC: improve SFFO arg parsing, error catching and coverage 1e0c5bd74ae Merge bitcoin/bitcoin#30125: test: improve BDB parser (handle internal/overflow pages, support all page sizes) 1d6c6e98c13 Merge bitcoin/bitcoin#31633: net: Disconnect message follow-ups to #28521 3f4b104b1b7 test: make sure we are on sync with a peer before checking if they have sent a message 1973a9e4f1d test: fixes p2p_ibd_txrelay wait time 152a2dcdefa test: fix intermittent timeout in p2p_1p1c_network.py ad2f9324c61 Merge bitcoin/bitcoin#31740: depends: Update libmultiprocess library before converting to subtree e1676b08f7b doc: release notes 0082f6acc1d rpc: have mintime account for timewarp rule 79d45b10f1b rpc: clarify BIP94 behavior for curtime 07135481378 refactor: add GetMinimumTime() helper 93747d934b8 test: Added coverage to the waitfornewblock rpc b432e367427 Merge bitcoin/bitcoin#31736: doc: update links in ci.yml 74ea7edafae Merge bitcoin/bitcoin#31522: ci: Enable DEBUG=1 for one GCC-12+ build to catch 117966 regressions f34c580bd81 Merge bitcoin/bitcoin#31620: test: Remove --noshutdown flag, Tidy startup failures 1681c08d42c doc: update links in ci.yml b0869648aa9 Merge bitcoin/bitcoin#21590: Safegcd-based modular inverses in MuHash3072 63a8791e15c contrib: fix BUILDDIR in gen-bitcoin-conf script and gen-manpages.py 4e0aa1835b3 test: Add test for IPC serialization bug 2221c8814d7 depends: Update libmultiprocess library before converting to subtree 0a931a9787b Merge bitcoin/bitcoin#31599: qa: Improve framework.generate* enforcement (#31403 follow-up) 4ac1efb147d Merge bitcoin/bitcoin#30322: test: raise an error in `_bulk_tx_` when `target_vsize` is too low 8775731e6d4 Merge bitcoin/bitcoin#31241: wallet: remove BDB dependency from wallet migration benchmark 9ecc7af41f6 Merge bitcoin/bitcoin#31674: init: Lock blocksdir in addition to datadir 551a09486c4 net: Switch to DisconnectMsg in CConnman 723440c5b8e test framework, wallet: rename get_scriptPubKey method to get_output_script fa0232a3e07 test: add validation for gettxout RPC response 2d07384243c Merge bitcoin/bitcoin#31658: test: p2p: fix sending of manual INVs in tx download test 796e1a4c5d1 Merge bitcoin/bitcoin#31718: Docs: fix typos in documentation files 81b9800c87e fix typos d5a2ba44ba4 Merge bitcoin/bitcoin#31416: doc: Fix incorrect send RPC docs 81c174e3186 cmake: Refer to the configure log instead of printing PIE test error 9914e737297 Merge bitcoin/bitcoin#31704: doc: add a section in the fuzzing documentation about using MSan faf2f2c654d test: Avoid redundant stop and error spam on shutdown 188b02116d8 Merge bitcoin/bitcoin#31635: test: add coverage for unknown address type for `createwalletdescriptor` 2317e6cf2da Merge bitcoin/bitcoin#31696: test: Check that reindex with prune wipes blk files 94f0adcc31d Merge bitcoin/bitcoin#31541: qa: Use `sys.executable` when invoking other Python scripts 59876b3ad71 Merge bitcoin/bitcoin#31376: Miner: never create a template which exploits the timewarp bug e3c01527696 cmake: Copy `cov_tool_wrapper.sh.in` to the build tree faf8fc5487d lint: Call lint_commit_msg from test_runner fa99728b0c8 lint: Move commit range printing to test_runner fa673cf3449 lint: Call lint_scripted_diff from test_runner 449a25b9582 Merge bitcoin/bitcoin#31709: cmake: Fail if `Libmultiprocess` is missing when `WITH_MULTIPROCESS=ON` 5acf12bafeb Merge bitcoin/bitcoin#31583: rpc: add target to getmininginfo field and show next block info 78fa88c53ad Merge bitcoin/bitcoin#31548: fuzz: Abort when global PRNG is used before SeedRand::ZEROS c31166ac77a cmake: Fail if `Libmultiprocess` is missing when `WITH_MULTIPROCESS=ON` 5d6f6fd00d7 Merge bitcoin/bitcoin#31490: refactor: inline `UndoWriteToDisk` and `WriteBlockToDisk` to reduce serialization calls 7b4d072e4fa Merge bitcoin/bitcoin#31690: doc: Amend notes on benchmarking bb633c9407c tests: add functional test for miniscript decaying multisig e94c9d17123 [doc] Amend notes on benchmarking 5c3e4d8b293 doc: add a section about using MSan a4df12323c4 doc: add release notes c75872ffdd9 test: use DIFF_1_N_BITS in tool_signet_miner 4131f322ac0 test: check difficulty adjustment using alternate mainnet c4f68c12e22 Use OP_0 for BIP34 padding in signet and tests cf0a62878be rpc: add next to getmininginfo 2d18a078a2d rpc: add target and bits to getchainstates f153f57acc9 rpc: add target and bits to getblockchaininfo 523520f8279 Merge bitcoin/bitcoin#30866: descriptor: Add proper Clone function to miniscript::Node baa504fdfaf rpc: add target to getmininginfo result 2a7bfebd5e7 Add target to getblock(header) in RPC and REST 341f9325167 rpc: add GetTarget helper d20d96fa41c test: use REGTEST_N_BITS in feature_block 7ddbed4f9fc rpc: add nBits to getmininginfo ba7b9f3d7bf build: move pow and chain to bitcoin_common c4cc9e3e9df consensus: add DeriveTarget() to pow.h fa9aced8006 test: Check that reindex with prune wipes blk files 66d21d0eb65 qa: check parsed multipath descriptors dont share references 09a1875ad8c miniscript: Make NodeRef a unique_ptr 9ccb46f91ac miniscript: Ensure there is no NodeRef copy constructor or assignment operator 6d11c9c60b5 descriptor: Add proper Clone function to miniscript::Node 5691fa93c48 Merge bitcoin/bitcoin#31661: depends: Override default build type for `libevent` 8fc7140846f Merge bitcoin/bitcoin#31671: Update leveldb subtree to latest upstream a9edec94198 Merge bitcoin/bitcoin#31701: test: Bump sync_mempools timeout in p2p_1p1c_network.py fa80a7dac4b test: Bump sync_mempools timeout in p2p_1p1c_network.py 1111b0ac196 ci: Add missing --combinedlogslen to test-each-commit task d44626a9c2e depends: Override default build type for `libevent` d7f56cc5d9e Merge bitcoin/bitcoin#31590: descriptors: Try pubkeys of both parities when retrieving the private keys for an xonly pubkey in a descriptor fa9593efc2e test: Use high-level python types c39b3cfcd1b test: Extra verification that migratewallet migrates 0cdddeb2240 kernel: Move block tree db open to BlockManager constructor 7fbb1bc44b1 kernel: Move block tree db open to block manager 0c1b29a0577 ci: use GCC 13 for some jobs fa8ade300f4 refactor: Avoid GCC false positive error fa40807fa83 ci: Enable DEBUG=1 for one GCC-12+ build to catch 117966 regressions cbc65b3ad5a guix: use GCC 13.3.0 for base toolchain. 4601b7ca611 Merge bitcoin/bitcoin#31125: depends: add *FLAGS to gen_id fa952acdb6e ci: Skip read-write of default env vars eb243ff06c4 Merge bitcoin/bitcoin#31593: ci: Bump centos stream 10 6dc60126701 Merge bitcoin/bitcoin#31657: ci: Supply `--platform` argument to `docker` commands. a759ea3e920 doc: Improve dependencies documentation 4e52a634430 Merge bitcoin/bitcoin#31691: util: fix compiler warning about deprecated space before _MiB 2e839dd641d Merge bitcoin/bitcoin#30774: depends: Qt 5.15.16 d3339a7cd5f util: fix compiler warning about deprecated space before _MiB f0e5e4cdbec test: Add test for rpcwhitelistdefault 6e29de21010 ci: Supply `platform` argument to docker commands. faaabfaea76 ci: Bump centos stream 10 89720b7a1b3 Merge bitcoin/bitcoin#31543: cmake: Always provide `RPATH` on NetBSD 5b3a81f44da Merge bitcoin/bitcoin#31626: depends: Use base system's `sha256sum` utility on FreeBSD 832d5730730 Merge bitcoin/bitcoin#31651: ci: Turn CentOS task into native one 5ac1e0814ae Merge bitcoin/bitcoin#31621: doc: Update dependency installation for Debian/Ubuntu 370b9c1a0b9 Merge bitcoin/bitcoin#31675: [test] fix p2p_orphan_handling.py empty orphanage check 8996fef8aeb test: p2p: check that INV messages not matching wtxidrelay are ignored 2656a5658c1 tests: add a test for the new blocksdir lock bdc0a68e676 init: lock blocksdir in addition to datadir cabb2e5c242 refactor: introduce a more general LockDirectories for init 1db331ba764 init: allow a new xor key to be written if the blocksdir is newly created 2e75ebb6169 [test] fix p2p_orphan_handling.py empty orphanage check f9032a4abb7 Merge bitcoin/bitcoin#31242: wallet, desc spkm: Return SigningProvider only if we have the privkey 9dc4eedb670 Merge bitcoin/bitcoin#31673: doc: fix minor typos in comments b30cc71e853 doc: fix typos 57ba59c0cdf refactor: Remove redundant reindex check 160c27ec078 doc: Update dependency installation for Debian/Ubuntu and CI df8bf657450 Merge bitcoin/bitcoin#31483: kernel: Move kernel-related cache constants to kernel cache 0f716f28896 qa: cover PROTOCOL_ERROR variant in PCP unit tests fc700bb47fd test: Add tests for PCP and NATPMP implementations 335798c4963 Merge bitcoin/bitcoin#31397: p2p: track and use all potential peers for orphan resolution 98939ce7b74 Merge bitcoin/bitcoin#31655: refactor: Avoid UB in SHA3_256::Write 910a11fa663 build: remove LEVELDB_IS_BIG_ENDIAN 9ec64253ab6 Update leveldb subtree to latest upstream d336b7ab85d Squashed 'src/leveldb/' changes from 688561cba8..04b5790928 65a0920ca6b cmake: Add `CheckLinkerSupportsPIE` module 712cab3a8f8 Merge bitcoin/bitcoin#31061: refactor: Check translatable format strings at compile-time 2a92702bafc init: Use size_t consistently for cache sizes 65cde3621db kernel: Move default cache constants to caches 8826cae2854 kernel: Move non-kernel db cache size constants e758b26b85d kernel: Move kernel-specific cache size options to kernel d5e2c4a4097 fuzz: Add fuzz test for checked and saturating add and left shift c03a2795a8e util: Add integer left shift helpers 31a0e5f0905 depends: Qt 5.15.16 fa3efb57290 refactor: Introduce struct to hold a runtime format string fa6adb01344 lint: Remove unused and broken format string linter fadc6b9bac8 refactor: Check translatable format strings at compile-time fa1d5acb8d8 refactor: Use TranslateFn type consistently e0b33368222 test: p2p: fix sending of manual INVs in tx download test e7c47949550 Merge bitcoin/bitcoin#31630: doc: Archive 28.1 release notes 7cd862aab94 Merge bitcoin/bitcoin#31646: test: avoid internet traffic eeee6cf2ffb refactor: Delay translation of _() literals fabeca3458b refactor: Avoid UB in SHA3_256::Write fad4032b219 refactor: Drop unused UCharCast 2ed161c5ce6 test: avoid generating non-loopback traffic from p2p_dns_seeds.py a5746dc559c test: avoid generating non-loopback traffic from feature_config_args.py 6b3f6eae70b test: avoid generating non-loopback traffic from p2p_seednode.py fabefd99158 ci: Turn CentOS task into native one caf95210331 net: Use mockable steady clock in PCP implementation 03648321ecb util: Add mockable steady_clock ab1d3ece026 net: Add optional length checking to CService::SetSockAddr bb5f76ee013 doc: Archive 28.1 release notes 35bf426e022 Merge bitcoin/bitcoin#28724: wallet: Cleanup accidental encryption keys in watchonly wallets 4da7bfdcc90 test: add coverage for unknown address type for `createwalletdescriptor` 21684065978 Merge bitcoin/bitcoin#31608: doc: Clarify min macOS and Xcode version 2f6c7e7f6c0 Merge bitcoin/bitcoin#31612: ci: build msan's libc++ with _LIBCPP_ABI_BOUNDED_* 01df180bfb8 depends: add mold & ld.lld to gen_id d032ac80633 depends: add *FLAGS to gen_id 528354e213a Merge bitcoin/bitcoin#31616: init,log: Unify block index log line 4bedfb5c833 Merge bitcoin/bitcoin#31623: tracing: Rename the `MIN` macro to `_TRACEPOINT_TEST_MIN` in log_raw_p2p_msgs e5c268084eb Merge bitcoin/bitcoin#31627: depends: Fix spacing issue d695d139171 Merge bitcoin/bitcoin#31611: doc: upgrade license to 2025. bbac17608d1 net: Bring back log message when resetting socket 04b848e4827 net: Specify context in disconnecting log message 0c4954ac7d9 net_processing: Add missing use of DisconnectMsg 37af8bfb34d Merge bitcoin/bitcoin#31549: fuzz: Abort if system time is called without mock time being set 54115d8de5c Merge bitcoin/bitcoin#31617: build, test: Build `db_tests.cpp` regardless of `USE_BDB` 0a77441158c Merge bitcoin/bitcoin#31451: wallet: migration, avoid loading legacy wallet after failure when BDB isn't compiled 56725f88293 Merge bitcoin/bitcoin#31462: test: raise explicit error if any of the needed release binaries is missing 727c5427696 depends: Use base system's `sha256sum` utility 4818da809f0 wallet: fix rescanning inconsistency f5883286e32 Add a fuzz test for Num3072 multiplication and inversion a26ce628942 Safegcd based modular inverse for Num3072 91ce8cef2d8 Add benchmark for MuHash finalization 223081ece65 scripted-diff: rename block and undo functions for consistency baaa3b28467 refactor,blocks: remove costly asserts and modernize affected logs fa39f27a0f8 refactor,blocks: deduplicate block's serialized size calculations 8a46286da66 depends: Fix spacing issue e04be3731f4 init,log: Unify block index and chainstate loading log line dfb2f9d0048 refactor,blocks: inline `WriteBlockToDisk` 42bc4914658 refactor,blocks: inline `UndoWriteToDisk` 86b85bb11f8 bench: add SaveBlockBench 34f9a0157aa refactor,bench: rename bench/readblock.cpp to bench/readwriteblock.cpp 8bd5f8a38ce [refactor] init: Simplify coinsdb cache calculation f93f0c93961 tracing: Rename the `MIN` macro to `_TRACEPOINT_TEST_MIN` in log_raw_p2p_msgs 66aa6a47bd8 Merge bitcoin/bitcoin#30391: BlockAssembler: return selected packages virtual size and fee fa3c787b62a fuzz: Abort when global PRNG is used before SeedRand::ZEROS 92787dd52cd test: raise an error when target_vsize is below tx virtual size a8780c937f7 test: raise an error if output value is <= 0 in `create_self_transfer` f6e88931f07 test: test that `create_self_transfer_multi` respects `target_vsize` fae3bf6b870 test: Avoid redundant stop and error spam on startup failure fa0dc09b900 test: Remove --noshutdown flag fad441fba07 test: Treat leftover process as error 7c123c08ddc miner: add package feerate vector to CBlockTemplate fd2d96d9087 build, test: Build `db_tests.cpp` regardless of `USE_BDB` fb37acd932b ci: build msan's libc++ with _LIBCPP_ABI_BOUNDED_* b2e9fdc00f5 test: expect that files may disappear from /proc/PID/fd/ 1ea7e45a1f4 test: raise explicit error if any of the needed release binaries is missing c0045e6cee0 Add test for multipath miniscript expression b4ac48090f2 descriptor: Use InferXOnlyPubkey for miniscript XOnly pubkey from script 433412fd847 Merge bitcoin/bitcoin#31596: doc: Clarify comments about endianness after #30526 c506f2cee7b Merge bitcoin/bitcoin#31581: test: have miner_tests use Mining interface 3e97ff9c5ea gui, psbt: Use SIGHASH_DEFAULT when signing PSBTs 4c50c21f6bf tests: Check ExpandPrivate matches for both parsed descriptors 092569e8580 descriptor: Try the other parity in ConstPubkeyProvider::GetPrivKey() a96b84cb1b7 fuzz: Abort when calling system time without setting mock time ff21870e20b fuzz: Add SetMockTime() to necessary targets 1b51616f2e3 test: improve rogue calls in mining functions 41a2ce9b7d7 Merge bitcoin/bitcoin#31464: util: Add missing types in make_secure_unique 86d7135e36e [p2p] only attempt 1p1c when both txns provided by the same peer f7658d9b147 [cleanup] remove p2p_inv from AddTxAnnouncement 063c1324c14 [functional test] getorphantxs reflects multiple announcers 0da693f7e12 [functional test] orphan handling with multiple announcers b6ea4a9afe2 [p2p] try multiple peers for orphan resolution 1d2e1d709ce [refactor] move creation of unique_parents to helper function c6893b0f0b7 [txdownload] remove unique_parents that we already have 163aaf285af [fuzz] orphanage multiple announcer functions 22b023b09da [unit test] multiple orphan announcers 96c1a822a27 [unit test] TxOrphanage EraseForBlock 04448ce32a3 [txorphanage] add GetTx so that orphan vin can be read e810842acda [txorphanage] support multiple announcers 62a9ff18707 [refactor] change type of unique_parents to Txid 6951ddcefd9 [txrequest] GetCandidatePeers 6475849c402 Merge bitcoin/bitcoin#31435: lint: Move assertion linter into lint runner b537a2c02a9 doc: upgrade license to 2025. 49fc2258cf3 Merge bitcoin/bitcoin#31526: doc: Install `net/py-pyzmq` port on FreeBSD for `interface_zmq.py` ac918c7cc0e Merge bitcoin/bitcoin#31552: depends: Update capnproto to 1.1.0 fa029a78780 doc: Clarify min macOS and Xcode version a0f0c48ae20 Merge bitcoin/bitcoin#31584: txmempool: fix typos in comments 558783625ca Merge bitcoin/bitcoin#31586: doc: Update NetBSD Build Guide 3e936789b16 Merge bitcoin/bitcoin#31592: ci: Run functional tests in msan task 5af642bf48b Merge bitcoin/bitcoin#31604: test: fix typo in mempool_ephemeral_dust 8888ee4403f ci: Allow build dir on CI host 9d2d9f7ce29 rpc: Include assumeutxo as a failure reason of rescanblockchain 595edee1690 test, assumeutxo: import descriptors during background sync d73ae603d44 rpc: Improve importdescriptor RPC error messages 27f99b6d63b validation: Don't assume m_chain_tx_count in GuessVerificationProgress 42d5d533631 interfaces: Add helper function for wallet on pruning 29bca9713d2 test: fix typo in mempool_ephemeral_dust f919d919eb8 fuzz: Add fuzzing for max_ret_len in DecodeBase58/DecodeBase58Check 635bc58f46b test: Fuzz Base32/Base58/Base64 roundtrip conversions 5dd3a0d8a89 test: Extend base58_encode_decode.json with edge cases ae40cf1a8e1 test: Add padding tests for Base32/Base64 4036ee3f2bf Merge bitcoin/bitcoin#31542: test: Embed univalue json tests in binary f6a6d912059 test: add check for getting SigningProvider for a CPubKey 62a95f5af9b test: refactor: move `CreateDescriptor` helper to wallet test util module 5db7d4d3d28 doc: Correct docstring describing max block tree db cache 6aa0e70ccbd Merge bitcoin/bitcoin#31524: refactor: Allow std::byte in Read(LE/BE) 3e0a992a3f0 doc: Clarify comments about endianness after #30526 604bf2ea37f Merge bitcoin/bitcoin#28121: include verbose "reject-details" field in testmempoolaccept response 04249682e38 test: use Mining interface in miner_tests fa0411ee305 ci: Run functional tests in msan task 2bdaf52ed12 doc: Update NetBSD Build Guide 34e8ee23b83 txmempool: fix typos in comments 228aba2c4d9 Merge bitcoin/bitcoin#31555: descriptor: remove unreachable verification for `pkh` 9b9752217f2 Merge bitcoin/bitcoin#31570: test: descriptor: fix test for `MaxSatisfactionWeight` 87c9ebd8892 Merge bitcoin/bitcoin#31563: rpc: Extend scope of validation mutex in generateblock df5c643f92d Merge bitcoin/bitcoin#31556: validation: Send correct notification during snapshot completion fa3de038f74 Merge bitcoin/bitcoin#31537: qa: Limit `-maxconnections` in tests ba0cb7d5a54 Merge bitcoin/bitcoin#31468: test: Avoid intermittent error in assert_equal(pruneheight_new, 248) 69e35f5c60a Merge bitcoin/bitcoin#31403: test: Call generate RPCs through test framework only 17db84dbb8d Merge bitcoin/bitcoin#31251: test: report detailed msg during utf8 response decoding error e6f14241f6d Merge bitcoin/bitcoin#31540: refactor: std::span compat fixes a137b0bd6b2 Merge bitcoin/bitcoin#31215: rpc: increase the defaults for -rpcthreads and -rpcworkqueue 67bfe28995e Merge bitcoin/bitcoin#31531: rpc: Add signet_challenge field to getblockchaininfo and getmininginfo ad174c28175 Merge bitcoin/bitcoin#31497: Remove unused variable assignment d871d778251 test: Remove non-portable IPv6 test 4080b66cbec test: add test for utxo-to-sqlite conversion script ec99ed73808 contrib: add tool to convert compact-serialized UTXO set to SQLite database b29d68f942e test: descriptor: fix test for `MaxSatisfactionWeight` 9355578a779 Merge bitcoin/bitcoin#31534: coins: warn on shutdown for big UTXO set flushes f95fb793726 Merge bitcoin/bitcoin#28521: net, net_processing: additional and consistent disconnect logging bc43ecaf6dc test: add functional test for balance after snapshot completion 226d03dd610 validation: Send correct notification during snapshot completion fa63b8232f3 test: generateblocks called by multiple threads fa62c8b1f04 rpc: Extend scope of validation mutex in generateblock 366ae00b779 descriptor: Assume `ParseScript` is not being called with a P2WPKH context b448b014947 test: add a mocked Sock that allows inspecting what has been Send() to it f1864148c4a test: put the generic parts from StaticContentsSock into a separate class e3664085908 descriptor: remove unreachable verification for `pkh` 5709718b830 coins: warn on shutdown for big UTXO set flushes b0b8d96d93e depends: Update capnproto to 1.1.0 e87429a2d0f ci: optionally use local docker build cache fc7b2148470 Merge bitcoin/bitcoin#31529: guix: latest 2.31 glibc 273440d5c9d Merge bitcoin/bitcoin#31535: doc: Install `py3-zmq` port on OpenBSD for `interface_zmq.py` 4cdf50c4ba8 Merge bitcoin/bitcoin#31544: cmake: Remove unused `BUILD_TESTING` variable from "dev-mode" preset faf7eac364f test: clang-format -i src/univalue/test/unitester.cpp fafa9cc7a59 test: Embed univalue json tests in binary fa044857caf test: Re-enable univalue test fail18.json 63b6b638aa5 build: Use character literals for generated headers to avoid narrowing ecaa786cc10 rpc: add signet_challenge field to getblockchaininfo and getmininginfo e196190a284 cmake: Remove unused `BUILD_TESTING` variable from "dev-mode" preset 11115e9aa84 cmake: Always provide `RPATH` on NetBSD d38ade7bc40 qa: Use `sys.executable` when invoking other Python scripts bb57017b294 Merge bitcoin/bitcoin#31521: fuzz: Fix misplaced SeedRand::ZEROS 5bbbc0d0eeb Merge bitcoin/bitcoin#31325: Make m_tip_block std::optional d9d5bc2e746 qa: Limit `-maxconnections` in tests fa494a1d53f refactor: Specify const in std::span constructor, where needed faaf4800aa7 Allow std::span in stream serialization faa5391f770 refactor: test: Return std::span from StringBytes fa862234753 refactor: Avoid passing span iterators when data pointers are expected faae6fa5f61 refactor: Simplify SpanPopBack facc4f120b0 refactor: Replace fwd-decl with proper include fac3a782eaf refactor: Avoid needless, unsafe c-style cast c1252b14d71 Merge bitcoin/bitcoin#31520: #31318 followups be1a2e5dfbd doc: Install `py3-zmq` port on OpenBSD for `interface_zmq.py` fa0c473d4c8 Merge bitcoin/bitcoin#31196: Prune mining interface ea53568a068 Merge bitcoin/bitcoin#31393: refactor: Move GuessVerificationProgress into ChainstateManager b8710201fbd guix: disable timezone tools & profiling in glibc 23b8a424fb0 guix: bump glibc 2.31 to 7b27c450c34563a28e634cccb399cd415e71ebfe 0a76c292ac8 doc: Install `net/py-pyzmq` port on FreeBSD for `interface_zmq.py` fadd568931a fuzz: Fix misplaced SeedRand::ZEROS fa83bec78ef refactor: Allow std::byte in Read(LE/BE) 4f06ae05ed6 refactor: fix typo in node/types.h 366fbf152c6 test: drop extraneous bracket in mining util c991cea1a0c Remove processNewBlock() from mining interface 9a47852d88c Remove getTransactionsUpdated() from mining interface bfc4e029d41 Remove testBlockValidity() from mining interface 477b3574607 Merge bitcoin/bitcoin#31493: refactor: Use immediate lambda to work around GCC bug 117966 a60d5702fd5 Merge bitcoin/bitcoin#31486: fuzz: Abort when using global PRNG without re-seed a95a8ba3a3f Merge bitcoin/bitcoin#31197: refactor: mining interface 30955 followups cd3d9fa5ea8 Merge bitcoin/bitcoin#31318: Drop script_pub_key arg from createNewBlock c9136ca9060 validation: fix issue with an interrupted -reindex a2675897e2a validation: Don't loop over all chainstates in LoadExternalBlock 785486a9755 Merge bitcoin/bitcoin#31489: fuzz: Fix test_runner error reporting 1251a236420 Merge bitcoin/bitcoin#31458: build: use `-mbig-obj` for Windows debug builds d2136d32bb4 Merge bitcoin/bitcoin#31502: depends: Fix `CXXFLAGS` on NetBSD 58436d4af38 Merge bitcoin/bitcoin#31503: cmake: Link `bitcoin_consensus` as a library 38dcf0f9827 Merge bitcoin/bitcoin#31498: depends: Ignore prefix directory on OpenBSD fae63bf1303 fuzz: Clarify that only SeedRandomStateForTest(SeedRand::ZEROS) is allowed 81cea5d4ee0 Ensure m_tip_block is never ZERO e058544d0e8 Make m_tip_block an std::optional f86678156a3 Check leaves size maximum in MerkleComputation 4d572882463 refactor: use CTransactionRef in submitSolution 2e81791d907 Drop TransactionMerklePath default position arg 39d3b538e6a Rename merkle branch to path fa18acb457e fuzz: Abort when using global PRNG without re-seed fa9e0489f57 refactor: Use immediate lambda to work around GCC bug 117966 46e207d3296 cmake: Link `bitcoin_consensus` as a library a10bb400e8c depends: Fix CXXFLAGS on NetBSD 3353d4a5e9f depends: Ignore prefix directory on OpenBSD b9766c9977e Remove unused variable assignment b042c4f0538 Merge bitcoin/bitcoin#31223: net, init: derive default onion port if a user specified a -port e8f0e6efaf5 lint: output-only - Avoid repeated arrows, trim facb4d010ca refactor: Move GuessVerificationProgress into ChainstateManager 2b9ff4a66d3 build: use `-mbig-obj` for mingw-w64 Debug builds fa0e30b93aa fuzz: Fix test_runner error reporting d73f37dda22 Merge bitcoin/bitcoin#31346: Set notifications m_tip_block in LoadChainTip() fa7809aeab8 fuzz: Add missing SeedRandomStateForTest(SeedRand::ZEROS) 78f1bff7099 Merge bitcoin/bitcoin#31477: ci: Bump centos gcc to 12 84890e0291f Merge bitcoin/bitcoin#31484: depends: update capnproto to 1.0.2 d5ab5a47f0e Merge bitcoin/bitcoin#31452: wallet: Migrate non-HD keys to combo() descriptor fa0998f0a02 test: Avoid intermittent error in assert_equal(pruneheight_new, 248) fa9aacf614f lint: Move assertion linter into lint runner beac62e541c Merge bitcoin/bitcoin#31480: refactor: Fix "modernize-use-starts-ends-with" clang-tidy warning 5cd9e95eea1 depends: update capnproto to 1.0.2 df27ee9f024 refactor: Fix "modernize-use-starts-ends-with" clang-tidy warning 435ad572a1a Merge bitcoin/bitcoin#31479: lint: Disable signature output in git log ea9e64ff3cb Merge bitcoin/bitcoin#31461: depends: add `-g` to *BSD_debug flags 29ddee1796a Merge bitcoin/bitcoin#31478: docs: remove repetitive words e2d3372e558 lint: Disable signature output in git log fa47baa03bc ci: Bump centos gcc 015aad8d6a6 docs: remove repetitive words 589ed1a8eaf wallet: migration, avoid loading wallet after failure when it wasn't loaded before 62bd61de110 Merge bitcoin/bitcoin#31450: guix: disable gcov in base-linux-gcc 676936845b1 Merge bitcoin/bitcoin#30933: test: Prove+document ConstevalFormatString/tinyformat parity 8ad2c902742 Merge bitcoin/bitcoin#31343: test: avoid internet traffic in rpc_net.py a582ee681c7 Merge bitcoin/bitcoin#29982: test: Fix intermittent issue in wallet_backwards_compatibility.py fa397177acf util: Add missing types in make_secure_unique b6f0593f433 doc: add release note about testmempoolaccept debug-message f9cac635237 test: cover testmempoolaccept debug-message in RBF test b7ec69c25cf depends: add -g to *BSD_debug flags 37e49c2c7ca Merge bitcoin/bitcoin#31448: fuzz: add cstdlib to FuzzedDataProvider 62b2d23edba wallet: Migrate non-HD keys to combo() descriptor 9039d8f1a1d Merge bitcoin/bitcoin#31374: wallet: fix crash during watch-only wallet migration bb7e686341e fuzz: add cstdlib to FuzzedDataProvider f6496a83882 guix: disable gcov in base-linux-gcc 846a1387280 func test: Expand tx download preference tests 35000e34cf3 Merge bitcoin/bitcoin#31433: test: #31212 follow up (spelling, refactor) 18d0cfb194c Merge bitcoin/bitcoin#31306: ci: Update Clang in "tidy" job c93bf0e6e2c test: Add missing %c character test 76cca4aa6fc test: Document non-parity between tinyformat and ConstevalFormatstring 533013cba20 test: Prove+document ConstevalFormatString/tinyformat parity b81a4659950 refactor test: Profit from using namespace + using detail function cdd207c0e48 test: add coverage for migrating standalone imported keys 297a876c980 test: add coverage for migrating watch-only script 932cd1e92b6 wallet: fix crash during watch-only wallet migration 18619b47325 wallet: remove BDB dependency from wallet migration benchmark 41d934c72df chore: Typo Overriden -> Overridden c9fb38a590e refactor test: Cleaner combine_logs.py logic 22723c809a8 Merge bitcoin/bitcoin#31072: refactor: Clean up messy strformat and bilingual_str usages b1f0f3c288a Merge bitcoin/bitcoin#31406: test: fix `test_invalid_tx_in_compactblock` in `p2p_compactblocks` 1a35447595d Merge bitcoin/bitcoin#31417: test: Avoid F541 (f-string without any placeholders) eb2ebe6f30a Merge bitcoin/bitcoin#31231: cmake: Fix `IF_CHECK_PASSED` option handling 5b283fa1477 Merge bitcoin/bitcoin#31431: util: use explicit cast in MultiIntBitSet::Fill() 37946c0aafe Set notifications m_tip_block in LoadChainTip() fa6e599cf9f test: Call generate through test framework only 2eccb8bc5e2 Merge bitcoin/bitcoin#31248: test: Rework wallet_migration.py to use previous releases 7239ddb7cec test: make sure node has all transactions 6d973f86f75 Merge bitcoin/bitcoin#31408: test: Avoid logging error when logging error 6a1e613e853 Merge bitcoin/bitcoin#31427: lint: bump MLC to v0.19.0 edb41e4814c util: use explicit cast in MultiIntBitSet::Fill() 31e59d94c67 iwyu: Drop backported mapping fe9bc5abef3 ci: Update Clang in "tidy" job 083770adbe7 Merge bitcoin/bitcoin#31414: test: orphan parent is re-requested from 2nd peer f6afca46a1d lint: use clearer wording on error message 811a65d3c6b lint: bump MLC to v0.19.0 fae76393bdb test: Avoid F541 (f-string without any placeholders) e8cc790fe2a Merge bitcoin/bitcoin#30445: test: addrman: tried 3 times and never a success so `isTerrible=true` f9650e18ea6 rbf: remove unecessary newline at end of error string 221c789e916 rpc: include verbose reject-details field in testmempoolaccept response 0184d33b3d2 scripted-diff: Replace strprintf(Untranslated) with Untranslated(strprintf) 17372d788e6 Merge bitcoin/bitcoin#30906: refactor: prohibit direct flags access in CCoinsCacheEntry and remove invalid tests 006e4d1d598 refactor: Use + instead of strformat to concatenate translated & untranslated strings 831d2bfcf94 refactor: Don't embed translated string in untranslated string. 058021969b5 refactor: Avoid concatenation of format strings 11f68cc8108 Merge bitcoin/bitcoin#31212: util: Improve documentation and negation of args 893ccea7e47 Merge bitcoin/bitcoin#31419: test: fix MIN macro redefinition 39950e148d8 Merge bitcoin/bitcoin#31295: refactor: Prepare compile-time check of bilingual format strings fad83e759a4 doc: Fix incorrect send RPC docs 00c1dbd26dd test: fix MIN macro-redefinition ae69fc37e4f Merge bitcoin/bitcoin#31391: util: Drop boost posix_time in ParseISO8601DateTime 52fd1511a77 test: drop scriptPubKeyIn arg from CreateNewBlock ff41b9e296a Drop script_pub_key arg from createNewBlock 7ab733ede44 rpc: rename coinbase_script to coinbase_output_script c4c5cf17488 cmake: Fix passing `APPEND_*FLAGS` to `secp256k1` subtree eb540a26295 cmake: Remove `core_sanitizer_{cxx,linker}_flags` helper variables 0f84cdd2661 func: test orphan parent is re-requested from 2nd peer fa8e0956c23 rpc: Remove deprecated dummy alias for listtransactions::label 95a0104f2e9 test: Add tests for directories in place of config files e85abe92c7c args: Catch directories in place of config files e4b6b1822ce test: Add tests for -noconf 483f0dacc41 args: Properly support -noconf 312ec64cc06 test refactor: feature_config_args.py - Stop nodes at the end of tests, not at the beginning 7402658bc2b test: -norpccookiefile 39cbd4f37c3 args: Support -norpccookiefile for bitcoind and bitcoin-cli e82ad88452b logs: Use correct path and more appropriate macros in cookie-related code 6e28c76907c test: Harden testing of cookie file existence 75bacabb55f test: combine_logs.py - Output debug.log paths on error cccca8a77f3 test: Avoid logging error when logging error ee1b9bef000 test: replace `is not` to `!=` when comparing block hash faf70cc9941 Remove wallet::ParseISO8601DateTime, use ParseISO8601DateTime instead 50cce20013c test, refactor: Compact ccoins_access and ccoins_spend 0a159f09147 test, refactor: Remove remaining unbounded flags from coins_tests c0b4b2c1eef test: Validate error messages on fail d5f8d607ab1 test: Group values and states in tests into CoinEntry wrappers ca74aa7490a test, refactor: Migrate GetCoinsMapEntry to return MaybeCoin 15aaa81c381 coins, refactor: Remove direct GetFlags access 6b733699cfc coins, refactor: Assume state after SetClean in AddFlags to prevent dangling pointers fc8c282022e coins, refactor: Make AddFlags, SetDirty, SetFresh static cd0498eabc9 coins, refactor: Split up AddFlags to remove invalid states 2222aecd5f8 util: Implement ParseISO8601DateTime based on C++20 733fa0b0a14 miner: never create a template which exploits the timewarp bug 06443b8f28b net: clarify if we ever sent or received from peer 1d01ad4d73e net: add LogIP() helper, use in net_processing 937ef9eb408 net_processing: use CNode::DisconnectMsg helper ad224429f82 net: additional disconnection logging 9e4a4b48322 cmake: Check `-Wno-*` compiler options for `leveldb` target 988721d37a3 test: avoid internet traffic in rpc_net.py d9c8aacce38 depends, refactor: Avoid hardcoding `host_prefix` in toolchain file bffd92f00f5 args: Support -nopid 12f8d848fd9 args: Disallow -nodatadir 6ff96627600 scripted-diff: Avoid printing version information for -noversion 1807df3d9fb test: addrman: tried 3 times and never a success so `isTerrible=true` 55347a5018b test: Rework migratewallet to use previous release (v28.0) e8a2054edc8 doc args: Document narrow scope of -color 4b58d55878d test: move the implementation of StaticContentsSock to .cpp 1dd3af8fbc3 Add release note for #31223 997757dd2b4 test: add functional test for -port behavior fa3e0743047 refactor: Tidy fixups fa72646f2b1 move-only: Detail_CheckNumFormatSpecifiers and G_TRANSLATION_FUN faff8403f0a refactor: Pick translated string after format 0e2b12b92a2 net, init: derive default onion port if a user specified a -port f42ec0f3bfb wallet: Check specified wallet exists before migration a2c45ae5480 test: report failure during utf8 response decoding 493656763f7 desc spkm: Return SigningProvider only if we have the privkey 97a18c85458 cmake: Fix `IF_CHECK_PASSED` option handling 70398ae05bc mapport: make ProcessPCP void e56fc7ce6a9 rpc: increase the defaults for -rpcthreads and -rpcworkqueue 9e6cba29882 mapport: remove unnecessary 'g_mapport_enabled' 8fb45fcda07 mapport: remove unnecessary 'g_mapport_current' variable 1b223cb19b4 mapport: merge DispatchMapPort into StartMapPort 9bd936fa34a mapport: drop unnecessary function 2a6536ceda7 mapport: rename 'use_pcp' to 'enable' c4e82b854cd mapport: make 'enabled' and 'current' bool d45eb3964f6 test: compare BDB dumps of test framework parser and wallet tool 01ddd9f646a test: complete BDB parser (handle internal/overflow pages, support all page sizes) 9b7023d31a3 Fuzz HRP of bech32 as well c1a5d5c100b Split out bech32 separator char to header b28917be363 depends: Make default `host` and `build` comparable 69e95c2b4f9 tests: Test cleanup of mkeys from wallets without privkeys 2b9279b50a3 wallet: Remove unused encryption keys from watchonly wallets 813a16a4633 wallet: Add HasCryptedKeys cddcbaf81e8 RPC: improve SFFO arg parsing, error catching and coverage 4f4cd353194 rpc: decouple sendtoaddress 'subtractfeefromamount' boolean parsing ec777917d6e test: Fix intermittent issue in wallet_backwards_compatibility.py REVERT: f157b0cbc7d kernel: Add pure kernel bitcoin-chainstate REVERT: 692d1c23c27 kernel: Add functions to get the block hash from a block REVERT: aad02fb561a kernel: Add block index utility functions to C header REVERT: 13f4911b064 kernel: Add function to read block undo data from disk to C header REVERT: 29fdbf26034 kernel: Add functions to read block from disk to C header REVERT: 2ca304c1def kernel: Add function for copying block data to C header REVERT: 705c7f125fd kernel: Add functions for the block validation state to C header REVERT: 92363c9469c kernel: Add validation interface to C header REVERT: 7c539908113 kernel: Add interrupt function to C header REVERT: 522d0886d8f kernel: Add import blocks function to C header REVERT: 1ae86e2ffe1 kernel: Add chainstate load options for in-memory dbs in C header REVERT: 09620eeeae6 kernel: Add options for reindexing in C header REVERT: b4fbf193172 kernel: Add block validation to C header REVERT: ce6ddde95ee Kernel: Add chainstate loading to kernel C header REVERT: f5d21c94dc5 kernel: Add chainstate manager option for setting worker threads REVERT: 783f56f0a29 kernel: Add chainstate manager object to C header REVERT: 262039e4094 kernel: Add notifications context option to C header REVERT: dc0d406dd5e kerenl: Add chain params context option to C header REVERT: b5f84de7ad2 kernel: Add kernel library context object REVERT: dad0009c86c kernel: Add logging to kernel library C header REVERT: 27e25aa941c kernel: Introduce initial kernel C header API git-subtree-dir: depend/bitcoin git-subtree-split: 5991a69ee0000de551955846d7d21733c326a748
1 parent 1f759b9 commit b70418c

File tree

697 files changed

+39470
-16388
lines changed

Some content is hidden

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

697 files changed

+39470
-16388
lines changed

.cirrus.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,13 +140,13 @@ task:
140140
FILE_ENV: "./ci/test/00_setup_env_win64.sh"
141141

142142
task:
143-
name: '32-bit CentOS, dash, gui'
143+
name: 'CentOS, depends, gui'
144144
<< : *GLOBAL_TASK_TEMPLATE
145145
persistent_worker:
146146
labels:
147147
type: small
148148
env:
149-
FILE_ENV: "./ci/test/00_setup_env_i686_centos.sh"
149+
FILE_ENV: "./ci/test/00_setup_env_native_centos.sh"
150150

151151
task:
152152
name: 'previous releases, depends DEBUG'
@@ -182,6 +182,7 @@ task:
182182
persistent_worker:
183183
labels:
184184
type: medium
185+
timeout_in: 240m # larger timeout, due to the high CPU demand
185186
env:
186187
FILE_ENV: "./ci/test/00_setup_env_native_fuzz.sh"
187188

.github/workflows/ci.yml

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
# Copyright (c) 2023 The Bitcoin Core developers
1+
# Copyright (c) 2023-present The Bitcoin Core developers
22
# Distributed under the MIT software license, see the accompanying
33
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
44

55
name: CI
66
on:
7-
# See: https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request.
7+
# See: https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#pull_request.
88
pull_request:
9-
# See: https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#push.
9+
# See: https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#push.
1010
push:
1111
branches:
1212
- '**'
@@ -26,7 +26,7 @@ jobs:
2626
name: 'test each commit'
2727
runs-on: ubuntu-24.04
2828
if: github.event_name == 'pull_request' && github.event.pull_request.commits != 1
29-
timeout-minutes: 360 # Use maximum time, see https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes. Assuming a worst case time of 1 hour per commit, this leads to a --max-count=6 below.
29+
timeout-minutes: 360 # Use maximum time, see https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes. Assuming a worst case time of 1 hour per commit, this leads to a --max-count=6 below.
3030
env:
3131
MAX_COUNT: 6
3232
steps:
@@ -67,16 +67,16 @@ jobs:
6767
echo "TEST_BASE=$(git rev-list -n$((${{ env.MAX_COUNT }} + 1)) --reverse HEAD $EXCLUDE_MERGE_BASE_ANCESTORS | head -1)" >> "$GITHUB_ENV"
6868
- run: |
6969
sudo apt-get update
70-
sudo apt-get install clang ccache build-essential cmake pkg-config 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
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
7171
- name: Compile and run tests
7272
run: |
7373
# Run tests on commits after the last merge commit and before the PR head commit
7474
# 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 -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 ))" ${{ env.TEST_BASE }}
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 }}
7676
7777
macos-native-arm64:
7878
name: ${{ matrix.job-name }}
79-
# Use latest image, but hardcode version to avoid silent upgrades (and breaks).
79+
# Use any image to support the xcode-select below, but hardcode version to avoid silent upgrades (and breaks).
8080
# See: https://github.com/actions/runner-images#available-images.
8181
runs-on: macos-14
8282

@@ -111,6 +111,10 @@ jobs:
111111

112112
- name: Clang version
113113
run: |
114+
# Use the earliest Xcode supported by the version of macOS denoted in
115+
# doc/release-notes-empty-template.md and providing at least the
116+
# minimum clang version denoted in doc/dependencies.md.
117+
# See: https://developer.apple.com/documentation/xcode-release-notes/xcode-15-release-notes
114118
sudo xcode-select --switch /Applications/Xcode_15.0.app
115119
clang --version
116120
@@ -164,10 +168,10 @@ jobs:
164168
job-type: [standard, fuzz]
165169
include:
166170
- job-type: standard
167-
generate-options: '-DBUILD_GUI=ON -DWITH_BDB=ON -DWITH_ZMQ=ON -DBUILD_BENCH=ON -DWERROR=ON'
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'
168172
job-name: 'Win64 native, VS 2022'
169173
- job-type: fuzz
170-
generate-options: '-DVCPKG_MANIFEST_NO_DEFAULT_FEATURES=ON -DVCPKG_MANIFEST_FEATURES="sqlite" -DBUILD_GUI=OFF -DBUILD_FOR_FUZZING=ON -DWERROR=ON'
174+
generate-options: '-DVCPKG_MANIFEST_NO_DEFAULT_FEATURES=ON -DVCPKG_MANIFEST_FEATURES="wallet" -DBUILD_GUI=OFF -DBUILD_FOR_FUZZING=ON -DWERROR=ON'
171175
job-name: 'Win64 native fuzz, VS 2022'
172176

173177
steps:
@@ -234,10 +238,10 @@ jobs:
234238
if: matrix.job-type == 'standard'
235239
working-directory: build
236240
env:
237-
BITCOIND: '${{ github.workspace }}\build\src\Release\bitcoind.exe'
238-
BITCOINCLI: '${{ github.workspace }}\build\src\Release\bitcoin-cli.exe'
239-
BITCOINUTIL: '${{ github.workspace }}\build\src\Release\bitcoin-util.exe'
240-
BITCOINWALLET: '${{ github.workspace }}\build\src\Release\bitcoin-wallet.exe'
241+
BITCOIND: '${{ github.workspace }}\build\bin\Release\bitcoind.exe'
242+
BITCOINCLI: '${{ github.workspace }}\build\bin\Release\bitcoin-cli.exe'
243+
BITCOINUTIL: '${{ github.workspace }}\build\bin\Release\bitcoin-util.exe'
244+
BITCOINWALLET: '${{ github.workspace }}\build\bin\Release\bitcoin-wallet.exe'
241245
TEST_RUNNER_EXTRA: ${{ github.event_name != 'pull_request' && '--extended' || '' }}
242246
shell: cmd
243247
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%
@@ -254,7 +258,7 @@ jobs:
254258
if: matrix.job-type == 'fuzz'
255259
working-directory: build
256260
env:
257-
BITCOINFUZZ: '${{ github.workspace }}\build\src\test\fuzz\Release\fuzz.exe'
261+
BITCOINFUZZ: '${{ github.workspace }}\build\bin\Release\fuzz.exe'
258262
shell: cmd
259263
run: |
260264
py -3 test\fuzz\test_runner.py --par %NUMBER_OF_PROCESSORS% --loglevel DEBUG %RUNNER_TEMP%\qa-assets\fuzz_corpora
@@ -266,16 +270,16 @@ jobs:
266270
timeout-minutes: 120
267271
env:
268272
FILE_ENV: "./ci/test/00_setup_env_native_asan.sh"
269-
DANGER_CI_ON_HOST_CACHE_FOLDERS: 1
273+
DANGER_CI_ON_HOST_FOLDERS: 1
270274
steps:
271275
- name: Checkout
272276
uses: actions/checkout@v4
273277

274-
- name: Set Ccache directory
275-
run: echo "CCACHE_DIR=${RUNNER_TEMP}/ccache_dir" >> "$GITHUB_ENV"
276-
277-
- name: Set base root directory
278-
run: echo "BASE_ROOT_DIR=${RUNNER_TEMP}" >> "$GITHUB_ENV"
278+
- name: Set CI directories
279+
run: |
280+
echo "CCACHE_DIR=${{ runner.temp }}/ccache_dir" >> "$GITHUB_ENV"
281+
echo "BASE_ROOT_DIR=${{ runner.temp }}" >> "$GITHUB_ENV"
282+
echo "BASE_BUILD_DIR=${{ runner.temp }}/build-asan" >> "$GITHUB_ENV"
279283
280284
- name: Restore Ccache cache
281285
id: ccache-cache

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
# Previous releases
1616
/releases
1717

18-
#build tests
19-
test/lint/test_runner/target/
18+
# cargo default target dir
19+
target/
2020

2121
/guix-build-*
2222

.tx/config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[main]
22
host = https://www.transifex.com
33

4-
[o:bitcoin:p:bitcoin:r:qt-translation-028x]
4+
[o:bitcoin:p:bitcoin:r:qt-translation-029x]
55
file_filter = src/qt/locale/bitcoin_<lang>.xlf
66
source_file = src/qt/locale/bitcoin_en.xlf
77
source_lang = en

CMakeLists.txt

Lines changed: 67 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,26 @@
99
# - CMake 3.26.5, https://mirror.stream.centos.org/9-stream/AppStream/x86_64/os/Packages/
1010
cmake_minimum_required(VERSION 3.22)
1111

12-
if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
12+
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
1313
message(FATAL_ERROR "In-source builds are not allowed.")
1414
endif()
1515

16+
if(POLICY CMP0171)
17+
# `codegen` is a reserved target name.
18+
# See: https://cmake.org/cmake/help/latest/policy/CMP0171.html
19+
cmake_policy(SET CMP0171 NEW)
20+
endif()
21+
1622
#=============================
1723
# Project / Package metadata
1824
#=============================
1925
set(CLIENT_NAME "Bitcoin Core")
20-
set(CLIENT_VERSION_MAJOR 28)
26+
set(CLIENT_VERSION_MAJOR 29)
2127
set(CLIENT_VERSION_MINOR 99)
2228
set(CLIENT_VERSION_BUILD 0)
2329
set(CLIENT_VERSION_RC 0)
2430
set(CLIENT_VERSION_IS_RELEASE "false")
25-
set(COPYRIGHT_YEAR "2024")
31+
set(COPYRIGHT_YEAR "2025")
2632

2733
# During the enabling of the CXX and CXXOBJ languages, we modify
2834
# CMake's compiler/linker invocation strings by appending the content
@@ -70,6 +76,14 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
7076
set(CMAKE_CXX_EXTENSIONS OFF)
7177

7278
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/module)
79+
include(ProcessConfigurations)
80+
81+
# Flatten static lib dependencies.
82+
# Without this, if libfoo.a depends on libbar.a, libfoo's objects can't begin
83+
# to be compiled until libbar.a has been created.
84+
if (NOT DEFINED CMAKE_OPTIMIZE_DEPENDENCIES)
85+
set(CMAKE_OPTIMIZE_DEPENDENCIES TRUE)
86+
endif()
7387

7488
#=============================
7589
# Configurable options
@@ -89,15 +103,13 @@ option(BUILD_KERNEL_LIB "Build experimental bitcoinkernel library." ${BUILD_UTIL
89103
option(BUILD_KERNEL_TEST "Build tests for the experimental bitcoinkernel library." ${BUILD_KERNEL_LIB})
90104

91105
option(ENABLE_WALLET "Enable wallet." ON)
92-
option(WITH_SQLITE "Enable SQLite wallet support." ${ENABLE_WALLET})
93-
if(WITH_SQLITE)
106+
if(ENABLE_WALLET)
94107
if(VCPKG_TARGET_TRIPLET)
95108
# Use of the `unofficial::` namespace is a vcpkg package manager convention.
96109
find_package(unofficial-sqlite3 CONFIG REQUIRED)
97110
else()
98111
find_package(SQLite3 3.7.17 REQUIRED)
99112
endif()
100-
set(USE_SQLITE ON)
101113
endif()
102114
option(WITH_BDB "Enable Berkeley DB (BDB) wallet support." OFF)
103115
cmake_dependent_option(WARN_INCOMPATIBLE_BDB "Warn when using a Berkeley DB (BDB) version other than 4.8." ON "WITH_BDB" OFF)
@@ -144,8 +156,8 @@ cmake_dependent_option(WITH_DBUS "Enable DBus support." ON "CMAKE_SYSTEM_NAME ST
144156

145157
option(WITH_MULTIPROCESS "Build multiprocess bitcoin-node and bitcoin-gui executables in addition to monolithic bitcoind and bitcoin-qt executables. Requires libmultiprocess library. Experimental." OFF)
146158
if(WITH_MULTIPROCESS)
147-
find_package(Libmultiprocess COMPONENTS Lib)
148-
find_package(LibmultiprocessNative COMPONENTS Bin
159+
find_package(Libmultiprocess REQUIRED COMPONENTS Lib)
160+
find_package(LibmultiprocessNative REQUIRED COMPONENTS Bin
149161
NAMES Libmultiprocess
150162
)
151163
endif()
@@ -187,16 +199,8 @@ string(APPEND CMAKE_CXX_LINK_EXECUTABLE " ${APPEND_LDFLAGS}")
187199

188200
set(configure_warnings)
189201

190-
include(CheckPIESupported)
191-
check_pie_supported(OUTPUT_VARIABLE check_pie_output LANGUAGES CXX)
192-
if(CMAKE_CXX_LINK_PIE_SUPPORTED)
193-
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
194-
elseif(NOT WIN32)
195-
# The warning is superfluous for Windows.
196-
message(WARNING "PIE is not supported at link time: ${check_pie_output}")
197-
list(APPEND configure_warnings "Position independent code disabled.")
198-
endif()
199-
unset(check_pie_output)
202+
include(CheckLinkerSupportsPIE)
203+
check_linker_supports_pie(configure_warnings)
200204

201205
# The core_interface library aims to encapsulate common build flags.
202206
# It is a usage requirement for all targets except for secp256k1, which
@@ -232,11 +236,18 @@ if(BUILD_FOR_FUZZING)
232236
)
233237
endif()
234238

235-
include(ProcessConfigurations)
236-
237239
include(TryAppendCXXFlags)
238240
include(TryAppendLinkerFlag)
239241

242+
# Redefine/adjust per-configuration flags.
243+
target_compile_definitions(core_interface_debug INTERFACE
244+
DEBUG
245+
DEBUG_LOCKORDER
246+
DEBUG_LOCKCONTENTION
247+
RPC_DOC_CHECK
248+
ABORT_ON_FAILED_ASSUME
249+
)
250+
240251
if(WIN32)
241252
#[=[
242253
This build system supports two ways to build binaries for Windows.
@@ -300,6 +311,15 @@ if(WIN32)
300311
try_append_linker_flag("-Wl,--major-subsystem-version,6" TARGET core_interface)
301312
try_append_linker_flag("-Wl,--minor-subsystem-version,2" TARGET core_interface)
302313
endif()
314+
315+
# Workaround producing large object files, which cannot be handled by the assembler.
316+
# More likely to happen with no, or lower levels of optimisation.
317+
# See discussion in https://github.com/bitcoin/bitcoin/issues/28109.
318+
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
319+
try_append_cxx_flags("/bigobj" TARGET core_interface_debug SKIP_LINK)
320+
else()
321+
try_append_cxx_flags("-Wa,-mbig-obj" TARGET core_interface_debug SKIP_LINK)
322+
endif()
303323
endif()
304324

305325
# Use 64-bit off_t on 32-bit Linux.
@@ -364,13 +384,16 @@ endif()
364384
target_link_options(sanitize_interface INTERFACE ${SANITIZER_LDFLAGS})
365385

366386
if(BUILD_FUZZ_BINARY)
367-
include(CheckSourceCompilesAndLinks)
368-
check_cxx_source_links_with_flags("${SANITIZER_LDFLAGS}" "
387+
target_link_libraries(core_interface INTERFACE ${FUZZ_LIBS})
388+
include(CheckSourceCompilesWithFlags)
389+
check_cxx_source_compiles_with_flags("
369390
#include <cstdint>
370391
#include <cstddef>
371392
extern \"C\" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { return 0; }
372393
// No main() function.
373394
" FUZZ_BINARY_LINKS_WITHOUT_MAIN_FUNCTION
395+
LDFLAGS ${SANITIZER_LDFLAGS}
396+
LINK_LIBRARIES ${FUZZ_LIBS}
374397
)
375398
endif()
376399

@@ -390,6 +413,7 @@ target_link_libraries(core_interface INTERFACE warn_interface)
390413
if(MSVC)
391414
try_append_cxx_flags("/W3" TARGET warn_interface SKIP_LINK)
392415
try_append_cxx_flags("/wd4018" TARGET warn_interface SKIP_LINK)
416+
try_append_cxx_flags("/wd4146" TARGET warn_interface SKIP_LINK)
393417
try_append_cxx_flags("/wd4244" TARGET warn_interface SKIP_LINK)
394418
try_append_cxx_flags("/wd4267" TARGET warn_interface SKIP_LINK)
395419
try_append_cxx_flags("/wd4715" TARGET warn_interface SKIP_LINK)
@@ -435,6 +459,7 @@ endif()
435459
configure_file(cmake/script/Coverage.cmake Coverage.cmake USE_SOURCE_PERMISSIONS COPYONLY)
436460
configure_file(cmake/script/CoverageFuzz.cmake CoverageFuzz.cmake USE_SOURCE_PERMISSIONS COPYONLY)
437461
configure_file(cmake/script/CoverageInclude.cmake.in CoverageInclude.cmake USE_SOURCE_PERMISSIONS @ONLY)
462+
configure_file(cmake/script/cov_tool_wrapper.sh.in cov_tool_wrapper.sh.in USE_SOURCE_PERMISSIONS COPYONLY)
438463
configure_file(contrib/filter-lcov.py filter-lcov.py USE_SOURCE_PERMISSIONS COPYONLY)
439464

440465
# Don't allow extended (non-ASCII) symbols in identifiers. This is easier for code review.
@@ -536,6 +561,13 @@ if(WERROR)
536561
unset(werror_flag)
537562
endif()
538563

564+
# Prefer Unix-style package components over frameworks on macOS.
565+
# This improves compatibility with Python version managers.
566+
set(Python3_FIND_FRAMEWORK LAST CACHE STRING "")
567+
# Search for generic names before more specialized ones. This
568+
# improves compatibility with Python version managers that use shims.
569+
set(Python3_FIND_UNVERSIONED_NAMES FIRST CACHE STRING "")
570+
mark_as_advanced(Python3_FIND_FRAMEWORK Python3_FIND_UNVERSIONED_NAMES)
539571
find_package(Python3 3.10 COMPONENTS Interpreter)
540572
if(Python3_EXECUTABLE)
541573
set(PYTHON_COMMAND ${Python3_EXECUTABLE})
@@ -573,14 +605,16 @@ endif()
573605
# Relevant discussions:
574606
# - https://github.com/hebasto/bitcoin/pull/236#issuecomment-2183120953
575607
# - https://github.com/bitcoin/bitcoin/pull/30312#issuecomment-2191235833
576-
set(CMAKE_SKIP_BUILD_RPATH TRUE)
577-
set(CMAKE_SKIP_INSTALL_RPATH TRUE)
608+
# NetBSD always requires runtime paths to be set for executables.
609+
if(CMAKE_SYSTEM_NAME STREQUAL "NetBSD")
610+
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
611+
else()
612+
set(CMAKE_SKIP_BUILD_RPATH TRUE)
613+
set(CMAKE_SKIP_INSTALL_RPATH TRUE)
614+
endif()
578615
add_subdirectory(test)
579616
add_subdirectory(doc)
580617

581-
include(cmake/crc32c.cmake)
582-
include(cmake/leveldb.cmake)
583-
include(cmake/minisketch.cmake)
584618
add_subdirectory(src)
585619

586620
include(cmake/tests.cmake)
@@ -596,7 +630,12 @@ message("Configure summary")
596630
message("=================")
597631
message("Executables:")
598632
message(" bitcoind ............................ ${BUILD_DAEMON}")
599-
message(" bitcoin-node (multiprocess) ......... ${WITH_MULTIPROCESS}")
633+
if(BUILD_DAEMON AND WITH_MULTIPROCESS)
634+
set(bitcoin_daemon_status ON)
635+
else()
636+
set(bitcoin_daemon_status OFF)
637+
endif()
638+
message(" bitcoin-node (multiprocess) ......... ${bitcoin_daemon_status}")
600639
message(" bitcoin-qt (GUI) .................... ${BUILD_GUI}")
601640
if(BUILD_GUI AND WITH_MULTIPROCESS)
602641
set(bitcoin_gui_status ON)
@@ -614,7 +653,6 @@ message(" kernel-test (experimental) .......... ${BUILD_KERNEL_TEST}")
614653
message("Optional features:")
615654
message(" wallet support ...................... ${ENABLE_WALLET}")
616655
if(ENABLE_WALLET)
617-
message(" - descriptor wallets (SQLite) ...... ${WITH_SQLITE}")
618656
message(" - legacy wallets (Berkeley DB) ..... ${WITH_BDB}")
619657
endif()
620658
message(" external signer ..................... ${ENABLE_EXTERNAL_SIGNER}")

CMakePresets.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@
7171
"BUILD_GUI_TESTS": "ON",
7272
"BUILD_KERNEL_LIB": "ON",
7373
"BUILD_SHARED_LIBS": "ON",
74-
"BUILD_TESTING": "ON",
7574
"BUILD_TESTS": "ON",
7675
"BUILD_TX": "ON",
7776
"BUILD_UTIL": "ON",
@@ -84,7 +83,6 @@
8483
"WITH_BDB": "ON",
8584
"WITH_MULTIPROCESS": "ON",
8685
"WITH_QRENCODE": "ON",
87-
"WITH_SQLITE": "ON",
8886
"WITH_USDT": "ON",
8987
"WITH_ZMQ": "ON"
9088
}

0 commit comments

Comments
 (0)