fuzz: connman: strengthen assertions and extend coverage#35220
Conversation
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. Code Coverage & BenchmarksFor details see: https://corecheck.dev/bitcoin/bitcoin/pulls/35220. ReviewsSee the guideline for information on the review process.
If your review is incorrectly listed, please copy-paste ConflictsNo conflicts as of last run. |
frankomosh
left a comment
There was a problem hiding this comment.
Concept ACK. I think it is a good thing to have these assertions. Will review each one of them separately.
|
Concept ACK |
dfd3744 to
e65d75e
Compare
|
Force-pushed addressing #35220 (comment) and #35220 (comment). |
e65d75e to
9d3d16e
Compare
|
Rebased |
9d3d16e to
8dc82a2
Compare
|
Force-pushed addressing #35220 (comment) and some nits. |
8dc82a2 to
0180f91
Compare
|
tACK 0180f91 I've tested the master branch vs commit 0180f91 on a corpus of 3391 inputs and got the below diffs. DetailsSetNetworkActive — net.cpp
- 3397| 3.99k|{
- 3398| 3.99k| LogInfo("%s: %s\n", __func__, active);
+ 3397| 10.2k|{
+ 3398| 10.2k| LogInfo("%s: %s\n", __func__, active);
OutboundTargetReached — net.cpp
- 3963| 15.3k| if (nMaxOutboundLimit == 0)
- 3964| 697| return false;
+ 3963| 17.4k| if (nMaxOutboundLimit == 0)
+ 3964| 2.57k| return false;
AddNode — net.cpp
- 3783| 20| if (add.m_added_node == it.m_added_node || (resolved_is_valid && resolved == LookupNumeric(it.m_added_node, GetDefaultPort(it.m_added_node)))) return false;
- 3786| 66| m_added_node_params.push_back(add);
- 3787| 66| return true;
+ 3783| 58| if (add.m_added_node == it.m_added_node || (resolved_is_valid && resolved == LookupNumeric(it.m_added_node, GetDefaultPort(it.m_added_node)))) return false;
+ 3786| 49| m_added_node_params.push_back(add);
+ 3787| 49| return true;
GetAddedNodeInfo — net.cpp
- 2987| 0| if (!include_connected) {
- 2988| 0| continue;
- 2989| 0| }
- 2990| 0| addedNode.resolvedAddress = it->second.second;
- 2991| 0| addedNode.fConnected = true;
- 2992| 0| addedNode.fInbound = it->second.first;
+ 2987| 28| if (!include_connected) {
+ 2988| 8| continue;
+ 2989| 8| }
+ 2990| 20| addedNode.resolvedAddress = it->second.second;
+ 2991| 20| addedNode.fConnected = true;
+ 2992| 20| addedNode.fInbound = it->second.first;
RemoveAddedNode — net.cpp
- 3794| 4| if (node == it->m_added_node) {
- 3795| 4| m_added_node_params.erase(it);
- 3796| 4| return true;
+ 3794| 34| if (node == it->m_added_node) {
+ 3795| 32| m_added_node_params.erase(it);
+ 3796| 32| return true;
AddLocalServices — net.h
- 1376| 0| void AddLocalServices(ServiceFlags services) { m_local_services = ServiceFlags(m_local_services | services); };
+ 1376| 90.1k| void AddLocalServices(ServiceFlags services) { m_local_services = ServiceFlags(m_local_services | services); };
RemoveLocalServices — net.h
- 1377| 0| void RemoveLocalServices(ServiceFlags services) { m_local_services = ServiceFlags(m_local_services & ~services); }
+ 1377| 90.1k| void RemoveLocalServices(ServiceFlags services) { m_local_services = ServiceFlags(m_local_services & ~services); } |
frankomosh
left a comment
There was a problem hiding this comment.
Code Review ACK 0180f91. Reviewed assertions added in this PR against the CConnman implementation in net.cpp/net.h and they lgtm. Also did mutation(statement deletions) on SetNetworkActive, AddLocalServices, and RemoveLocalServices, and some operator inversions ( == to != , <= to >= ) and all are killed
Co-authored-by: frankomosh <frankomosh197@gmail.com>
0180f91 to
1a3cfdf
Compare
|
Force-pushed: 0180f91..1a3cfdf: Added a lambda to fuzz |
frankomosh
left a comment
There was a problem hiding this comment.
reACK 1a3cfdf . Change from the diff is the restoring (void)connman.RemoveAddedNode(random_string) arm
|
re-ACK 1a3cfdf Since last ACK, addressed reviewer feedback by adding back |
… extend coverage cdebb3c fuzz: connman: cover AddLocalServices/RemoveLocalServices (Bruno Garcia) 23f3c21 fuzz: connman: add outbound-bytes invariants (Bruno Garcia) 546a5b4 fuzz: connman: add AddNode/RemoveAddedNode invariants (Bruno Garcia) 876e9f8 fuzz: connman: set m_local_services/m_use_addrman_outgoing/m_max_automatic_connections (Bruno Garcia) ee1d1b0 fuzz: connman: add network activity invariants (Bruno Garcia) Pull request description: This PR improves the `connman` fuzz target by replacing some "`(void)`" calls with actual invariant checks, adding coverage for previously uncovered methods, and exercising more initialization states. - Set `m_local_services`, `m_use_addrman_outgoing`, and `m_max_automatic_connections` via fuzzed values before `Init()` to explore more startup configurations. - Add network activity and outbound-bytes invariants. - Add `AddNode`/`RemoveAddedNode` invariants: e.g. a successful `AddNode` increases `GetAddedNodeInfo()` by one; adding the same node again must fail; a subsequent `RemoveAddedNode` must succeed and restore the original count. - Add coverage for `AddLocalServices`/`RemoveLocalServices`. ACKs for top commit: nervana21: re-ACK cdebb3c frankomosh: reACK cdebb3c . Change from the diff is the restoring `(void)connman.RemoveAddedNode(random_string)` arm sedited: ACK cdebb3c Tree-SHA512: c7b6799ca65d2e639d8ab9ab0cc77bae663f24fbda934446a8ee2e8ce9e8e36624d16b4f492b1714e2d67375edd35907cb9392d21f368d3d5298275ff1d05c72
2a9e35d293b Merge bitcoin/bitcoin#35588: scripted-diff: Rename `Sock::{RECV,SEND,ERR}` 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 e1290ce7f74 Merge bitcoin/bitcoin#35543: test: introduce ExtendedPrivateKey and ExtendedPublicKey classes 7ac25c91771 util, refactor: Rename local `ERR` in `Sock::Accept` 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 93012d7ff91 Merge bitcoin/bitcoin#35601: wallet: remove experimental warning from send and sendall 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 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 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 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 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 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 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 9caae506829 Update secp256k1 subtree to latest upstream 1f3f0a4e220 Squashed 'src/secp256k1/' changes from 7262adb4b4..bd0287d650 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 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 744d4950190 ci: updated docs to reflect removal of REPO_USE_WARP_RUNNERS flag 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 fae482b4e6f ci: Use GCC consistently in i686 task 32df86f1d80 argsman: Prevent duplicate option registration across categories 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 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 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 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 f1344e6c7fd Merge bitcoin/bitcoin#35378: ci: switch to warp runners 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 5fe0615f7ab Update leveldb subtree to latest upstream 58cdb5c2e83 Squashed 'src/leveldb/' changes from ab6c84e6f3..a7f9bdc611 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 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 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 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 97f7cc02332 wallet: mark -walletrbf startup option as deprecated c4a7613e6a7 wallet: mark `bip125-replaceable` key as deprecated in transaction RPCs 131fa570b95 test: Add test for BuildSkip() and skip heights f05b1a3532b rpc: Fix for duplicate external signers case 97d08d62baf refactor: store wallet names to MigrationResult df7ed5f3554 chainparams: encapsulate deployment configuration logic 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 fa2afba28b5 p2p: Release m_peer_mutex early in InitiateTxBroadcastToAll 2ef6679c2ca test: Check that MuSig2 signing does not reuse nonces 21a1380c134 key: cleanse ChainCode on destruction bb05986c0a8 musig: Include pubnonce in session id 3f44f9aef7c test: Add coverage for m_blocks_unlinked invariant in LoadBlockIndex b3a3f88346d crypto: cleanse HMAC stack buffers after use d5adb9d09b8 doc: fix doxygen links to threads in developer-notes.md 08c3c37d123 bitcoin-cli: note -rpcclienttimeout is not implemented for IPC connections 5a2e3592137 clarify blockfilterindex cache allocation rationale 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 0e4b0bacecf validation: Don't add pruned blocks to m_blocks_unlinked on startup 1d669637495 log: clarify VerifyDB summary log a9301cfa073 refactor: disable default std::hash for CTransactionRef 47d68cd981f ci: backport iwyu PR 2013 std::hash mapping 735b25519aa support: clamp RLIMIT_MEMLOCK to size_t 8ab4b9fc856 init: clamp fd limits to int 4afbabdcef8 Fix startup failure with RLIM_INFINITY fd limits 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 d06dabf26be node: allocate index caches proportional to usage patterns fedeff7f201 crypto: disable ASan instrumentation of SSE4 SHA256 for GCC 55d37546faa Bugfix: GUI/Intro: Handle errors from SelectParams the same as if during InitConfig git-subtree-dir: bitcoinkernel/bitcoin git-subtree-split: 2a9e35d293b308e81811fa93ad2e5e8ed20e66e0
…f591d0b84 2df591d0b84 kernel: Add script tracer f26c15bdd28 Merge bitcoin/bitcoin#35397: ci: add OpenBSD Clang cross job 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 a318f43254c bitcoin-util: Add netmagic command 3c76bd43568 Merge bitcoin/bitcoin#35603: build: QRencode cleanups 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}` 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 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 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 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 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 703a671fbc2 fuzz: compact coins view db during fuzzing 0868c85fd57 refactor: rename async coin compaction 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 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 1a3cfdf1b7a fuzz: connman: cover AddLocalServices/RemoveLocalServices c507fb30634 fuzz: connman: add outbound-bytes invariants 4a6fce43ead fuzz: connman: add AddNode/RemoveAddedNode invariants 9e6546c517c test: raise reindex mining RPC timeout d2a03d50acb test: add extendedkey.py unit tests by using BIP32 test vectors afdb3780821 test: introduce ExtendedPrivateKey and ExtendedPublicKey classes 2ee4fafa3f4 test: add fuzz test for private broadcast 08b7c61fc70 private broadcast: enforce sending to unique node ids 4dbaa7cc65b test: generalise byte_to_base58 utility function to allow more version types df9eb72b129 test: ensure group data cluster pointers are live a5859edef45 fuzz: connman: set m_local_services/m_use_addrman_outgoing/m_max_automatic_connections 4b84c9125ad fuzz: connman: add network activity invariants 97d08d62baf refactor: store wallet names to MigrationResult git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: 2df591d0b8497b5b1fb48b762990b829acd5f843
…f591d0b84 2df591d0b84 kernel: Add script tracer f26c15bdd28 Merge bitcoin/bitcoin#35397: ci: add OpenBSD Clang cross job 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 a318f43254c bitcoin-util: Add netmagic command 3c76bd43568 Merge bitcoin/bitcoin#35603: build: QRencode cleanups 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}` 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 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 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 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 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 703a671fbc2 fuzz: compact coins view db during fuzzing 0868c85fd57 refactor: rename async coin compaction 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 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 1a3cfdf1b7a fuzz: connman: cover AddLocalServices/RemoveLocalServices c507fb30634 fuzz: connman: add outbound-bytes invariants 4a6fce43ead fuzz: connman: add AddNode/RemoveAddedNode invariants 9e6546c517c test: raise reindex mining RPC timeout d2a03d50acb test: add extendedkey.py unit tests by using BIP32 test vectors afdb3780821 test: introduce ExtendedPrivateKey and ExtendedPublicKey classes 2ee4fafa3f4 test: add fuzz test for private broadcast 08b7c61fc70 private broadcast: enforce sending to unique node ids 4dbaa7cc65b test: generalise byte_to_base58 utility function to allow more version types df9eb72b129 test: ensure group data cluster pointers are live a5859edef45 fuzz: connman: set m_local_services/m_use_addrman_outgoing/m_max_automatic_connections 4b84c9125ad fuzz: connman: add network activity invariants 97d08d62baf refactor: store wallet names to MigrationResult git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: 2df591d0b8497b5b1fb48b762990b829acd5f843
…05fc7ab 81405fc7ab Merge bitcoin/bitcoin#35689: test: Inline incorrect check in `util_tests` cd2a4bc510 test: Redeclare variable as signed in `util_tests` 6f1c56f03a Merge bitcoin/bitcoin#35670: net: optimize compact block extra tx iteration e94fda8a40 Merge bitcoin/bitcoin#35685: doc: Archive 30.3 release notes 5223cf1795 Merge bitcoin/bitcoin#35616: refactor: Use u64 over size_t for all cache sizes to fix a 32-bit overflow c0e91efdb3 Merge bitcoin/bitcoin#35295: validation: fetch block input prevouts in parallel during ConnectBlock f0da26cfc8 Merge bitcoin/bitcoin#34997: p2p: Don't participate in addr relay with feelers 443179a9eb doc: Archive 30.3 release notes fabafd91f1 refactor: Use u64 over size_t for all cache sizes to fix a 32-bit overflow 32941e1314 Merge bitcoin/bitcoin#35649: depends: move FreeBSD SDK handling to CI f379d716b1 Merge bitcoin/bitcoin#35669: doc: archive release notes for v31.1 881bb7b355 Merge bitcoin/bitcoin#35673: refactor: Move LoadGenesisBlock to ChainstateManager 3f3e644beb Merge bitcoin/bitcoin#35678: private broadcast: define and use new RPC_LIMIT_EXCEEDED error code ( + other follow-ups) e3b026bf56 Merge bitcoin/bitcoin#34020: mining: add getTransactions(ByWitnessID) IPC methods 62f9089343 Merge bitcoin/bitcoin#35386: doc: add an AI contribution policy fa615bd163 refactor: Move LoadGenesisBlock to ChainstateManager 8ac222484c private broadcast: remove no-op [[nodiscard]] 191bdcba26 test: align test better with described scenario 7ad311be18 test: use BOOST_CHECK_EQUAL for PrivateBroadcast::AddResult 82a02a2a22 rpc: define and use new RPC_LIMIT_EXCEEDED error code a64df338e6 Merge bitcoin/bitcoin#35651: doc: Improve offline-signing-tutorial after 32489 4498fa5d5b Merge bitcoin/bitcoin#35406: private broadcast: limit outstanding txs to count of 10,000 ec5edcd72b Merge bitcoin/bitcoin#35661: Update libmultiprocess subtree to add `ThreadMap.makePool` method ea67fea062 Merge bitcoin/bitcoin#35464: kernel: Add function for creating chainparams with a signet challenge a7b5f23bb8 Merge bitcoin/bitcoin#35667: refactor: Use `NetworkErrorString` for macOS code in `netif.cpp` 69fc991791 Merge bitcoin/bitcoin#32606: p2p: Drop unsolicited CMPCTBLOCK from non-HB peer and when blocksonly 1a3cbf1bd2 net: optimize compact block extra tx iteration bc33509ae2 Merge bitcoin/bitcoin#35650: doc: Add release notes for 32489 (exportwatchonlywallet RPC) 2b6e767d96 doc: archive release notes for v31.1 b0735336ee p2p: Don't participate in addr relay with feeler connections 302733fd96 Merge bitcoin/bitcoin#35652: init: fix reindex deadlock by waking cv after interrupt c1313b199f init: wake genesis wait after ImportBlocks() returns eccb04a321 refactor: Use `NetworkErrorString` for macOS code in `netif.cpp` f79ecfd9c7 Merge bitcoin/bitcoin#35658: refactor: Drop unneeded `<sys/types.h>` include before `<ifaddrs.h>` 22ac4ad949 ci: ensure we use correct lld version in OpenBSD job 495f43f7b3 ci: FreeBSD 15.1 244739db9d depends: move FreeBSD SDK handling to CI bab0120053 Merge bitcoin/bitcoin#35621: validation: Ignore eventual error message from flushing in AcceptBlock 02afa66169 Merge commit '6b0a907302364649dcaffeb0340b985f14141b4e' into pr/subtree-11 6b0a907302 Squashed 'src/ipc/libmultiprocess/' changes from 3edbe8f67c1..16bf05dea02 22c328d388 refactor: Drop unneeded `<sys/types.h>` include before `<ifaddrs.h>` 2063f02bd5 Merge bitcoin/bitcoin#35510: test: SOCKS5 proxy: expect that connection may be reset during SOCKS5 handshake or data forwarding 1360001f43 Merge bitcoin/bitcoin#34959: wallet: Enforce BDB btree levels and overflow item sizes 10ffef4b3b Merge bitcoin/bitcoin#35604: log: expose `-logratelimit` in normal help b393985aa0 Merge bitcoin/bitcoin#35634: txospenderindex: use zero-byte entry values 1835f2fcbf Merge bitcoin/bitcoin#35653: fuzz: Remove `ConsumeUniValue` 9f3e427228 fuzz: Remove ConsumeUniValue 68cb7840d2 doc: improve offline-signing-tutorial after 32489 32ddfc92d9 Merge bitcoin/bitcoin#35599: doc: Add release notes for #33671 (getbalances nonmempool field) f56804bcf5 Merge bitcoin/bitcoin#35640: ci: use a 8x instance over 16x for riscv job 239d6c5260 Merge bitcoin/bitcoin#35614: HTTPServer: Prevent race condition between worker thread and I/O thread cddbad325d doc: Add release notes for 32489 (exportwatchonlywallet RPC) 0a1bbec688 Merge bitcoin/bitcoin#32489: wallet: Add `exportwatchonlywallet` RPC to export a watchonly version of a wallet 4a007126fb Merge bitcoin/bitcoin#35147: depends: Boost 1.91.0-1 31abaa264c doc: add an AI contribution policy a15bdc0598 doc: update offline-signing-tutorial to use exportwatchonlywallet rpc a388076401 test: Test for exportwatchonlywallet d053e3e5c8 wallet, rpc: Add exportwatchonlywallet RPC 444878efef wallet: Add CWallet::ExportWatchOnly f9273f01db wallet: Move listdescriptors retrieving from RPC to CWallet a1c83789a7 wallet: Write new descriptor's cache in AddWalletDescriptor 1e996640e6 wallet: Use Descriptor::CanSelfExpand() in CanGetAddresses() d2ee9227da descriptor: Add CanSelfExpand() 2990bd7735 Merge bitcoin/bitcoin#35118: fuzz: add ipc round-trip fuzz target fb1d152c24 depends: Boost 1.91.0-1 ba48852f9e Merge bitcoin/bitcoin#35438: test: introduce NodeSigner, run feature_taproot.py without wallet compiled 47bbed052e ci: use true|false over "true|false" 9a25bc3989 ci: use a 8x instance over 16x 9871dc7ab4 Merge bitcoin/bitcoin#31425: CI: Add Riscv bare metal job 113402286e doc: add txospenderindex release note ce06878288 index: shrink txospenderindex value markers a99148d576 test kernel: Don't log on warnings change 5b4fd284f4 kernel: Generate a signet with a challenge 037ad77071 fuzz: add IPC round-trip target a8823c0996 Merge bitcoin/bitcoin#35607: nanobench: fix performance counter buffer initialization f26c15bdd2 Merge bitcoin/bitcoin#35397: ci: add OpenBSD Clang cross job 91586f701e test: introduce NodeSigner, run feature_taproot.py without wallet compiled 771200ca43 test: return full keypair from `getnewdestination` helper 4e29de719e private broadcast: add release note for limited cap cbf8c107c1 Release cs_main between individual private tx re-attempts 5aea3d0373 private broadcast: limit outstanding txs to count of 10,000 dc282ff31d Merge bitcoin/bitcoin#35597: logging: More fully remove libevent log category ec98037f7a Merge bitcoin/bitcoin#35615: fuzz: restore CreateSock in PCP targets 43d89bb6e1 Merge bitcoin/bitcoin#35610: bitcoin-util: Add netmagic command e35c805489 Merge bitcoin/bitcoin#35129: test: add fuzz test for private broadcast dc1c17c085 doc: add release notes 0e10937184 fuzz: add coins_view_stacked fuzz harness to test concurrent leveldb reads ce610a6ff4 fuzz: update harnesses to cover CoinsViewOverlay::StartFetching 760fb22dc3 test: add unit tests for CoinsViewOverlay::StartFetching d69a3b20de doc: update CoinsViewOverlay docstring to describe parallel fetching ab2a379237 coins: fetch inputs in parallel fdf283036a coins: add ready flag to InputToFetch ede11b8314 validation: collect block inputs in CoinsViewOverlay before ConnectBlock f82043af50 coins: introduce thread pool in CoinsViewOverlay 5bf1c32008 validation: add -prevoutfetchthreads configuration option a318f43254 bitcoin-util: Add netmagic command 256482ab56 validation: In AcceptBlock, ignore flush result 3c76bd4356 Merge bitcoin/bitcoin#35603: build: QRencode cleanups f595daf1dd test: ensure HTTPServer race condition is fixed b98b10c072 test: introduce a worker thread in http socket error test 922b08d375 test: socket error handling in HTTPServer using ErrorSock mock socket 73da2a8a52 http: prevent race condition between worker thread and I/O thread 57b3bf8496 Merge bitcoin/bitcoin#35609: ci: Bump tsan config to ubuntu:26.04 with -U_FORTIFY_SOURCE d64ea15824 ci: add openBSD cross CI job 5404b62074 depends: add openbsd_LDFLAGS 2a9e35d293 Merge bitcoin/bitcoin#35588: scripted-diff: Rename `Sock::{RECV,SEND,ERR}` a0e5e30010 fuzz: restore CreateSock in PCP targets 41ceea400e scripted-diff: Rename `StatusLevel::{INFO,WARN,ERR}` f395acdeee scripted-diff: Rename `Sock::{RECV,SEND,ERR}` 7a74f65293 Merge bitcoin/bitcoin#35536: fuzz: share a single mocked steady clock across FuzzedSock instances e1290ce7f7 Merge bitcoin/bitcoin#35543: test: introduce ExtendedPrivateKey and ExtendedPublicKey classes 7ac25c9177 util, refactor: Rename local `ERR` in `Sock::Accept` bbbbab86a8 ci: Bump tsan config to ubuntu:26.04 with -U_FORTIFY_SOURCE 095596ddf7 log: expose -logratelimit option ea9afb61a1 Merge bitcoin/bitcoin#35602: doc: Clarify build docs about `pkgconf` / `pkg-config` requirements 672eedc46b Merge bitcoin/bitcoin#35220: fuzz: connman: strengthen assertions and extend coverage 0e5c718d8a Merge bitcoin/bitcoin#35506: test: ensure group data cluster pointers are live b6b1d0653a nanobench: fix perf counter buffer init 93012d7ff9 Merge bitcoin/bitcoin#35601: wallet: remove experimental warning from send and sendall 829255c8be cmake: Remove `SelectLibraryConfigurations` from `FindQRencode` module 5c55606da9 depends: Remove unused `lib/pkgconfig` in `qrencode` package 402ba10b20 cmake: Drop optional `PkgConfig` use in `FindQRencode` module 8ebfff0f88 doc: add send RPC release note fb8a103886 doc: Clarify build docs about `pkgconf` / `pkg-config` requirements 5884f5a4fa wallet: remove experimental warning from send RPCs 7b84e5106c Merge bitcoin/bitcoin#35595: ci: remove some packages from Chimera job 58560c281d ci: remove some packages from Chimera job 295ce6f45c Merge bitcoin/bitcoin#35576: test: raise `feature_reindex` RPC timeout b36730a3ef Add CI job for riscv bare metal bfdbf513f6 Add CI job for producing a static bare metal binary a9a1d92a1d build: Add option for building for bare metal envs 9b2ef81757 doc: add release notes for #33671 (getbalances nonmempool field) 633044f143 Merge bitcoin/bitcoin#35266: rpc, wallet: add an option to not load the wallet after migrating d6269e2a90 Merge bitcoin/bitcoin#35594: fuzz: cover async chainstate compaction 3765b428d1 logging: More fully remove libevent log category 703a671fbc fuzz: compact coins view db during fuzzing 0868c85fd5 refactor: rename async coin compaction 6fa4132298 fuzz: share a single mocked steady clock across FuzzedSock instances 8791c4764c test: use ExtendedPrivateKey in wallet_taproot.py 89ceafafb9 test: use ExtendedPrivateKey in wallet_listdescriptors.py bbfffcab58 test: use ExtendedPrivateKey in wallet_send.py 2ab6e590f7 test: use ExtendedPrivateKey in wallet_keypool.py 9e20118720 test: use ExtendedPrivateKey in wallet_fundrawtransaction.py 06af0cddbb test: use ExtendedPrivateKey in wallet_descriptor.py 4100fac20e test: use ExtendedPrivateKey in wallet_createwallet.py ff3f6def9a test: use ExtendedPrivateKey in wallet_bumpfee.py 003f2a01f6 test: use ExtendedPrivateKey in feature_notifications.py f988e6d6e6 test: use ExtendedPrivateKey in wallet_importdescriptors.py 0cdd817a82 add release note 517d37ce3e test: tests wallet migration with load_wallet disabled b98dd63da7 rpc: Add load_wallet argument to migratewallet RPC 4acd063ba6 wallet: make loading the wallet after migrating optional 1a3cfdf1b7 fuzz: connman: cover AddLocalServices/RemoveLocalServices c507fb3063 fuzz: connman: add outbound-bytes invariants 4a6fce43ea fuzz: connman: add AddNode/RemoveAddedNode invariants 9e6546c517 test: raise reindex mining RPC timeout d2a03d50ac test: add extendedkey.py unit tests by using BIP32 test vectors afdb378082 test: introduce ExtendedPrivateKey and ExtendedPublicKey classes 55e3a57f22 qa: Avoid UTXO reuse between test functions 9c5dd2926a p2p: Ignore CMPCTBLOCK from peer that hasn't sent SENDCMPCT bf9884f4e5 p2p: make blocksonly nodes ignore CMPCTBLOCK messages 92cea63c71 test: (Un)solicited invalid cb -> get disconnected. e845e26344 test: p2p: Nodes ignore unsolicited CMPCTBLOCK's 8313591715 p2p: Drop unsolicited CMPCTBLOCK from non-HB peer 44f377a71f refactor: test: Static assert_highbandwidth_states 25457a3272 test: Tighten getblocktxn checks in parallel cb reconstruction test. 2ee4fafa3f test: add fuzz test for private broadcast 08b7c61fc7 private broadcast: enforce sending to unique node ids 9a8ef9b0a3 test: SOCKS5 proxy: expect that connection may be reset during handshake eb3208364a test: SOCKS5 proxy: expect that connection may be reset when forwarding 4dbaa7cc65 test: generalise byte_to_base58 utility function to allow more version types df9eb72b12 test: ensure group data cluster pointers are live a5859edef4 fuzz: connman: set m_local_services/m_use_addrman_outgoing/m_max_automatic_connections 4b84c9125a fuzz: connman: add network activity invariants 9784818442 mining: add getTransactionsByWitnessID() IPC method d282ae6883 mining: add getTransactionsByTxID() IPC method 0d5e4d4712 test: restart node after IPC option override test f16b3613cd ipc: Serialize null CTransactionRef as empty Data 0f466e1094 mempool: add lookup by witness hash 51dd90fb50 refactor: Merge announce_cmpct_block() defs into one 97d08d62ba refactor: store wallet names to MigrationResult 8a739a5510 build: allow ipc fuzz builds b2de59d486 wallet, bdbro: Validate btree page levels dc3a2b9c3b wallet, bdbro: Enforce overflow data lengths git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: 81405fc7abbd1889f3978b8924e7acbe12b3403b
This PR improves the
connmanfuzz target by replacing some "(void)" calls with actual invariant checks, adding coverage for previously uncovered methods, and exercising more initialization states.Set
m_local_services,m_use_addrman_outgoing, andm_max_automatic_connectionsvia fuzzed values beforeInit()toexplore more startup configurations.
Add network activity and outbound-bytes invariants.
Add
AddNode/RemoveAddedNodeinvariants: e.g. a successfulAddNodeincreases
GetAddedNodeInfo()by one; adding the same node againmust fail; a subsequent
RemoveAddedNodemust succeed and restorethe original count.
Add coverage for
AddLocalServices/RemoveLocalServices.