From defd49a7b4dd3517b16d8a44bcca5bf8ac24e359 Mon Sep 17 00:00:00 2001 From: stringintech Date: Mon, 7 Sep 2026 12:39:30 +0330 Subject: [PATCH 1/3] Squashed 'depend/bitcoin/' changes from fb0e8612d6f..15a7a4ed7c4 15a7a4ed7c4 Merge bitcoin/bitcoin#35952: kernel: prevent dangling iterators from temporary ranges ac6b6c1f06e Merge bitcoin/bitcoin#35680: private broadcast: bound rebroadcast attempts to 1,000 d411bb02ff8 Merge bitcoin/bitcoin#35993: guix: build glibc with `--enable-kernel=3.17.0` 381c3312191 Merge bitcoin/bitcoin#36007: http: Make HTTPRequest::m_client a weak_ptr 82b3bfe38c0 Merge bitcoin/bitcoin#35797: psbt: support output metadata updates before inputs are added 681b429393e Merge bitcoin/bitcoin#35986: p2p: reconsider orphans when missing inputs are mined 16f4bd15bc9 Merge bitcoin/bitcoin#35954: qa: Disable Qt's glib event dispatcher for GUI tests on OpenBSD 4ca07c2fb3d Merge bitcoin/bitcoin#35963: doc : update cjdns docs to discourage using onlynet option 4b4ae6e37c5 Merge bitcoin/bitcoin#35995: doc: fix outdated URL in hash_tests.cpp a23df4bfa87 Merge bitcoin/bitcoin#35946: rpc: Improve some type specs for openrpc 20ad7c9eab8 Merge bitcoin/bitcoin#35955: wallet: remove orphaned GetAffectedKeys and LegacyScriptPubKeyMan declarations 979a42ec173 http: Make HTTPRequest::m_client a weak_ptr 158efbc723d doc: fix outdated URL in hash_tests.cpp 5548818115c guix: build glibc with --enable-kernel=3.17.0 f72537037d3 Merge bitcoin/bitcoin#35972: fuzz: Fix assertion in `txorphan` 4800cb7aea0 Merge bitcoin/bitcoin#35735: Add state to HTTPRequest e0992599a63 Merge bitcoin/bitcoin#35846: test: Use throwing config parser getters without fallback e5977f0b9e5 Merge bitcoin/bitcoin#35982: Update minisketch subtree to latest master fe7dbde52c9 Merge bitcoin/bitcoin#35976: test: Speedup fee estimation functional test with batching 9cc7dc50bdc p2p: reconsider orphans when missing inputs are mined c90c23d388f Merge bitcoin/bitcoin#35531: txindex: hash keys and pack positions to reduce disk usage 2dcb2c6df20 Update minisketch subtree to latest master 461e3be8d3d Squashed 'src/minisketch/' changes from d1bd01e189..4a179c61e3 05c36d9fadc Merge bitcoin-core/gui#957: fix: add .dat file extension automatically when exporting watchonly 75a4e6c6788 gui: fix allow restore wallets without .dat file extension a8b582ec1d2 Merge bitcoin/bitcoin#32784: wallet: derivehdkey RPC to get xpub at arbitrary path fe7d475d450 private broadcast: bound broadcast attempts per tx to 1k b3d77ea0275 test: Speedup fee estimation functional test with batching 683e05a265c Merge bitcoin/bitcoin#35889: rpc: avoid quadratic `gettxspendingprevout` work and preserve order 230185a5ee7 Merge bitcoin/bitcoin#35971: net_processing: remove unused code ae36e2ef798 rpc: avoid quadratic prevout resolution da1eaeb3507 rpc: preserve `gettxspendingprevout` order f98753e7621 refactor: identify prevouts by request index 221a3fe5cfb test: cover mixed `gettxspendingprevout` order 02de12b1e61 wallet: remove remaining LegacyScriptPubKeyMan references d194be69d60 wallet: remove orphaned GetAffectedKeys declaration 01dde6b2057 fuzz: Fix assertion in txorphan dec68f997e7 Merge bitcoin/bitcoin#35852: scripted-diff: Use inline const(expr) over static constexpr in headers e95bab98f03 Merge bitcoin/bitcoin#35960: common: remove `::runtime_error` from `RunCommandParseJSON` aad830ac4a6 Merge bitcoin/bitcoin#35847: test: move more tests to `baseindex_tests` and run them for all indexes e07d826e0eb rpc: Fix type in ApplyTypeStrOverride 0cff3cc5187 net_processing: Remove redundant porphanTx in ProcessOrphanTx c7eacbd45b0 net_processing: remove Peer& from UpdatePeerStateForReceivedHeaders 8b5da677d7b common: remove ::runtime_error from RunCommandParseJSON 25bed560bed test: add forward-compat functional test for txindex 703304ed8c1 doc: add release notes for txindex disk usage and downgrading 8e5320a2d24 tests: cover txindex hash prefix collisions and legacy fallback b75efa19ba8 txindex: skip bloom filters and legacy lookups for new databases 004d7c098ca txindex: hash key prefixes and pack block positions 5a255970fd1 refactor: move txindex db constants and legacy key to txindex_key.h 327660134cb txindex: pass the full block to DB::WriteTxs 42771e79980 txindex: use a new block locator for downgrade safety 4b08baed72c txindex: return optional tx and block hash from FindTx fc0dcf950f9 kernel: keep range iterators tied to their owner 0936c55f626 test: characterize kernel range iterators 11090c8bb35 Merge bitcoin/bitcoin#35951: doc: release note about I2P ElGamal sunset beefda21be3 doc : update cjdns docs to discourage using onlynet option b2c45888fde Merge bitcoin/bitcoin#35866: test: Verify unwelcome RPC clients are rejected before reading their requests c0792889673 psbt: update output metadata without inputs 4f5712476a3 test: characterize P2WSH miniscript output e24e8fa2a68 test: characterize PSBT output metadata 625f951ba2f Merge bitcoin/bitcoin#35959: Update secp256k1 subtree to latest master e9ed5e83a39 Merge bitcoin/bitcoin#35605: wallet: rpc: Deprecate `removeprunedfunds` RPC 800ad9c3c0c doc: release note I2P ElGamal sunset 2f72123f613 Merge bitcoin/bitcoin#35867: test: classify SOCKS5 peers via getpeerinfo addrbind f464f6cd67e Update secp256k1 subtree to lastest master 09cc345c3e3 Squashed 'src/secp256k1/' changes from d2d04864ef..687155df6b c94074fa1b1 rpc: Surface OBJ_USER_KEYS description for openrpc c020c21d543 rpc: Handle skip type args for openrpc 4c045f1a032 Merge bitcoin/bitcoin#35945: depends, qt: Add patch for missing headers b0615672352 Merge bitcoin/bitcoin#35947: build, msvc: Update vcpkg manifest baseline 1f5c46f7ce2 Merge bitcoin/bitcoin#35931: ci: Check DLL imports of cross-built `bitcoind.exe` 1bec7fa22c9 Merge bitcoin/bitcoin#35496: kernel: add `btck_set_mock_time` for testing time-dependent paths c1967c4453b Merge bitcoin/bitcoin#35950: Update leveldb subtree to latest master 512dc9af1b1 Merge bitcoin/bitcoin#35930: wallet: post-#35501 cleanups in CWalletTx b970bb34d0c Merge bitcoin/bitcoin#33585: cmake: Use builtin support for .manifest files de2adc308a4 qa: Disable Qt's glib event dispatcher for GUI tests on OpenBSD aa0e0f793fe Merge bitcoin/bitcoin#35729: refactor: test: Unroll `&&` conditions in macros 3e76d22de25 Update leveldb subtree to latest master 9f10ef5e96d Squashed 'src/leveldb/' changes from a7f9bdc611..13da2d6758 2c01832f7be Merge bitcoin/bitcoin#35493: wallet, descriptor: Fix MuSig private key completeness checks on `importdescriptors` b80cee03619 Merge bitcoin/bitcoin#35924: Wallet, refactor: Remove orphaned EraseWatchOnly function 5d051c05629 Merge bitcoin/bitcoin#35943: doc: fix dead link in txrequest.h 4ca182ca402 doc: clarify alternate_wtxids is empty when only one witness variant fa48b5d28eb test: assert listsinceblock "removed" reports current canonical wtxid 9b96ee12881 wallet, test: add unit test for variant txid validation in CWalletTx deserializer 9de6543cb55 wallet: post-#35501 cleanup in CWalletTx e2bf51543ad build, msvc: Disable default features of the `sqlite3` package a31425610af build, msvc: Update vcpkg manifest baseline 757aa573c45 Merge bitcoin/bitcoin#33186: wallet, test: Ancient Wallet Migration from v0.14.3 (no-HD and Single Chain) e8cc21c57f9 Merge bitcoin/bitcoin#35925: wallet, rpc: Exclude non-owned addresses from listreceivedby* e8500cbd19d depends, qt: Add patch for missing headers 9954aa77280 http: don't parse any new requests from a client if m_req_busy = true c7db3ae1f90 test: cover HTTPRequest state machine 90676e24ad1 Add state to HTTPRequest to avoid duplicate work over I/O cycles 99497b38f6c cmake: Unconditionally add .rc files to sources 654a4cf5e69 cmake: Use builtin support for .manifest files 8f695379f31 cmake: Unconditionally set WIN32_EXECUTABLE target property 507e528e845 http: reuse HTTPHeaders to parse chunked trailer 902d8908c94 http: only read one HTTPRequest at a time per client a7b0b5084a4 doc: fix dead link in txrequest.h 1d386c250f2 Merge bitcoin/bitcoin#35941: doc: remove mention of `::wsystem` 57246934e71 doc: remove mention of wsystem 5973e075882 Merge bitcoin/bitcoin#35937: test: Append print_suppressions=0 to LSAN_OPTIONS, and suppress bitcoin-qt b6bd573eb97 Merge bitcoin/bitcoin#34794: rest: add Cache-Control headers to REST responses d055a3ab100 test: verify disallowed RPC clients are rejected upon `accept()` 128456b62d5 Merge bitcoin/bitcoin#35260: doc: clarify test placement guidance fad9ab714b5 test: Append print_suppressions=0 to LSAN_OPTIONS, and suppress bitcoin-qt 05a7c470d28 Merge bitcoin/bitcoin#35822: fuzz: reset SOCKS5 interrupt between inputs 1be0b46297c Merge bitcoin/bitcoin#35898: rpc: fix mempool entry vsize docs 5f4d5626e7f Merge bitcoin/bitcoin#35908: doc: Update NetBSD Build Guide 8397e09e6ba Merge bitcoin/bitcoin#35928: doc: mention -DWITH_ZMQ=ON in macOS build guide 4b4e63f2823 Merge bitcoin/bitcoin#35704: windows: remove deprecated codecvt via UTF-8 narrow APIs 67fee5bf440 ci: Check DLL imports of cross-built `bitcoind.exe` 089c883c558 test: Add coverage for listreceivedby* excluding "send" addresses 873c0548059 wallet: Exclude non-owned addresses from listreceivedby* c3945bfd2bf doc: use derivehdkey in multisig tutorial 3662e336697 test: use derivehdkey in M-of-N multisig demo d9570f08383 rpc: add derivehdkey 62da9f96145 wallet: add GetExtKey helper 222855ed112 doc: mention -DWITH_ZMQ=ON in macOS build guide aaf1548475d wallet: generalize GetActiveHDPubKeys helper 3821452c4af refactor: add hardened derivation helper 0ab61caafd1 rpc: ParsePathBIP32 helper e36c4b76e19 util: reject out-of-range BIP32 keypath indices ba78c31a00c fuzz: check ParseHDKeypath/WriteHDKeypath round-trip 8cce969085d Have ParseHDKeypath handle h derivation marker fc530777623 test: move parse_hd_keypath test to bip32_tests dab525eb771 key: add DeriveExtKey() helper 71c06c5cbcd Merge bitcoin/bitcoin#35830: fees: Return false for incompatible fee estimates 55dfc244143 Merge bitcoin/bitcoin#35915: Release: Prepare "Open Transifex translations for `v32.0`" step f11dc6170ed Merge bitcoin/bitcoin#35482: fuzz: exercise the transaction-handling path in process_message(s) 6f906106d73 Merge bitcoin/bitcoin#35879: ci: Fix $BASE_ROOT_DIR installation d36bf709f7f Merge bitcoin/bitcoin#35914: test, fuzz: Remove unused variables ed2c59ab654 Merge bitcoin/bitcoin#35896: refactor: Default uint256::operator==, add operator<=> fae7ba9abae ci: Fix $BASE_ROOT_DIR installation fabe100c2b3 test: Use throwing config parser getters without fallback fa8acd57cd1 test: Write true/false values in config.ini 6304789a18f Wallet, refactor: Remove orphaned EraseWatchOnly function 6b6d77cc84e windows: remove deprecated codecvt via UTF-8 narrow APIs b388674acf0 Merge bitcoin/bitcoin#35872: rpc: avoid descriptor range counter overflow c36ffd870e8 Merge bitcoin/bitcoin#35842: rpc: Properly make RPCResult::Type::ANY non-test-only 7cb9aaaee80 Merge bitcoin/bitcoin#35759: fuzz: check http_request body matches framing 5b008514dbe Merge bitcoin/bitcoin#35878: net_processing: process unique tx INVs only 3175d576288 test, refactor: Remove unused `error` in `wallet_tests.cpp` 422f1bd92f1 test, refactor: Remove unused `utxo_pool` in `coinselector_tests.cpp` e550945a394 test, refactor: Remove unused `removed_refs` in `txgraph_tests.cpp` a061b011b78 Merge bitcoin/bitcoin#35912: doc: fix stale bitcoin_en.xlf reference 950b1c09225 Merge bitcoin/bitcoin#34927: test: Check that RPCs do not time out, even under load bd01e66f0a7 Merge bitcoin/bitcoin#35885: ci: switch to a sourceware mirror for riscv fa2e76d397a bench: Add base_blob compare bench via uint256 97abf95f48a qt: Update the `src/qt/locale/bitcoin_en.ts` translation source file 81fcecfe452 Revert "ci: Temporarily remove riscv32 config from GHA matrix" b283e1751cc ci: use mirror for riscv submodules fa7bc26d127 test: Check that RPCs do not time out, even under load fa2bd96cc0d test: Map cli CalledProcessError on server error to JSONRPCException e50f422d25f test, refactor: Remove unused variables in `test/rbf_tests.cpp` b7ae50e2e27 fuzz, refactor: Remove unused `header` in `p2p_transport_serialization.cpp` 3df0d067ade fuzz, refactor: Remove unused `random_string` in `locale.cpp` fc28914de4e fuzz, refactor: Remove unused `linearization` in `cluster_linearize.cpp` da58e559865 test, refactor: Remove unused `warnings` in `wallet/test/util.cpp` 4df077d7cd3 Merge bitcoin/bitcoin#35910: refactor: Remove unused newFeeRate var in ReplacementChecks e98ffd4bd82 doc: fix stale bitcoin_en.xlf reference fa9a9a82acd refactor: Remove unused newFeeRate var in ReplacementChecks fa588e9e0f8 refactor: Mark assertion_fail as [[noreturn]] 1278a5970d5 net_processing: process unique tx INVs only 75f58519277 doc: add release note for REST cache-control headers bbe21ac29f5 doc: document REST cache-control defaults 862a1795563 http: add no-store to dispatcher-generated error responses f32685315c2 doc: Install `pkgconf` to find `capnproto` on NetBSD 5964c7229fc doc: Switch `pkg-config` package to modern `pkgconf` on NetBSD 9b85c9814d1 doc: Drop GCC upgrade instructions for NetBSD ea59f172209 test: cover v0.14.3 wallet migration 18b8afd0933 test: support v0.14.x in dumb_sync_blocks faec059dfe8 refactor: Add uint256::operator<=>() b9d573e4a95 fees: Return false for incompatible fee estimates a3ebf8ab607 rpc: fix mempool entry vsize docs c4fbd3c7211 Merge bitcoin/bitcoin#35895: refactor: Enable clang-tidy rule to reject anon namespace in header 465196d0154 Merge bitcoin/bitcoin#35630: test: Add importdescriptors rpc error test coverage fa6df14c236 refactor: uint256::operator==() = default c940fd75145 Merge bitcoin/bitcoin#35180: coins: group private cache helpers 3db96eb5fd7 Merge bitcoin/bitcoin#35582: rpc: reject null for optional parameters fa93132d6da refactor: Enable misc-definitions-in-headers fa5ca877b60 refactor: Enable clang-tidy rule to reject anon namespace in header fafe5042bd1 refactor: Use C++20 std::identity over IntIdentity 28257111acf Merge bitcoin/bitcoin#35737: test: Move cluster_linearize.h contents into cluster_linearize namespace fac4b06e997 refactor: Use CLIENT_NAME in buildOpenRPCDoc fa3aadbc32e refactor: Use self.Arg in getopenrpcinfo fa1871a5281 refactor: Remove stale NOLINTNEXTLINE above GetAddressInfoBaseFields fa226479149 rpc: Properly make RPCResult::Type::ANY non-test-only fa1242dcc02 refactor: Use std::visit in ApplyArgFallback 27b6b5a458f Merge bitcoin/bitcoin#35836: rpc: Remove meaningless bool fallback in FundTransaction 3ac8b806a69 test: test the result order of a multiple import request is correct e4732bf0187 test: test invalid or missing timestamp throws importdescriptors 324c231efea Merge bitcoin/bitcoin#35881: iwyu: Fix warnings in `src/consensus` and treat them as errors 6ed7e05e20d gui: fix add .dat file extension automatically when exporting watchonly 75183f4464b Merge bitcoin/bitcoin#35880: fuzz: don't connman.ReceiveMsgFrom oversized msg fab74a0e922 refactor: Use C++14 digit separator for large int literals fae759be793 scripted-diff: Use inline constexpr over plain constexpr fa74f58a262 scripted-diff: Use inline const over (static) const fab1a62c870 refactor: Use inline constexpr for string literals in headers fa08bbed8dd contrib: Adjust generate-seeds.py to write inline constexpr fad753611b5 scripted-diff: Use inline constexpr over (static) const faedb52583e refactor: Make CFeeRate(integral) ctor constexpr 5555d5dcb55 scripted-diff: Use inline constexpr over static constexpr fa6e1a1e85e refactor: Remove static from constexpr functions in headers acf45c44c01 rest: add Cache-Control headers to REST responses d3cfd02bd7f Merge bitcoin/bitcoin#35501: wallet: store all witness variants of a transaction 0b8ffd01cde Merge bitcoin/bitcoin#35790: fuzz: populate wallet TXO index in wallet_create_transaction 2f52c2e8c06 Merge bitcoin/bitcoin#35886: refactor: Remove unused #include in common/system fa7304f3a5b refactor: Remove unused #include in common/system e7eb159a868 Merge bitcoin/bitcoin#35773: test: Suppress implicit-unsigned-integer-truncation:SaltedCoinsCacheHasher::operator() c6ef42d7dbc Merge bitcoin/bitcoin#35205: kernel,node: add `dbcache` setter and clarify defaults f280f5eb474 wallet: rpc: deprecate removeprunedfunds 4e8c4bc794c test: classify SOCKS5 peers via getpeerinfo addrbind 17c5e33e9c5 Merge bitcoin/bitcoin#35216: qa: Improve functional test support on illumos and *BSD 13b53f8bf67 iwyu: Fix warnings in `src/consensus` and treat them as errors bb19f1da19c fuzz: don't connman.ReceiveMsgFrom oversized msg 8a4bab8e975 Merge bitcoin/bitcoin#35863: test: fix wrong transaction in GetP2SHSigOpCount assertion 975a314667e Merge bitcoin/bitcoin#35832: p2p: avoid block disk reads on unnecessary requests d24610fa2c7 Merge bitcoin/bitcoin#35870: guix: move `python-minimal` to Linux GUI build b33a5b5767e Merge bitcoin/bitcoin#35871: refactor: Annotate `MakeAndPushFeature` with `[[maybe_unused]]` 4b322989ac2 Merge bitcoin/bitcoin#34995: iwyu: Fix warnings in `src/common` and treat them as errors 75f024a84e0 Merge bitcoin/bitcoin#35875: ci: Fix NetBSD SDK download failure, Temp. remove riscv32 from GHA fa06ea42448 ci: Temporarily remove riscv32 config from GHA matrix 873550bea38 ci: verify cross-build SDK archives 2c87337efe8 ci: update NetBSD cross-build SDK 6a2de55a0d8 test: require `TryGetTotalRam()` detection cd086c16dd7 node, qt: inline `DEFAULT_DB_CACHE` 8bd9f46082d kernel: allow setting chainstate `dbcache` 8aa21e119b0 kernel, node: colocate dbcache bounds 7cfa21d60a5 scripted-diff: use `MIN_DBCACHE_BYTES` ab634325768 common: cache total RAM as `uint64_t` 031fa402c8a scripted-diff: use `TryGetTotalRam` 264555af3cc rpc: avoid descriptor range counter overflow 143a13fb2bd test: characterize descriptor range endpoint 41c44f55885 node, qt: use `1_MiB` for dbcache conversions 0238aebf619 refactor: Annotate `MakeAndPushFeature` with `[[maybe_unused]]` 1ed14c61222 Merge bitcoin-core/gui#872: Menu action to export a watchonly wallet b75eb938a04 guix: move python-minimal to GUI build 101400b28f7 guix: remove -Werror=dev e27c179db2f Merge bitcoin/bitcoin#35869: lint: (re-)add contrib/guix for Python linting 50145f62c92 ci, iwyu: Enforce warning-free `src/common` 30f6b05857f Merge bitcoin/bitcoin#35860: fuzz: Rework rpc fuzz target dcc2ed52b84 Merge bitcoin/bitcoin#35856: fuzz: cover the mempool interface for transaction announcement 8221d714c78 lint: document CI lief version requirement 594a02c3ae0 lint: re-add guix scripts to mypy linting e8691056c01 test: Unroll `&&` conditions in macros ddddffda3af doc: Add doc/release-notes-35836.md 756afe14b5c test: give each ValidateInputsStandardness case its own scope 5559fa464b3 test: fix wrong transaction in GetP2SHSigOpCount assertion 556988790a7 Merge bitcoin/bitcoin#35592: http: check rpcallowip immediately after accepting connection fa895bb77a8 fuzz: Rework rpc fuzz target 28641fd195d p2p: reject empty getblocktxn requests dd2561003dd fuzz: cover the mempool interface for transaction announcement 9871fb726cb p2p: reject filtered block inv early when bloom is disabled aaf94120266 refactor: split p2p_getdata.py in sub-cases 34c03075a5a test: run generic baseindex tests against every index type 11b3e251c48 test: make baseindex flush test chain-length agnostic 8b959f4c6ab test: move unclean_shutdown test to baseindex_tests 2232d6afbe2 test: move index_reorg_crash to baseindex_tests a3597e26837 test: move BuildChain helper into test mining util 954985e6a38 test: simplify blockfilter test's BuildChain helper 67efced1fc8 Merge bitcoin/bitcoin#35838: qa: Enable `interface_gui.py` on macOS 45f5609f2ed qa: Enable `interface_gui.py` on macOS fa7fe798c61 wallet: Remove meaningless bool fallback in FundTransaction 9611a356035 Merge bitcoin/bitcoin#35828: util: Make LineReader consistently use string_view 6e2962e48cb Merge bitcoin/bitcoin#35753: kernel: handle null mempool on chainstate deletion 87bc4c74c4d Merge bitcoin/bitcoin#35787: init, rpc: ignore empty addnode values 67998e15c8d Merge bitcoin/bitcoin#35553: test: Add missing test case for getdata requests from blocks-only peers 9b38d077f89 Merge bitcoin-core/gui#953: Adds option to not load the wallet after migration 146988ef6c5 Merge bitcoin/bitcoin#35551: test: add interface_gui.py to test bitcoin-qt startup 7e5952b0aa0 Merge bitcoin/bitcoin#35821: guix: followups to #35537 683ae4c520b guix: consolidate config flags 665f11d04ac guix: consolidate gcc toolchain setup 288f76ed0fc guix: consolidate mingw-w64 toolchain setup cc9b0f2266d guix: consolidate LLVM toolchain setup b12a70f330d guix: turn linux/win linker warnings into errors fd7d4f29704 Merge bitcoin/bitcoin#35795: build: set CMAKE_VISIBILITY_INLINES_HIDDEN in REDUCE_EXPORTS 8ecbe270f0d Merge bitcoin/bitcoin#35606: script: qa: Improve `Key::Fingerprint` type safety a9d181f2d35 Merge bitcoin/bitcoin#35084: ipc: Add nonunix platform support 6573196e63b doc: Release note for export watchonly wallet gui action cb51f97f6c5 gui: Menu action for exporting a watchonly wallet 4cea59573c8 add release notes 492a715d784 gui: Adds option to not load the wallet after migration dff44e4c8f3 util: LineReader - Drop support for raw std::byte spans 5d5cdcd79d4 util: Make LineReader consistently use string_views e8eaa80ce29 util: LineReader - Don't include newline and acknowledge single-char \r 5907a5c7dc2 gui: Add ExceptionSafeConnect that takes a lambda 7dea464d6b5 Merge bitcoin/bitcoin#35692: addrman: remove unreachable tried-collision branch a2aab6df97d Merge bitcoin/bitcoin#35810: guix: Drop unused `(guix licenses)` import from `manifest_build.scm` 77440814bf2 fuzz: reset SOCKS5 interrupt between inputs 90ce21e21d0 rpc: reject empty node argument in addnode 69465de4470 init: ignore empty addnode values e75b76b12c5 Merge bitcoin/bitcoin#35261: guix: disable LTO in GCC a92e93429ee guix: Drop unused `(guix licenses)` import from `manifest_build.scm` e34b8d5a7dc Merge bitcoin/bitcoin#35794: doc: Discourage adding AI agents as commit (co)-authors b33a7fcd7bd Merge bitcoin/bitcoin#34628: p2p: Replace per-peer transaction rate-limiting with global rate limits 6b059d9dbdb Merge bitcoin/bitcoin#32800: rpc: Distinguish between vsize and sigop adjusted mempool vsize 11ebbd90721 Merge bitcoin/bitcoin#28463: p2p: Increase inbound capacity for block-relay only connections 3f313a774be build: set CMAKE_VISIBILITY_INLINES_HIDDEN in REDUCE_EXPORTS 3a2c52f9d70 Merge bitcoin/bitcoin#35792: refactor: Make all `const static` class members `constexpr` f5d7cc66ecb doc: Discourage adding AI agents as commit authors 05c35c402cc refactor: Make all `const static` class members `constexpr` c11508406e6 doc: Update docs that refer to -maxconnections 69ce0dba2ae test: add test that EvictTxPeerIfFull only evicts tx-relaying peers 3ed7f064180 p2p: trigger possible eviction if we support bloom filters and change a peer to tx relay 0bd3d3dfa56 init: make inbound tx relay percentage configurable cc59aee196e test: add functional test for inbound maxconnection limits 1b76e047364 net: increase inbound capacity for block-relay-only connections baa5a2ce43a guix: pass --disable-tm-clone-registry to base GCC 9c2589630f0 guix: mirror some arguments from linux-gcc to mingw-w64-gcc e0b8fbde897 guix: disable-nls in *-base-gcc 7dc87f8e1e2 guix: disable-lto in *-base-gcc 9ed3d6ef2a2 guix: modernise style in *-base-gcc 1eac6a728bf fuzz: populate wallet TXO index in wallet_create_transaction 610dd320d1a Merge bitcoin/bitcoin#35783: chainparams: remove my testnet3 seed afa5e46bbc6 Merge bitcoin/bitcoin#35076: doc: clarify pruning impact on wallet sync 26b730cdbf2 Merge bitcoin/bitcoin#35320: key: validate BIP32 seed length in CExtKey::SetSeed edf4b807f05 Merge bitcoin/bitcoin#35781: Update secp256k1 subtree to latest master 774d11c58f2 Merge bitcoin/bitcoin#35664: test: add CLTV and CHECK(MULTI)SIGVERIFY failure-path vectors to script_tests.json 526673487ce Merge bitcoin/bitcoin#34683: rpc: support a formal description of our JSON-RPC interface 290cb2f17ef Merge bitcoin/bitcoin#35775: scripted-diff: Use C.UTF-8 locale in Guix scripts d472a7798ac Merge bitcoin/bitcoin#32764: guix: Build for macOS using LLVM toolchain only 9755d33390d Merge bitcoin/bitcoin#34808: cmake, translation: Use native Qt TS file as source for translations on Transifex 51143291a6c Merge bitcoin/bitcoin#35782: doc: fix outdated i2p URLs in comments 2cb3bfa8df7 scripted-diff: Use long form of shell options in Guix scripts 711eb10f08b guix: Add copyright headers to Guix scripts 7295b8be704 chainparams: remove my testnet3 seed 419f7427eee doc: fix outdated i2p URLs in comments a33f240524d Squashed 'src/secp256k1/' changes from bd0287d650..d2d04864ef c26d4e2d6f0 Update secp256k1 subtree to latest master 22a03ca6944 Merge bitcoin/bitcoin#35694: clusterlin: minor SFL optimizations 7b6f9ba7bad Merge bitcoin/bitcoin#34672: mining: add reason/debug to `submitSolution` and unify with `submitBlock` 5311b15727f Merge bitcoin/bitcoin#33014: rpc: Fix internal bug in descriptorprocesspsbt when encountering invalid signatures c9cedebfffb coins: group private cache helpers 8a90c7cd973 guix: Build for macOS using LLVM toolchain only db74d3390a3 doc: clarify test placement guidance d3d74e701f7 ipc, refactor: Update mp::g_thread_context references 80f831494e5 guix: Fix `glibc` version in comment 8916f7967e1 scripted-diff: Use C.UTF-8 locale in Guix scripts a2e074d66ac Merge bitcoin-core/gui#951: test: Nudge toward QT_STYLE_OVERRIDE=fusion on macOS 6ced9ad782b Merge bitcoin/bitcoin#35770: net: Simplify `AddressPosition` comparitor b8844d3df75 Merge bitcoin/bitcoin#35766: p2p: Assume v2transport for addresses from seeds fa7f5537817 test: Suppress implicit-unsigned-integer-truncation:SaltedCoinsCacheHasher::operator() 075e7f42187 net: Simplify `AddressPosition` comparitor fa0c8337a8d test: Nudge toward QT_STYLE_OVERRIDE=fusion on macOS faa50c08b17 refactor: Run clang-format on qt test_main.cpp bc49bd154a3 Merge bitcoin/bitcoin#35709: depends: Update Qt to 6.8.4 efa1800a885 Merge bitcoin/bitcoin#35769: depends, zeromq: Apply upstream patch fc4ceda8b61 Merge bitcoin-core/gui#949: Fix `-Wsfinae-incomplete` warnings when building with GCC 16.x 559d042ba25 Merge bitcoin/bitcoin#35736: bitcoin-util: replace netmagic command with getchainparams command 8f2ed31f702 Merge bitcoin/bitcoin#35767: fuzz: Avoid dangling prevoutfetch threads after AFL fork a31c30290d4 Merge bitcoin/bitcoin#35746: ci: Test build directory path with spaces e446ea09c4d depends, zeromq: Apply upstream patch 87b080fe2b6 fuzz: reset the reused mempool in process_message(s) d522fd31963 fuzz: prepare deterministic mempool rebuilds b11456386b2 fuzz: let the test input toggle IBD in the p2p fuzz targets 2a29cee6843 test: add helper to reset chainman and mempool 2a4ef42d34e fuzz: share a single FakeNodeClock in the chainman-resetting fuzz targets 32eb5210029 Merge bitcoin/bitcoin#35215: coins: use SipHash-1-3-UJ for CCoinsMap keys 883ef1d85d7 Merge bitcoin/bitcoin#35727: blockencodings: fix extra transaction count f3f302150b5 ci: Put space and non-ASCII char in `BASE_BUILD_DIR` a7e980af31b build: Quote host paths in NSIS installer template faada35f9c0 fuzz: [refactor] Use 100'000 digit separator in __AFL_LOOP cf0f2aeae00 p2p: Assume v2transport for addresses from seeds fae067ec4a4 fuzz: Avoid dangling prevoutfetch threads after AFL fork 7e1a750d45d guix, refactor: Use `target` variable instead of hardcoded value d673ca765a5 Merge bitcoin/bitcoin#35537: guix: split builds into Linux, Linux GUI and macOS/Windows b36c2d78a3a Merge bitcoin/bitcoin#35490: test: cover unused mempool space in coins cache limit 7502b9ddba7 fuzz: check http_request body matches framing d1d85263f8e Merge bitcoin/bitcoin#35681: test: cover disconnect on private broadcast peer with relay=false 4906594a384 Merge bitcoin-core/gui#950: qt, test: Run GUI tests on macOS with `minimal` QPA plugin e0c196f9c11 Merge bitcoin/bitcoin#35721: lint: drop most remaining default Ruff rule ignores fd59d68c262 qt, test: Enable tests on macOS with `minimal` QPA plugin c8b2aeb2263 qt: Avoid implicit `NSApplication` instantiation 006f8f7d49a Merge bitcoin/bitcoin#35090: fuzz: add p2p_private_broadcast harness 51d36dfd076 qt: Fix `-Wsfinae-incomplete` warnings when building with GCC 16.x 0b0785daa00 guix: split macOS and win builds 008a3e29c88 guix: split builds into Linux(gui) and macOS/Windows a99b27f1920 validation: handle null mempool on delete a3b5dc05723 cmake: Add `GenerateWindowsInstaller` script 3bfdcbd7ee4 coins: reuse cache hasher for txid set 2beab94896a coins: use SipHash-1-3-UJ for `CCoinsMap` 7ff55cc6500 bench: add fixed-width SipHash benchmarks 3aea85411f6 test: add SipHash-1-3-UJ coverage a0ccd4ad171 crypto: add fixed-width SipHash-1-3-UJ c2d7931b5c8 crypto: add generic SipHash-1-3-UJ 25bfca06d66 refactor: simplify adding SipHash-1-3-UJ af50ba8500a test: add shared SipHash vectors fa5cbb89097 uint256: Workaround GCC-14 stringop-overread bug in Compare 18c05d93016 Merge bitcoin/bitcoin#35590: test: wallet: BnB incomplete result on attempt-limit success 21b4b790e48 test: Move cluster_linearize.h contents into cluster_linearize namespace b56b66fc64b Merge bitcoin/bitcoin#35679: fuzz: Remove unused `DeserializeFromFuzzingInput` params overload 6ee05c4b188 test: wallet: BnB incomplete result on attempt-limit success 6aa5d8d9481 blockencodings: fix extra transaction count be4e64d9e40 test: characterize extra transaction miscount 2d3f72fd3fa ipc, refactor: Update mp::SpawnProcess call 7298281ba8d bitcoin-util: replace netmagic command with getchainparams command 9d6ba4b3b57 Merge bitcoin/bitcoin#34514: refactor: remove unnecessary `std::move` for a few trivially copyable types ca9ffb8e123 rpc: add OpenRPC discovery alias 6c9d76d5894 doc: release note for alternate_wtxids in gettransaction 99bdcb064c2 test: compat, ensure downgrade preserves tx witness variants ef2afc6a0a3 test: Test for wallet txs with alternate wtxids 2d55c7a74dd wallet: Show alternate wtxids in gettransaction 0b1af01bd44 wallet: Replace CWalletTx::SetTx with Update 56cf27db4dc wallet: Store all witness variants of a transaction 798ba6d04fa wallet: Make CWalletTx::tx private and use CWalletTx::GetTx to access 72ebdd6364c wallet: Remove unused CWalletTx CopyFrom and copy constructor 19af439bdf3 wallet: Deserialize directly in CWalletTx's ctor afab8d4225c fuzz, refactor: Remove `Serialize` overload efa7f8c1437 fuzz: Remove unused `DeserializeFromFuzzingInput` params overload 6eca11175be lint: remove E731 Ruff ignore b52454538b0 lint: remove E712 Ruff ignore 70d9ec7f3d4 Merge bitcoin/bitcoin#34538: net: advertise -externalip addresses e9f19815caa ipc, refactor: Add Stream type alias and use it 3859805f05e ipc, refactor: Add SocketId type alias and use it 2ee9b69c7a1 ipc, refactor: Add ProcessId type alias and use it 34497971418 ipc: Avoid 'unistd.h' error with MSVC dbcc192dce6 ipc, refactor: fix include order 7c86d4834ed ipc, refactor: use native path separators in test 00287b9a340 ipc, refactor: Change Protocol class field order 33d37f3c35e ipc, refactor: Drop connect/listen/serve exe_name parameters 794940469e7 ipc, moveonly: combine ipc_test.cpp and ipc_tests.cpp 7bff765d514 Merge bitcoin/bitcoin#35639: external_signer: validate fingerprint from enumerate response 773b1c9aa58 Merge bitcoin/bitcoin#35572: coins: make cursor iteration DB-only 8d9e4f8dbd8 Merge bitcoin/bitcoin#35633: wallet: avoid call bumpfeediscount with negative values c4216e885a6 Merge bitcoin/bitcoin#35723: fuzz: Drop unnecessary mutexes 240d5f743aa fuzz: Drop unnecessary mutexes cf0368fb76e Merge bitcoin/bitcoin#35720: ipc: Update libmultiprocess subtree and drop fuzz test workaround efb4eae3386 clusterlin: avoid recomputing intersections in MergeChunks 4b91ad149f0 clusterlin: reserve the suboptimal-chunk queue up front e6ca996255b clusterlin: avoid heap allocations in GetLinearization 2d4065d1fe4 Merge bitcoin/bitcoin#35718: ci: Update lint container dependencies 8d9fbf76664 Merge bitcoin/bitcoin#35380: kernel: expose witness stack and scriptSig for btck_TransactionInput 226e6388b7f depends: Update Qt to 6.8.4 fab8eeed82c fuzz: clang-format LIMITED_WHILE fa0d777ce2a fuzz: Clang-format LIMITED_WHILE like while fa1a9bde5a6 fuzz: Remove unused workaround after fix in libmultiprocess byte-span serializer fa55385ab36 fuzz: Use LIMITED_WHILE over for-loop with consumed size integral fa911d815db Merge commit '6d5f753921578eefdd3fce64cfc8ee7951b6cbc4' into HEAD 6d5f7539215 Squashed 'src/ipc/libmultiprocess/' changes from 28e056576a..e8de5c7b68 900a7785bf5 ci: use Ubuntu 26.04 for lint container 058a73a0aea ci: use uv 11.x 14f4ddcb554 ci: mypy 2.3.0 54e1a95a12e Merge bitcoin/bitcoin#35719: ci: disable Qt build in OpenBSD cross job b0e09511586 ci: disable Qt build in OpenBSD cross job 734c34bafda Merge bitcoin/bitcoin#35427: depends: Build `qt` and `qrencode` packages on OpenBSD ee61b11a9e7 Merge bitcoin/bitcoin#35200: node: smooth oversized `dbcache` warnings e3554bf361f Merge bitcoin/bitcoin#35579: wallet: reserve walletrescan before checking wallet is at the tip 11ae4265522 Merge bitcoin/bitcoin#35715: cmake: Fix WITH_EXTERNAL_LIBMULTIPROCESS + BUILD_FUZZ_BINARY e544413c0de Merge bitcoin/bitcoin#32763: wallet: Replace CWalletTx::mapValue and vOrderForm with explicit class members fe1cb6e40d7 Merge bitcoin/bitcoin#35690: wallet: Introduce WalletError with machine-readable error code 441f3114f57 Merge bitcoin/bitcoin#35659: Clarify supported *BSD releases and drop outdated workarounds 0399df827c6 Merge bitcoin/bitcoin#35708: depends: capnp 1.5.0 1ab1fdd4696 Merge bitcoin/bitcoin#35705: bench: replace CreateMockableWalletDatabase with MakeInMemoryWalletDatabase db35b9238fc ipc # build: Fix fuzz target CMakeLists.txt for external libmultiprocess d18fec892e2 Merge bitcoin/bitcoin#35698: doc: Update enum class constant naming style guide a2e4cd7ad2a depends: capnp 1.5.0 7508ac319d9 bench: replace CreateMockableWalletDatabase with MakeInMemoryWalletDatabase 907e284e303 Merge bitcoin/bitcoin#35701: test: Remove `mock_process.cpp` c8459b6bdcd Merge bitcoin/bitcoin#35568: txospenderindex: disable bloom filters to optimize disk usage 349c72ee00a net_processing: Drop unnecessary txid arg from InitiateTxBroadcastToAll 12b0dc33c4a doc: Add release note for -txsendrate etc 5cde66341a6 tests: basic functional test for tx rate limiting 4842903ac12 rpc: report -txsendrate and bucket info via getnetworkinfo 74a47a52071 init: add -txsendrate configuration parameter 6307bd034bf net_processing: Provide a 30bpm heartbeat log while inv backlog is in use df31ee57aaf net_processing: add a global delay queue for sending txs 7927650e56d util/tokenbucket.h: Provide a generic TokenBucket class 749bb447f81 txmempool: Drop CompareMiningScoreWithTopology e1b7490fbc9 net_processing: Replace CompareInvMempoolOrder 6cfc65d2103 txmempool: Add ExtractBestByMiningScoreWithTopology 026f70e05f9 net_processing: Remove per-peer rate-limiting 46c8c471dcf net_processing: bump last_inv_sequence for bip35 messages explicitly 63c5f9d22c0 test: Remove `mock_process.cpp` 5d57f2cefee test: cover unused mempool space in coins cache ef101b04a8d Merge bitcoin/bitcoin#35655: wallet: Use in-memory SQLite for temporary wallet in exportwatchonlywallet 1fc9277a1c1 test: cover disconnect on private broadcast peer with relay=false bc7d9050467 addrman: remove unreachable tried-collision branch b6becf3534c Merge bitcoin/bitcoin#35684: Update libmultiprocess subtree to add `max_connections` option 930f25050f7 Merge bitcoin/bitcoin#35700: doc: archive release notes for v29.4 9b2b3f4ec6f doc: archive release notes for v29.4 297fd1489bb Merge bitcoin/bitcoin#35412: ci: add NetBSD Clang cross job e314869066b Merge bitcoin/bitcoin#35695: Remove myself as security contact e3d67a5eae5 Merge bitcoin/bitcoin#35691: chainparams: delete my DNS seed a8223bb4e62 wallet: Introduce WalletError with machine-readable error code fad5809cb92 doc: Update enum class constant naming style guide 0390338692a test: check MuSig import private key warnings 5e62fbf09c0 wallet: check descriptor private key completeness on import cd8d01bf47a descriptors: require complete MuSig private keys 7d8137c1417 Merge bitcoin/bitcoin#34897: indexes: Don't commit ahead of the flushed chainstate 629df81e4c6 Remove myself as security contact d164a043426 node: smooth oversized `-dbcache` warnings d9080639804 chainparams: delete my DNS seed e9ed898a0da validation: Don't use m_chain.Tip() in FlushStateToDisk 3679f1ecf5e index: Don't commit ahead of the flushed chainstate 65735728a5a index: Remove return value from Commit() 09c06960c6a validation: track last flushed block 13c02b5466d test: add test for index commits ahead of the last flushed block 81405fc7abb Merge bitcoin/bitcoin#35689: test: Inline incorrect check in `util_tests` cd2a4bc5101 test: Redeclare variable as signed in `util_tests` 6f1c56f03a0 Merge bitcoin/bitcoin#35670: net: optimize compact block extra tx iteration e94fda8a40e Merge bitcoin/bitcoin#35685: doc: Archive 30.3 release notes 5223cf17954 Merge bitcoin/bitcoin#35616: refactor: Use u64 over size_t for all cache sizes to fix a 32-bit overflow c43b7a1115f ci: add netBSD cross CI job 699c21aea47 depends: add netbsd_LDFLAGS c0e91efdb31 Merge bitcoin/bitcoin#35295: validation: fetch block input prevouts in parallel during ConnectBlock 777d23f25c7 test: add regression test for in-memory SQLiteDatabase reopen d1e7f8c986f wallet: use in-memory SQLite for temporary wallet in exportwatchonlywallet ee43743f126 wallet: store m_additional_flags in SQLiteDatabase to fix reopen path f0da26cfc8a Merge bitcoin/bitcoin#34997: p2p: Don't participate in addr relay with feelers 443179a9eb1 doc: Archive 30.3 release notes 55d3cd51a48 doc: add release note describing change for forbidden clients d1ed2a6e25d http: check rpcallowip immediately after accepting connection a9d1b652f32 Merge commit '707d0ded84563386f770ec17970834c65f8fa938' into pr/subtree-12 707d0ded845 Squashed 'src/ipc/libmultiprocess/' changes from 16bf05dea02..28e056576a3 fabafd91f17 refactor: Use u64 over size_t for all cache sizes to fix a 32-bit overflow 32941e13147 Merge bitcoin/bitcoin#35649: depends: move FreeBSD SDK handling to CI 6667dc4eec7 kernel: expose scriptSig for btck_TransactionInput e6de3a2d3c7 kernel: expose witness stack for btck_TransactionInput f379d716b12 Merge bitcoin/bitcoin#35669: doc: archive release notes for v31.1 881bb7b3555 Merge bitcoin/bitcoin#35673: refactor: Move LoadGenesisBlock to ChainstateManager 3f3e644bebd Merge bitcoin/bitcoin#35678: private broadcast: define and use new RPC_LIMIT_EXCEEDED error code ( + other follow-ups) d24d3cbad01 fuzz: add p2p_private_broadcast harness c4068cf37b6 test: add negative zero CSV failure script test vector 37edf0e2338 test: add CHECKLOCKTIMEVERIFY failure-path script test vectors e3b026bf56e Merge bitcoin/bitcoin#34020: mining: add getTransactions(ByWitnessID) IPC methods 62f9089343b Merge bitcoin/bitcoin#35386: doc: add an AI contribution policy 29b124416e4 doc: add release notes for 32800 5d25a0c28d1 rpc: add `vsize_adjusted` field to getrawtransaction output for mempool transactions eaef8d31118 rpc: add `vsize_adjusted` and `vsize_bip141` field to mempool-related RPCs fa615bd163a refactor: Move LoadGenesisBlock to ChainstateManager 8ac222484c9 private broadcast: remove no-op [[nodiscard]] 191bdcba266 test: align test better with described scenario 7ad311be181 test: use BOOST_CHECK_EQUAL for PrivateBroadcast::AddResult 82a02a2a220 rpc: define and use new RPC_LIMIT_EXCEEDED error code 3ae3a94f2bd wallet: avoid call bumpfeediscount with negative values a64df338e69 Merge bitcoin/bitcoin#35651: doc: Improve offline-signing-tutorial after 32489 4498fa5d5b9 Merge bitcoin/bitcoin#35406: private broadcast: limit outstanding txs to count of 10,000 ec5edcd72b9 Merge bitcoin/bitcoin#35661: Update libmultiprocess subtree to add `ThreadMap.makePool` method ea67fea062b Merge bitcoin/bitcoin#35464: kernel: Add function for creating chainparams with a signet challenge dab7f2c984b test: cover -externalip/onlynet interaction in functional test 657a5aa3f3d test: cover -externalip bypassing -onlynet 8c87e32bd39 net: let -externalip bypass -onlynet f4af02e827b net: add an add_even_if_unreachable argument to AddLocal a7b5f23bb81 Merge bitcoin/bitcoin#35667: refactor: Use `NetworkErrorString` for macOS code in `netif.cpp` 69fc991791b Merge bitcoin/bitcoin#32606: p2p: Drop unsolicited CMPCTBLOCK from non-HB peer and when blocksonly 1a3cbf1bd2c net: optimize compact block extra tx iteration bc33509ae20 Merge bitcoin/bitcoin#35650: doc: Add release notes for 32489 (exportwatchonlywallet RPC) 2b6e767d969 doc: archive release notes for v31.1 b0735336eed p2p: Don't participate in addr relay with feeler connections 302733fd969 Merge bitcoin/bitcoin#35652: init: fix reindex deadlock by waking cv after interrupt c1313b199fe init: wake genesis wait after ImportBlocks() returns eccb04a321a refactor: Use `NetworkErrorString` for macOS code in `netif.cpp` f79ecfd9c7f Merge bitcoin/bitcoin#35658: refactor: Drop unneeded `` include before `` 22ac4ad9496 ci: ensure we use correct lld version in OpenBSD job 495f43f7b32 ci: FreeBSD 15.1 244739db9d7 depends: move FreeBSD SDK handling to CI bab01200531 Merge bitcoin/bitcoin#35621: validation: Ignore eventual error message from flushing in AcceptBlock a86a96d17b3 test: add CHECKSIGVERIFY/CHECKMULTISIGVERIFY failure script test vectors 6b0a9073023 Squashed 'src/ipc/libmultiprocess/' changes from 3edbe8f67c1..16bf05dea02 02afa66169b Merge commit '6b0a907302364649dcaffeb0340b985f14141b4e' into pr/subtree-11 2bab6bc73f2 refactor: Drop support for FreeBSD < 14 91b5c8a07c6 refactor: Remove FreeBSD-specific workaround 56701ff6d5c doc: Clarify supported *BSD releases 22c328d388a refactor: Drop unneeded `` include before `` 6d0ea4cf5bd doc: add release notes 2063f02bd5e Merge bitcoin/bitcoin#35510: test: SOCKS5 proxy: expect that connection may be reset during SOCKS5 handshake or data forwarding a2b1c86903a txospenderindex: disable bloom filters to optimize disk usage 1360001f43d Merge bitcoin/bitcoin#34959: wallet: Enforce BDB btree levels and overflow item sizes 10ffef4b3bf Merge bitcoin/bitcoin#35604: log: expose `-logratelimit` in normal help b393985aa05 Merge bitcoin/bitcoin#35634: txospenderindex: use zero-byte entry values 1835f2fcbf4 Merge bitcoin/bitcoin#35653: fuzz: Remove `ConsumeUniValue` 9f3e4272280 fuzz: Remove ConsumeUniValue 68cb7840d2c doc: improve offline-signing-tutorial after 32489 32ddfc92d9f Merge bitcoin/bitcoin#35599: doc: Add release notes for #33671 (getbalances nonmempool field) f56804bcf5e Merge bitcoin/bitcoin#35640: ci: use a 8x instance over 16x for riscv job 239d6c52608 Merge bitcoin/bitcoin#35614: HTTPServer: Prevent race condition between worker thread and I/O thread cddbad325d3 doc: Add release notes for 32489 (exportwatchonlywallet RPC) 0a1bbec688b Merge bitcoin/bitcoin#32489: wallet: Add `exportwatchonlywallet` RPC to export a watchonly version of a wallet 4a007126fbe Merge bitcoin/bitcoin#35147: depends: Boost 1.91.0-1 31abaa264c3 doc: add an AI contribution policy a15bdc0598b doc: update offline-signing-tutorial to use exportwatchonlywallet rpc a3880764013 test: Test for exportwatchonlywallet d053e3e5c8e wallet, rpc: Add exportwatchonlywallet RPC 444878efefa wallet: Add CWallet::ExportWatchOnly f9273f01db5 wallet: Move listdescriptors retrieving from RPC to CWallet a1c83789a70 wallet: Write new descriptor's cache in AddWalletDescriptor 1e996640e64 wallet: Use Descriptor::CanSelfExpand() in CanGetAddresses() d2ee9227dab descriptor: Add CanSelfExpand() 2990bd77355 Merge bitcoin/bitcoin#35118: fuzz: add ipc round-trip fuzz target fb1d152c247 depends: Boost 1.91.0-1 ba48852f9e7 Merge bitcoin/bitcoin#35438: test: introduce NodeSigner, run feature_taproot.py without wallet compiled 4c9de7d5b32 external_signer: validate fingerprint from enumerate response 47bbed052e0 ci: use true|false over "true|false" 9a25bc39893 ci: use a 8x instance over 16x 9871dc7ab43 Merge bitcoin/bitcoin#31425: CI: Add Riscv bare metal job 07fb58b9ef2 test: Test a locked wallet rejects an empty importdescriptors request 113402286ea doc: add txospenderindex release note ce068782887 index: shrink txospenderindex value markers a99148d576d test kernel: Don't log on warnings change 5b4fd284f4d kernel: Generate a signet with a challenge 037ad770714 fuzz: add IPC round-trip target a8823c09961 Merge bitcoin/bitcoin#35607: nanobench: fix performance counter buffer initialization aeca0610865 rpc: reject null for optional parameters f26c15bdd28 Merge bitcoin/bitcoin#35397: ci: add OpenBSD Clang cross job 91586f701e1 test: introduce NodeSigner, run feature_taproot.py without wallet compiled 771200ca436 test: return full keypair from `getnewdestination` helper 4e29de719e6 private broadcast: add release note for limited cap cbf8c107c12 Release cs_main between individual private tx re-attempts 5aea3d0373f private broadcast: limit outstanding txs to count of 10,000 dc282ff31d1 Merge bitcoin/bitcoin#35597: logging: More fully remove libevent log category ec98037f7ae Merge bitcoin/bitcoin#35615: fuzz: restore CreateSock in PCP targets 43d89bb6e10 Merge bitcoin/bitcoin#35610: bitcoin-util: Add netmagic command e35c8054894 Merge bitcoin/bitcoin#35129: test: add fuzz test for private broadcast dc1c17c0856 doc: add release notes 0e109371844 fuzz: add coins_view_stacked fuzz harness to test concurrent leveldb reads ce610a6ff44 fuzz: update harnesses to cover CoinsViewOverlay::StartFetching 760fb22dc37 test: add unit tests for CoinsViewOverlay::StartFetching d69a3b20dec doc: update CoinsViewOverlay docstring to describe parallel fetching ab2a3792372 coins: fetch inputs in parallel fdf283036a1 coins: add ready flag to InputToFetch ede11b83141 validation: collect block inputs in CoinsViewOverlay before ConnectBlock f82043af507 coins: introduce thread pool in CoinsViewOverlay 5bf1c320081 validation: add -prevoutfetchthreads configuration option a318f43254c bitcoin-util: Add netmagic command 256482ab566 validation: In AcceptBlock, ignore flush result 3c76bd43568 Merge bitcoin/bitcoin#35603: build: QRencode cleanups f4a6d079c42 qa: Support `get_bind_addrs` and `feature_bind_extra` on illumos 5e96a8fd5ac doc: Add `lsof` to Test Suite Dependencies on NetBSD 5d01aa4772a qa: Ignore `lsof` warnings on NetBSD 70352fda038 qa: Strip prefix length from NetBSD `ifconfig` output 1c1735567e2 doc: Add `lsof` to Test Suite Dependencies on FreeBSD 4cb7f39c2ce qa: Drop OpenBSD from supported platforms in `get_bind_addrs` function 8a982eea854 qa: Add `skip_if_no_lsof_on_nonlinux` helper and use it where needed f595daf1dd0 test: ensure HTTPServer race condition is fixed b98b10c0723 test: introduce a worker thread in http socket error test 922b08d3753 test: socket error handling in HTTPServer using ErrorSock mock socket 73da2a8a52f http: prevent race condition between worker thread and I/O thread 57b3bf84960 Merge bitcoin/bitcoin#35609: ci: Bump tsan config to ubuntu:26.04 with -U_FORTIFY_SOURCE d64ea158240 ci: add openBSD cross CI job 5404b620742 depends: add openbsd_LDFLAGS 2a9e35d293b Merge bitcoin/bitcoin#35588: scripted-diff: Rename `Sock::{RECV,SEND,ERR}` fed3cf6f0ed wallet: Replace CWalletTx's vOrderForm with specific fields 4f8823e8e11 wallet: Drop vOrderForm from CommitTransaction a0e5e30010a fuzz: restore CreateSock in PCP targets 41ceea400e8 scripted-diff: Rename `StatusLevel::{INFO,WARN,ERR}` f395acdeeea scripted-diff: Rename `Sock::{RECV,SEND,ERR}` 7a74f652935 Merge bitcoin/bitcoin#35536: fuzz: share a single mocked steady clock across FuzzedSock instances e5b7785447f test: wallet: resend: avoid internal behavior via removeprunedfunds e1290ce7f74 Merge bitcoin/bitcoin#35543: test: introduce ExtendedPrivateKey and ExtendedPublicKey classes 7ac25c91771 util, refactor: Rename local `ERR` in `Sock::Accept` bbbbab86a81 ci: Bump tsan config to ubuntu:26.04 with -U_FORTIFY_SOURCE 095596ddf73 log: expose -logratelimit option ea9afb61a1c Merge bitcoin/bitcoin#35602: doc: Clarify build docs about `pkgconf` / `pkg-config` requirements 672eedc46b0 Merge bitcoin/bitcoin#35220: fuzz: connman: strengthen assertions and extend coverage 0e5c718d8af Merge bitcoin/bitcoin#35506: test: ensure group data cluster pointers are live c9a70f93387 script: qa: Improve Key::Fingerprint type safety b6b1d0653af nanobench: fix perf counter buffer init aa01721c899 test: add interface_gui.py to test bitcoin-gui startup via RPC 93012d7ff91 Merge bitcoin/bitcoin#35601: wallet: remove experimental warning from send and sendall 829255c8bed cmake: Remove `SelectLibraryConfigurations` from `FindQRencode` module 5c55606da9b depends: Remove unused `lib/pkgconfig` in `qrencode` package 402ba10b20b cmake: Drop optional `PkgConfig` use in `FindQRencode` module 8ebfff0f88b doc: add send RPC release note fb8a1038867 doc: Clarify build docs about `pkgconf` / `pkg-config` requirements 5884f5a4fa9 wallet: remove experimental warning from send RPCs 7b84e5106c3 Merge bitcoin/bitcoin#35595: ci: remove some packages from Chimera job 58560c281d0 ci: remove some packages from Chimera job 295ce6f45c8 Merge bitcoin/bitcoin#35576: test: raise `feature_reindex` RPC timeout b36730a3efc Add CI job for riscv bare metal bfdbf513f69 Add CI job for producing a static bare metal binary a9a1d92a1da build: Add option for building for bare metal envs 9e62e4b1f34 test: slow down rescaning process 9b2ef817572 doc: add release notes for #33671 (getbalances nonmempool field) a2b0bfcd854 wallet: Drop mapValue from CWalletTx cb99864c91c wallet: Throw if unknown entry is found in mapValue 98d5cdae663 wallet: Make CWalletTx "replaces_txid" and "replaced_by_txid" member variables 7ef8a6efc2a wallet: Make CWalletTx "comment" and "to" member variables 2155e913d3e wallet: Make CWalletTx "from" and "message" member variables c6ba98dcc8a wallet: Drop mapValue from CommitTransaction 00abb174a80 wallet: Pass comment and comment_to to CommitTransaction 1a219a37a21 wallet: Pass replaces_txid to CommitTransaction outside of mapValue 72db4accbf5 coins: drop stale cursor null checks 3d2f2d8de09 coins: pass UTXO stats view by reference 35aedb28236 coins: drop cursor from base view c6fbe2f66cf coins: pass DB view to cursor users 633044f1436 Merge bitcoin/bitcoin#35266: rpc, wallet: add an option to not load the wallet after migrating d6269e2a903 Merge bitcoin/bitcoin#35594: fuzz: cover async chainstate compaction 3765b428d19 logging: More fully remove libevent log category d84fc352cbc Merge bitcoin/bitcoin#35550: net_processing: fix BIP152 first integer interpretation 703a671fbc2 fuzz: compact coins view db during fuzzing 0868c85fd57 refactor: rename async coin compaction fafff08e1fe Merge bitcoin/bitcoin#35403: mining: pr 33966 followups (disentangle miner startup defaults) e12db0902be Merge bitcoin/bitcoin#34411: Full Libevent removal fa8e4700ba9 Merge bitcoin/bitcoin#35424: doc, wallet: align external signer documentation, reject sendtoaddress/sendmany 6fa4132298a fuzz: share a single mocked steady clock across FuzzedSock instances 8791c4764ca test: use ExtendedPrivateKey in wallet_taproot.py 89ceafafb9f test: use ExtendedPrivateKey in wallet_listdescriptors.py bbfffcab588 test: use ExtendedPrivateKey in wallet_send.py 2ab6e590f73 test: use ExtendedPrivateKey in wallet_keypool.py 9e20118720d test: use ExtendedPrivateKey in wallet_fundrawtransaction.py 06af0cddbb9 test: use ExtendedPrivateKey in wallet_descriptor.py 4100fac20e8 test: use ExtendedPrivateKey in wallet_createwallet.py ff3f6def9a5 test: use ExtendedPrivateKey in wallet_bumpfee.py 003f2a01f63 test: use ExtendedPrivateKey in feature_notifications.py f988e6d6e64 test: use ExtendedPrivateKey in wallet_importdescriptors.py ef0676f4007 rpc: factor getaddressinfo embedded field docs 1fb6b605609 test: add functional test for getopenrpcinfo 672dd42d140 rpc: add getopenrpcinfo command 146b3adfaa1 doc: remove libevent 96d7f55f1df vcpkg: remove libevent 0443943dc03 ci: remove libevent a0ca249f3fc depends: remove libevent 35d2d067978 cmake: remove libevent 6b58eb6d514 Merge bitcoin/bitcoin#35070: validation: prevent FindMostWorkChain from causing UB 0cdd817a82a add release note 517d37ce3eb test: tests wallet migration with load_wallet disabled b98dd63da7b rpc: Add load_wallet argument to migratewallet RPC 4acd063ba6f wallet: make loading the wallet after migrating optional 6d8e15dff01 Merge bitcoin/bitcoin#35571: ci: use warp docker buildkit cache 33e3c7524ff Merge bitcoin/bitcoin#35521: fuzz: Speed up `dbwrapper_concurrent_reads` harness 1a3cfdf1b7a fuzz: connman: cover AddLocalServices/RemoveLocalServices c507fb30634 fuzz: connman: add outbound-bytes invariants 4a6fce43ead fuzz: connman: add AddNode/RemoveAddedNode invariants 9c20859b5f0 Merge bitcoin/bitcoin#35182: Replace libevent with our own HTTP and socket-handling implementation 48df0939e72 fuzz: Remove unnecessary thread pool mutexes a4c3b003f87 fuzz: Speed up dbwrapper_concurrent_reads harness 336f5a738b3 wallet: reserve walletrescan before checking wallet is at the tip 61020b36c5f doc: add release note for #35182 replace libevent HTTP server 39e9099da59 logging: deprecate libevent category 8c1eea0777c http: remove libevent usage from this subsystem e427c227fa3 fuzz: switch http_libevent::HTTPRequest to http_bitcoin::HTTPRequest 21c7542cf88 http: switch servers from libevent to bitcoin cbb8d1fb33a HTTPServer: disconnect after idle timeout (-rpcservertimeout) e5f242eef3a HTTPServer: implement control methods to match legacy API 2ca645c2e4d refactor: split HTTPBindAddresses into config parse and libevent setup fec6b6bca81 refactor: split http_request_cb into libevent callback and dispatch f946ff5a0bb Add helper methods to HTTPRequest to match original API dd11b5e01ba define HTTP request methods at module level outside of class 7ee7df988ef HTTPServer: use a queue to pipeline requests from each connected client 5ef1b80a09c Allow http workers to send data optimistically as an optimization a69bb9e1e6d HTTPServer: disconnect clients cdf71998e55 HTTPServer: compose and send replies to connected clients 6734bcdeff4 HTTPserver: support "chunked" Transfer-Encoding 80e1cfe5a25 HTTPServer: read requests from connected clients 3c5226ab96a HTTPServer: start an I/O loop in a new thread and accept connections 4ef4ebdc0c8 http: Introduce HTTPRemoteClient class a85286c5c71 HTTPServer: generate sequential Ids for each newly accepted connection 5a3aa1af285 HTTPServer: implement and test AcceptConnection() f5bc018948f http: Introduce HTTPServer class and implement binding to listening socket 9463e98781d http: Implement HTTPRequest class ad50aa4a0fa http: Implement HTTPResponse class 68b5d289d19 http: Implement HTTPHeaders class 89c54ae4cbc http: enclose libevent-dependent code in a namespace 5aa3629b489 util/string: LineReader should only trim \r or \r\n 0cdbb191b50 util/string: use string_view in LineReader 881d4b6c75c test: cover common HTTP attacks and common malformed requests 08a25a72313 Merge bitcoin/bitcoin#35465: coins: compact chainstate regularly 27262a28841 Merge bitcoin/bitcoin#35559: scripted-diff: Rename SteadyClockContext to FakeSteadyClock 9e6546c517c test: raise reindex mining RPC timeout ea626c268ad Merge bitcoin/bitcoin#35560: lint: Require scripted-diff script to succeed (take 2) c0922f78af9 Merge bitcoin/bitcoin#35567: depends: latest config.guess & config.sub b552f1713ad ci: use warp docker buildkit cache f5116c587f7 rpc: add placeholder annotation for deprecated params 26c221a980d rpc: expose RPC metadata for introspection 6a1a66c180c rpc: render Type::ANY in help text instead of aborting 06de34a0333 rpc: erase empty map entry in removeCommand d4d64ae7393 rpc: add missing string_view include to server.h 1a2523e901a Merge bitcoin/bitcoin#34937: Fix startup failure with RLIM_INFINITY fd limits 5883ba77ead Merge bitcoin/bitcoin#34764: rpc: replace ELISION references with explicit result fields f6939fd13d5 Merge bitcoin/bitcoin#35564: Update secp256k1 subtree to latest master 61c754ae994 Merge bitcoin/bitcoin#35512: wallet: move fAbortRescan reset into WalletRescanReserver reserve function 794befd4b06 Merge bitcoin/bitcoin#35384: util: Check write failures before renaming settings.json d2a03d50acb test: add extendedkey.py unit tests by using BIP32 test vectors afdb3780821 test: introduce ExtendedPrivateKey and ExtendedPublicKey classes 55e3a57f22e qa: Avoid UTXO reuse between test functions 9c5dd2926aa p2p: Ignore CMPCTBLOCK from peer that hasn't sent SENDCMPCT bf9884f4e55 p2p: make blocksonly nodes ignore CMPCTBLOCK messages 92cea63c714 test: (Un)solicited invalid cb -> get disconnected. e845e263443 test: p2p: Nodes ignore unsolicited CMPCTBLOCK's 83135917158 p2p: Drop unsolicited CMPCTBLOCK from non-HB peer 44f377a71ff refactor: test: Static assert_highbandwidth_states 25457a3272f test: Tighten getblocktxn checks in parallel cb reconstruction test. 8f0354995b6 depends: latest config.guess & config.sub 0e95e1abdb4 Merge bitcoin/bitcoin#35437: migrate: Handle HD chains that have identical seeds but different IDs fab2874269c lint: Require scripted-diff script to succeed 1f3f0a4e220 Squashed 'src/secp256k1/' changes from 7262adb4b4..bd0287d650 9caae506829 Update secp256k1 subtree to latest upstream 855a3fee882 scripted-diff: Rename SteadyClockContext to FakeSteadyClock 341360964a6 Merge bitcoin/bitcoin#35549: argsman: Fix duplicate option assertion to allow HIDDEN category registration abc33ff043f test: announce field must be 0 or 1 in sendcmpct 278710a88d8 test: Add missing test case for getdata requests from blocks-only peers 2d0dce0af54 net_processing: fix BIP152 first integer interpretation f963f2b6755 argsman: allow duplicate registration between HIDDEN and other categories 0654511e1b9 util: Check write failures before renaming settings.json 1e169a8a6cb Merge bitcoin/bitcoin#35548: doc: updated ci docs to reflect removal of REPO_USE_WARP_RUNNERS flag f570d7cd538 Merge bitcoin/bitcoin#35547: lint: Require scripted-diff script to succeed 156f2c6c49d kernel: add `btck_set_mock_time` for testing time-dependent paths 744d4950190 ci: updated docs to reflect removal of REPO_USE_WARP_RUNNERS flag 2ee4fafa3f4 test: add fuzz test for private broadcast 08b7c61fc70 private broadcast: enforce sending to unique node ids 2a36d6a5614 lint: Require scripted-diff script to succeed 0f156c16e80 Merge bitcoin/bitcoin#35470: argsman: Prevent duplicate option registration across categories 09ba59ff6b9 Merge bitcoin/bitcoin#35540: test: descriptor: bare multisig at TOP level with exactly 3 pubkeys is allowed 0e475098cdf Merge bitcoin/bitcoin#35463: depends: Drop trailing slash from `CMAKE_INSTALL_LIBDIR` 0136e17c0a9 Merge bitcoin/bitcoin#35546: ci: Use GCC consistently in i686 task 9a8ef9b0a37 test: SOCKS5 proxy: expect that connection may be reset during handshake eb3208364ac test: SOCKS5 proxy: expect that connection may be reset when forwarding fae482b4e6f ci: Use GCC consistently in i686 task 32df86f1d80 argsman: Prevent duplicate option registration across categories 75929b11edb doc: add release note for submitSolution IPC changes ed75d70fdb8 refactor: centralize SubmitBlock result handling cbaa1696f37 mining: add reason and debug output to submitSolution 83f3bc002d0 mining: clarify SubmitBlock result handling a30ef6b91f7 Merge bitcoin/bitcoin#35396: ci: Rewrite broken wrap-valgrind.sh to .py 4dbaa7cc65b test: generalise byte_to_base58 utility function to allow more version types 55a4c946f67 test: descriptor: bare multisig at TOP level with 3 pubkeys is allowed 9460090f1ac Merge bitcoin/bitcoin#35520: lint: remove redundant test suite uniqueness check 61a03054222 Merge bitcoin/bitcoin#35526: ci: bump MSan fuzz timeout from 150 to 180 minutes 6d5c1fb3ee6 Merge bitcoin/bitcoin#35173: util: shorten thread names to avoid Linux truncation d3e40af2597 index: shorten indexer thread names d69c46292dc util: zero-pad thread number suffixes 41e531c4abd util: shorten `ThreadPool` worker names 92d812446e8 Merge bitcoin/bitcoin#35538: test: make TestChain100Setup's m_clock timestamp more readable 011ad6ea3c4 Merge bitcoin/bitcoin#35441: ci: inline runner selection 58cc2a0453d test: make TestChain100Setup's m_clock timestamp more readable 6e93ef4623a Merge bitcoin/bitcoin#35503: guix: CMake-related improvements 87bca1c2adb net: add options to AttemptToEvictConnection f655d887f09 Merge bitcoin/bitcoin#35535: iwyu: Fix warning in `bench/pool.cpp` 059edf19089 guix: Fix "Ignoring empty string" CMake warning for non-Linux hosts 2d86083fd47 guix: Drop redundant CMake `--verbose` options d92a20b310e iwyu: Fix warning in `bench/pool.cpp` 6921f5df011 Merge bitcoin/bitcoin#35414: iwyu: Fix warnings in `src/bench` and treat them as error 355fffb8ccf Merge bitcoin/bitcoin#35528: test: doc: remove `--perf` profiling from functional test framework 46927cf82c4 Merge bitcoin/bitcoin#35504: test/doc: Follow-up nits for #35269 6bc2d996b00 Merge bitcoin/bitcoin#35499: guix: add `package.sh` 87d099d5f81 Merge bitcoin/bitcoin#35519: rpc: tighten setmocktime upper bound to UINT32_MAX 04eccc2be5a Merge bitcoin/bitcoin#35043: refactor: Properly return from ThreadSafeQuestion signal + btcsignals follow-ups 2cfb10b668f Merge bitcoin/bitcoin#35498: net: move cs_main up in FetchBlock to fix rpc assert crash 9fae7e98865 test: doc: remove `--perf` profiling from functional test framework 17353f9d977 ci: bump MSan fuzz timeout debac5f2cd1 Merge bitcoin/bitcoin#35523: Revert "build: exclude mptest target from compile commands" 406c2348ddb rpc: tighten setmocktime upper bound to UINT32_MAX d186c390f4c Revert "build: exclude mptest target from compile commands" 2447385f47a rpc: remove unused RPCResult::Type::ELISION 7a851180058 rpc: expand decodepsbt output script with explicit fields 88e2a6ae89a rpc: expand getaddressinfo embedded with explicit fields a9f9e7d17e2 rpc: extract fee estimate result helpers 8a615a88005 rpc: extract ListSinceBlockTxFields() helper 372ac283ac6 rpc: extend TxDoc() for getblock verbosity 2/3 0380a1c46bf rpc: extend TxDoc() for getrawtransaction verbosity 2 946feb3f1fa test: remove redundant test suite uniqueness lint b3371029dc5 doc: use signing pubkey instead of aggregate xonly key 4c99ed10766 Merge bitcoin/bitcoin#35418: build: exclude mptest target from compile commands 9bfdde74b5a guix: add package.sh 142e86a65c8 Merge bitcoin/bitcoin#35458: qa: Avoid extra tracebacks when exception is raised 216b50c9a6c Merge bitcoin/bitcoin#35179: test: Add importdescriptors rpc error coverage 77772e7a308 undo "ui: Compile boost:signals2 only once" fa45783d55b mv btcsignals.h to src/util fa4903db8a3 refactor: Make scoped_connection ctor explicit fa1bc1fe515 test: Check btcsignals determinism in thread_safety test case fa86e5dba94 refactor: Properly return from ThreadSafeQuestion signal fa4badc0fd4 refactor: Make ThreadSafeMessageBox signal void faad9d64348 refactor: Mark btcsignals operator [[nodiscard]] 2fe34808faa wallet: reject sendtoaddress and sendmany for external signers 394e473d42b coins: compact chainstate in background aa021b26f39 validation: randomly compact chainstate bd5a32f7db2 doc: add taproot descriptor to getdescriptors example 7131c829378 doc: clarify which commands receive --chain, --fingerprint and --stdin 4fdd4d8d29f doc: replace stale signtransaction wording with current signtx flow fab92257fe6 doc, rpc: document enumerate model field and fingerprint deduplication b10889d1075 coins: test chainstate flush baseline c117bbc467f Merge bitcoin/bitcoin#35514: ci: Alpine 3.24 df9eb72b129 test: ensure group data cluster pointers are live 3be1115ade3 ci: Alpine 3.24 3b712b9d024 Merge bitcoin/bitcoin#35120: btcsignals: delete broken scoped_connection move assignment 2818a171c00 test: add abortscan unit test bc30e951632 wallet: move fAbortRescan reset into WalletRescanReserver reserve() b83a999b144 btcsignals: delete broken scoped_connection move assignment 46d0e21d758 Merge bitcoin/bitcoin#35288: ci: Bump toward Ubuntu 26.04 d0b8d445fb7 Merge bitcoin/bitcoin#35455: fuzz: improve dbwrapper_concurrent_reads performance d6359937bfa validation: check invariants when inserting into m_blocks_unlinked 0852925bd8d test/doc: remove misleading comment and improve tests ca4a3802819 test: add coverage for UB caused by FindMostWorkChain c787b3b99b6 validation: avoid duplicates in m_blocks_unlinked e0fb41fd2a1 Merge bitcoin/bitcoin#35489: fuzz: test non-max descriptor satisfaction weight 50e9f2ad336 Merge bitcoin/bitcoin#35497: test: FakeNodeClock follow-ups in unit tests 809f909e582 Merge bitcoin/bitcoin#35451: lint: Grep for `AUTO` test suites in file names 530e1f5290c Merge bitcoin/bitcoin#34636: node: allocate index caches proportional to usage patterns 8598ec22045 Merge bitcoin/bitcoin#35221: BIP 434 Support: Peer feature negotiation 526aae3768d fuzz: test non-max descriptor satisfaction weight 472b950b7f7 qa: Use custom assert_greater_than() over naked assert 1ce9e262395 fuzz: improve dbwrapper_concurrent_reads performance fb47793b99f Merge bitcoin/bitcoin#35168: validation: Don't add pruned blocks to `m_blocks_unlinked` on startup 53b836cdced Merge bitcoin/bitcoin#34028: p2p: Prevent integer overflow in LocalServiceInfo::nScore 3bbc3c67ad4 Merge bitcoin/bitcoin#35101: refactor: disable default std::hash for CTransactionRef 288018131ec Merge bitcoin/bitcoin#35254: crypto: cleanse HMAC stack buffers after use and ChainCode c85e04f0791 Merge bitcoin/bitcoin#35478: fuzz: reset the mockable steady clock between iterations ed11dd6a5fe test: add coverage for importdescriptors when manually interrupting a wallet rescan d90d7f0a55d test: add coverage for importdescriptors errors when using assumeutxo ad388bf2541 test: add coverage for importdescriptors while wallet is rescanning ddceb4e6038 test: updated different_key to be different_field and also used a single assert_equal with 3 args instead of multiple assert_equals 6751a323c01 iwyu: Fix warnings in `src/bench` and treat them as error fab52281f72 refactor: Drop unused includes after iwyu CI bump fa4774d032d ci: Bump APT_LLVM_V-based task configs to Ubuntu 26.04 fa1414a36a8 ci: Debian Trixie -> Ubuntu 26.04 359680b74db net: move cs_main up in FetchBlock to fix rpc assert crash 4b91316643f Merge bitcoin/bitcoin#35459: guix: add setup.sh fa03852e9cc test: Use SteadyClockContext in pcp_tests fa3716c439a test: Use FakeNodeClock in more places fae9623c8db test: Add FakeNodeClock m_clock to TestChain100Setup a6ed29d6c2f bench, refactor: Use `std::string_view` for `BenchRunner` ctor parameter bcbf5bae164 Merge bitcoin/bitcoin#35114: test: NodeClockContext follow-ups 543c00f47dd Merge bitcoin/bitcoin#35448: ci: don't build libunwind in msan 17ed7f50609 Merge bitcoin/bitcoin#35297: p2p: Release m_peer_mutex early in InitiateTxBroadcastToAll 087f02c929c ci: skip libunwind runtime in LLVM build 6d47f7cc6fc ci: use llvm 22.1.7 9868e1bf651 Merge bitcoin/bitcoin#35487: scripted-diff: Rename UNIQUE_NAME to BITCOIN_UNIQUE_NAME 577999c2ce9 Merge bitcoin/bitcoin#35462: test: remove unnecessary nodes from wallet_multisig_descriptor_psbt e36f5d5d0b6 Merge bitcoin/bitcoin#35456: test: Perform full reset of CoinsResult in order to avoid passing 21M BTC 1d3bc816c39 Merge bitcoin/bitcoin#35267: rpc: make getprivatebroadcastinfo and abortprivatebroadcast fail if privatebroadcast is not enabled fba713a28c8 scripted-diff: Rename UNIQUE_NAME to BITCOIN_UNIQUE_NAME 1aafd490770 Merge bitcoin/bitcoin#35359: blockstorage: Remove cs_LastBlockFile recursive mutex 84d07e471cb test: add coverage for importdescriptor with an encrypted wallet ec6cf49b91f blockstorage: Remove cs_LastBlockFile recursive mutex 35a814a045f test: Limit clocks to one active instance 55e402ffef2 scripted-diff: Rename NodeClockContext to FakeNodeClock 1e9546fcf4b test: Use NodeClockContext in more call sites 758fea59a89 test: Drop ++ from NodeClockContext default constructor 7c2ec3949aa test: Enter mocktime before peer creation in block_relay_only_eviction 0bfc5e4fff3 add release notes fdc9fc1df26 test: check getprivatebroadcast and abortprivatebroadcast throw if the node is running without -privatebroadcast set 7b821ef9b75 rpc: getprivatebroadcastinfo and abortprivatebroadcast throw if -privatebroadcast is disabled 5f33da9aa30 Merge bitcoin/bitcoin#35481: fuzz: fix dead HD keypaths (de)serialization round-trip 5deb053a75f fuzz: fix dead HD keypaths (de)serialization round-trip 19b32a2e180 fuzz: reset the mockable steady clock between iterations 27472a542c6 Merge bitcoin/bitcoin#35466: ci: run ipc functional tests in arm job f6bdbcf79d9 lint: Grep for `AUTO` test suites in file names b2fbd5b5dda ci: run ipc functional tests in arm job 44fc3a290d6 rpc: introduce HelpElision variant and ElideGroup helper 2cf2b22ff1b depends: Drop trailing slash from `CMAKE_INSTALL_LIBDIR` da74ff9ca49 test: Add functional test for BIP434 01b8a117d2c test_framework: BIP 434 support 6a129983c9b BIP434: FEATURE message support 3210fc477ac net: Add AdvertisedVersion() for protocol version advertised to a peer 5b65e312701 test: remove two unnecessary nodes from the test 94ed45427c5 serialize: add LimitedVectorFormatter 1b3f776ebbc serialize: string_view serialization 47da4f9b716 Merge bitcoin/bitcoin#35410: net: use the proxy if overriden when doing v2->v1 reconnections 54de023a7c9 guix: add setup.sh 0cac23b66e1 Merge bitcoin/bitcoin#35431: test: pass -datadir to bitcoin-cli -ipcconnect check f42226d526e qa: Silence socket.timeout exception when substituting it for a JSONRPCException 659671ac3db qa: Avoid cleanup when exception is raised e01741e6ac1 Merge bitcoin/bitcoin#35446: ci: use pyzmq over zmq 628816bc551 Merge bitcoin/bitcoin#35447: ci: use warpbuild cache for docker buildkit cache d0b76c7f3e6 rpc+bitcoin-tx: Specify correct type for ParseFixedPoint() a5050ddb6bb Merge bitcoin/bitcoin#32150: coinselection: Optimize BnB exploration 082bb1a1047 Merge bitcoin/bitcoin#35335: Make deployment configuration available outside of regtest in unit tests 43ca54ca000 refactor(test): Make CAmount arg explicit for BuildCreditingTransaction() b5e91e946c8 wallet: Remove CoinsResult::Clear() 5bd990a3ddb Merge bitcoin/bitcoin#34779: BIP 323: reserve version bits 5-28 as extra nonce space 2189a6f5f22 p2p: Saturate LocalServiceInfo::nScore updates at INT_MAX 82901981bfb ci: use Warp cache for Docker layers 7c2718a4b82 Merge bitcoin/bitcoin#34767: Bugfix: GUI/Intro: Handle errors from SelectParams the same as if during InitConfig 4a6d1458b4b ci: add pyzmq to msan job c21b58e2635 ci: use pyzmq over zmq b28cf409a13 Merge bitcoin/bitcoin#34866: fuzz: target concurrent leveldb reads de92208c2b5 migrate: Handle HD chains that have identical seeds but different IDs a54ec373a69 depends: Build `qt` and `qrencode` packages for OpenBSD hosts 2669019fe82 Merge bitcoin/bitcoin#35269: musig: Include pubnonce in session id 7735c134887 test: run bitcoin-cli -ipcconnect check under valgrind with -datadir 8cb8653a223 fuzz: target concurrent leveldb reads 6609088fe67 fuzz: extract ConsumeDBParams helper 61d1c78ed41 Merge bitcoin/bitcoin#35192: wallet: unfriend LegacyDataSPKM and DescriptorScriptPubKeyMan 726e196ef26 ci: inline runner selection 2e0a36c3606 Merge bitcoin/bitcoin#35439: test: Improve loopback address check in `rpc_bind.py` 53373d07c3e Merge bitcoin/bitcoin#35430: ci: use warp caching on warp runners 4731049ba4f build: exclude mptest target from compile commands 255f7c720f1 Merge bitcoin/bitcoin#35404: wallet: allow anti-fee-sniping in sendall RPC while not relying on RBF default c8b8c275fa5 test: Improve loopback address check in `rcp_bind.py` 654a5223af5 Merge bitcoin/bitcoin#33661: test: Add test on skip heights in CBlockIndex 19e45334bcf Merge bitcoin/bitcoin#35312: kernel: assert invalid buffer preconditions in `btck_*_create` functions 107d4178d91 versionbits: update VersionBitsCache doc comment to match current behaviour 94e3ac0b215 doc: release notes and bips doc update for #34779 1d5240574a1 qa: test we don't warn for ignored unknown version bits deployments f802edf57cc versionbits: Limit live activation params and activation warnings per BIP323 2ce4ae7d8f0 ci: Add dynamic cache switching to warp cache fbe628756cc Merge bitcoin/bitcoin#35131: guix, refactor: Minor script cleanups and improvements bf0d257c11b net: un-default the OpenNetworkConnection()'s proxy_override argument 5a3756d150f test: add a regression test for private broadcast v1 retries 34ac53457fd Merge bitcoin/bitcoin#35402: doc: Compress doc/build-unix.md dependency package names into table 10dfdd4b9fa Merge bitcoin/bitcoin#35379: test: Fix feature_dbcrash.py --usecli error 214ad1761b4 Merge bitcoin/bitcoin#35408: ci: 35378 followups a3dc44c0855 Merge bitcoin/bitcoin#35385: test: restore JSONRPCException error format 9c1fcaca5cb wallet, test: fix sendall anti-fee-sniping when locktime is not specified 570a6276400 kernel: assert invalid buffer preconditions in `btck_*_create` functions ac09260982a test: restore JSONRPCException error format ab35a028ede test: make reusable filling of a node's addrman 2333be9cbc5 test: make reusable starting a standalone P2P listener 2ffa81fac40 test: make reusable SOCKS5 server starting 6c525c2ec13 wallet: unfriend LegacyDataSPKM and DescriptorScriptPubKeyMan classes 8877eec726d wallet: allow anti-fee-sniping in sendall RPC while not relying on RBF default 13b7fffc5e0 Merge bitcoin/bitcoin#35011: iwyu: Fix warnings in `src/script` and treat them as errors 61839425137 ci, iwyu: Fix warnings in src/scripts and treat them as error 5700a61b733 ci: use ubuntu-latest instead of ubuntu-24.04 265563bf75c doc: remove reference to cirrus b847626562e test: refresh MiniWallet after node restart f4e643cb152 test: merge mining options in package feerate check 280ce6a0aed miner: ensure block_max_weight is flattened before limit checks 65bd3164fbb mining: clarify test_block_validity comment 978e7216e62 test: use shared default_ipc_timeout a5859edef45 fuzz: connman: set m_local_services/m_use_addrman_outgoing/m_max_automatic_connections 4b84c9125ad fuzz: connman: add network activity invariants 2cf9d79d84c key: validate BIP32 seed length in CExtKey::SetSeed 1ea532e590c Merge bitcoin/bitcoin#34953: crypto: disable ASan instrumentation of SSE4 SHA256 for GCC (matching Clang) d0a54dd8e0e Merge bitcoin/bitcoin#35381: wallet, test: optinrbf deprecation followups c6f225c757c Merge bitcoin/bitcoin#28333: wallet: Construct ScriptPubKeyMans with all data rather than loaded progressively 5486ef8cc25 Merge bitcoin/bitcoin#34198: wallet: fix ancient wallets migration fa787043f56 doc: Compress doc/build-unix.md dependency package names into table 9784818442f mining: add getTransactionsByWitnessID() IPC method d282ae68832 mining: add getTransactionsByTxID() IPC method 0d5e4d4712b test: restart node after IPC option override test f16b3613cd0 ipc: Serialize null CTransactionRef as empty Data f1344e6c7fd Merge bitcoin/bitcoin#35378: ci: switch to warp runners 0f466e1094e mempool: add lookup by witness hash d12d8e52d23 Merge bitcoin/bitcoin#35400: doc: Remove good_first_issue.yml, Reword "Getting started" section b86c1c443d8 test: add coverage for migrating ancient wallets fd44d48b24b wallet: fix ancient wallets migration a34dbc836c5 Merge bitcoin/bitcoin#35313: Bump leveldb subtree 896eaacd913 Merge bitcoin/bitcoin#34644: mining: add submitBlock to IPC Mining interface fa51f37f180 doc: Reword the Getting-Started section 53388773af7 guix: Remove redundant ShellCheck `source` directives 62cf7bc53f2 guix, refactor: Add `BASE` argument to `*_for_host` functions 5d46429e322 guix, refactor: Move `distsrc_for_host()` to `prelude.bash` cab65ea9c69 guix, refactor: Move duplicated `profiledir_for_host()` to `prelude.bash` faa9d4345ff guix, refactor: Move duplicated `outdir_for_host()` to `prelude.bash` 6b59fd6b8cf guix, refactor: Remove `contains()` function d4c69a72246 guix, refactor: Remove unused `out_name()` function fad585b6e59 test: Wait for node exit after crash in verify_utxo_hash faf14755149 ci: Exclude feature_dbcrash.py under --v2transport --usecli fac27d702fd test: Fix feature_dbcrash.py --usecli intermittent error fa09de8b686 test: [refactor] Simplify submit_block_catch_error f701cd159af doc: fix typo in release notes of #34917 7bc39e3d084 wallet, test: add wallet_deprecated_rbf.py for walletrbf deprecated keys & options 2cbbcb5659b wallet, test: remove -deprecatedrpc=bip125 from wallet_send.py 307134bd7e2 wallet, test: remove -deprecatedrpc=bip125 from wallet_migration.py 3ec550d1688 wallet, test: remove -deprecatedrpc=bip125 from wallet_basic.py a52ea9bff90 wallet, test: remove -walletrbf startup option from wallet_backwards_compatibility.py e3f5c189134 Merge bitcoin/bitcoin#34948: guix: Split manifest into build and codesign manifests a9ac680af30 build: remove FALLTHROUGH_INTENDED from leveldb.cmake 4d58c3271c0 build: remove -Wno-conditional-uninitialized from leveldb build 58cdb5c2e83 Squashed 'src/leveldb/' changes from ab6c84e6f3..a7f9bdc611 5fe0615f7ab Update leveldb subtree to latest upstream 4bdd46ace37 ci: switch runners from cirrus to warpbuild fab5733f5d6 doc: Remove good_first_issue.yml fa98d449517 ci: Rewrite broken wrap-valgrind.sh to .py 00af5620f01 Merge bitcoin/bitcoin#35206: doc: fix doxygen links to threads in developer-notes.md faf7e389736 ci: refactor: Avoid warning: INSTALL_BCC_TRACING_TOOLS: unbound variable 85c27c9de56 Merge bitcoin/bitcoin#35394: test: remove unnecessary rpc calls from feature_dbcrash 42330922dd8 wallet, test: remove -walletrbf startup option from wallet_backwards_compatibility.py 8cb6e405d88 wallet, test: remove -walletrbf startup option from wallet_listtransactions.py 0ee94b2fef0 wallet, test: remove -deprecatedrpc=bip125 from wallet_listtransactions.py 5e833e068d7 wallet, test: -walletrbf startup option from wallet_bumpfee.py a2a2b1745f0 wallet, test: remove -walletrbf startup option from rpc_psbt.py 615c0aefa8f Merge bitcoin/bitcoin#35391: test: Use operator<< for time_points instead of manual TickSinceEpoch c17cc76a187 test: speed up feature_dbcrash 0687438e94d Merge bitcoin/bitcoin#35372: refactor: Enhance type safety in overflow operations fad4f417d15 test: Use operator<< for time_points instead of manual TickSinceEpoch 51dd90fb505 refactor: Merge announce_cmpct_block() defs into one d846444d012 guix: Split manifest into build and codesign manifests 0b9e10ad404 guix: Update `python-signapple` and wrap with OpenSSL paths 3962138cc03 test: add IPC submitBlock functional test 5b60f69e40a mining: add submitBlock IPC method to Mining interface 813b4a80d7f refactor: introduce SubmitBlock helper a3fe455a953 wallet: refactor to read -walletrbf only once instead of twice 9c150222604 Merge bitcoin/bitcoin#35337: doc: add feature deprecation and removal process to developer notes a4157fc24a2 Merge bitcoin/bitcoin#33966: refactor: disentangle miner startup defaults from runtime options ac9424fdc63 Merge bitcoin/bitcoin#35145: validation: fix misleading VerifyDB summary log 9767e80b213 Merge bitcoin/bitcoin#35296: doc: Fix broken links in dev notes, move sections 9ec4efebd1e Merge bitcoin/bitcoin#35015: bitcoin-cli: note -rpcclienttimeout is not implemented for IPC connections b43a9363556 Merge bitcoin/bitcoin#33974: cmake: Check dependencies after build option interaction d5188b55924 Merge bitcoin/bitcoin#35363: test: Allow --usecli in more tests 743bf350f21 Merge bitcoin/bitcoin#35049: test: remove circular dependency between authproxy and util fa24693819e test: Allow --usecli in tests that already support it fa8d4d5c35e test: Catch CalledProcessError to support --usecli in feature_dbcrash.py faf0f848ef1 test: use echojson to allow rpc_named_arguments.py --usecli faf993ee442 test: Stop node before modifying config to support rpc_users.py --usecli dd0dea3e898 Merge bitcoin/bitcoin#34917: wallet: mark bip125-replaceable RPC key and walletrbf startup option as deprecated acea6f2caf8 Merge bitcoin/bitcoin#35251: wallet: Fix for duplicate external signers case 801e3bfe38e chainparams: add overloads for RegTest and SigNet with no options 4995c00a9cc chainparams: make deployment configuration available on all test networks 0774eaaf0c2 util: Require integers for SaturatingAdd() and AdditionOverflow() 32d072a49f3 doc: add release notes for #35319 d01b461f71e net: ensure no direct private broadcast connections fd230f942d8 net: use the proxy if overriden when doing v2->v1 reconnections a815e3e2629 rpc: Correct type for tx_sigops 7be0d6fa180 test: remove the lazy import of util in authproxy 779f4446803 test: move out JSONRPCException from authproxy to util de925455c80 Merge bitcoin/bitcoin#35141: fuzz: apply node context reset pattern to p2p_handshake 2e9fdcc6da6 doc: add feature deprecation and removal process to developer notes fa4fc8c1d7b test: Set TestNode url field early, so that feature_loadblock.py --usecli works 5faf2ad8802 doc: add release notes for deprecation of wallet rbf & bip125 fields aba24a9b62c wallet: remove "RPC Only" from -walletrbf option help description 9f7b08c61ca Merge bitcoin/bitcoin#35334: test: Allow --usecli in more tests b9f0040caf4 Merge bitcoin/bitcoin#34614: ci: Put space and non-ASCII char in scratch dir f28cd7587b0 Merge bitcoin/bitcoin#35348: ci: switch to GitHub cache for all runners 59918de329a Merge bitcoin/bitcoin#34801: ci: Enable pipefail in 03_test_script.sh e4f033789cc Merge bitcoin/bitcoin#35324: test: Document rare failure in test_inv_block better 033a56ccb2f Merge bitcoin/bitcoin#34342: cli: Replace libevent usage with simple http client c03107acf50 ci: switch to GitHub cache for all runners 908cc9d30b9 Merge bitcoin/bitcoin#35344: kernel: improve BITCOINKERNEL_WARN_UNUSED_RESULT usage e91f8713ac0 Merge bitcoin/bitcoin#35349: ci: Fix `path` input for vcpkg downloads cache 3e8e21b2efc txgraph: avoid moving primitive members d9f94aa882a rpc: avoid moving RPC enum types b67baed4e7e coins: avoid moving `COutPoint` values 1e5d3b4f0da doc: add release note for mining option validation 0317f52022c ci: enforce iwyu for touched files 8c58f63578a refactor: have mining files include what they use 3bb6498fb0f mining: store block create options in NodeContext 4637cd157da mining: reject invalid block create options 8daac1d6eba mining: add block create option helpers 128da7c3ff8 miner: add block_max_weight to BlockCreateOptions fa81e51eaee mining: parse block creation args in mining_args 020166080cf mining: use interface for tests, bench and fuzzers 44082bea479 interfaces: make Mining use const NodeContext d4368e059cf move-only: add node/mining_types.h 6aeb1fbea23 test: cover IPC blockmaxweight policy 63b23ea1e94 test: regression test for waitNext mining policy 24750f8b31a test: add createNewBlock failure helper 63ee9cd15b6 test: misc interface_ipc_mining.py improvements faf02674b36 refactor: Set TestNode.cli only after RPC is connected fae376cafb0 refactor: Inline get_rpc_proxy fa00c7c7a41 test: Allow rpc_bind.py --usecli fa8f25118c0 refactor: Use create_new_rpc_connection in wallet_multiwallet.py fa3ae6c7d3c test: Allow feature_shutdown.py --usecli fa2a3683d51 test: Allow mining_getblocktemplate_longpoll.py --usecli 735b1cf4311 Merge bitcoin/bitcoin#34806: refactor: logging: Various API improvements a56b4ead414 Merge bitcoin/bitcoin#35017: mempool: remove all subsequent tx in pkg on failure 00e9df90c85 Merge bitcoin/bitcoin#35333: qa: use NORMAL_GBT_REQUEST_PARAMS consistently in functional tests 37d7ce47c5d Merge bitcoin/bitcoin#35350: test: suppress ECONNABORTED in wait_for_rpc_connection on Windows 18c1cc65e94 kernel: improve BITCOINKERNEL_WARN_UNUSED_RESULT usage 7209eb77902 test: suppress ECONNABORTED in wait_for_rpc_connection on Windows 0553ce5ddb3 Merge bitcoin/bitcoin#35316: musig: Reject empty pubkey list in GetMuSig2KeyAggCache e4f1e43103c ci: Fix `path` input for vcpkg downloads cache fa99a3ccace ci: Enable pipefail in 03_test_script.sh d61053d97be build: Drop libevent from bitcoin-cli link libraries 798d051c800 cli: Remove libevent usage ca5483a6628 qa: use NORMAL_GBT_REQUEST_PARAMS consistently bd0942bbd98 Merge bitcoin/bitcoin#34887: fuzz: target CDBWrapper 29400537610 Merge bitcoin/bitcoin#33223: coinselection: Tiebreak SRD eviction by weight 5ccb698f53a Merge bitcoin-core/gui#936: Remove opt-in RBF 211e1053bfd Merge bitcoin/bitcoin#32220: cmake: Get rid of undocumented `BITCOIN_GENBUILD_NO_GIT` environment variable ecf20317cb5 Merge bitcoin/bitcoin#35270: doc: Document minimum versions for Xcode CLT and MSVC 97f7cc02332 wallet: mark -walletrbf startup option as deprecated c4a7613e6a7 wallet: mark `bip125-replaceable` key as deprecated in transaction RPCs 8ee5622455c Merge bitcoin/bitcoin#35338: qa: regenerate hardcoded regtest chain for kernel lib unit tests 131fa570b95 test: Add test for BuildSkip() and skip heights c6dbf3158b4 Merge bitcoin/bitcoin#35304: kernel: doc: document wipe lifecycle and best entry nullability f05b1a3532b rpc: Fix for duplicate external signers case 97d08d62baf refactor: store wallet names to MigrationResult 98f706c698a qa: regenerate hardcoded regtest chain for kernel lib unit tests ac9aa71b7f9 mempool: remove all subsequent tx in pkg on failure df7ed5f3554 chainparams: encapsulate deployment configuration logic b63ef20d545 test: add fuzz harness for CDBWrapper 32169c3855f dbwrapper: accept optional testing leveldb::Env in DBParams 8d390c93fc5 dbwrapper: make max_file_size a configurable DBParams field 376e7ef07cf util: Expose IOErrorIsPermanent in sock header b796bf44f33 Merge bitcoin/bitcoin#35228: wallet: use `outpoint` when estimating input size 3158b890e17 Merge bitcoin/bitcoin#33765: doc: update interface, --stdin flag, `signtx` (#31005) 21edcc47e23 Merge bitcoin/bitcoin#35328: test: restore assertion that tx contains exactly 2500 sigops 5d562430de9 netbase: Add timeout parameter to ConnectDirectly fa37c6a529f test: [move-only] Extract create_new_rpc_connection a988ac592fb cli: Add HTTPResponseHeaders class for parsing response headers ae73b69b527 test: restore assertion that tx contains exactly 2500 sigops a7df1bd7ca2 Merge bitcoin/bitcoin#34537: crypto: fix incorrect variable names in SHA-256 ARM intrinsics 5570b86fa7f Merge bitcoin/bitcoin#33160: bench: Add more realistic Coin Selection Bench 239424064b2 Merge bitcoin/bitcoin#35189: kernel: document validation state outputs as overwritten in-place 0358c26d427 kernel: document overwritten validation state outputs 489da5df60f Merge bitcoin/bitcoin#33856: kernel: Refactor process_block_header to return btck_BlockValidationState fa890988889 test: Document rare failure in test_inv_block better ce2044a91dd Merge bitcoin/bitcoin#33362: Run feature_bind_port_(discover|externalip).py in CI 2284288e9a7 Merge bitcoin/bitcoin#35279: psbt, test: remove address type restrictions in test 278b9e39df2 Merge bitcoin/bitcoin#34934: fuzz: exercise ForNode/ForEachNode callbacks in connman fuzz harness 88d9bc5aa4f kernel: Return btck_BlockValidationState from process_block_header API ed15e14b636 Merge bitcoin/bitcoin#35193: test: avoid non-loopback network traffic from node_init_tests/init_test 4f348c2d730 Merge bitcoin/bitcoin#28802: ArgsManager: support command-specific options c7056ff03f6 Merge bitcoin/bitcoin#34893: psbt: preserve proprietary fields when combining PSBTs 8ce84321cea musig: Reject empty pubkey list in GetMuSig2KeyAggCache b2a3ca3df90 Merge bitcoin/bitcoin#35117: i2p: clean up SESSION CREATE error logging 7802e578c3f Merge bitcoin/bitcoin#34860: mining: always pad scriptSig at low heights, drop include_dummy_extranonce da769855d0c test: add PSBT proprietary merge regression coverage 3f5b3c7a801 psbt: preserve proprietary fields when combining PSBTs 6189335f6bf kernel: doc: document wipe lifecycle and best entry nullability ed1795aa172 Merge bitcoin/bitcoin#35285: bench: add benchmark for GetMappedAS() 379b9fbf036 Merge bitcoin/bitcoin#34225: refactor, key: move `CreateMuSig2{Nonce,PartialSig}` functions to `musig.{h,cpp}` module c471c5085b2 common: Add unused UrlEncode function 9687ef1bd95 ci: Tolerate unused free functions in intermediate commits 02b2c411034 logging: use util/log.h where possible 57d7495fe5c IWYU fixes 611878b46f7 scripted-diff: logging: Drop LogAcceptCategory 34332dba2f6 util/log, logging: Provide ShouldDebugLog and ShouldTraceLog instead of a generic ShouldLog abea304dd6d logging: Move GetLogCategory into Logger class 58113e58334 util/log: Rename LogPrintLevel_ into detail_ namespace f69d1ae56db util/log: Provide util::log::NO_RATE_LIMIT to avoid rate limits 72e92d67df7 logging: Protect ShrinkDebugFile by m_cs faf6afd99df doc: Move mutex and thread section into guideline section fa514caad75 doc: move-only Valgrind section fa0202f31da doc: move-only Python section fa37606c656 doc: Regroup clang-tidy rules fa9c2ddea9b doc: Fix to use lower-case anchors in links to C++ Core Guidelines a154c05d495 cmake: Check dependencies after build option interaction 096bb0b5c05 bench: add benchmark for GetMappedAS() b6c36704428 i2p: clean up SAM error logging 1c500b17098 test: avoid non-loopback network traffic from node_init_tests/init_test fa2afba28b5 p2p: Release m_peer_mutex early in InitiateTxBroadcastToAll 3381855e51c doc: external signer: update interface, --stdin flag, IPC-command signtx, contains updates from #33947 ddb94fd3e10 Merge bitcoin/bitcoin#35289: fuzz: Fix timeout in `txorphan` 3142e5f8cf4 doc: Add release notes for #32220 b71cd5c1622 cmake: Skip using git when building from source tarball or as subproject fe941938e84 cmake: Remove unnecessary `BITCOIN_GENBUILD_NO_GIT` environment variable 9a2cced23a6 cmake, refactor: Move `find_package(Git)` to `src/CMakeLists.txt` 3cab711d695 Merge bitcoin/bitcoin#35284: fuzz: use ImmediateBackgroundTaskRunner to silence DEBUG_LOCKORDER 004a7e3cfbc fuzz: Fix txorphan timeout by limiting block weight 7777a92a927 ci: Use path with spaces on windows as well fac6c4270da ci: Put space and non-ASCII char in scratch dir fa387598236 ci: Require $FILE_ENV cad5f560458 Merge bitcoin/bitcoin#29136: wallet: `addhdkey` RPC to add just keys to wallets via new `unused(KEY)` descriptor 9961229360c Merge bitcoin/bitcoin#31298: rpc: combinerawtransaction now rejects unmergeable transactions c680cfe3436 Merge bitcoin/bitcoin#35123: wallet: remove outdated arguments from chain scanning methods a145fa881a2 Merge bitcoin/bitcoin#35156: dbwrapper: reuse scratch `DataStream` buffers 04003e1fa37 Merge bitcoin/bitcoin#35274: doc: clarify libfuzzer-nosan preset uses build_fuzz_nosan dir 5309c905422 Merge bitcoin/bitcoin#35283: doc: mention -DWITH_ZMQ=ON in BSD build guides 90eda67bb8f Remove opt-in RBF fa3d7ce11c6 doc: Document minimum versions for Xcode CLT and MSVC 2ef6679c2ca test: Check that MuSig2 signing does not reuse nonces 8544537f41d mining: drop unused include_dummy_extranonce option 58eeab790d9 mining: only pad with OP_0 at heights <= 16 00d22328b05 mining: pad coinbase to fix createNewBlock at heights <=16 801d36f55b6 fuzz: use ImmediateBackgroundTaskRunner to silence DEBUG_LOCKORDER ca93ab808c4 doc: mention -DWITH_ZMQ=ON in BSD build guides 605ff37403f test: bad-cb-length for createNewBlock() at low heights 1966621b768 test: refactor IPC mining test to use script_BIP34_coinbase_height 8ba5f68b1df refactor, key: move `CreateMuSig2PartialSig` to `musig.{h,cpp}` module d087f266fc2 refactor, key: move `CreateMuSig2Nonce` to `musig.{h,cpp}` module f36d89f4363 key: add `GetSecp256k1SignContext` access function 0065f354a7e doc: clarify libfuzzer-nosan preset uses build_fuzz_nosan dir 81348576cc4 psbt, test: remove address type restrictions in test 82733e61dee Merge bitcoin/bitcoin#35277: ci: Enable ruff ambiguous-unicode-character checks fe2bb43e437 Merge bitcoin/bitcoin#35044: contrib: Fix NameError in signet miner gbt() fa9c919678c refactor: Use ignore-list over verbose select-list cd8d3bd937b wallet: use outpoint when estimating input size fa9b01adecc ci: Enable ruff ambiguous-unicode-character checks 09a9bb35367 Merge bitcoin/bitcoin#34547: lint: modernise lint tooling 21a1380c134 key: cleanse ChainCode on destruction bb05986c0a8 musig: Include pubnonce in session id 3f44f9aef7c test: Add coverage for m_blocks_unlinked invariant in LoadBlockIndex 7e19ce200b2 rpc: Fix descriptorprocesspsbt internal bug on invalid signatures 10ca73c02cb Merge bitcoin/bitcoin#34580: build: Add a compiler minimum feature check 1af8e0c4e89 Merge bitcoin/bitcoin#35183: doc: recommend script_flags instead of deployments.taproot f24a7b5f759 doc: recommend script_flags instead of deployments.taproot ccbd00ab87c Merge bitcoin/bitcoin#35152: doc: clarify local IWYU workflow and pragmas b3a3f88346d crypto: cleanse HMAC stack buffers after use 88bfe89793d Merge bitcoin/bitcoin#35227: wallet: check the final BDB page LSN during migration 21599ea612e Merge bitcoin/bitcoin#35241: cmake: Set `CTEST_NIGHTLY_START_TIME` for CDash Nightly pipelines d406cffafdd Merge bitcoin/bitcoin#34228: depends: Unset `SOURCE_DATE_EPOCH` in `gen_id` script 4defc466a22 cmake: Set `CTEST_NIGHTLY_START_TIME` for CDash Nightly pipelines 1f28ed6b6af Merge bitcoin/bitcoin#35235: contrib: mv verify-commits/pre-push-hook.sh to maintainer tools repo 8396b7f2a3b Merge bitcoin/bitcoin#35236: doc: typo roundup 2b7f5914c42 Merge bitcoin/bitcoin#35222: cmake: add CTestConfig.cmake 888857c5514 mv contrib/verify-commits/pre-push-hook.sh to maintainer tools repo d9b57eecadf doc: fix whitespace in build-osx.md e7d4a7e3f9a doc: fix stale autotools reference and SQLite typo 3f9c55426a1 Merge bitcoin/bitcoin#35230: ci: Move --usecli --extended from i386 task to alpine task fad61896e86 ci: Move --usecli --extended from i386 task to alpine task 7c84a2bdb16 Merge bitcoin/bitcoin#35219: doc: Add my key to SECURITY.md cf5c962a39f Merge bitcoin/bitcoin#34991: test: fix feature_index_prune.py bug when using --usecli 6690117c7ac Merge bitcoin/bitcoin#35218: test: fix `P2SH` script in coins cache fuzz target 5b11108145c Merge bitcoin/bitcoin#35223: refactor: [rpc] Remove confusing and brittle integral casts (take 3) e2b0984f995 wallet: check BDB last page LSN 51ee8ca1683 doc: clarify pruning impact on wallet sync d5adb9d09b8 doc: fix doxygen links to threads in developer-notes.md fa864b937e1 refactor: [rpc] Remove confusing and brittle integral casts (take 3) 9f7a2293c48 depends: Unset `SOURCE_DATE_EPOCH` in `gen_id` script 086894098ec cmake: add CTestConfig.cmake 0651a1fc154 doc: Add Niklas Goegge's key to SECURITY.md ac58e6c53c2 test: fix P2SH output in coins cache fuzz aa1d0d7cd73 Merge bitcoin/bitcoin#35209: validation: correct lifetime of precomputed tx data 0429c503fb0 bench: Replace Coin Selection bench ec1eefda774 bench: Remove unnecessary wallet parameter e6c4ffb9560 bench: Fix type mismatch d7ed2840acc Merge bitcoin/bitcoin#21283: Implement BIP 370 PSBTv2 1ed799fb21d validation: correct lifetime of precomputed tx data 371eac8069a fuzz: exercise ForNode/ForEachNode callbacks in connman fuzz harness 08c3c37d123 bitcoin-cli: note -rpcclienttimeout is not implemented for IPC connections c89c8ddbb36 Merge bitcoin/bitcoin#33300: fuzz: compact block harness 4bf1701f58b Merge bitcoin/bitcoin#33796: kernel: Expose `CheckTransaction` consensus validation function 999e9dbfb43 Merge bitcoin/bitcoin#35202: ci: restore sockets in `i686, no IPC` job 5a2e3592137 clarify blockfilterindex cache allocation rationale 224120bf129 Merge bitcoin/bitcoin#32394: net: make m_nodes_mutex non-recursive 11c9ef92a8d ci: unconfine seccomp for i686 no IPC 86718e45896 scripted-diff: rename ABEF_SAVE/CDGH_SAVE to ABCD_SAVE/EFGH_SAVE in SHA-256 ARM intrinsics 8f4a3ba8972 Merge bitcoin/bitcoin#35165: cmake: Remove NetBSD-specific workaround from `add_boost_if_needed` b1ff4773ba7 Merge bitcoin/bitcoin#34544: wallet: Disallow wallet names that are paths including `..` and `.` elements db98e357d3e Merge bitcoin/bitcoin#35018: wallet, bench: Use Nanobench setup() for wallet benchmarks, and remove DuplicateMockDatabase 18d003c3dcc Merge bitcoin/bitcoin#34916: contrib: override system locale in gen-manpages.py 567ff2b6d69 Merge bitcoin/bitcoin#33196: docs: clarify RPC credentials security boundary 3c2646eacc1 Merge bitcoin/bitcoin#34026: fuzz: Add tests for `CCoinControl` methods bfbf1a7ef3e kernel: Expose btck_transaction_check consensus function 404470505a8 Merge bitcoin/bitcoin#34256: test: support `get_bind_addrs` and `feature_bind_extra` on macOS & BSD 25100fc28da Merge bitcoin/bitcoin#35186: util, iwyu: Add missed header d28179bac90 util, iwyu: Add missed header 32e479f7a5a Merge bitcoin/bitcoin#34669: feefrac: drop comparison and operator{<<,>>} for sorted wrappers 11713c9fa91 net: make CConnman::m_nodes_mutex non-recursive aec4fa2de00 net: drop the only recursive usage of CConnman::m_nodes_mutex 8a739a55105 build: allow ipc fuzz builds eed7af666b6 doc: Add release note for disallowing some wallet path names 3d7f0e4ed5a wallettool: Use GetWalletPath to determine the wallet path ef499680c8d Merge bitcoin/bitcoin#34176: wallet: crash fix, handle non-writable db directories a39cc16b434 doc: Release note for addhdkey 89b9a01b4ea wallet, rpc: Disallow importing unused() to wallets without privkeys 35bbee63746 wallet, rpc: Disallow import of unused() if key already exists f3f8bcbd1df wallet: Add addhdkey RPC 9fa4076b20a test: Test merging implicit PSBTv0 with explicit PSBTv0 1660c18232a doc: Release notes for psbtv2 470e52a5f81 fuzz: Enforce additional version invariants in PSBT fuzzer 5bd0579c09c test: Tests for PSBT AddInput and AddOutput b8b6e7f0c29 tests: Add PSBT unit test for ComputeTimeLock 0bc1c2e5084 tests: Add test vectors from BIP 370 e0e4dbdeb5c psbt: Change default psbt version to 2 bcc1dca77b3 Add psbt_version to PSBT RPCs and default to v2 ab38c301953 Implement PSBTv2 field merging 93e339e29ff Implement PSBTv2 AddInput and AddOutput b39c86ae606 Allow specifying PSBT version in constructor dcc9a3c8dfd Implement PSBTv2 in decodepsbt 5770dbd39fc Add PSBT::ComputeLockTime() 863cf47b33e Update test_framework/psbt.py for PSBTv2 925161eaf0c Implement PSBTv2 fields de/ser d9cf658ee01 Restrict joinpsbts to PSBTv0 only 3da0e160124 Replace PSBT.tx with PSBT::GetUnsignedTx and PSBT::GetUniqueID c568624ff29 psbt: Return std::optional from PrecomputePSBTData 092de4f1f6c Replace PSBT::GetInputUTXO with PSBTInput::GetUTXO 1d1ae6f0c4f wallet, test: Remove DuplicateMockDatabase 82bc280de47 test: Simple test for importing unused(KEY) 80c29bc6f14 descriptor: Add unused(KEY) descriptor 82c9fe31793 psbt: Use PSBTInput and PSBTOutput fields instead of accessing global tx 95897507e9e psbt: AddInput and AddOutput should take only PSBTInput and PSBTOutput 1b7d323a726 Add PSBTInput::GetOutPoint 543d3e1cdcf psbt: add PSBTv2 global tx fields c01c7f068c5 psbt: Remove default constructor 9671aa08c2a psbt: add tx input and output fields in PSBTInput and PSBTOutput 990b084f11c Have PSBTInput and PSBTOutput know the PSBT's version 7eacc21ff67 psbt: make PSBT structs into classes f926c326bb8 gui: Store PSBT in std::optional in PSBTOperationsDialog 1e2d146b47c psbt: Refactor duplicate key lookup and size checks 88384180d3e test: PSBTs should roundtrip through RPCs that do nothing 001877500dc test: construct psbt with unknown field programmatically 0cb884e6df8 psbt: Fill hash preimages and taproot builder from SignatureData 57820c472b4 bench: Utilize setup() for WalletLoading and use a real database 9a7604fd257 bench: Use setup() in WalletMigration to prepare the legacy wallet 426a94e7bd7 bench: Utilize setup() in WalletEncrypt to create the encryption wallet d672455d201 bench: Utilitze setup() in WalletBalance for marking caches dirty 61412ef887f bench: Utilize setup() in WalletCreate to cleanup previous wallets 451fdd26a4f test: wallet: Constructing a DSPKM that can't TopUp() throws. 32946e0291f wallet: Setup new autogenerated descriptors on construction e20aaff70f0 wallet: Construct ExternalSignerSPKM with the new descriptor aa4f7823aa1 wallet: include keys when constructing DescriptorSPKM during import 6538f691357 fuzz: Skip adding descriptor to wallet if it cannot be expanded 8be5ee554bb test: wallet: Check that loading wallet with both unencrypted and encrypted keys fails. 80b0c259921 wallet: Load everything into DescSPKM on construction f713fd1725f refactor: wallet: Don't reuse WALLET_BLANK flag for born-encrypted wallets. cd912c4e108 wallet: Consolidate generation setup callers into one function 0301c758ea0 wallet migration, fuzz: Migrate hd seed once 2424e528367 lint: doc: detail lint tool install methods 5fefa5a654e Don't pin Python patch version fd15b55c2ef lint: use requirements.txt 5f4d3383daa lint: switch to ruff for formatting and linting a53b81ce4e6 lint: switch to uv for python management in linter 2b0dc0d2280 wallet: Disallow . and .. from wallet names d084bc88beb doc: clarify IWYU workflow 7c7cec45678 ci: update IWYU patch reference 75cf9708a05 ci: add one more routable address to the VMs (docker containers) 1b93983bf5c test: make feature_bind_port_(discover|externalip).py auto-detect the skip condition 032223f403d dbwrapper: reuse iterator scratch stream 7403c0f907d dbwrapper: guard `CDBBatch` scratch streams cb1ab0a7168 test: cover repeated dbwrapper stream use 31ce729b28e streams: add `ScopedDataStreamUsage` 0e4b0bacecf validation: Don't add pruned blocks to m_blocks_unlinked on startup c8d688f41cc fuzz: send blocktxn messages in cmpctblock harness d0333bfe990 fuzz: send compact blocks in cmpctblock harness 3c58efe2acf fuzz: mine blocks and send headers for them in cmpctblock harness 651622432d2 fuzz: create and send transactions in cmpctblock harness 8c9a3fd0e87 net, fuzz: move CMPCTBLOCK_VERSION to header, use in cmpctblock harness 6cd480f62f6 fuzz: initial compact block fuzz harness 1d669637495 log: clarify VerifyDB summary log a9301cfa073 refactor: disable default std::hash for CTransactionRef 47d68cd981f ci: backport iwyu PR 2013 std::hash mapping e2ef54b8ba8 cmake: Remove NetBSD-specific workaround from `add_boost_if_needed` 6d86184a8bc rpc: combinerawtransaction now rejects unmergeable transactions 08925d5ee75 test: add coverage for loading a wallet in a non-writable directory 0218966c0dc test: add coverage for wallet creation in non-writable directory bc0090f1d60 wallet: handle non-writable db directories a49bc1e24e6 ci: add --extended when using --usecli 904c0d07bb3 util/stdmutex: Drop StdLockGuard 735b25519aa support: clamp RLIMIT_MEMLOCK to size_t 8ab4b9fc856 init: clamp fd limits to int 4afbabdcef8 Fix startup failure with RLIM_INFINITY fd limits 89af67d79f2 tests: Add some fuzz test coverage for command-specific args 92df7858592 tests: Add some test coverage for ArgsManager::AddCommand 33c8090be95 ArgsManager: automate checking for correct command options 186354a0d8a bitcoin-wallet: use command-specific options d21e82b7d64 ArgsManager: support command-specific options dfe5d6a81dc fuzz: apply node context reset pattern to p2p_handshake dc84a310143 wallet: remove fUpdate argument from AddToWalletIfInvolvingMe 94845df073a wallet: remove update_tx argument from SyncTransaction 6e796e1f473 wallet: remove fUpdate argument from ScanForWalletTransactions 54e4c0be8f1 wallet: remove update argument from RescanFromTime method b2de59d486d wallet, bdbro: Validate btree page levels dc3a2b9c3b2 wallet, bdbro: Enforce overflow data lengths 701bc2dc02f contrib: Fix NameError in signet miner gbt() 7249b376a0a opt: Skip UTXOs with worse waste, same eff_value 52042918606 opt: Skip evaluation of equivalent input sets ba1807b981a coinselection: Track effective_value lookahead fa226ab902f coinselection: BnB skip exploring high waste 7ecea1dc5dc coinselection: Track whether BnB completed 3ca0f36164b coinselection: rewrite BnB in CoinGrinder-style 2e737398372 coinselection: Track BnB iteration count in result eff9e798b95 coinselection: Tiebreak SRD eviction by weight d06dabf26be node: allocate index caches proportional to usage patterns 1950da94fce test: enable `rpc_bind` on macOS and BSD 7236a055035 test: enable `feature_bind_extra` on macOS and BSD 5603ae0ffa3 test: fix send_batch_request to pass callables when using --usecli fedeff7f201 crypto: disable ASan instrumentation of SSE4 SHA256 for GCC 758f208cc17 contrib: override system locale in gen-manpages.py 2104282ddde fuzz: Add tests for CCoinControl methods 43b09b993d0 fuzz: Improve oracle for existing CCoinControl tests a434d660250 cmake, translation: Specify English as target language explicitly 4097d6d968e cmake, translation: Sort messages within contexts alphabetically 312ab8ab0a8 cmake, translation: Skip source locations in TS files 4f553bd0da2 cmake, translation: Remove TS to XLIFF conversion 8c30055458b translation: Switch to Qt TS source file ac1ccc5bd91 build: Add CTAD feature check 9f273f1c1c5 build: Add path to doc recommended versions for CLANG, GCC and MSVC 55d37546faa Bugfix: GUI/Intro: Handle errors from SelectParams the same as if during InitConfig 1aa78cdab6b clusterlin: adopt STL ranges algorithms (refactor) 747da253609 feefrac: drop comparison and operator{<<,>>} for sorted wrappers 938312d7a6d docs: clarify RPC credentials security boundary git-subtree-dir: depend/bitcoin git-subtree-split: 15a7a4ed7c4d0952ce966087e55a9a3e2f28ec1d --- .editorconfig | 2 +- .gitattributes | 1 + .github/ISSUE_TEMPLATE/bug.yml | 1 + .github/ISSUE_TEMPLATE/feature_request.yml | 5 + .github/ISSUE_TEMPLATE/good_first_issue.yml | 44 - .github/ISSUE_TEMPLATE/gui_issue.yml | 5 + .github/PULL_REQUEST_TEMPLATE.md | 9 +- .../restore}/action.yml | 16 +- .../actions/cache/restore/internal/action.yml | 43 + .../{save-caches => cache/save}/action.yml | 16 +- .../actions/cache/save/internal/action.yml | 28 + .github/actions/configure-docker/action.yml | 49 +- .../actions/configure-environment/action.yml | 4 +- .github/ci-test-each-commit-exec.py | 4 +- .github/ci-windows-cross.py | 54 +- .github/ci-windows.py | 4 +- .github/workflows/ci.yml | 160 +- .python-version | 2 +- .tx/config | 6 +- CMakeLists.txt | 184 +- CONTRIBUTING.md | 37 +- CTestConfig.cmake | 2 + SECURITY.md | 2 +- ci/README.md | 18 +- ci/lint/01_install.sh | 25 +- ci/lint/06_script.sh | 2 +- ci/lint/requirements.txt | 4 + ci/lint_imagefile | 9 +- ci/test/00_setup_env.sh | 17 +- ci/test/00_setup_env_arm.sh | 3 +- ci/test/00_setup_env_freebsd_cross.sh | 21 +- ci/test/00_setup_env_i686_no_ipc.sh | 8 +- ci/test/00_setup_env_mac_cross.sh | 1 + ci/test/00_setup_env_mac_cross_intel.sh | 1 + ci/test/00_setup_env_mac_native.sh | 2 +- ci/test/00_setup_env_native_alpine_musl.sh | 3 +- ci/test/00_setup_env_native_asan.sh | 4 +- ci/test/00_setup_env_native_chimera_lto.sh | 3 +- ci/test/00_setup_env_native_fuzz.sh | 4 +- ci/test/00_setup_env_native_fuzz_with_msan.sh | 6 +- .../00_setup_env_native_fuzz_with_valgrind.sh | 4 +- ci/test/00_setup_env_native_iwyu.sh | 4 +- ci/test/00_setup_env_native_msan.sh | 4 +- .../00_setup_env_native_previous_releases.sh | 2 +- ci/test/00_setup_env_native_tidy.sh | 4 +- ci/test/00_setup_env_native_tsan.sh | 5 +- ci/test/00_setup_env_native_valgrind.sh | 4 +- ci/test/00_setup_env_netbsd_cross.sh | 38 + ci/test/00_setup_env_openbsd_cross.sh | 38 + ci/test/00_setup_env_riscv_bare_cross.sh | 37 + ci/test/00_setup_env_s390x.sh | 2 +- ci/test/01_base_install.sh | 62 +- ci/test/01_iwyu.patch | 2 +- ci/test/02_iwyu_hash.patch | 44 + ci/test/02_run_container.py | 4 + ci/test/03_test_script.sh | 53 +- ci/test/link-riscv.sh | 73 + ci/test/wrap-valgrind.py | 32 + ci/test/wrap-valgrind.sh | 18 - ci/test_imagefile | 5 +- cmake/bitcoin-build-config.h.in | 2 +- cmake/introspection.cmake | 5 +- cmake/leveldb.cmake | 4 - cmake/module/AddBoostIfNeeded.cmake | 11 - cmake/module/AddWindowsResources.cmake | 16 +- cmake/module/CheckCXXFeatures.cmake | 43 + cmake/module/FindLibevent.cmake | 86 - cmake/module/FindQRencode.cmake | 38 +- cmake/module/GenerateSetupNsi.cmake | 19 - cmake/module/Maintenance.cmake | 35 +- .../module/TestAppendRequiredLibraries.cmake | 1 - cmake/script/GenerateBuildInfo.cmake | 105 +- .../script/GenerateWindowsInstaller.cmake.in | 40 + contrib/devtools/gen-manpages.py | 24 +- contrib/guix/guix-attest | 15 +- contrib/guix/guix-build | 161 +- contrib/guix/guix-clean | 7 +- contrib/guix/guix-codesign | 56 +- contrib/guix/guix-verify | 7 +- contrib/guix/libexec/build.sh | 410 -- contrib/guix/libexec/build_linux.sh | 80 + contrib/guix/libexec/build_linux_gui.sh | 80 + contrib/guix/libexec/build_macos.sh | 58 + contrib/guix/libexec/build_macos_gui.sh | 64 + contrib/guix/libexec/build_win.sh | 63 + contrib/guix/libexec/build_win_gui.sh | 68 + contrib/guix/libexec/codesign.sh | 8 +- contrib/guix/libexec/package.sh | 144 + contrib/guix/libexec/prelude.bash | 38 +- contrib/guix/libexec/setup.sh | 195 + .../guix/{manifest.scm => manifest_build.scm} | 239 +- contrib/guix/manifest_codesign.scm | 179 + contrib/guix/manifest_gui.scm | 30 + contrib/guix/security-check.py | 4 +- contrib/guix/symbol-check.py | 12 +- contrib/seeds/README.md | 3 +- contrib/seeds/generate-seeds.py | 8 +- contrib/signet/miner | 6 +- contrib/verify-commits/pre-push-hook.sh | 21 - depends/Makefile | 5 +- depends/README.md | 5 +- depends/config.guess | 17 +- depends/config.sub | 11 +- depends/funcs.mk | 2 +- depends/gen_id | 4 + depends/hosts/freebsd.mk | 43 +- depends/hosts/netbsd.mk | 1 + depends/hosts/openbsd.mk | 1 + depends/packages/boost.mk | 4 +- depends/packages/freetype.mk | 4 +- depends/packages/libevent.mk | 46 - depends/packages/native_capnp.mk | 4 +- depends/packages/native_qt.mk | 5 +- depends/packages/packages.mk | 4 +- depends/packages/qrencode.mk | 2 +- depends/packages/qt.mk | 21 +- depends/packages/qt_details.mk | 12 +- depends/packages/zeromq.mk | 4 +- .../patches/freetype/openbsd_versioning.patch | 31 + depends/patches/libevent/cmake_fixups.patch | 13 - depends/patches/libevent/netbsd_fixup.patch | 23 - depends/patches/libevent/winver_fixup.patch | 122 - depends/patches/qt/fix-gcc16-qcompare.patch | 10 +- .../qt/fix-gcc16-sfinae-qanystringview.patch | 2 +- .../patches/qt/fix-gcc16-sfinae-qchar.patch | 2 +- depends/patches/qt/fix_missed_headers.patch | 32 + .../qt/fix_openbsd_network_kernel.patch | 31 + .../qt/fix_openbsd_plugin_qelfparser.patch | 20 + .../patches/qt/qtbase_platformsupport.patch | 34 - depends/patches/qt/qtbase_plugins_cocoa.patch | 2 +- depends/patches/qt/qtbase_skip_tools.patch | 4 +- depends/patches/zeromq/add_new_include.patch | 123 + depends/toolchain.cmake.in | 2 +- doc/AI_POLICY.md | 38 + doc/JSON-RPC-interface.md | 16 + doc/REST-interface.md | 19 + doc/bips.md | 2 + doc/build-freebsd.md | 12 +- doc/build-netbsd.md | 37 +- doc/build-openbsd.md | 8 +- doc/build-osx.md | 14 +- doc/build-unix.md | 176 +- doc/cjdns.md | 6 +- doc/dependencies.md | 5 +- doc/developer-notes.md | 219 +- doc/external-signer.md | 138 +- doc/fuzzing.md | 2 + doc/i2p.md | 14 +- doc/multisig-tutorial.md | 58 +- doc/offline-signing-tutorial.md | 66 +- doc/reduce-memory.md | 3 +- doc/reduce-traffic.md | 5 +- doc/release-notes-21283.md | 6 + doc/release-notes-26201.md | 7 +- doc/release-notes-29136.md | 6 + doc/release-notes-32220.md | 9 + doc/release-notes-32489.md | 15 + doc/release-notes-32784.md | 9 + doc/release-notes-32800.md | 9 + doc/release-notes-33671.md | 11 + doc/release-notes-33966.md | 9 + doc/release-notes-34544.md | 7 + doc/release-notes-34628.md | 13 + doc/release-notes-34672.md | 11 + doc/release-notes-34779.md | 5 + doc/release-notes-34794.md | 8 + doc/release-notes-34917.md | 9 + doc/release-notes-35182.md | 16 + doc/release-notes-35266 | 7 + doc/release-notes-35267.md | 4 + doc/release-notes-35295.md | 8 + doc/release-notes-35319.md | 20 + doc/release-notes-35406.md | 8 + doc/release-notes-35501.md | 4 + doc/release-notes-35531.md | 12 + doc/release-notes-35592.md | 6 + doc/release-notes-35601.md | 4 + doc/release-notes-35610.md | 6 + doc/release-notes-35634.md | 8 + doc/release-notes-35680.md | 13 + doc/release-notes-35696.md | 8 + doc/release-notes-35836.md | 5 + doc/release-notes-953.md | 5 + doc/release-notes-gui-872.md | 7 + doc/release-notes-removeprunedfunds.md | 6 + doc/release-notes/release-notes-29.4.md | 107 + doc/release-notes/release-notes-30.3.md | 167 + doc/release-notes/release-notes-31.1.md | 140 + doc/release-process.md | 6 +- ruff.toml | 16 + share/qt/translate.cmake | 22 +- share/setup.nsi.in | 22 +- src/.clang-format | 1 + src/.clang-tidy | 4 +- src/CMakeLists.txt | 46 +- src/addrdb.cpp | 2 +- src/addresstype.h | 2 +- src/addrman.cpp | 12 +- src/addrman.h | 34 +- src/addrman_impl.h | 14 +- src/banman.cpp | 2 +- src/banman.h | 4 +- src/base58.h | 3 +- src/bech32.h | 6 +- src/bench/CMakeLists.txt | 5 + src/bench/addrman.cpp | 2 +- src/bench/asmap.cpp | 161 + src/bench/base58.cpp | 1 - src/bench/bech32.cpp | 1 + src/bench/bench.cpp | 9 +- src/bench/bench.h | 5 +- src/bench/bench_bitcoin.cpp | 8 +- src/bench/bip324_ecdh.cpp | 1 + src/bench/block_assemble.cpp | 20 +- src/bench/blockencodings.cpp | 8 + src/bench/ccoins_caching.cpp | 4 +- src/bench/chacha20.cpp | 7 +- src/bench/checkblock.cpp | 8 +- src/bench/checkqueue.cpp | 1 + src/bench/cluster_linearize.cpp | 9 +- src/bench/coin_selection.cpp | 140 +- src/bench/connectblock.cpp | 24 +- src/bench/crypto_hash.cpp | 56 +- src/bench/descriptors.cpp | 2 +- src/bench/disconnected_transactions.cpp | 3 +- src/bench/duplicate_inputs.cpp | 2 +- src/bench/ellswift.cpp | 3 +- src/bench/index_blockfilter.cpp | 8 +- src/bench/load_external.cpp | 3 +- src/bench/lockedpool.cpp | 4 +- src/bench/mempool_ephemeral_spends.cpp | 4 +- src/bench/mempool_stress.cpp | 2 +- src/bench/merkle_root.cpp | 4 +- src/bench/nanobench.h | 41 +- src/bench/obfuscation.cpp | 1 + src/bench/parse_hex.cpp | 3 +- src/bench/peer_eviction.cpp | 2 +- src/bench/poly1305.cpp | 7 +- src/bench/prevector.cpp | 1 + src/bench/readwriteblock.cpp | 14 +- src/bench/rollingbloom.cpp | 3 +- src/bench/rpc_blockchain.cpp | 7 +- src/bench/sign_transaction.cpp | 6 +- src/bench/streams_findbyte.cpp | 2 + src/bench/strencodings.cpp | 5 +- src/bench/txgraph.cpp | 9 +- src/bench/txorphanage.cpp | 15 +- src/bench/uint256_blob.cpp | 91 + src/bench/util_time.cpp | 2 +- src/bench/verify_script.cpp | 12 +- src/bench/wallet_balance.cpp | 23 +- src/bench/wallet_create.cpp | 19 +- src/bench/wallet_create_tx.cpp | 18 +- src/bench/wallet_encrypt.cpp | 91 +- src/bench/wallet_ismine.cpp | 7 +- src/bench/wallet_loading.cpp | 33 +- src/bench/wallet_migration.cpp | 121 +- src/bip324.h | 2 + src/bitcoin-cli.cpp | 548 +- src/bitcoin-tx.cpp | 2 +- src/bitcoin-util.cpp | 61 + src/bitcoin-wallet.cpp | 6 +- src/bitcoind.cpp | 2 + src/blockencodings.cpp | 37 +- src/blockfilter.h | 4 +- src/chain.h | 8 +- src/chainparams.cpp | 83 +- src/chainparamsbase.cpp | 4 +- src/chainparamsseeds.h | 8 +- src/checkqueue.h | 3 +- src/clientversion.h | 2 +- src/cluster_linearize.h | 89 +- src/coins.cpp | 58 +- src/coins.h | 266 +- src/common/args.cpp | 127 +- src/common/args.h | 27 +- src/common/bloom.cpp | 3 +- src/common/bloom.h | 7 +- src/common/config.cpp | 11 +- src/common/init.cpp | 6 +- src/common/interfaces.cpp | 7 +- src/common/messages.cpp | 7 +- src/common/messages.h | 4 +- src/common/netif.cpp | 31 +- src/common/netif.h | 1 + src/common/pcp.cpp | 27 +- src/common/pcp.h | 10 +- src/common/run_command.cpp | 13 +- src/common/settings.cpp | 15 +- src/common/settings.h | 4 +- src/common/signmessage.cpp | 5 +- src/common/system.cpp | 31 +- src/common/system.h | 4 +- src/common/types.h | 1 + src/common/url.cpp | 23 + src/common/url.h | 3 + src/compressor.h | 2 +- src/consensus/amount.h | 4 +- src/consensus/consensus.h | 20 +- src/consensus/merkle.cpp | 8 + src/consensus/merkle.h | 6 +- src/consensus/params.h | 1 + src/consensus/tx_check.cpp | 10 +- src/consensus/tx_verify.cpp | 6 + src/consensus/tx_verify.h | 1 + src/consensus/validation.h | 16 +- src/core_io.cpp | 1 + src/crypto/CMakeLists.txt | 4 +- src/crypto/aes.h | 4 +- src/crypto/hkdf_sha256_32.h | 2 +- src/crypto/hmac_sha256.cpp | 4 + src/crypto/hmac_sha256.h | 2 +- src/crypto/hmac_sha512.cpp | 4 + src/crypto/hmac_sha512.h | 2 +- src/crypto/ripemd160.h | 2 +- src/crypto/sha1.h | 2 +- src/crypto/sha256.h | 2 +- src/crypto/sha256_arm_shani.cpp | 28 +- src/crypto/sha256_sse4.cpp | 23 +- src/crypto/siphash.cpp | 149 +- src/crypto/siphash.h | 167 +- src/dbwrapper.cpp | 77 +- src/dbwrapper.h | 73 +- src/dummywallet.cpp | 2 +- src/external_signer.cpp | 14 +- src/external_signer.h | 15 +- src/hash.h | 14 +- src/headerssync.cpp | 2 +- src/httprpc.cpp | 7 +- src/httpserver.cpp | 1493 +++-- src/httpserver.h | 648 +- src/i2p.cpp | 12 +- src/i2p.h | 8 +- src/index/base.cpp | 24 +- src/index/base.h | 23 +- src/index/blockfilterindex.cpp | 11 +- src/index/blockfilterindex.h | 4 +- src/index/coinstatsindex.cpp | 2 +- src/index/coinstatsindex.h | 2 +- src/index/db_key.h | 6 +- src/index/txindex.cpp | 191 +- src/index/txindex.h | 28 +- src/index/txindex_key.h | 128 + src/index/txospenderindex.cpp | 11 +- src/index/txospenderindex.h | 2 +- src/init.cpp | 131 +- src/init.h | 4 +- src/init/common.cpp | 2 +- src/interfaces/mining.h | 78 +- src/interfaces/node.h | 5 +- src/interfaces/wallet.h | 22 +- src/ipc/CMakeLists.txt | 19 +- src/ipc/capnp/common-types.h | 12 + src/ipc/capnp/mining.capnp | 8 +- src/ipc/capnp/protocol.cpp | 40 +- src/ipc/capnp/protocol.h | 2 +- src/ipc/interfaces.cpp | 28 +- .../.github/workflows/bitcoin-core-ci.yml | 3 +- src/ipc/libmultiprocess/CMakeLists.txt | 20 +- .../cmake/TargetCapnpSources.cmake | 21 +- src/ipc/libmultiprocess/doc/design.md | 4 +- src/ipc/libmultiprocess/doc/usage.md | 2 +- src/ipc/libmultiprocess/doc/versions.md | 55 +- src/ipc/libmultiprocess/include/mp/proxy-io.h | 104 +- .../libmultiprocess/include/mp/proxy-types.h | 60 +- .../libmultiprocess/include/mp/proxy.capnp | 4 + src/ipc/libmultiprocess/include/mp/proxy.h | 23 +- .../libmultiprocess/include/mp/type-context.h | 112 +- .../libmultiprocess/include/mp/type-data.h | 3 +- src/ipc/libmultiprocess/include/mp/type-map.h | 27 +- .../libmultiprocess/include/mp/type-number.h | 2 +- src/ipc/libmultiprocess/include/mp/type-set.h | 24 +- .../include/mp/type-threadmap.h | 1 + .../include/mp/type-unordered-set.h | 42 + .../libmultiprocess/include/mp/type-vector.h | 46 +- src/ipc/libmultiprocess/include/mp/util.h | 30 +- src/ipc/libmultiprocess/include/mp/version.h | 2 +- src/ipc/libmultiprocess/shell.nix | 1 + src/ipc/libmultiprocess/src/mp/gen.cpp | 252 +- src/ipc/libmultiprocess/src/mp/proxy.cpp | 45 +- src/ipc/libmultiprocess/test/CMakeLists.txt | 1 + .../libmultiprocess/test/mp/test/foo-types.h | 2 + .../libmultiprocess/test/mp/test/foo.capnp | 15 +- src/ipc/libmultiprocess/test/mp/test/foo.h | 11 +- .../test/mp/test/listen_tests.cpp | 294 + src/ipc/libmultiprocess/test/mp/test/test.cpp | 220 +- src/ipc/process.cpp | 41 +- src/ipc/process.h | 20 +- src/ipc/protocol.h | 45 +- src/ipc/test/CMakeLists.txt | 9 +- src/ipc/test/fuzz/CMakeLists.txt | 6 + src/ipc/test/fuzz/ipc.cpp | 135 + src/ipc/test/fuzz/ipc_fuzz.capnp | 21 + src/ipc/test/fuzz/ipc_fuzz.h | 26 + src/ipc/test/fuzz/ipc_fuzz_types.h | 11 + src/ipc/test/ipc_test.capnp | 1 + src/ipc/test/ipc_test.cpp | 185 - src/ipc/test/ipc_test.h | 5 +- src/ipc/test/ipc_tests.cpp | 202 +- src/ipc/util.h | 64 + src/kernel/CMakeLists.txt | 2 + src/kernel/bitcoinkernel.cpp | 160 +- src/kernel/bitcoinkernel.h | 341 +- src/kernel/bitcoinkernel_wrapper.h | 131 +- src/kernel/blockmanager_opts.h | 2 +- src/kernel/caches.h | 22 +- src/kernel/chainparams.cpp | 96 +- src/kernel/chainparams.h | 46 +- src/kernel/chainstatemanager_opts.h | 5 +- src/kernel/coinstats.cpp | 10 +- src/kernel/coinstats.h | 4 +- src/kernel/disconnected_transactions.h | 2 +- src/kernel/mempool_options.h | 10 +- src/key.cpp | 156 +- src/key.h | 34 +- src/leveldb/.github/workflows/ci.yml | 12 + src/leveldb/CMakeLists.txt | 26 +- src/leveldb/benchmarks/db_bench_sqlite3.cc | 1 + src/leveldb/db/autocompact_test.cc | 18 +- src/leveldb/db/db_test.cc | 16 +- src/leveldb/db/version_set.cc | 19 +- src/leveldb/util/env_posix.cc | 8 +- src/leveldb/util/env_windows.cc | 9 +- src/leveldb/util/hash.cc | 13 +- src/logging.cpp | 31 +- src/logging.h | 27 +- src/logging/categories.h | 27 +- src/logging/timer.h | 8 +- src/mapport.cpp | 3 +- src/mapport.h | 2 +- src/minisketch/src/fields/clmul_common_impl.h | 5 +- src/minisketch/src/util.h | 14 + src/musig.cpp | 139 +- src/musig.h | 11 +- src/net.cpp | 171 +- src/net.h | 195 +- src/net_permissions.h | 6 +- src/net_processing.cpp | 599 +- src/net_processing.h | 39 +- src/net_types.cpp | 2 +- src/netaddress.h | 22 +- src/netbase.cpp | 31 +- src/netbase.h | 12 +- src/netgroup.cpp | 2 +- src/node/blockstorage.cpp | 51 +- src/node/blockstorage.h | 37 +- src/node/caches.cpp | 55 +- src/node/caches.h | 19 +- src/node/chainstate.cpp | 2 +- src/node/chainstatemanager_args.cpp | 9 +- src/node/chainstatemanager_args.h | 2 +- src/node/context.h | 7 + src/node/interface_ui.cpp | 47 +- src/node/interface_ui.h | 33 +- src/node/interfaces.cpp | 147 +- src/node/kernel_notifications.cpp | 2 +- src/node/kernel_notifications.h | 2 +- src/node/mempool_args.cpp | 2 +- src/node/mempool_persist.cpp | 2 +- src/node/mempool_persist_args.h | 2 +- src/node/miner.cpp | 172 +- src/node/miner.h | 53 +- src/node/mini_miner.cpp | 4 +- src/node/mini_miner.h | 3 +- src/node/mining_args.cpp | 99 + src/node/mining_args.h | 37 + src/node/mining_types.h | 178 + src/node/minisketchwrapper.cpp | 2 +- src/node/peerman_args.cpp | 4 + src/node/protocol_version.h | 21 +- src/node/psbt.cpp | 35 +- src/node/timeoffsets.cpp | 2 +- src/node/transaction.cpp | 15 +- src/node/transaction.h | 4 +- src/node/txdownloadman.h | 14 +- src/node/txdownloadman_impl.cpp | 5 +- src/node/txorphanage.cpp | 26 +- src/node/txorphanage.h | 4 +- src/node/txreconciliation.cpp | 2 +- src/node/txreconciliation.h | 2 +- src/node/types.h | 132 +- src/node/utxo_snapshot.h | 8 +- src/noui.cpp | 25 +- src/noui.h | 2 +- src/outputtype.h | 2 +- src/policy/feerate.h | 12 +- src/policy/fees/block_policy_estimator.cpp | 74 +- src/policy/fees/block_policy_estimator.h | 10 +- src/policy/packages.h | 4 +- src/policy/policy.h | 68 +- src/policy/rbf.h | 2 +- src/policy/truc_policy.h | 14 +- src/prevector.h | 2 +- src/primitives/transaction.h | 30 +- src/primitives/transaction_identifier.h | 15 +- src/private_broadcast.cpp | 40 +- src/private_broadcast.h | 58 +- src/protocol.h | 24 +- src/psbt.cpp | 367 +- src/psbt.h | 762 ++- src/pubkey.cpp | 9 +- src/pubkey.h | 23 +- src/qt/CMakeLists.txt | 15 +- src/qt/bitcoin.cpp | 10 +- src/qt/bitcoingui.cpp | 31 +- src/qt/bitcoingui.h | 9 +- src/qt/bitcoinstrings.cpp | 23 +- src/qt/forms/optionsdialog.ui | 2 +- src/qt/forms/sendcoinsdialog.ui | 10 - src/qt/guiconstants.h | 16 +- src/qt/guiutil.cpp | 8 +- src/qt/guiutil.h | 32 + src/qt/intro.cpp | 9 +- src/qt/intro.h | 2 +- src/qt/locale/bitcoin_en.ts | 4770 +++++--------- src/qt/locale/bitcoin_en.xlf | 5626 ---------------- src/qt/macdockiconhandler.mm | 6 +- src/qt/modaloverlay.h | 2 +- src/qt/optionsdialog.cpp | 2 +- src/qt/optionsmodel.cpp | 4 +- src/qt/optionsmodel.h | 2 +- src/qt/psbtoperationsdialog.cpp | 74 +- src/qt/psbtoperationsdialog.h | 8 +- src/qt/qrimagewidget.h | 8 +- src/qt/qvalidatedlineedit.cpp | 2 + src/qt/recentrequeststablemodel.h | 2 +- src/qt/sendcoinsdialog.cpp | 24 +- src/qt/sendcoinsentry.cpp | 2 + src/qt/sendcoinsrecipient.h | 2 +- src/qt/test/addressbooktests.cpp | 11 - src/qt/test/apptests.cpp | 12 - src/qt/test/test_main.cpp | 16 +- src/qt/test/wallettests.cpp | 30 +- src/qt/transactiondesc.cpp | 62 +- src/qt/transactionfilterproxy.h | 2 +- src/qt/transactionrecord.cpp | 5 +- src/qt/transactionrecord.h | 2 +- src/qt/walletcontroller.cpp | 22 +- src/qt/walletcontroller.h | 2 +- src/qt/walletframe.cpp | 9 +- src/qt/walletmodel.cpp | 10 +- src/rest.cpp | 42 +- src/rpc/blockchain.cpp | 202 +- src/rpc/blockchain.h | 2 +- src/rpc/client.cpp | 8 + src/rpc/external_signer.cpp | 4 +- src/rpc/fees.cpp | 60 +- src/rpc/mempool.cpp | 95 +- src/rpc/mining.cpp | 64 +- src/rpc/mining.h | 4 +- src/rpc/net.cpp | 38 +- src/rpc/node.cpp | 15 +- src/rpc/output_script.cpp | 9 +- src/rpc/protocol.h | 24 + src/rpc/rawtransaction.cpp | 337 +- src/rpc/rawtransaction_util.cpp | 135 +- src/rpc/rawtransaction_util.h | 28 +- src/rpc/server.cpp | 486 +- src/rpc/server.h | 5 + src/rpc/util.cpp | 71 +- src/rpc/util.h | 51 +- src/scheduler.h | 1 + src/script/descriptor.cpp | 131 +- src/script/descriptor.h | 24 +- src/script/interpreter.cpp | 10 + src/script/interpreter.h | 39 +- src/script/keyorigin.h | 19 +- src/script/miniscript.cpp | 8 +- src/script/miniscript.h | 52 +- src/script/parsing.cpp | 2 - src/script/parsing.h | 3 +- src/script/script.cpp | 1 + src/script/script.h | 33 +- src/script/sigcache.cpp | 2 +- src/script/sigcache.h | 12 +- src/script/sign.cpp | 31 +- src/script/sign.h | 20 +- src/script/signingprovider.cpp | 11 +- src/script/signingprovider.h | 16 +- src/script/solver.cpp | 6 +- src/script/solver.h | 4 +- .../install-homebrew-valgrind/action.yml | 1 + src/secp256k1/.github/workflows/ci.yml | 46 +- src/secp256k1/.gitignore | 1 + src/secp256k1/CHANGELOG.md | 31 +- src/secp256k1/CMakeLists.txt | 10 +- src/secp256k1/Makefile.am | 25 + src/secp256k1/README.md | 19 +- src/secp256k1/SECURITY.md | 10 +- src/secp256k1/ci/ci.sh | 3 +- src/secp256k1/ci/linux-debian.Dockerfile | 2 +- .../cmake/SetLibtoolAbiVersion.cmake | 61 + src/secp256k1/configure.ac | 22 +- src/secp256k1/doc/release-process.md | 45 +- src/secp256k1/examples/CMakeLists.txt | 4 + src/secp256k1/examples/silentpayments.c | 465 ++ src/secp256k1/include/secp256k1.h | 36 +- src/secp256k1/include/secp256k1_recovery.h | 2 +- src/secp256k1/include/secp256k1_schnorrsig.h | 13 +- .../include/secp256k1_silentpayments.h | 396 ++ src/secp256k1/src/CMakeLists.txt | 42 +- src/secp256k1/src/bench.c | 64 +- src/secp256k1/src/bench.h | 6 +- src/secp256k1/src/bench_ecmult.c | 4 +- src/secp256k1/src/bench_internal.c | 12 + src/secp256k1/src/ctime_tests.c | 87 + src/secp256k1/src/ecdsa_impl.h | 5 +- src/secp256k1/src/ecmult_gen.h | 3 +- src/secp256k1/src/ecmult_gen_impl.h | 16 +- src/secp256k1/src/field.h | 2 +- src/secp256k1/src/field_10x26_impl.h | 40 +- src/secp256k1/src/field_5x52_impl.h | 40 +- src/secp256k1/src/field_5x52_int128_impl.h | 4 +- src/secp256k1/src/field_impl.h | 2 +- src/secp256k1/src/hash.h | 2 + src/secp256k1/src/hash_impl.h | 65 + .../src/modules/ecdh/Makefile.am.include | 1 + src/secp256k1/src/modules/ecdh/main_impl.h | 2 +- .../src/modules/ecdh/tests_exhaustive_impl.h | 56 + .../src/modules/ellswift/main_impl.h | 6 +- .../modules/ellswift/tests_exhaustive_impl.h | 4 +- .../src/modules/ellswift/tests_impl.h | 16 +- .../src/modules/extrakeys/main_impl.h | 7 + .../src/modules/extrakeys/tests_impl.h | 4 +- .../src/modules/musig/session_impl.h | 8 +- src/secp256k1/src/modules/musig/tests_impl.h | 8 +- .../modules/recovery/tests_exhaustive_impl.h | 6 +- .../src/modules/schnorrsig/main_impl.h | 9 +- .../src/modules/schnorrsig/tests_impl.h | 3 - .../silentpayments/Makefile.am.include | 5 + .../src/modules/silentpayments/bench_impl.h | 227 + .../bip352_send_and_receive_test_vectors.json | 5729 +++++++++++++++++ .../src/modules/silentpayments/main_impl.h | 805 +++ .../src/modules/silentpayments/tests_impl.h | 933 +++ .../src/modules/silentpayments/vectors.h | 4747 ++++++++++++++ src/secp256k1/src/scalar.h | 4 +- src/secp256k1/src/scalar_4x64_impl.h | 8 +- src/secp256k1/src/scalar_8x32_impl.h | 3 +- src/secp256k1/src/scalar_low_impl.h | 12 +- src/secp256k1/src/secp256k1.c | 15 +- src/secp256k1/src/selftest.h | 8 +- src/secp256k1/src/tests.c | 192 +- src/secp256k1/src/tests_exhaustive.c | 22 +- src/secp256k1/src/unit_test.c | 9 + src/secp256k1/src/util.h | 26 +- .../tools/tests_silentpayments_generate.py | 324 + src/serialize.h | 68 +- src/signet.cpp | 2 +- src/streams.h | 14 + src/support/events.h | 56 - src/support/lockedpool.cpp | 3 +- src/support/lockedpool.h | 4 +- src/sync.h | 4 +- src/test/CMakeLists.txt | 25 +- src/test/addrman_tests.cpp | 12 +- src/test/amount_tests.cpp | 12 +- src/test/argsman_tests.cpp | 128 +- src/test/arith_uint256_tests.cpp | 10 +- src/test/banman_tests.cpp | 2 +- src/test/base58_tests.cpp | 2 +- src/test/baseindex_tests.cpp | 228 + src/test/bip328_tests.cpp | 6 + src/test/bip32_tests.cpp | 125 +- src/test/blockencodings_tests.cpp | 42 + src/test/blockfilter_index_tests.cpp | 166 +- src/test/blockmanager_tests.cpp | 2 + src/test/btcsignals_tests.cpp | 90 +- src/test/caches_tests.cpp | 47 +- src/test/chainstate_write_tests.cpp | 10 +- src/test/checkqueue_tests.cpp | 3 +- src/test/coins_tests.cpp | 33 +- src/test/coinscachepair_tests.cpp | 36 +- src/test/coinstatsindex_tests.cpp | 57 +- src/test/coinsviewoverlay_tests.cpp | 163 +- src/test/common_url_tests.cpp | 41 + src/test/data/script_tests.json | 18 + src/test/data/siphash.json | 732 +++ src/test/dbwrapper_tests.cpp | 27 +- src/test/denialofservice_tests.cpp | 28 +- src/test/descriptor_tests.cpp | 130 +- src/test/feefrac_tests.cpp | 62 +- src/test/feerounder_tests.cpp | 2 +- src/test/fuzz/CMakeLists.txt | 9 +- src/test/fuzz/addrman.cpp | 8 +- src/test/fuzz/autofile.cpp | 3 +- src/test/fuzz/banman.cpp | 7 +- src/test/fuzz/base_encode_decode.cpp | 5 +- src/test/fuzz/bip324.cpp | 2 +- src/test/fuzz/bitdeque.cpp | 3 +- src/test/fuzz/bitset.cpp | 2 +- src/test/fuzz/block_index_tree.cpp | 5 +- src/test/fuzz/blockfilter.cpp | 3 +- src/test/fuzz/bloom_filter.cpp | 3 +- src/test/fuzz/buffered_file.cpp | 3 +- src/test/fuzz/chain.cpp | 2 +- src/test/fuzz/cluster_linearize.cpp | 23 +- src/test/fuzz/cmpctblock.cpp | 483 ++ src/test/fuzz/coins_view.cpp | 118 +- src/test/fuzz/coinscache_sim.cpp | 81 +- src/test/fuzz/connman.cpp | 118 +- src/test/fuzz/crypto.cpp | 3 +- src/test/fuzz/crypto_aes256.cpp | 2 +- src/test/fuzz/crypto_aes256cbc.cpp | 2 +- src/test/fuzz/crypto_chacha20.cpp | 5 +- src/test/fuzz/crypto_chacha20poly1305.cpp | 6 +- src/test/fuzz/crypto_hkdf_hmac_sha256_l32.cpp | 2 +- src/test/fuzz/crypto_poly1305.cpp | 2 +- src/test/fuzz/cuckoocache.cpp | 2 +- src/test/fuzz/dbwrapper.cpp | 466 ++ src/test/fuzz/descriptor_parse.cpp | 6 +- src/test/fuzz/deserialize.cpp | 41 +- src/test/fuzz/feefrac.cpp | 20 +- src/test/fuzz/feeratediagram.cpp | 11 +- src/test/fuzz/fees.cpp | 2 +- src/test/fuzz/fuzz.cpp | 2 +- src/test/fuzz/headerssync.cpp | 2 +- src/test/fuzz/http_request.cpp | 72 +- src/test/fuzz/i2p.cpp | 7 +- src/test/fuzz/integer.cpp | 45 +- src/test/fuzz/key.cpp | 4 +- src/test/fuzz/load_external_block_file.cpp | 2 +- src/test/fuzz/locale.cpp | 1 - src/test/fuzz/merkleblock.cpp | 2 +- src/test/fuzz/mini_miner.cpp | 32 +- src/test/fuzz/minisketch.cpp | 3 +- src/test/fuzz/net.cpp | 14 +- src/test/fuzz/netbase_dns_lookup.cpp | 2 +- src/test/fuzz/node_eviction.cpp | 3 +- src/test/fuzz/p2p_handshake.cpp | 54 +- src/test/fuzz/p2p_headers_presync.cpp | 15 +- src/test/fuzz/p2p_private_broadcast.cpp | 258 + src/test/fuzz/p2p_transport_serialization.cpp | 3 +- src/test/fuzz/package_eval.cpp | 48 +- src/test/fuzz/parse_hd_keypath.cpp | 11 +- src/test/fuzz/partially_downloaded_block.cpp | 2 +- src/test/fuzz/pcp.cpp | 14 +- src/test/fuzz/policy_estimator.cpp | 6 +- src/test/fuzz/poolresource.cpp | 3 +- src/test/fuzz/pow.cpp | 2 +- src/test/fuzz/prevector.cpp | 3 +- src/test/fuzz/private_broadcast.cpp | 237 + src/test/fuzz/process_message.cpp | 51 +- src/test/fuzz/process_messages.cpp | 56 +- src/test/fuzz/psbt.cpp | 103 +- src/test/fuzz/rbf.cpp | 11 +- src/test/fuzz/rolling_bloom_filter.cpp | 3 +- src/test/fuzz/rpc.cpp | 122 +- src/test/fuzz/script_descriptor_cache.cpp | 2 +- src/test/fuzz/script_ops.cpp | 2 +- src/test/fuzz/script_sign.cpp | 4 +- src/test/fuzz/scriptnum_ops.cpp | 2 +- src/test/fuzz/socks5.cpp | 6 +- src/test/fuzz/string.cpp | 3 +- src/test/fuzz/system.cpp | 28 +- src/test/fuzz/threadpool.cpp | 6 +- src/test/fuzz/timeoffsets.cpp | 2 +- src/test/fuzz/torcontrol.cpp | 2 +- src/test/fuzz/tx_pool.cpp | 103 +- src/test/fuzz/txdownloadman.cpp | 12 +- src/test/fuzz/txgraph.cpp | 37 +- src/test/fuzz/txorphan.cpp | 42 +- src/test/fuzz/util.cpp | 2 +- src/test/fuzz/util.h | 36 +- src/test/fuzz/util/check_globals.cpp | 3 +- src/test/fuzz/util/descriptor.h | 10 +- src/test/fuzz/util/net.cpp | 17 +- src/test/fuzz/util/net.h | 26 +- src/test/fuzz/utxo_snapshot.cpp | 6 +- src/test/fuzz/utxo_total_supply.cpp | 44 +- src/test/fuzz/validation_load_mempool.cpp | 2 +- src/test/fuzz/vecdeque.cpp | 2 +- src/test/fuzz/versionbits.cpp | 5 +- src/test/hash_tests.cpp | 94 +- src/test/httpserver_tests.cpp | 1111 +++- src/test/i2p_tests.cpp | 2 +- src/test/kernel/block_data.h | 412 +- src/test/kernel/test_kernel.cpp | 244 +- src/test/key_tests.cpp | 12 +- src/test/logging_tests.cpp | 11 +- src/test/mempool_tests.cpp | 40 +- src/test/miner_tests.cpp | 128 +- src/test/miniscript_tests.cpp | 37 +- src/test/mock_process.cpp | 40 - src/test/net_tests.cpp | 158 +- src/test/node_init_tests.cpp | 1 + src/test/orphanage_tests.cpp | 2 +- src/test/pcp_tests.cpp | 22 +- src/test/peerman_tests.cpp | 39 +- src/test/pow_tests.cpp | 3 +- src/test/private_broadcast_tests.cpp | 164 +- src/test/psbt_tests.cpp | 315 + src/test/raii_event_tests.cpp | 91 - src/test/rbf_tests.cpp | 5 - src/test/rpc_tests.cpp | 41 +- src/test/scheduler_tests.cpp | 3 +- src/test/script_p2sh_tests.cpp | 232 +- src/test/script_standard_tests.cpp | 15 +- src/test/script_tests.cpp | 17 +- src/test/scriptnum10.h | 2 +- src/test/serialize_tests.cpp | 35 + src/test/settings_tests.cpp | 2 +- src/test/skiplist_tests.cpp | 105 +- src/test/sock_tests.cpp | 2 +- src/test/streams_tests.cpp | 18 + src/test/system_ram_tests.cpp | 15 +- src/test/system_tests.cpp | 71 +- src/test/testnet4_miner_tests.cpp | 19 +- src/test/transaction_tests.cpp | 4 +- src/test/txgraph_tests.cpp | 2 +- src/test/txindex_tests.cpp | 318 +- src/test/txpackage_tests.cpp | 3 +- src/test/util/CMakeLists.txt | 2 +- src/test/util/chainstate.h | 6 +- src/test/util/cluster_linearize.h | 10 +- src/test/util/logging.h | 2 +- src/test/util/mining.cpp | 80 +- src/test/util/mining.h | 17 +- src/test/util/net.cpp | 10 +- src/test/util/net.h | 8 +- src/test/util/random.cpp | 2 +- src/test/util/script.h | 12 +- src/test/util/setup_common.cpp | 122 +- src/test/util/setup_common.h | 62 +- src/test/util/time.h | 46 +- src/test/util/transaction_utils.cpp | 2 +- src/test/util/transaction_utils.h | 2 +- src/test/util/validation.cpp | 41 + src/test/util/validation.h | 8 + src/test/util/versionbits.h | 13 + src/test/util_string_tests.cpp | 11 +- src/test/util_tests.cpp | 138 +- src/test/util_threadnames_tests.cpp | 4 +- src/test/validation_block_tests.cpp | 47 +- src/test/validation_chainstate_tests.cpp | 21 +- .../validation_chainstatemanager_tests.cpp | 15 + src/test/validation_flush_tests.cpp | 17 +- src/test/validation_tests.cpp | 6 +- src/test/versionbits_tests.cpp | 17 +- src/tinyformat.h | 2 +- src/torcontrol.cpp | 15 +- src/torcontrol.h | 17 +- src/txdb.cpp | 39 + src/txdb.h | 19 +- src/txgraph.cpp | 77 +- src/txgraph.h | 2 +- src/txmempool.cpp | 82 +- src/txmempool.h | 36 +- src/txrequest.h | 2 +- src/uint256.h | 8 +- src/univalue/include/univalue_escapes.h | 2 +- src/util/bip32.cpp | 19 +- src/util/bip32.h | 4 + src/{ => util}/btcsignals.h | 52 +- src/util/check.h | 8 +- src/util/exec.cpp | 11 +- src/util/feefrac.cpp | 6 +- src/util/feefrac.h | 155 +- src/util/fs_helpers.cpp | 66 +- src/util/fs_helpers.h | 21 +- src/util/hasher.cpp | 6 +- src/util/hasher.h | 2 +- src/util/log.h | 66 +- src/util/macros.h | 2 +- src/util/overflow.h | 5 +- src/util/rbf.h | 2 +- src/util/sock.cpp | 35 +- src/util/sock.h | 17 +- src/util/stdmutex.h | 4 +- src/util/strencodings.cpp | 1 - src/util/strencodings.h | 15 +- src/util/string.cpp | 45 +- src/util/string.h | 22 +- src/util/subprocess.h | 62 +- src/util/threadnames.cpp | 2 + src/util/threadpool.h | 2 +- src/util/time.h | 4 +- src/util/tokenbucket.h | 69 + src/validation.cpp | 120 +- src/validation.h | 24 +- src/validationinterface.cpp | 2 +- src/versionbits.h | 13 +- src/wallet/CMakeLists.txt | 1 + src/wallet/coincontrol.h | 8 +- src/wallet/coinselection.cpp | 254 +- src/wallet/coinselection.h | 4 +- src/wallet/crypter.h | 6 +- src/wallet/db.cpp | 2 +- src/wallet/export.cpp | 196 + src/wallet/export.h | 36 + .../external_signer_scriptpubkeyman.cpp | 25 +- src/wallet/external_signer_scriptpubkeyman.h | 25 +- src/wallet/feebumper.cpp | 42 +- src/wallet/init.cpp | 2 +- src/wallet/interfaces.cpp | 55 +- src/wallet/migrate.cpp | 30 +- src/wallet/receive.cpp | 32 +- src/wallet/rpc/addresses.cpp | 57 +- src/wallet/rpc/backup.cpp | 95 +- src/wallet/rpc/coins.cpp | 7 +- src/wallet/rpc/encrypt.cpp | 4 +- src/wallet/rpc/spend.cpp | 206 +- src/wallet/rpc/transactions.cpp | 113 +- src/wallet/rpc/util.h | 3 +- src/wallet/rpc/wallet.cpp | 292 +- src/wallet/scriptpubkeyman.cpp | 179 +- src/wallet/scriptpubkeyman.h | 87 +- src/wallet/spend.cpp | 41 +- src/wallet/spend.h | 3 +- src/wallet/sqlite.cpp | 29 +- src/wallet/sqlite.h | 15 + src/wallet/test/coinselection_tests.cpp | 66 +- src/wallet/test/coinselector_tests.cpp | 32 +- src/wallet/test/db_tests.cpp | 9 + src/wallet/test/fuzz/coincontrol.cpp | 77 +- src/wallet/test/fuzz/coinselection.cpp | 12 +- src/wallet/test/fuzz/crypter.cpp | 5 +- src/wallet/test/fuzz/fees.cpp | 2 +- src/wallet/test/fuzz/scriptpubkeyman.cpp | 34 +- src/wallet/test/fuzz/spend.cpp | 8 +- src/wallet/test/fuzz/wallet_bdb_parser.cpp | 17 +- src/wallet/test/group_outputs_tests.cpp | 2 +- src/wallet/test/psbt_wallet_tests.cpp | 80 +- src/wallet/test/scriptpubkeyman_tests.cpp | 13 + src/wallet/test/spend_tests.cpp | 17 + src/wallet/test/util.cpp | 30 +- src/wallet/test/util.h | 10 +- src/wallet/test/wallet_tests.cpp | 67 +- src/wallet/test/wallet_transaction_tests.cpp | 32 + src/wallet/test/walletload_tests.cpp | 2 + src/wallet/transaction.cpp | 56 +- src/wallet/transaction.h | 189 +- src/wallet/types.h | 28 + src/wallet/wallet.cpp | 421 +- src/wallet/wallet.h | 126 +- src/wallet/walletdb.cpp | 117 +- src/wallet/walletdb.h | 25 +- src/wallet/wallettool.cpp | 16 +- src/wallet/walletutil.cpp | 2 +- src/zmq/zmqabstractnotifier.cpp | 2 - src/zmq/zmqabstractnotifier.h | 2 +- src/zmq/zmqnotificationinterface.cpp | 2 +- src/zmq/zmqpublishnotifier.cpp | 2 +- src/zmq/zmqutil.cpp | 3 +- src/zmq/zmqutil.h | 2 +- test/CMakeLists.txt | 7 +- test/README.md | 20 - test/config.ini.in | 31 +- test/functional/README.md | 33 - test/functional/data/rpc_psbt.json | 64 +- .../data/util/bitcoin-util-test.json | 49 + .../data/util/getchainparams-mainnet.json | 28 + .../data/util/getchainparams-regtest.json | 19 + .../util/getchainparams-signet-custom.json | 24 + .../data/util/getchainparams-signet.json | 26 + .../data/util/getchainparams-testnet.json | 25 + .../data/util/getchainparams-testnet4.json | 23 + test/functional/feature_addrman.py | 13 +- test/functional/feature_assumeutxo.py | 20 +- test/functional/feature_bind_extra.py | 4 +- test/functional/feature_bind_port_discover.py | 43 +- .../feature_bind_port_externalip.py | 51 +- test/functional/feature_block.py | 3 + .../feature_coinstatsindex_compatibility.py | 1 - test/functional/feature_config_args.py | 20 +- test/functional/feature_dbcrash.py | 30 +- test/functional/feature_fee_estimation.py | 9 +- .../feature_framework_unit_tests.py | 2 + test/functional/feature_index_prune.py | 18 +- test/functional/feature_init.py | 53 +- test/functional/feature_loadblock.py | 1 - test/functional/feature_logging.py | 6 +- test/functional/feature_notifications.py | 20 +- test/functional/feature_proxy.py | 3 + test/functional/feature_prune_stale_fork.py | 39 + test/functional/feature_pruning.py | 17 +- test/functional/feature_reindex.py | 1 + test/functional/feature_reindex_readonly.py | 16 +- test/functional/feature_segwit.py | 7 +- test/functional/feature_settings.py | 2 +- test/functional/feature_shutdown.py | 5 +- test/functional/feature_taproot.py | 39 +- .../feature_txindex_compatibility.py | 72 + test/functional/feature_utxo_set_hash.py | 4 +- .../functional/feature_versionbits_warning.py | 22 +- test/functional/interface_bitcoin_cli.py | 7 +- test/functional/interface_gui.py | 38 + test/functional/interface_http.py | 351 +- test/functional/interface_ipc_cli.py | 4 +- test/functional/interface_ipc_mining.py | 501 +- test/functional/interface_rest.py | 138 +- test/functional/interface_rpc.py | 7 +- test/functional/interface_usdt_net.py | 4 +- test/functional/mempool_accept.py | 20 +- test/functional/mempool_cluster.py | 13 +- test/functional/mempool_limit.py | 3 + test/functional/mempool_sigoplimit.py | 22 +- test/functional/mempool_spend_coinbase.py | 3 +- test/functional/mempool_truc.py | 17 +- test/functional/mining_basic.py | 15 +- .../mining_getblocktemplate_longpoll.py | 17 +- .../mining_prioritisetransaction.py | 5 +- .../mining_template_verification.py | 16 +- test/functional/p2p_addr_relay.py | 7 +- test/functional/p2p_addr_selfannouncement.py | 14 + test/functional/p2p_bip434_feature.py | 242 + test/functional/p2p_blocksonly.py | 12 +- test/functional/p2p_compactblocks.py | 276 +- .../p2p_compactblocks_blocksonly.py | 47 + test/functional/p2p_connection_limits.py | 107 + test/functional/p2p_eviction.py | 8 +- test/functional/p2p_getdata.py | 6 +- test/functional/p2p_leak.py | 9 +- test/functional/p2p_mutated_blocks.py | 7 + test/functional/p2p_nobloomfilter_messages.py | 6 +- test/functional/p2p_opportunistic_1p1c.py | 25 +- test/functional/p2p_orphan_handling.py | 53 +- test/functional/p2p_private_broadcast.py | 232 +- test/functional/p2p_private_broadcast_cap.py | 103 + .../p2p_private_broadcast_retry_v1.py | 199 + test/functional/p2p_segwit.py | 4 + test/functional/p2p_sendheaders.py | 12 +- test/functional/p2p_tx_download.py | 80 +- test/functional/p2p_tx_relay_rate_limit.py | 114 + test/functional/rpc_bind.py | 36 +- test/functional/rpc_blockchain.py | 2 + test/functional/rpc_createmultisig.py | 38 +- test/functional/rpc_deprecated.py | 14 +- test/functional/rpc_deriveaddresses.py | 1 + test/functional/rpc_dumptxoutset.py | 6 +- test/functional/rpc_echo_payload.py | 50 + test/functional/rpc_generate.py | 4 +- test/functional/rpc_getblockfrompeer.py | 8 +- test/functional/rpc_gettxspendingprevout.py | 8 + test/functional/rpc_misc.py | 16 +- test/functional/rpc_named_arguments.py | 18 +- test/functional/rpc_net.py | 9 +- test/functional/rpc_openrpc.py | 110 + test/functional/rpc_packages.py | 5 + test/functional/rpc_psbt.py | 328 +- test/functional/rpc_scanblocks.py | 3 + test/functional/rpc_scantxoutset.py | 9 +- test/functional/rpc_signer.py | 19 + test/functional/rpc_uptime.py | 5 - test/functional/rpc_users.py | 6 +- test/functional/rpc_whitelist.py | 1 - test/functional/test-shell.md | 1 - test/functional/test_framework/address.py | 6 +- test/functional/test_framework/authproxy.py | 12 +- test/functional/test_framework/blocktools.py | 8 +- .../test_framework/crypto/siphash.py | 14 + test/functional/test_framework/extendedkey.py | 195 + test/functional/test_framework/ipc_util.py | 21 +- test/functional/test_framework/messages.py | 43 +- test/functional/test_framework/netutil.py | 137 +- test/functional/test_framework/p2p.py | 38 +- test/functional/test_framework/psbt.py | 77 +- test/functional/test_framework/socks5.py | 65 +- .../test_framework/test_framework.py | 202 +- test/functional/test_framework/test_node.py | 210 +- test/functional/test_framework/util.py | 90 +- test/functional/test_framework/v2_p2p.py | 1 + test/functional/test_framework/wallet.py | 44 +- test/functional/test_framework/wallet_util.py | 1 + test/functional/test_runner.py | 19 +- test/functional/tool_bitcoin_chainstate.py | 2 +- test/functional/tool_signet_miner.py | 4 +- test/functional/tool_wallet.py | 1 + test/functional/wallet_ancient_migration.py | 229 + test/functional/wallet_assumeutxo.py | 14 +- .../wallet_backwards_compatibility.py | 89 +- test/functional/wallet_basic.py | 5 +- test/functional/wallet_bumpfee.py | 11 +- test/functional/wallet_createwallet.py | 30 +- test/functional/wallet_deprecated_rbf.py | 37 + test/functional/wallet_derivehdkey.py | 235 + test/functional/wallet_descriptor.py | 24 +- test/functional/wallet_exported_watchonly.py | 303 + test/functional/wallet_fundrawtransaction.py | 17 +- test/functional/wallet_hd.py | 54 + test/functional/wallet_importdescriptors.py | 367 +- test/functional/wallet_importprunedfunds.py | 1 + test/functional/wallet_keypool.py | 14 +- test/functional/wallet_listdescriptors.py | 43 +- test/functional/wallet_listreceivedby.py | 11 + test/functional/wallet_listtransactions.py | 244 +- test/functional/wallet_migration.py | 298 +- .../wallet_multisig_descriptor_psbt.py | 54 +- test/functional/wallet_multiwallet.py | 22 +- test/functional/wallet_musig.py | 89 +- .../wallet_resendwallettransactions.py | 107 +- test/functional/wallet_send.py | 32 +- test/functional/wallet_sendall.py | 23 +- test/functional/wallet_signer.py | 15 + test/functional/wallet_startup.py | 28 + test/functional/wallet_taproot.py | 149 +- test/functional/wallet_txn_clone.py | 1 - test/functional/wallet_v3_txs.py | 49 +- test/fuzz/test_runner.py | 2 +- test/lint/README.md | 2 +- test/lint/commit-script-check.sh | 10 +- test/lint/lint-includes.py | 7 +- test/lint/lint-python.py | 4 +- test/lint/lint-tests.py | 50 +- test/lint/test_runner/src/lint_py.rs | 47 +- test/sanitizer_suppressions/lsan | 5 +- test/sanitizer_suppressions/tsan | 5 - test/sanitizer_suppressions/ubsan | 2 + test/sanitizer_suppressions/valgrind.supp | 2 +- vcpkg.json | 21 +- 1109 files changed, 49009 insertions(+), 21209 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/good_first_issue.yml rename .github/actions/{restore-caches => cache/restore}/action.yml (77%) create mode 100644 .github/actions/cache/restore/internal/action.yml rename .github/actions/{save-caches => cache/save}/action.yml (79%) create mode 100644 .github/actions/cache/save/internal/action.yml create mode 100644 CTestConfig.cmake create mode 100644 ci/lint/requirements.txt create mode 100755 ci/test/00_setup_env_netbsd_cross.sh create mode 100755 ci/test/00_setup_env_openbsd_cross.sh create mode 100755 ci/test/00_setup_env_riscv_bare_cross.sh create mode 100644 ci/test/02_iwyu_hash.patch create mode 100755 ci/test/link-riscv.sh create mode 100755 ci/test/wrap-valgrind.py delete mode 100755 ci/test/wrap-valgrind.sh create mode 100644 cmake/module/CheckCXXFeatures.cmake delete mode 100644 cmake/module/FindLibevent.cmake delete mode 100644 cmake/module/GenerateSetupNsi.cmake create mode 100644 cmake/script/GenerateWindowsInstaller.cmake.in delete mode 100755 contrib/guix/libexec/build.sh create mode 100755 contrib/guix/libexec/build_linux.sh create mode 100755 contrib/guix/libexec/build_linux_gui.sh create mode 100755 contrib/guix/libexec/build_macos.sh create mode 100755 contrib/guix/libexec/build_macos_gui.sh create mode 100755 contrib/guix/libexec/build_win.sh create mode 100755 contrib/guix/libexec/build_win_gui.sh create mode 100755 contrib/guix/libexec/package.sh create mode 100755 contrib/guix/libexec/setup.sh rename contrib/guix/{manifest.scm => manifest_build.scm} (56%) create mode 100644 contrib/guix/manifest_codesign.scm create mode 100644 contrib/guix/manifest_gui.scm delete mode 100755 contrib/verify-commits/pre-push-hook.sh delete mode 100644 depends/packages/libevent.mk create mode 100644 depends/patches/freetype/openbsd_versioning.patch delete mode 100644 depends/patches/libevent/cmake_fixups.patch delete mode 100644 depends/patches/libevent/netbsd_fixup.patch delete mode 100644 depends/patches/libevent/winver_fixup.patch create mode 100644 depends/patches/qt/fix_missed_headers.patch create mode 100644 depends/patches/qt/fix_openbsd_network_kernel.patch create mode 100644 depends/patches/qt/fix_openbsd_plugin_qelfparser.patch delete mode 100644 depends/patches/qt/qtbase_platformsupport.patch create mode 100644 depends/patches/zeromq/add_new_include.patch create mode 100644 doc/AI_POLICY.md create mode 100644 doc/release-notes-21283.md create mode 100644 doc/release-notes-29136.md create mode 100644 doc/release-notes-32220.md create mode 100644 doc/release-notes-32489.md create mode 100644 doc/release-notes-32784.md create mode 100644 doc/release-notes-32800.md create mode 100644 doc/release-notes-33671.md create mode 100644 doc/release-notes-33966.md create mode 100644 doc/release-notes-34544.md create mode 100644 doc/release-notes-34628.md create mode 100644 doc/release-notes-34672.md create mode 100644 doc/release-notes-34779.md create mode 100644 doc/release-notes-34794.md create mode 100644 doc/release-notes-34917.md create mode 100644 doc/release-notes-35182.md create mode 100644 doc/release-notes-35266 create mode 100644 doc/release-notes-35267.md create mode 100644 doc/release-notes-35295.md create mode 100644 doc/release-notes-35319.md create mode 100644 doc/release-notes-35406.md create mode 100644 doc/release-notes-35501.md create mode 100644 doc/release-notes-35531.md create mode 100644 doc/release-notes-35592.md create mode 100644 doc/release-notes-35601.md create mode 100644 doc/release-notes-35610.md create mode 100644 doc/release-notes-35634.md create mode 100644 doc/release-notes-35680.md create mode 100644 doc/release-notes-35696.md create mode 100644 doc/release-notes-35836.md create mode 100644 doc/release-notes-953.md create mode 100644 doc/release-notes-gui-872.md create mode 100644 doc/release-notes-removeprunedfunds.md create mode 100644 doc/release-notes/release-notes-29.4.md create mode 100644 doc/release-notes/release-notes-30.3.md create mode 100644 doc/release-notes/release-notes-31.1.md create mode 100644 ruff.toml create mode 100644 src/bench/asmap.cpp create mode 100644 src/bench/uint256_blob.cpp create mode 100644 src/index/txindex_key.h create mode 100644 src/ipc/libmultiprocess/include/mp/type-unordered-set.h create mode 100644 src/ipc/libmultiprocess/test/mp/test/listen_tests.cpp create mode 100644 src/ipc/test/fuzz/CMakeLists.txt create mode 100644 src/ipc/test/fuzz/ipc.cpp create mode 100644 src/ipc/test/fuzz/ipc_fuzz.capnp create mode 100644 src/ipc/test/fuzz/ipc_fuzz.h create mode 100644 src/ipc/test/fuzz/ipc_fuzz_types.h delete mode 100644 src/ipc/test/ipc_test.cpp create mode 100644 src/ipc/util.h create mode 100644 src/leveldb/.github/workflows/ci.yml create mode 100644 src/node/mining_args.cpp create mode 100644 src/node/mining_args.h create mode 100644 src/node/mining_types.h delete mode 100644 src/qt/locale/bitcoin_en.xlf create mode 100644 src/secp256k1/cmake/SetLibtoolAbiVersion.cmake create mode 100644 src/secp256k1/examples/silentpayments.c create mode 100644 src/secp256k1/include/secp256k1_silentpayments.h create mode 100644 src/secp256k1/src/modules/ecdh/tests_exhaustive_impl.h create mode 100644 src/secp256k1/src/modules/silentpayments/Makefile.am.include create mode 100644 src/secp256k1/src/modules/silentpayments/bench_impl.h create mode 100644 src/secp256k1/src/modules/silentpayments/bip352_send_and_receive_test_vectors.json create mode 100644 src/secp256k1/src/modules/silentpayments/main_impl.h create mode 100644 src/secp256k1/src/modules/silentpayments/tests_impl.h create mode 100644 src/secp256k1/src/modules/silentpayments/vectors.h create mode 100755 src/secp256k1/tools/tests_silentpayments_generate.py delete mode 100644 src/support/events.h create mode 100644 src/test/baseindex_tests.cpp create mode 100644 src/test/data/siphash.json create mode 100644 src/test/fuzz/cmpctblock.cpp create mode 100644 src/test/fuzz/dbwrapper.cpp create mode 100644 src/test/fuzz/p2p_private_broadcast.cpp create mode 100644 src/test/fuzz/private_broadcast.cpp delete mode 100644 src/test/mock_process.cpp create mode 100644 src/test/psbt_tests.cpp delete mode 100644 src/test/raii_event_tests.cpp create mode 100644 src/test/util/versionbits.h rename src/{ => util}/btcsignals.h (80%) create mode 100644 src/util/tokenbucket.h create mode 100644 src/wallet/export.cpp create mode 100644 src/wallet/export.h create mode 100644 test/functional/data/util/getchainparams-mainnet.json create mode 100644 test/functional/data/util/getchainparams-regtest.json create mode 100644 test/functional/data/util/getchainparams-signet-custom.json create mode 100644 test/functional/data/util/getchainparams-signet.json create mode 100644 test/functional/data/util/getchainparams-testnet.json create mode 100644 test/functional/data/util/getchainparams-testnet4.json create mode 100755 test/functional/feature_prune_stale_fork.py create mode 100755 test/functional/feature_txindex_compatibility.py create mode 100755 test/functional/interface_gui.py create mode 100755 test/functional/p2p_bip434_feature.py create mode 100755 test/functional/p2p_connection_limits.py create mode 100755 test/functional/p2p_private_broadcast_cap.py create mode 100755 test/functional/p2p_private_broadcast_retry_v1.py create mode 100755 test/functional/p2p_tx_relay_rate_limit.py create mode 100755 test/functional/rpc_echo_payload.py create mode 100755 test/functional/rpc_openrpc.py create mode 100644 test/functional/test_framework/extendedkey.py create mode 100755 test/functional/wallet_ancient_migration.py create mode 100755 test/functional/wallet_deprecated_rbf.py create mode 100755 test/functional/wallet_derivehdkey.py create mode 100755 test/functional/wallet_exported_watchonly.py diff --git a/.editorconfig b/.editorconfig index c5f3028c..d7fe7ad5 100644 --- a/.editorconfig +++ b/.editorconfig @@ -13,7 +13,7 @@ trim_trailing_whitespace = true [*.{h,cpp,rs,py,sh}] indent_size = 4 -# .cirrus.yml, etc. +# ci.yml, etc. [*.yml] indent_size = 2 diff --git a/.gitattributes b/.gitattributes index c9cf4a7d..25303e74 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,2 @@ src/clientversion.cpp export-subst +src/CMakeLists.txt export-subst diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index 7c894ab7..53d9353b 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -10,6 +10,7 @@ body: * General bitcoin questions and/or support requests should use Bitcoin StackExchange at https://bitcoin.stackexchange.com. * For reporting security issues, please read instructions at https://bitcoincore.org/en/contact/. * If the node is "stuck" during sync or giving "block checksum mismatch" errors, please ensure your hardware is stable by running `memtest` and observe CPU temperature with a load-test tool such as `linpack` before creating an issue. + * If you use AI tools when opening this issue, please read the [AI policy](https://github.com/bitcoin/bitcoin/blob/master/doc/AI_POLICY.md). ---- - type: checkboxes diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 4622fd98..24e33ea1 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -2,6 +2,11 @@ name: Feature Request description: Suggest an idea for this project. labels: [Feature] body: + - type: markdown + attributes: + value: | + If you use AI tools when opening this issue, please read the [AI policy](https://github.com/bitcoin/bitcoin/blob/master/doc/AI_POLICY.md). + - type: textarea id: feature attributes: diff --git a/.github/ISSUE_TEMPLATE/good_first_issue.yml b/.github/ISSUE_TEMPLATE/good_first_issue.yml deleted file mode 100644 index 2a486b3f..00000000 --- a/.github/ISSUE_TEMPLATE/good_first_issue.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: Good First Issue -description: (Regular devs only) Suggest a new good first issue -labels: [good first issue] -body: - - type: markdown - attributes: - value: | - Please add the label "good first issue" manually before or after opening - - A good first issue is an uncontroversial issue, that has a relatively unique and obvious solution - - Motivate the issue and explain the solution briefly - - type: textarea - id: motivation - attributes: - label: Motivation - description: Motivate the issue - validations: - required: true - - type: textarea - id: solution - attributes: - label: Possible solution - description: Describe a possible solution - validations: - required: false - - type: textarea - id: useful-skills - attributes: - label: Useful Skills - description: For example, “`std::thread`”, “Qt6 GUI and async GUI design” or “basic understanding of Bitcoin mining and the Bitcoin Core RPC interface”. - value: | - * Compiling Bitcoin Core from source - * Running the C++ unit tests and the Python functional tests - * ... - - type: textarea - attributes: - label: Guidance for new contributors - description: Please leave this to automatically add the footer for new contributors - value: | - Want to work on this issue? - - For guidance on contributing, please read [CONTRIBUTING.md](https://github.com/bitcoin/bitcoin/blob/master/CONTRIBUTING.md) before opening your pull request. - diff --git a/.github/ISSUE_TEMPLATE/gui_issue.yml b/.github/ISSUE_TEMPLATE/gui_issue.yml index 4fe578e9..4a09e4a3 100644 --- a/.github/ISSUE_TEMPLATE/gui_issue.yml +++ b/.github/ISSUE_TEMPLATE/gui_issue.yml @@ -2,6 +2,11 @@ name: Issue or feature request related to the GUI description: Any report, issue or feature request related to the GUI labels: [GUI] body: +- type: markdown + attributes: + value: | + If you use AI tools when opening this issue, please read the [AI policy](https://github.com/bitcoin/bitcoin/blob/master/doc/AI_POLICY.md). + - type: checkboxes id: acknowledgement attributes: diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index ae92fc78..269a9e59 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,12 +1,13 @@