iwyu: Fix warnings in src/bench and treat them as error#35414
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/35414. ReviewsSee the guideline for information on the review process.
If your review is incorrectly listed, please copy-paste ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
| } | ||
|
|
||
| BenchRunner::BenchRunner(std::string name, BenchFunction func) | ||
| BenchRunner::BenchRunner(std::string_view name, BenchFunction func) |
There was a problem hiding this comment.
In 02ac6a6:
eliminating the need to include
<string>everywhere theBENCHMARK()
macro is used.
Why is that a problem (that we need to refactor the source to address)?
There was a problem hiding this comment.
On the master branch, the BENCHMARK() macro hides the actual usage of std::string, which leads to confusing code like this:
#include <bench/bench.h>
#include <string> // Appears unused, but required by BENCHMARK().
#include <util/time.h>
static void BenchTimeDeprecated(benchmark::Bench& bench)
{
bench.run([&] { (void)GetTime(); });
}
BENCHMARK(BenchTimeDeprecated);There was a problem hiding this comment.
Interesting. This just turns an implicit string conversion into an implicit string view conversion. So why does this not result in a required string_view include everywhere?
There was a problem hiding this comment.
Asked here: include-what-you-use/include-what-you-use#2056.
There was a problem hiding this comment.
Ah ok, so it not working for std::string is a bug, and using string_view for now seems fine
There was a problem hiding this comment.
I think the commit message should be changed, to indicate that this refactor "works" because of an upstream bug, otherwise the current text is misleading:
eliminating the need to include
<string>everywhere theBENCHMARK()
macro is used.
Although, I think rather than performing a refactoring, to avoid adding the correct includes, which only happens to work because of an upstream bug (meaning we'll need to make a similar change anyways when the bug is fixed), it'd be better to just make the change now, and document the bug.
There was a problem hiding this comment.
I think the commit message should be changed, to indicate that this refactor "works" because of an upstream bug, otherwise the current text is misleading:
eliminating the need to include
<string>everywhere theBENCHMARK()
macro is used.Although, I think rather than performing a refactoring, to avoid adding the correct includes, which only happens to work because of an upstream bug (meaning we'll need to make a similar change anyways when the bug is fixed), it'd be better to just make the change now, and document the bug.
I think it is the other way round: The refactor works, because it is intentional iwyu policy. The upstream bug is about std::string not working, and if the upstream bug is fixed, no further includes need to be added.
A third alternative could be to just use const char* (from C) for the C-string literals, which would even allow to drop the string_view include, because all names are compile-time literals anyway. 😅
But no strong opinion, anything is fine here.
There was a problem hiding this comment.
Tried libc++ for fun and it looks like it asks for string_view includes here (among a few other seemingly false positives):
diff --git a/ci/test/00_setup_env_native_iwyu.sh b/ci/test/00_setup_env_native_iwyu.sh
index 3a26be5..27e154d 100755
--- a/ci/test/00_setup_env_native_iwyu.sh
+++ b/ci/test/00_setup_env_native_iwyu.sh
@@ -24 +24 @@ export BITCOIN_CONFIG="\
- -DCMAKE_CXX_COMPILER=clang++-${IWYU_LLVM_V} \
+ -DCMAKE_CXX_COMPILER='clang++-${IWYU_LLVM_V};-stdlib=libc++' \
diff --git a/src/bench/addrman.cpp b/src/bench/addrman.cpp
index 5ce7893..d3ed4c3 100644
--- a/src/bench/addrman.cpp
+++ b/src/bench/addrman.cpp
@@ -5,0 +6 @@
+
@@ -19,0 +21 @@
+#include <string_view>
diff --git a/src/bench/base58.cpp b/src/bench/base58.cpp
index ed36dc3..4ccb6bd 100644
--- a/src/bench/base58.cpp
+++ b/src/bench/base58.cpp
@@ -5,0 +6 @@
+
@@ -9,0 +11 @@
+#include <string_view>
diff --git a/src/bench/bech32.cpp b/src/bench/bech32.cpp
index 1147bd6..1c64cae 100644
--- a/src/bench/bech32.cpp
+++ b/src/bench/bech32.cpp
@@ -5,0 +6 @@
+
@@ -9,0 +11 @@
+#include <string_view>
diff --git a/src/bench/bip324_ecdh.cpp b/src/bench/bip324_ecdh.cpp
index c8d3a35..206a767 100644
--- a/src/bench/bip324_ecdh.cpp
+++ b/src/bench/bip324_ecdh.cpp
@@ -14,0 +15 @@
+#include <string_view>
diff --git a/src/bench/block_assemble.cpp b/src/bench/block_assemble.cpp
index 45052ec..6d80df5 100644
--- a/src/bench/block_assemble.cpp
+++ b/src/bench/block_assemble.cpp
@@ -20,0 +21 @@
+#include <string_view>
diff --git a/src/bench/blockencodings.cpp b/src/bench/blockencodings.cpp
index 274474d..74b324e 100644
--- a/src/bench/blockencodings.cpp
+++ b/src/bench/blockencodings.cpp
@@ -5 +4,0 @@
-#include <bench/bench.h>
@@ -6,0 +6,2 @@
+
+#include <bench/bench.h>
@@ -25,0 +27 @@
+#include <string_view>
diff --git a/src/bench/ccoins_caching.cpp b/src/bench/ccoins_caching.cpp
index ec44e66..a989f58 100644
--- a/src/bench/ccoins_caching.cpp
+++ b/src/bench/ccoins_caching.cpp
@@ -17,0 +18 @@
+#include <string_view>
diff --git a/src/bench/chacha20.cpp b/src/bench/chacha20.cpp
index cc2b57e..12a8157 100644
--- a/src/bench/chacha20.cpp
+++ b/src/bench/chacha20.cpp
@@ -14,0 +15 @@
+#include <string_view>
diff --git a/src/bench/checkblock.cpp b/src/bench/checkblock.cpp
index a35f5e9..4afb084 100644
--- a/src/bench/checkblock.cpp
+++ b/src/bench/checkblock.cpp
@@ -17,0 +18 @@
+#include <string_view>
diff --git a/src/bench/checkblockindex.cpp b/src/bench/checkblockindex.cpp
index 78e70a8..1aa7203 100644
--- a/src/bench/checkblockindex.cpp
+++ b/src/bench/checkblockindex.cpp
@@ -9,0 +10 @@
+#include <string_view>
diff --git a/src/bench/checkqueue.cpp b/src/bench/checkqueue.cpp
index 20f3094..16f95bf 100644
--- a/src/bench/checkqueue.cpp
+++ b/src/bench/checkqueue.cpp
@@ -5 +4,0 @@
-#include <bench/bench.h>
@@ -6,0 +6,2 @@
+
+#include <bench/bench.h>
@@ -15,0 +17 @@
+#include <string_view>
diff --git a/src/bench/cluster_linearize.cpp b/src/bench/cluster_linearize.cpp
index 6d4c838..da1c912 100644
--- a/src/bench/cluster_linearize.cpp
+++ b/src/bench/cluster_linearize.cpp
@@ -5 +4,0 @@
-#include <bench/bench.h>
@@ -6,0 +6,2 @@
+
+#include <bench/bench.h>
@@ -17,0 +19 @@
+#include <string_view>
diff --git a/src/bench/coin_selection.cpp b/src/bench/coin_selection.cpp
index 4f203fe..cd4fb48 100644
--- a/src/bench/coin_selection.cpp
+++ b/src/bench/coin_selection.cpp
@@ -28,0 +29 @@
+#include <string_view>
diff --git a/src/bench/connectblock.cpp b/src/bench/connectblock.cpp
index 5d530a5..aec4762 100644
--- a/src/bench/connectblock.cpp
+++ b/src/bench/connectblock.cpp
@@ -25,0 +26 @@
+#include <string_view>
diff --git a/src/bench/crypto_hash.cpp b/src/bench/crypto_hash.cpp
index 4d0660d..c6d3216 100644
--- a/src/bench/crypto_hash.cpp
+++ b/src/bench/crypto_hash.cpp
@@ -19,0 +20 @@
+#include <string_view>
diff --git a/src/bench/disconnected_transactions.cpp b/src/bench/disconnected_transactions.cpp
index 1ab2ec6..a169392 100644
--- a/src/bench/disconnected_transactions.cpp
+++ b/src/bench/disconnected_transactions.cpp
@@ -5 +4,0 @@
-#include <bench/bench.h>
@@ -6,0 +6,2 @@
+
+#include <bench/bench.h>
@@ -16,0 +18 @@
+#include <string_view>
diff --git a/src/bench/duplicate_inputs.cpp b/src/bench/duplicate_inputs.cpp
index a528066..06d6f3b 100644
--- a/src/bench/duplicate_inputs.cpp
+++ b/src/bench/duplicate_inputs.cpp
@@ -24,0 +25 @@
+#include <string_view>
diff --git a/src/bench/ellswift.cpp b/src/bench/ellswift.cpp
index 2951ca9..6b5b8d5 100644
--- a/src/bench/ellswift.cpp
+++ b/src/bench/ellswift.cpp
@@ -14,0 +15 @@
+#include <string_view>
diff --git a/src/bench/examples.cpp b/src/bench/examples.cpp
index 07c0eab..fac6b76 100644
--- a/src/bench/examples.cpp
+++ b/src/bench/examples.cpp
@@ -6 +5,0 @@
-
@@ -8,0 +8 @@
+#include <string_view>
diff --git a/src/bench/gcs_filter.cpp b/src/bench/gcs_filter.cpp
index ea48592..b136cd2 100644
--- a/src/bench/gcs_filter.cpp
+++ b/src/bench/gcs_filter.cpp
@@ -9,0 +10 @@
+#include <string_view>
diff --git a/src/bench/hashpadding.cpp b/src/bench/hashpadding.cpp
index 4825c5f..5e3006e 100644
--- a/src/bench/hashpadding.cpp
+++ b/src/bench/hashpadding.cpp
@@ -9,0 +10,2 @@
+#include <string_view>
+
diff --git a/src/bench/index_blockfilter.cpp b/src/bench/index_blockfilter.cpp
index a945754..350a66a 100644
--- a/src/bench/index_blockfilter.cpp
+++ b/src/bench/index_blockfilter.cpp
@@ -12 +11,0 @@
-#include <primitives/block.h>
@@ -25,0 +25 @@
+#include <string_view>
diff --git a/src/bench/load_external.cpp b/src/bench/load_external.cpp
index 77c229f..c5856e3 100644
--- a/src/bench/load_external.cpp
+++ b/src/bench/load_external.cpp
@@ -21,0 +22 @@
+#include <string_view>
diff --git a/src/bench/lockedpool.cpp b/src/bench/lockedpool.cpp
index 0a924a7..9d0de2b 100644
--- a/src/bench/lockedpool.cpp
+++ b/src/bench/lockedpool.cpp
@@ -12,0 +13 @@
+#include <string_view>
diff --git a/src/bench/logging.cpp b/src/bench/logging.cpp
index 498469d..273ae25 100644
--- a/src/bench/logging.cpp
+++ b/src/bench/logging.cpp
@@ -5 +4,0 @@
-#include <bench/bench.h>
@@ -6,0 +6,2 @@
+
+#include <bench/bench.h>
@@ -9,0 +11 @@
+#include <string_view>
diff --git a/src/bench/mempool_ephemeral_spends.cpp b/src/bench/mempool_ephemeral_spends.cpp
index f88643c..1c3529e 100644
--- a/src/bench/mempool_ephemeral_spends.cpp
+++ b/src/bench/mempool_ephemeral_spends.cpp
@@ -21,0 +22 @@
+#include <string_view>
diff --git a/src/bench/mempool_eviction.cpp b/src/bench/mempool_eviction.cpp
index 37bb721..97d7ddd 100644
--- a/src/bench/mempool_eviction.cpp
+++ b/src/bench/mempool_eviction.cpp
@@ -18,0 +19 @@
+#include <string_view>
diff --git a/src/bench/mempool_stress.cpp b/src/bench/mempool_stress.cpp
index ab1146e..cf8ccfc 100644
--- a/src/bench/mempool_stress.cpp
+++ b/src/bench/mempool_stress.cpp
@@ -19,0 +20 @@
+#include <string_view>
diff --git a/src/bench/merkle_root.cpp b/src/bench/merkle_root.cpp
index d80ddb2..e8b1014 100644
--- a/src/bench/merkle_root.cpp
+++ b/src/bench/merkle_root.cpp
@@ -11,0 +12 @@
+#include <string_view>
diff --git a/src/bench/nanobench.h b/src/bench/nanobench.h
index 7851290..92ab052 100644
--- a/src/bench/nanobench.h
+++ b/src/bench/nanobench.h
@@ -50,0 +51,2 @@
+#include <__locale>
+#include <forward_list>
@@ -91,0 +94 @@
+
@@ -375 +377,0 @@ struct PerfCountSet;
-
@@ -1110,0 +1113 @@ private:
+
@@ -1382 +1384,0 @@ void doNotOptimizeAway(T const& val) {
-# include <functional>
diff --git a/src/bench/obfuscation.cpp b/src/bench/obfuscation.cpp
index 1587b73..198b815 100644
--- a/src/bench/obfuscation.cpp
+++ b/src/bench/obfuscation.cpp
@@ -4,0 +5,2 @@
+#include <util/obfuscation.h>
+
@@ -7 +8,0 @@
-#include <util/obfuscation.h>
@@ -10,0 +12 @@
+#include <string_view>
diff --git a/src/bench/parse_hex.cpp b/src/bench/parse_hex.cpp
index 846009a..388eb4f 100644
--- a/src/bench/parse_hex.cpp
+++ b/src/bench/parse_hex.cpp
@@ -12,0 +13 @@
+#include <string_view>
diff --git a/src/bench/peer_eviction.cpp b/src/bench/peer_eviction.cpp
index b9c1c9b..171cf0f 100644
--- a/src/bench/peer_eviction.cpp
+++ b/src/bench/peer_eviction.cpp
@@ -12,0 +13 @@
+#include <string_view>
diff --git a/src/bench/poly1305.cpp b/src/bench/poly1305.cpp
index a3d0f94..3651653 100644
--- a/src/bench/poly1305.cpp
+++ b/src/bench/poly1305.cpp
@@ -13,0 +14 @@
+#include <string_view>
diff --git a/src/bench/pool.cpp b/src/bench/pool.cpp
index cf4ba13..414a5d0 100644
--- a/src/bench/pool.cpp
+++ b/src/bench/pool.cpp
@@ -5 +4,0 @@
-#include <bench/bench.h>
@@ -7,0 +7,2 @@
+#include <bench/bench.h>
+
@@ -10,0 +12 @@
+#include <string_view>
diff --git a/src/bench/prevector.cpp b/src/bench/prevector.cpp
index 2b5544f..ad770a4 100644
--- a/src/bench/prevector.cpp
+++ b/src/bench/prevector.cpp
@@ -12,0 +13 @@
+#include <string_view>
diff --git a/src/bench/random.cpp b/src/bench/random.cpp
index c3ac72e..18dd465 100644
--- a/src/bench/random.cpp
+++ b/src/bench/random.cpp
@@ -5 +4,0 @@
-#include <bench/bench.h>
@@ -7,0 +7,2 @@
+#include <bench/bench.h>
+
@@ -11,0 +13 @@
+#include <string_view>
diff --git a/src/bench/readwriteblock.cpp b/src/bench/readwriteblock.cpp
index 984936d..da8dd4f 100644
--- a/src/bench/readwriteblock.cpp
+++ b/src/bench/readwriteblock.cpp
@@ -21,0 +22 @@
+#include <string_view>
diff --git a/src/bench/rollingbloom.cpp b/src/bench/rollingbloom.cpp
index 0f9bc9e..d8b340e 100644
--- a/src/bench/rollingbloom.cpp
+++ b/src/bench/rollingbloom.cpp
@@ -10,0 +11 @@
+#include <string_view>
diff --git a/src/bench/rpc_blockchain.cpp b/src/bench/rpc_blockchain.cpp
index b09eae6..239ff1b 100644
--- a/src/bench/rpc_blockchain.cpp
+++ b/src/bench/rpc_blockchain.cpp
@@ -23,0 +24 @@
+#include <string_view>
diff --git a/src/bench/rpc_mempool.cpp b/src/bench/rpc_mempool.cpp
index f319c96..c43f558 100644
--- a/src/bench/rpc_mempool.cpp
+++ b/src/bench/rpc_mempool.cpp
@@ -18,0 +19 @@
+#include <string_view>
diff --git a/src/bench/sign_transaction.cpp b/src/bench/sign_transaction.cpp
index 3895559..fe97655 100644
--- a/src/bench/sign_transaction.cpp
+++ b/src/bench/sign_transaction.cpp
@@ -21,0 +22 @@
+#include <string_view>
diff --git a/src/bench/streams_findbyte.cpp b/src/bench/streams_findbyte.cpp
index 456f5ae..201f4a9 100644
--- a/src/bench/streams_findbyte.cpp
+++ b/src/bench/streams_findbyte.cpp
@@ -14,0 +15 @@
+#include <string_view>
diff --git a/src/bench/strencodings.cpp b/src/bench/strencodings.cpp
index 4b52b74..135185a 100644
--- a/src/bench/strencodings.cpp
+++ b/src/bench/strencodings.cpp
@@ -12,0 +13 @@
+#include <string_view>
diff --git a/src/bench/txgraph.cpp b/src/bench/txgraph.cpp
index 57081dd..93bd1d0 100644
--- a/src/bench/txgraph.cpp
+++ b/src/bench/txgraph.cpp
@@ -4,0 +5,2 @@
+#include <txgraph.h>
+
@@ -7 +8,0 @@
-#include <txgraph.h>
@@ -16,0 +18 @@
+#include <string_view>
diff --git a/src/bench/txorphanage.cpp b/src/bench/txorphanage.cpp
index 8765a7b..d7d7282 100644
--- a/src/bench/txorphanage.cpp
+++ b/src/bench/txorphanage.cpp
@@ -4,0 +5,2 @@
+#include <node/txorphanage.h>
+
@@ -12 +13,0 @@
-#include <node/txorphanage.h>
@@ -22,0 +24 @@
+#include <string_view>
diff --git a/src/bench/util_time.cpp b/src/bench/util_time.cpp
index 0079549..4f6f0cf 100644
--- a/src/bench/util_time.cpp
+++ b/src/bench/util_time.cpp
@@ -8,0 +9,2 @@
+#include <string_view>
+
diff --git a/src/bench/verify_script.cpp b/src/bench/verify_script.cpp
index b6d73b8..04d1222 100644
--- a/src/bench/verify_script.cpp
+++ b/src/bench/verify_script.cpp
@@ -26,0 +27 @@
+#include <string_view>
diff --git a/src/bench/wallet_balance.cpp b/src/bench/wallet_balance.cpp
index 958044e..f64c63f 100644
--- a/src/bench/wallet_balance.cpp
+++ b/src/bench/wallet_balance.cpp
@@ -7 +6,0 @@
-#include <interfaces/handler.h>
@@ -26,0 +26 @@
+#include <string_view>
diff --git a/src/bench/wallet_create.cpp b/src/bench/wallet_create.cpp
index 13e8ee1..b624c73 100644
--- a/src/bench/wallet_create.cpp
+++ b/src/bench/wallet_create.cpp
@@ -19,0 +20 @@
+#include <string_view>
diff --git a/src/bench/wallet_create_tx.cpp b/src/bench/wallet_create_tx.cpp
index 394f21c..dada0e3 100644
--- a/src/bench/wallet_create_tx.cpp
+++ b/src/bench/wallet_create_tx.cpp
@@ -33 +32,0 @@
-#include <wallet/types.h>
@@ -41,0 +41 @@
+#include <string_view>
diff --git a/src/bench/wallet_encrypt.cpp b/src/bench/wallet_encrypt.cpp
index 81e64a2..25af00f 100644
--- a/src/bench/wallet_encrypt.cpp
+++ b/src/bench/wallet_encrypt.cpp
@@ -24 +23,0 @@
-#include <functional>
@@ -26,0 +26 @@
+#include <string_view>
diff --git a/src/bench/wallet_ismine.cpp b/src/bench/wallet_ismine.cpp
index 572a271..2265b2b 100644
--- a/src/bench/wallet_ismine.cpp
+++ b/src/bench/wallet_ismine.cpp
@@ -22 +21,0 @@
-#include <functional>
@@ -24,0 +24 @@
+#include <string_view>
diff --git a/src/bench/wallet_loading.cpp b/src/bench/wallet_loading.cpp
index 6b1208e..6614ca7 100644
--- a/src/bench/wallet_loading.cpp
+++ b/src/bench/wallet_loading.cpp
@@ -24,0 +25 @@
+#include <string_view>
diff --git a/src/bench/wallet_migration.cpp b/src/bench/wallet_migration.cpp
index 22caec7..590d361 100644
--- a/src/bench/wallet_migration.cpp
+++ b/src/bench/wallet_migration.cpp
@@ -7,0 +8 @@
+#include <interfaces/chain.h>
@@ -30,0 +32 @@
+#include <string_view>
diff --git a/src/core_io.cpp b/src/core_io.cpp
index 3650d70..b266577 100644
--- a/src/core_io.cpp
+++ b/src/core_io.cpp
@@ -44,0 +45 @@
+#include <string_view>
diff --git a/src/crypto/muhash.cpp b/src/crypto/muhash.cpp
index c04f58e..e383b57 100644
--- a/src/crypto/muhash.cpp
+++ b/src/crypto/muhash.cpp
@@ -16,0 +17 @@
+#include <string_view>
diff --git a/src/index/base.cpp b/src/index/base.cpp
index 906ed26..ae13dd5 100644
--- a/src/index/base.cpp
+++ b/src/index/base.cpp
@@ -38,0 +39,2 @@
+#include <ostream>
+#include <ratio>
@@ -40,0 +43 @@
+#include <string_view>
diff --git a/src/index/blockfilterindex.cpp b/src/index/blockfilterindex.cpp
index 5c4a181..33f9be5 100644
--- a/src/index/blockfilterindex.cpp
+++ b/src/index/blockfilterindex.cpp
@@ -32,0 +33 @@
+#include <string_view>
diff --git a/src/index/coinstatsindex.cpp b/src/index/coinstatsindex.cpp
index 204f434..d38d1fb 100644
--- a/src/index/coinstatsindex.cpp
+++ b/src/index/coinstatsindex.cpp
@@ -33,0 +34 @@
+#include <string_view>
diff --git a/src/kernel/chainparams.cpp b/src/kernel/chainparams.cpp
index cc77a37..9a0dcc7 100644
--- a/src/kernel/chainparams.cpp
+++ b/src/kernel/chainparams.cpp
@@ -32,0 +33 @@
+#include <string_view>
diff --git a/src/kernel/coinstats.cpp b/src/kernel/coinstats.cpp
index 4f2f3fe..45e51b7 100644
--- a/src/kernel/coinstats.cpp
+++ b/src/kernel/coinstats.cpp
@@ -25,0 +26 @@
+#include <string_view>
diff --git a/src/node/blockstorage.cpp b/src/node/blockstorage.cpp
index b060108..7e9ebe2 100644
--- a/src/node/blockstorage.cpp
+++ b/src/node/blockstorage.cpp
@@ -53,0 +54 @@
+#include <string_view>
diff --git a/src/node/blockstorage.h b/src/node/blockstorage.h
index 347dbc3..b82b14e 100644
--- a/src/node/blockstorage.h
+++ b/src/node/blockstorage.h
@@ -42,0 +43 @@
+#include <tuple>
@@ -50,0 +52 @@ class ChainstateManager;
+
diff --git a/src/node/interfaces.cpp b/src/node/interfaces.cpp
index 3e34c3a..66607f5 100644
--- a/src/node/interfaces.cpp
+++ b/src/node/interfaces.cpp
@@ -81,0 +82 @@
+#include <string_view>
diff --git a/src/node/miner.cpp b/src/node/miner.cpp
index ccd9cc7..4c1f4e6 100644
--- a/src/node/miner.cpp
+++ b/src/node/miner.cpp
@@ -49,0 +50 @@
+#include <ratio>
@@ -52,0 +54 @@
+#include <string_view>
diff --git a/src/prevector.h b/src/prevector.h
index e8a71bc..07e699e 100644
--- a/src/prevector.h
+++ b/src/prevector.h
@@ -9,0 +10 @@
+#include <cstddef>
diff --git a/src/script/sign.cpp b/src/script/sign.cpp
index f38ac2b..ca0a502 100644
--- a/src/script/sign.cpp
+++ b/src/script/sign.cpp
@@ -35,0 +36 @@
+#include <string_view>
diff --git a/src/script/signingprovider.cpp b/src/script/signingprovider.cpp
index 2b5d6e2..ba91795 100644
--- a/src/script/signingprovider.cpp
+++ b/src/script/signingprovider.cpp
@@ -15,0 +16,2 @@
+#include <string_view>
+#include <variant>
diff --git a/src/script/signingprovider.h b/src/script/signingprovider.h
index c104e21..ee5b1e8 100644
--- a/src/script/signingprovider.h
+++ b/src/script/signingprovider.h
@@ -28 +27,0 @@
-#include <variant>
diff --git a/src/util/feefrac.h b/src/util/feefrac.h
index f9c9a0a..8073deb 100644
--- a/src/util/feefrac.h
+++ b/src/util/feefrac.h
@@ -14,0 +15 @@
+#include <string_view>
diff --git a/src/util/fs_helpers.h b/src/util/fs_helpers.h
index f4d406f..88f2ac3 100644
--- a/src/util/fs_helpers.h
+++ b/src/util/fs_helpers.h
@@ -12,0 +13 @@
+#include <ios>
diff --git a/src/util/sock.cpp b/src/util/sock.cpp
index db3f5fc..e336e4a 100644
--- a/src/util/sock.cpp
+++ b/src/util/sock.cpp
@@ -19,0 +20 @@
+#include <ratio>
diff --git a/src/util/sock.h b/src/util/sock.h
index 50c1ab0..1aad598 100644
--- a/src/util/sock.h
+++ b/src/util/sock.h
@@ -10,0 +11 @@
+#include <cstddef>
diff --git a/src/util/threadnames.cpp b/src/util/threadnames.cpp
index a9a3649..637c5d7 100644
--- a/src/util/threadnames.cpp
+++ b/src/util/threadnames.cpp
@@ -5,0 +6 @@
+
@@ -10,0 +12 @@
+#include <string_view>
diff --git a/src/util/time.cpp b/src/util/time.cpp
index 974eb05..d511b5b 100644
--- a/src/util/time.cpp
+++ b/src/util/time.cpp
@@ -16,0 +17 @@
+#include <ratio>|
https://github.com/bitcoin/bitcoin/actions/runs/26644389739/job/78537895187?pr=35414#step:11:2209: [ 83%] Linking CXX executable ../../bin/bench_bitcoin
/usr/bin/ld: CMakeFiles/bench_bitcoin.dir/wallet_create.cpp.o: in function `wallet::WalletCreate(ankerl::nanobench::Bench&, bool)':
/home/runner/work/_temp/src/bench/nanobench.h:1281:(.text+0x928): undefined reference to `ankerl::nanobench::detail::IterationLogic::moveResultTo(std::__debug::vector<ankerl::nanobench::Result, std::allocator<ankerl::nanobench::Result> >&)'
/usr/bin/ld: CMakeFiles/bench_bitcoin.dir/bench.cpp.o: in function `benchmark::BenchRunner::RunAll(benchmark::Args const&)':
/home/runner/work/_temp/src/bench/bench.cpp:124:(.text+0xb0e): undefined reference to `ankerl::nanobench::operator<<(std::ostream&, std::__debug::vector<ankerl::nanobench::BigO, std::allocator<ankerl::nanobench::BigO> > const&)'
/usr/bin/ld: CMakeFiles/bench_bitcoin.dir/bench.cpp.o: in function `(anonymous namespace)::GenerateTemplateResults(std::__debug::vector<ankerl::nanobench::Result, std::allocator<ankerl::nanobench::Result> > const&, fs::path const&, char const*)':
/home/runner/work/_temp/src/bench/bench.cpp:53:(.text+0x119a): undefined reference to `ankerl::nanobench::render(char const*, std::__debug::vector<ankerl::nanobench::Result, std::allocator<ankerl::nanobench::Result> > const&, std::ostream&)'
/usr/bin/ld: CMakeFiles/bench_bitcoin.dir/addrman.cpp.o: in function `AddrManAddThenGood(ankerl::nanobench::Bench&)':
/home/runner/work/_temp/src/bench/nanobench.h:1281:(.text+0x1507): undefined reference to `ankerl::nanobench::detail::IterationLogic::moveResultTo(std::__debug::vector<ankerl::nanobench::Result, std::allocator<ankerl::nanobench::Result> >&)'
/usr/bin/ld: CMakeFiles/bench_bitcoin.dir/addrman.cpp.o: in function `ankerl::nanobench::Bench& ankerl::nanobench::Bench::run<AddrManAdd(ankerl::nanobench::Bench&)::$_0>(AddrManAdd(ankerl::nanobench::Bench&)::$_0&&)':
/home/runner/work/_temp/src/bench/nanobench.h:1281:(.text+0x1abf): undefined reference to `ankerl::nanobench::detail::IterationLogic::moveResultTo(std::__debug::vector<ankerl::nanobench::Result, std::allocator<ankerl::nanobench::Result> >&)'
/usr/bin/ld: CMakeFiles/bench_bitcoin.dir/addrman.cpp.o: in function `ankerl::nanobench::Bench& ankerl::nanobench::Bench::run<AddrManSelect(ankerl::nanobench::Bench&)::$_0>(AddrManSelect(ankerl::nanobench::Bench&)::$_0&&)':
/home/runner/work/_temp/src/bench/nanobench.h:1281:(.text+0x1f95): undefined reference to `ankerl::nanobench::detail::IterationLogic::moveResultTo(std::__debug::vector<ankerl::nanobench::Result, std::allocator<ankerl::nanobench::Result> >&)'
/usr/bin/ld: CMakeFiles/bench_bitcoin.dir/addrman.cpp.o: in function `ankerl::nanobench::Bench& ankerl::nanobench::Bench::run<AddrManSelectFromAlmostEmpty(ankerl::nanobench::Bench&)::$_0>(AddrManSelectFromAlmostEmpty(ankerl::nanobench::Bench&)::$_0&&)':
/home/runner/work/_temp/src/bench/nanobench.h:1281:(.text+0x2255): undefined reference to `ankerl::nanobench::detail::IterationLogic::moveResultTo(std::__debug::vector<ankerl::nanobench::Result, std::allocator<ankerl::nanobench::Result> >&)'
/usr/bin/ld: CMakeFiles/bench_bitcoin.dir/addrman.cpp.o: in function `ankerl::nanobench::Bench& ankerl::nanobench::Bench::run<AddrManSelectByNetwork(ankerl::nanobench::Bench&)::$_0>(AddrManSelectByNetwork(ankerl::nanobench::Bench&)::$_0&&)':
/home/runner/work/_temp/src/bench/nanobench.h:1281:(.text+0x24ed): undefined reference to `ankerl::nanobench::detail::IterationLogic::moveResultTo(std::__debug::vector<ankerl::nanobench::Result, std::allocator<ankerl::nanobench::Result> >&)'
/usr/bin/ld: CMakeFiles/bench_bitcoin.dir/addrman.cpp.o:/home/runner/work/_temp/src/bench/nanobench.h:1281: more undefined references to `ankerl::nanobench::detail::IterationLogic::moveResultTo(std::__debug::vector<ankerl::nanobench::Result, std::allocator<ankerl::nanobench::Result> >&)' follow |
|
🚧 At least one of the CI tasks failed. HintsTry to run the tests locally, according to the documentation. However, a CI failure may still
Leave a comment here, if you need help tracking down a confusing failure. |
c74b966 to
f8654d5
Compare
f8654d5 to
79dcaf3
Compare
This avoids implicit conversions from string literals to `std::string`, eliminating the need to include `<string>` everywhere the `BENCHMARK()` macro is used.
79dcaf3 to
de30dad
Compare
|
Rebased to resolve conflicts. |
maflcko
left a comment
There was a problem hiding this comment.
lgtm, just some nits.
review ACK de30dad 🛡
Show signature
Signature:
untrusted comment: signature from minisign secret key on empty file; verify via: minisign -Vm "${path_to_any_empty_file}" -P RWTRmVTMeKV5noAMqVlsMugDDCyyTSbA3Re5AkUrhvLVln0tSaFWglOw -x "${path_to_this_whole_four_line_signature_blob}"
RUTRmVTMeKV5npGrKx1nqXCw5zeVHdtdYURB/KlyA/LMFgpNCs+SkW9a8N95d+U4AP1RJMi+krxU1A3Yux4bpwZNLvVBKy0wLgM=
trusted comment: review ACK de30dad4024fe03df061d711d37aac5aa9e5ec29 🛡
5ba/or98yvnASP1wAa8X6vQtQvnTGvCHPv3dVGW5KYONbvUNh4AP6ykmZaR5Oa+m6ct5VwDJVap/iunTFMwxBQ==
| } | ||
|
|
||
| BenchRunner::BenchRunner(std::string name, BenchFunction func) | ||
| BenchRunner::BenchRunner(std::string_view name, BenchFunction func) |
There was a problem hiding this comment.
Interesting. This just turns an implicit string conversion into an implicit string view conversion. So why does this not result in a required string_view include everywhere?
de30dad to
6751a32
Compare
|
re-ACK 6751a32 📃 Show signatureSignature: |
BrandonOdiwuor
left a comment
There was a problem hiding this comment.
ACK 6751a32
I reviewed the changes and manually tested IWYU enforcement on src/bench (enabled on base commit a6ed29d and compared before/after this PR).
I have noted the following and they are reasonable:
#include <cassert>was replaced by#include <util/check.h>#include <chrono>was replaced by#include <util/time.h>- IWYU enforcement was disabled (via pragmas) for
#include <util/byte_units.h>,#include <iosfwd>, and theankerlnamespace insrc/bench/nanobench.h.
Suggestions after IWYU enforcement on a6ed29d
diff --git a/src/addrman.h b/src/addrman.h
index 94e7d3e..f714338 100644
--- a/src/addrman.h
+++ b/src/addrman.h
@@ -7,18 +7,22 @@
#define BITCOIN_ADDRMAN_H
#include <netaddress.h>
-#include <netgroup.h>
#include <protocol.h>
-#include <streams.h>
#include <util/time.h>
+#include <cstddef>
#include <cstdint>
+#include <ios>
#include <memory>
#include <optional>
+#include <string>
+#include <tuple>
#include <unordered_set>
#include <utility>
#include <vector>
+class NetGroupManager;
+
/** Over how many buckets entries with tried addresses from a single group (/16 for IPv4) are spread */
static constexpr uint32_t ADDRMAN_TRIED_BUCKETS_PER_GROUP{8};
/** Over how many buckets entries with new addresses originating from a single group are spread */
diff --git a/src/base58.h b/src/base58.h
index f258163..1656cbe 100644
--- a/src/base58.h
+++ b/src/base58.h
@@ -14,8 +14,7 @@
#ifndef BITCOIN_BASE58_H
#define BITCOIN_BASE58_H
-#include <span.h>
-
+#include <span>
#include <string>
#include <vector>
diff --git a/src/bech32.h b/src/bech32.h
index ba4c79b..9a43a58 100644
--- a/src/bech32.h
+++ b/src/bech32.h
@@ -14,8 +14,10 @@
#ifndef BITCOIN_BECH32_H
#define BITCOIN_BECH32_H
+#include <cstddef>
#include <cstdint>
#include <string>
+#include <utility>
#include <vector>
namespace bech32
diff --git a/src/bench/addrman.cpp b/src/bench/addrman.cpp
index 703b4d2..779b532 100644
--- a/src/bench/addrman.cpp
+++ b/src/bench/addrman.cpp
@@ -3,6 +3,7 @@
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include <addrman.h>
+
#include <bench/bench.h>
#include <compat/compat.h>
#include <netaddress.h>
@@ -10,13 +11,13 @@
#include <netgroup.h>
#include <protocol.h>
#include <random.h>
-#include <span.h>
#include <uint256.h>
#include <util/check.h>
#include <util/time.h>
#include <cstring>
#include <optional>
+#include <span>
#include <vector>
/* A "source" is a source address from which we have received a bunch of other addresses. */
diff --git a/src/bench/base58.cpp b/src/bench/base58.cpp
index 0be1643..714969f 100644
--- a/src/bench/base58.cpp
+++ b/src/bench/base58.cpp
@@ -3,8 +3,8 @@
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include <base58.h>
+
#include <bench/bench.h>
-#include <span.h>
#include <array>
#include <cstring>
diff --git a/src/bench/bech32.cpp b/src/bench/bech32.cpp
index c5e864a..aae2306 100644
--- a/src/bench/bech32.cpp
+++ b/src/bench/bech32.cpp
@@ -3,9 +3,11 @@
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include <bech32.h>
+
#include <bench/bench.h>
#include <util/strencodings.h>
+#include <array>
#include <vector>
using namespace util::hex_literals;
diff --git a/src/bench/bench_bitcoin.cpp b/src/bench/bench_bitcoin.cpp
index 987523a..18bf07b 100644
--- a/src/bench/bench_bitcoin.cpp
+++ b/src/bench/bench_bitcoin.cpp
@@ -3,19 +3,19 @@
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#include <bench/bench.h>
-#include <common/args.h>
#include <crypto/sha256.h>
+#include <test/util/setup_common.h>
#include <tinyformat.h>
#include <util/fs.h>
-#include <util/string.h>
-#include <test/util/setup_common.h>
#include <chrono>
#include <cstdint>
#include <cstdlib>
#include <exception>
#include <iostream>
+#include <optional>
#include <sstream>
+#include <string>
#include <vector>
static const char* DEFAULT_BENCH_FILTER = ".*";
diff --git a/src/bench/bip324_ecdh.cpp b/src/bench/bip324_ecdh.cpp
index 65deb8b..c8d3a35 100644
--- a/src/bench/bip324_ecdh.cpp
+++ b/src/bench/bip324_ecdh.cpp
@@ -11,6 +11,7 @@
#include <algorithm>
#include <array>
#include <cstddef>
+#include <span>
static void BIP324_ECDH(benchmark::Bench& bench)
{
diff --git a/src/bench/block_assemble.cpp b/src/bench/block_assemble.cpp
index be03917..45603da 100644
--- a/src/bench/block_assemble.cpp
+++ b/src/bench/block_assemble.cpp
@@ -18,7 +18,6 @@
#include <cassert>
#include <cstddef>
#include <memory>
-#include <string>
#include <vector>
using node::BlockCreateOptions;
diff --git a/src/bench/blockencodings.cpp b/src/bench/blockencodings.cpp
index ce968db..dec61e2 100644
--- a/src/bench/blockencodings.cpp
+++ b/src/bench/blockencodings.cpp
@@ -2,20 +2,29 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <bench/bench.h>
#include <blockencodings.h>
+
+#include <bench/bench.h>
#include <consensus/amount.h>
#include <kernel/cs_main.h>
#include <net_processing.h>
+#include <primitives/block.h>
#include <primitives/transaction.h>
+#include <random.h>
#include <script/script.h>
#include <sync.h>
#include <test/util/setup_common.h>
#include <test/util/txmempool.h>
#include <txmempool.h>
+#include <uint256.h>
#include <util/check.h>
+#include <algorithm>
+#include <array>
+#include <cstddef>
#include <memory>
+#include <span>
+#include <utility>
#include <vector>
diff --git a/src/bench/ccoins_caching.cpp b/src/bench/ccoins_caching.cpp
index 12ea076..712c2ec 100644
--- a/src/bench/ccoins_caching.cpp
+++ b/src/bench/ccoins_caching.cpp
@@ -5,6 +5,7 @@
#include <bench/bench.h>
#include <coins.h>
#include <consensus/amount.h>
+#include <consensus/validation.h>
#include <key.h>
#include <policy/policy.h>
#include <primitives/transaction.h>
@@ -13,6 +14,7 @@
#include <test/util/transaction_utils.h>
#include <cassert>
+#include <span>
#include <vector>
// Microbenchmark for simple accesses to a CCoinsViewCache database. Note from
diff --git a/src/bench/chacha20.cpp b/src/bench/chacha20.cpp
index b5a333d..20a6a5d 100644
--- a/src/bench/chacha20.cpp
+++ b/src/bench/chacha20.cpp
@@ -3,14 +3,14 @@
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <bench/bench.h>
#include <crypto/chacha20.h>
+
+#include <bench/bench.h>
#include <crypto/chacha20poly1305.h>
-#include <span.h>
-#include <util/byte_units.h>
#include <cstddef>
#include <cstdint>
+#include <span>
#include <vector>
/* Number of bytes to process per iteration */
diff --git a/src/bench/checkblock.cpp b/src/bench/checkblock.cpp
index b943dc0..9ca9d81 100644
--- a/src/bench/checkblock.cpp
+++ b/src/bench/checkblock.cpp
@@ -5,13 +5,17 @@
#include <bench/bench.h>
#include <bench/data/block413567.raw.h>
#include <consensus/validation.h>
+#include <kernel/chainparams.h>
#include <primitives/block.h>
#include <primitives/transaction.h>
+#include <serialize.h>
#include <streams.h>
#include <validation.h>
#include <cassert>
-#include <cstddef>
+#include <memory>
+#include <span>
+#include <vector>
// These are the two major time-sinks which happen after we have fully received
// a block off the wire, but before we can relay the block on to peers using
diff --git a/src/bench/checkqueue.cpp b/src/bench/checkqueue.cpp
index 2c9126d..4e84f23 100644
--- a/src/bench/checkqueue.cpp
+++ b/src/bench/checkqueue.cpp
@@ -2,8 +2,9 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <bench/bench.h>
#include <checkqueue.h>
+
+#include <bench/bench.h>
#include <common/system.h>
#include <key.h>
#include <prevector.h>
@@ -12,6 +13,7 @@
#include <cstddef>
#include <cstdint>
+#include <optional>
#include <utility>
#include <vector>
diff --git a/src/bench/cluster_linearize.cpp b/src/bench/cluster_linearize.cpp
index 0799cc2..c755f84 100644
--- a/src/bench/cluster_linearize.cpp
+++ b/src/bench/cluster_linearize.cpp
@@ -2,15 +2,21 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <bench/bench.h>
#include <cluster_linearize.h>
+
+#include <bench/bench.h>
+#include <serialize.h>
+#include <streams.h>
#include <test/util/cluster_linearize.h>
+#include <tinyformat.h>
#include <util/bitset.h>
#include <util/strencodings.h>
-#include <algorithm>
#include <cassert>
#include <cstdint>
+#include <span>
+#include <string>
+#include <tuple>
#include <vector>
using namespace cluster_linearize;
diff --git a/src/bench/coin_selection.cpp b/src/bench/coin_selection.cpp
index ff68272..597efd3 100644
--- a/src/bench/coin_selection.cpp
+++ b/src/bench/coin_selection.cpp
@@ -4,8 +4,6 @@
#include <bench/bench.h>
#include <consensus/amount.h>
-#include <interfaces/chain.h>
-#include <node/context.h>
#include <outputtype.h>
#include <policy/feerate.h>
#include <policy/policy.h>
@@ -15,17 +13,19 @@
#include <test/util/setup_common.h>
#include <util/result.h>
#include <wallet/coinselection.h>
-#include <wallet/context.h>
+#include <wallet/db.h>
#include <wallet/spend.h>
#include <wallet/test/util.h>
#include <wallet/transaction.h>
#include <wallet/wallet.h>
#include <cassert>
+#include <cstddef>
+#include <cstdint>
#include <map>
#include <memory>
#include <optional>
-#include <set>
+#include <string>
#include <utility>
#include <vector>
diff --git a/src/bench/connectblock.cpp b/src/bench/connectblock.cpp
index 0c7470b..40aada1 100644
--- a/src/bench/connectblock.cpp
+++ b/src/bench/connectblock.cpp
@@ -23,7 +23,6 @@
#include <cstddef>
#include <memory>
#include <optional>
-#include <string>
#include <utility>
#include <vector>
diff --git a/src/bench/crypto_hash.cpp b/src/bench/crypto_hash.cpp
index 666ff3c..e681ad0 100644
--- a/src/bench/crypto_hash.cpp
+++ b/src/bench/crypto_hash.cpp
@@ -12,11 +12,12 @@
#include <crypto/sha512.h>
#include <crypto/siphash.h>
#include <random.h>
-#include <span.h>
#include <tinyformat.h>
#include <uint256.h>
#include <cstdint>
+#include <span>
+#include <string>
#include <vector>
/* Number of bytes to hash per iteration */
diff --git a/src/bench/disconnected_transactions.cpp b/src/bench/disconnected_transactions.cpp
index 4dd5de4..fa5424c 100644
--- a/src/bench/disconnected_transactions.cpp
+++ b/src/bench/disconnected_transactions.cpp
@@ -2,8 +2,9 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <bench/bench.h>
#include <kernel/disconnected_transactions.h>
+
+#include <bench/bench.h>
#include <primitives/block.h>
#include <primitives/transaction.h>
#include <script/script.h>
@@ -14,7 +15,6 @@
#include <cstddef>
#include <cstdint>
#include <iterator>
-#include <memory>
#include <vector>
constexpr size_t BLOCK_VTX_COUNT{4000};
diff --git a/src/bench/ellswift.cpp b/src/bench/ellswift.cpp
index 2daf1a9..36e9c16 100644
--- a/src/bench/ellswift.cpp
+++ b/src/bench/ellswift.cpp
@@ -11,6 +11,7 @@
#include <algorithm>
#include <cassert>
+#include <span>
static void EllSwiftCreate(benchmark::Bench& bench)
{
diff --git a/src/bench/index_blockfilter.cpp b/src/bench/index_blockfilter.cpp
index 781aa09..60b8e72 100644
--- a/src/bench/index_blockfilter.cpp
+++ b/src/bench/index_blockfilter.cpp
@@ -13,17 +13,16 @@
#include <primitives/transaction.h>
#include <pubkey.h>
#include <script/script.h>
-#include <span.h>
#include <sync.h>
#include <test/util/setup_common.h>
#include <test/util/time.h>
#include <uint256.h>
#include <util/strencodings.h>
-#include <util/time.h>
#include <validation.h>
#include <cassert>
#include <memory>
+#include <span>
#include <vector>
using namespace util::hex_literals;
diff --git a/src/bench/load_external.cpp b/src/bench/load_external.cpp
index 8e7201e..77c229f 100644
--- a/src/bench/load_external.cpp
+++ b/src/bench/load_external.cpp
@@ -7,7 +7,6 @@
#include <chainparams.h>
#include <flatfile.h>
#include <node/blockstorage.h>
-#include <span.h>
#include <streams.h>
#include <test/util/setup_common.h>
#include <uint256.h>
@@ -18,8 +17,8 @@
#include <cstdio>
#include <map>
#include <memory>
+#include <span>
#include <stdexcept>
-#include <vector>
/**
* The LoadExternalBlockFile() function is used during -reindex and -loadblock.
diff --git a/src/bench/lockedpool.cpp b/src/bench/lockedpool.cpp
index 61b35cc..16cbfa3 100644
--- a/src/bench/lockedpool.cpp
+++ b/src/bench/lockedpool.cpp
@@ -2,12 +2,12 @@
+ echo '^^^ ⚠️ Failure generated from IWYU'
+ false
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <bench/bench.h>
#include <support/lockedpool.h>
+#include <bench/bench.h>
+
#include <cstddef>
#include <cstdint>
-#include <util/byte_units.h>
#include <vector>
#define ASIZE 2048
diff --git a/src/bench/mempool_ephemeral_spends.cpp b/src/bench/mempool_ephemeral_spends.cpp
index 1c06928..f88643c 100644
--- a/src/bench/mempool_ephemeral_spends.cpp
+++ b/src/bench/mempool_ephemeral_spends.cpp
@@ -4,9 +4,10 @@
#include <bench/bench.h>
#include <consensus/amount.h>
+#include <consensus/validation.h>
#include <kernel/cs_main.h>
#include <policy/ephemeral_policy.h>
-#include <policy/policy.h>
+#include <policy/feerate.h>
#include <primitives/transaction.h>
#include <script/script.h>
#include <sync.h>
@@ -15,6 +16,7 @@
#include <txmempool.h>
#include <util/check.h>
+#include <cstddef>
#include <cstdint>
#include <memory>
#include <vector>
diff --git a/src/bench/mempool_stress.cpp b/src/bench/mempool_stress.cpp
index 1f58208..ab1146e 100644
--- a/src/bench/mempool_stress.cpp
+++ b/src/bench/mempool_stress.cpp
@@ -4,7 +4,6 @@
#include <bench/bench.h>
#include <consensus/amount.h>
-#include <policy/policy.h>
#include <primitives/transaction.h>
#include <random.h>
#include <script/script.h>
@@ -17,6 +16,7 @@
#include <cstddef>
#include <cstdint>
#include <memory>
+#include <optional>
#include <vector>
class CCoinsViewCache;
diff --git a/src/bench/merkle_root.cpp b/src/bench/merkle_root.cpp
index 17f7fa8..e3471c7 100644
--- a/src/bench/merkle_root.cpp
+++ b/src/bench/merkle_root.cpp
@@ -8,6 +8,8 @@
#include <uint256.h>
#include <cassert>
+#include <initializer_list>
+#include <utility>
#include <vector>
static void MerkleRoot(benchmark::Bench& bench)
diff --git a/src/bench/nanobench.h b/src/bench/nanobench.h
index 79a384a..8d452c1 100644
--- a/src/bench/nanobench.h
+++ b/src/bench/nanobench.h
@@ -39,13 +39,24 @@
// public facing api - as minimal as possible
///////////////////////////////////////////////////////////////////////////////////////////////////
-#include <chrono> // high_resolution_clock
-#include <cassert> // assert
-#include <cstring> // memcpy
-#include <iosfwd> // for std::ostream* custom output target in Config
-#include <string> // all names
+#include <sys/types.h>
+
+#include <cassert> // assert
+#include <chrono> // high_resolution_clock
+#include <cmath>
+#include <compare>
+#include <cstdint>
+#include <cstring> // memcpy
+#include <functional>
+#include <iterator>
+#include <limits>
+#include <locale>
+#include <ratio>
+#include <string> // all names
+#include <type_traits>
#include <unordered_map> // holds context information of results
-#include <vector> // holds all results
+#include <utility>
+#include <vector> // holds all results
#define ANKERL_NANOBENCH(x) ANKERL_NANOBENCH_PRIVATE_##x()
@@ -79,11 +90,12 @@
#endif
#if defined(ANKERL_NANOBENCH_LOG_ENABLED)
-# include <iostream>
-# define ANKERL_NANOBENCH_LOG(x) \
- do { \
- std::cout << __FUNCTION__ << "@" << __LINE__ << ": " << x << std::endl; \
- } while (0)
+#include <iostream>
+
+#define ANKERL_NANOBENCH_LOG(x) \
+ do { \
+ std::cout << __FUNCTION__ << "@" << __LINE__ << ": " << x << std::endl; \
+ } while (0)
#else
# define ANKERL_NANOBENCH_LOG(x) \
do { \
@@ -133,9 +145,7 @@ namespace nanobench {
using Clock = std::conditional<std::chrono::high_resolution_clock::is_steady, std::chrono::high_resolution_clock,
std::chrono::steady_clock>::type;
class Bench;
-struct Config;
class Result;
-class Rng;
class BigO;
namespace detail {
@@ -356,10 +366,6 @@ char const* json() noexcept;
namespace detail {
-template <typename T>
-struct PerfCountSet;
-
-class IterationLogic;
class PerformanceCounters;
#if ANKERL_NANOBENCH(PERF_COUNTERS)
@@ -1092,6 +1098,7 @@ public:
private:
struct Impl;
+
Impl* mPimpl;
};
ANKERL_NANOBENCH(IGNORE_EFFCPP_POP)
@@ -1358,11 +1365,9 @@ void doNotOptimizeAway(T const& val) {
// implementation part - only visible in .cpp
///////////////////////////////////////////////////////////////////////////////////////////////////
-# include <algorithm> // sort, reverse
-# include <atomic> // compare_exchange_strong in loop overhead
-# include <cstdlib> // getenv
-# include <cstring> // strstr, strncmp
-# include <fstream> // ifstream to parse proc files
+#include <algorithm> // sort, reverse
+#include <cstdlib> // getenv
+#include <fstream> // ifstream to parse proc files
# include <iomanip> // setw, setprecision
# include <iostream> // cout
# include <numeric> // accumulate
@@ -1383,28 +1388,6 @@ void doNotOptimizeAway(T const& val) {
// declarations ///////////////////////////////////////////////////////////////////////////////////
-namespace ankerl {
-namespace nanobench {
-
-// helper stuff that is only intended to be used internally
-namespace detail {
-
-struct TableInfo;
-
-// formatting utilities
-namespace fmt {
-
-class NumSep;
-class StreamStateRestorer;
-class Number;
-class MarkDownColumn;
-class MarkDownCode;
-
-} // namespace fmt
-} // namespace detail
-} // namespace nanobench
-} // namespace ankerl
-
// definitions ////////////////////////////////////////////////////////////////////////////////////
namespace ankerl {
diff --git a/src/bench/obfuscation.cpp b/src/bench/obfuscation.cpp
index c7392e0..74ac192 100644
--- a/src/bench/obfuscation.cpp
+++ b/src/bench/obfuscation.cpp
@@ -2,11 +2,13 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or [https://opensource.org/license/mit/.](https://opensource.org/license/mit/)
+#include <util/obfuscation.h>
+
#include <bench/bench.h>
#include <random.h>
-#include <util/obfuscation.h>
#include <cstddef>
+#include <span>
#include <vector>
static void ObfuscationBench(benchmark::Bench& bench)
diff --git a/src/bench/parse_hex.cpp b/src/bench/parse_hex.cpp
index 928176b..6e55bb1 100644
--- a/src/bench/parse_hex.cpp
+++ b/src/bench/parse_hex.cpp
@@ -9,6 +9,7 @@
#include <cassert>
#include <cstddef>
#include <optional>
+#include <string>
#include <vector>
std::string generateHexString(size_t length) {
diff --git a/src/bench/peer_eviction.cpp b/src/bench/peer_eviction.cpp
index 24b78e3..b9c1c9b 100644
--- a/src/bench/peer_eviction.cpp
+++ b/src/bench/peer_eviction.cpp
@@ -7,8 +7,8 @@
#include <node/eviction.h>
#include <random.h>
#include <test/util/net.h>
+#include <util/time.h>
-#include <chrono>
#include <functional>
#include <vector>
diff --git a/src/bench/poly1305.cpp b/src/bench/poly1305.cpp
index ef5a573..c58048b 100644
--- a/src/bench/poly1305.cpp
+++ b/src/bench/poly1305.cpp
@@ -3,13 +3,13 @@
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <bench/bench.h>
#include <crypto/poly1305.h>
-#include <span.h>
-#include <util/byte_units.h>
+
+#include <bench/bench.h>
#include <cstddef>
#include <cstdint>
+#include <span>
#include <vector>
/* Number of bytes to process per iteration */
diff --git a/src/bench/pool.cpp b/src/bench/pool.cpp
index cf4ba13..6f54506 100644
--- a/src/bench/pool.cpp
+++ b/src/bench/pool.cpp
@@ -2,14 +2,16 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include <bench/bench.h>
#include <support/allocators/pool.h>
+#include <bench/bench.h>
+
#include <cstddef>
#include <cstdint>
#include <functional>
#include <unordered_map>
#include <utility>
+#include <variant>
template <typename Map>
void BenchFillClearMap(benchmark::Bench& bench, Map& map)
diff --git a/src/bench/prevector.cpp b/src/bench/prevector.cpp
index e842aec..2b5544f 100644
--- a/src/bench/prevector.cpp
+++ b/src/bench/prevector.cpp
@@ -9,6 +9,7 @@
#include <serialize.h>
#include <streams.h>
+#include <span>
#include <type_traits>
#include <vector>
diff --git a/src/bench/readwriteblock.cpp b/src/bench/readwriteblock.cpp
index f1ad24a..5c2adff 100644
--- a/src/bench/readwriteblock.cpp
+++ b/src/bench/readwriteblock.cpp
@@ -9,15 +9,16 @@
#include <primitives/block.h>
#include <primitives/transaction.h>
#include <serialize.h>
-#include <span.h>
#include <streams.h>
+#include <sync.h>
#include <test/util/setup_common.h>
+#include <uint256.h>
#include <validation.h>
#include <cassert>
-#include <cstdint>
#include <memory>
-#include <vector>
+#include <optional>
+#include <span>
static CBlock CreateTestBlock()
{
diff --git a/src/bench/rollingbloom.cpp b/src/bench/rollingbloom.cpp
index 8331eb6..b4e985d 100644
--- a/src/bench/rollingbloom.cpp
+++ b/src/bench/rollingbloom.cpp
@@ -6,9 +6,9 @@
#include <bench/bench.h>
#include <common/bloom.h>
#include <crypto/common.h>
-#include <span.h>
#include <cstdint>
+#include <span>
#include <vector>
static void RollingBloom(benchmark::Bench& bench)
diff --git a/src/bench/rpc_blockchain.cpp b/src/bench/rpc_blockchain.cpp
index fe83c4a..b09eae6 100644
--- a/src/bench/rpc_blockchain.cpp
+++ b/src/bench/rpc_blockchain.cpp
@@ -5,21 +5,22 @@
#include <bench/bench.h>
#include <bench/data/block413567.raw.h>
#include <chain.h>
+#include <consensus/params.h>
#include <core_io.h>
+#include <kernel/chainparams.h>
#include <primitives/block.h>
#include <primitives/transaction.h>
#include <rpc/blockchain.h>
#include <serialize.h>
-#include <span.h>
#include <streams.h>
#include <test/util/setup_common.h>
#include <uint256.h>
#include <univalue.h>
#include <validation.h>
-#include <cstddef>
#include <memory>
-#include <vector>
+#include <span>
+#include <string>
namespace {
diff --git a/src/bench/sign_transaction.cpp b/src/bench/sign_transaction.cpp
index 63a5d97..83ec2a4 100644
--- a/src/bench/sign_transaction.cpp
+++ b/src/bench/sign_transaction.cpp
@@ -8,17 +8,17 @@
#include <key.h>
#include <primitives/transaction.h>
#include <pubkey.h>
+#include <random.h>
#include <script/interpreter.h>
#include <script/script.h>
#include <script/sign.h>
#include <script/signingprovider.h>
-#include <span.h>
-#include <test/util/random.h>
#include <uint256.h>
#include <util/translation.h>
#include <cassert>
#include <map>
+#include <span>
#include <vector>
enum class InputType {
diff --git a/src/bench/streams_findbyte.cpp b/src/bench/streams_findbyte.cpp
index c9ea486..41c261f 100644
--- a/src/bench/streams_findbyte.cpp
+++ b/src/bench/streams_findbyte.cpp
@@ -7,9 +7,11 @@
#include <test/util/setup_common.h>
#include <util/fs.h>
+#include <cassert>
#include <cstddef>
#include <cstdint>
#include <cstdio>
+#include <memory>
static void FindByte(benchmark::Bench& bench)
{
diff --git a/src/bench/strencodings.cpp b/src/bench/strencodings.cpp
index c00de18..4b52b74 100644
--- a/src/bench/strencodings.cpp
+++ b/src/bench/strencodings.cpp
@@ -6,9 +6,10 @@
#include <consensus/consensus.h>
#include <crypto/hex_base.h>
#include <random.h>
-#include <span.h>
-#include <util/strencodings.h>
+#include <cstddef>
+#include <span>
+#include <string>
#include <vector>
static void HexStrBench(benchmark::Bench& bench)
diff --git a/src/bench/txgraph.cpp b/src/bench/txgraph.cpp
index c56a284..a172b8d 100644
--- a/src/bench/txgraph.cpp
+++ b/src/bench/txgraph.cpp
@@ -2,13 +2,21 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+#include <txgraph.h>
+
#include <bench/bench.h>
#include <random.h>
-#include <txgraph.h>
#include <util/feefrac.h>
+#include <algorithm>
#include <cassert>
+#include <compare>
+#include <cstddef>
#include <cstdint>
+#include <functional>
+#include <memory>
+#include <utility>
+#include <vector>
namespace {
diff --git a/src/bench/txorphanage.cpp b/src/bench/txorphanage.cpp
index 1f94553..d294dee 100644
--- a/src/bench/txorphanage.cpp
+++ b/src/bench/txorphanage.cpp
@@ -2,20 +2,26 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+#include <node/txorphanage.h>
+
#include <bench/bench.h>
-#include <consensus/amount.h>
+#include <consensus/consensus.h>
+#include <consensus/validation.h>
#include <net.h>
#include <policy/policy.h>
+#include <primitives/block.h>
#include <primitives/transaction.h>
-#include <pubkey.h>
-#include <script/sign.h>
-#include <test/util/setup_common.h>
-#include <node/txorphanage.h>
-#include <util/check.h>
+#include <random.h>
#include <test/util/transaction_utils.h>
+#include <threadsafety.h>
+#include <util/check.h>
+#include <algorithm>
+#include <cstddef>
#include <cstdint>
#include <memory>
+#include <numeric>
+#include <vector>
static constexpr node::TxOrphanage::Usage TINY_TX_WEIGHT{240};
static constexpr int64_t APPROX_WEIGHT_PER_INPUT{200};
diff --git a/src/bench/verify_script.cpp b/src/bench/verify_script.cpp
index 63a9544..a559e8c 100644
--- a/src/bench/verify_script.cpp
+++ b/src/bench/verify_script.cpp
@@ -11,14 +11,19 @@
#include <pubkey.h>
#include <script/interpreter.h>
#include <script/script.h>
+#include <script/script_error.h>
+#include <script/sign.h>
+#include <script/signingprovider.h>
+#include <script/verify_flags.h>
#include <span.h>
#include <test/util/transaction_utils.h>
#include <uint256.h>
#include <util/translation.h>
-#include <array>
#include <cassert>
-#include <cstdint>
+#include <cstddef>
+#include <map>
+#include <span>
#include <vector>
enum class ScriptType {
diff --git a/src/bench/wallet_balance.cpp b/src/bench/wallet_balance.cpp
index dd04a5c..777f045 100644
--- a/src/bench/wallet_balance.cpp
+++ b/src/bench/wallet_balance.cpp
@@ -4,6 +4,7 @@
#include <bench/bench.h>
#include <interfaces/chain.h>
+#include <interfaces/handler.h>
#include <kernel/chainparams.h>
#include <primitives/block.h>
#include <primitives/transaction.h>
@@ -12,8 +13,8 @@
#include <test/util/setup_common.h>
#include <test/util/time.h>
#include <uint256.h>
-#include <util/time.h>
#include <validation.h>
+#include <wallet/db.h>
#include <wallet/receive.h>
#include <wallet/test/util.h>
#include <wallet/wallet.h>
diff --git a/src/bench/wallet_create.cpp b/src/bench/wallet_create.cpp
index 11244fe..3770289 100644
--- a/src/bench/wallet_create.cpp
+++ b/src/bench/wallet_create.cpp
@@ -4,7 +4,6 @@
#include <bench/bench.h>
#include <random.h>
-#include <support/allocators/secure.h>
#include <test/util/setup_common.h>
#include <uint256.h>
#include <util/fs.h>
diff --git a/src/bench/wallet_create_tx.cpp b/src/bench/wallet_create_tx.cpp
index 68bbc3d..a259988 100644
--- a/src/bench/wallet_create_tx.cpp
+++ b/src/bench/wallet_create_tx.cpp
@@ -9,7 +9,6 @@
#include <consensus/amount.h>
#include <consensus/consensus.h>
#include <consensus/merkle.h>
-#include <interfaces/chain.h>
#include <kernel/chain.h>
#include <kernel/types.h>
#include <node/blockstorage.h>
@@ -23,13 +22,14 @@
#include <test/util/time.h>
#include <uint256.h>
#include <util/result.h>
-#include <util/time.h>
#include <validation.h>
#include <versionbits.h>
#include <wallet/coincontrol.h>
#include <wallet/coinselection.h>
+#include <wallet/db.h>
#include <wallet/spend.h>
#include <wallet/test/util.h>
+#include <wallet/types.h>
#include <wallet/wallet.h>
#include <wallet/walletutil.h>
@@ -38,6 +38,7 @@
#include <map>
#include <memory>
#include <optional>
+#include <string>
#include <utility>
#include <vector>
diff --git a/src/bench/wallet_encrypt.cpp b/src/bench/wallet_encrypt.cpp
index 5864601..81e64a2 100644
--- a/src/bench/wallet_encrypt.cpp
+++ b/src/bench/wallet_encrypt.cpp
@@ -3,19 +3,29 @@
// file COPYING or https://www.opensource.org/licenses/mit-license.php.
#include <bench/bench.h>
+#include <key.h>
#include <key_io.h>
-#include <outputtype.h>
#include <random.h>
+#include <script/descriptor.h>
+#include <script/signingprovider.h>
#include <support/allocators/secure.h>
+#include <sync.h>
#include <test/util/setup_common.h>
#include <test/util/time.h>
-#include <util/time.h>
+#include <util/check.h>
#include <wallet/context.h>
+#include <wallet/crypter.h>
+#include <wallet/db.h>
#include <wallet/test/util.h>
#include <wallet/wallet.h>
#include <wallet/walletutil.h>
-#include <cassert>
+#include <cstdint>
+#include <functional>
+#include <memory>
+#include <string>
+#include <utility>
+#include <vector>
namespace wallet {
static void WalletEncrypt(benchmark::Bench& bench, unsigned int key_count)
diff --git a/src/bench/wallet_ismine.cpp b/src/bench/wallet_ismine.cpp
index 6bfbb42..572a271 100644
--- a/src/bench/wallet_ismine.cpp
+++ b/src/bench/wallet_ismine.cpp
@@ -11,17 +11,19 @@
#include <script/signingprovider.h>
#include <sync.h>
#include <test/util/setup_common.h>
+#include <util/check.h>
#include <wallet/context.h>
#include <wallet/db.h>
#include <wallet/test/util.h>
#include <wallet/wallet.h>
#include <wallet/walletutil.h>
-#include <cassert>
#include <cstdint>
+#include <functional>
#include <memory>
#include <string>
#include <utility>
+#include <vector>
namespace wallet {
static void WalletIsMine(benchmark::Bench& bench, int num_combo = 0)
diff --git a/src/bench/wallet_loading.cpp b/src/bench/wallet_loading.cpp
index 09028ac..6b1208e 100644
--- a/src/bench/wallet_loading.cpp
+++ b/src/bench/wallet_loading.cpp
@@ -7,8 +7,10 @@
#include <consensus/amount.h>
#include <outputtype.h>
#include <primitives/transaction.h>
+#include <script/script.h>
#include <test/util/setup_common.h>
#include <util/check.h>
+#include <util/translation.h>
#include <wallet/context.h>
#include <wallet/db.h>
#include <wallet/test/util.h>
@@ -18,6 +20,8 @@
#include <cstdint>
#include <memory>
+#include <optional>
+#include <string>
#include <utility>
#include <vector>
diff --git a/src/bench/wallet_migration.cpp b/src/bench/wallet_migration.cpp
index 578fdb5..22caec7 100644
--- a/src/bench/wallet_migration.cpp
+++ b/src/bench/wallet_migration.cpp
@@ -2,20 +2,34 @@
// Distributed under the MIT software license, see the accompanying
// file COPYING or https://www.opensource.org/licenses/mit-license.php.
+#include <addresstype.h>
#include <bench/bench.h>
-#include <interfaces/chain.h>
+#include <consensus/amount.h>
#include <interfaces/wallet.h>
-#include <kernel/chain.h>
-#include <kernel/types.h>
-#include <node/context.h>
-#include <test/util/mining.h>
+#include <key.h>
+#include <primitives/block.h>
+#include <primitives/transaction.h>
+#include <pubkey.h>
+#include <script/script.h>
+#include <sync.h>
#include <test/util/setup_common.h>
-#include <wallet/context.h>
-#include <wallet/receive.h>
+#include <tinyformat.h>
+#include <util/check.h>
+#include <util/result.h>
+#include <wallet/db.h>
+#include <wallet/scriptpubkeyman.h>
#include <wallet/test/util.h>
+#include <wallet/transaction.h>
#include <wallet/wallet.h>
+#include <wallet/walletdb.h>
+#include <algorithm>
+#include <cstddef>
+#include <memory>
#include <optional>
+#include <string>
+#include <utility>
+#include <vector>
namespace wallet{
diff --git a/src/prevector.h b/src/prevector.h
index 91be488..e8a71bc 100644
--- a/src/prevector.h
+++ b/src/prevector.h
@@ -7,11 +7,11 @@
#include <algorithm>
#include <cassert>
-#include <cstddef>
#include <cstdint>
#include <cstdlib>
#include <cstring>
#include <iterator>
+#include <new>
#include <type_traits>
#include <utility>|
I'm afraid there was a silent merge conflict with #35101. Let's wait for the CI in the master branch: https://github.com/bitcoin/bitcoin/actions/runs/27548580113/job/81428406546. |
d92a20b iwyu: Fix warning in `bench/pool.cpp` (Hennadii Stepanov) Pull request description: This PR resolves a silent merge conflict between recently merged #35414 and #35101 (47d68cd). ACKs for top commit: fanquake: ACK d92a20b Tree-SHA512: e496c56e3fba8c0030f4cfc79f5f678ac07aed87fb24738ed074ba171bfbcf4ea732f542b07dcd12247af5e6799d80f294bdc05ba8216a9465cf5192380bf818
…fc352cb d84fc352cb Merge bitcoin/bitcoin#35550: net_processing: fix BIP152 first integer interpretation fafff08e1f Merge bitcoin/bitcoin#35403: mining: pr 33966 followups (disentangle miner startup defaults) e12db0902b Merge bitcoin/bitcoin#34411: Full Libevent removal fa8e4700ba Merge bitcoin/bitcoin#35424: doc, wallet: align external signer documentation, reject sendtoaddress/sendmany 146b3adfaa doc: remove libevent 96d7f55f1d vcpkg: remove libevent 0443943dc0 ci: remove libevent a0ca249f3f depends: remove libevent 35d2d06797 cmake: remove libevent 6b58eb6d51 Merge bitcoin/bitcoin#35070: validation: prevent FindMostWorkChain from causing UB 6d8e15dff0 Merge bitcoin/bitcoin#35571: ci: use warp docker buildkit cache 33e3c7524f Merge bitcoin/bitcoin#35521: fuzz: Speed up `dbwrapper_concurrent_reads` harness 9c20859b5f Merge bitcoin/bitcoin#35182: Replace libevent with our own HTTP and socket-handling implementation 48df0939e7 fuzz: Remove unnecessary thread pool mutexes a4c3b003f8 fuzz: Speed up dbwrapper_concurrent_reads harness 61020b36c5 doc: add release note for #35182 replace libevent HTTP server 39e9099da5 logging: deprecate libevent category 8c1eea0777 http: remove libevent usage from this subsystem e427c227fa fuzz: switch http_libevent::HTTPRequest to http_bitcoin::HTTPRequest 21c7542cf8 http: switch servers from libevent to bitcoin cbb8d1fb33 HTTPServer: disconnect after idle timeout (-rpcservertimeout) e5f242eef3 HTTPServer: implement control methods to match legacy API 2ca645c2e4 refactor: split HTTPBindAddresses into config parse and libevent setup fec6b6bca8 refactor: split http_request_cb into libevent callback and dispatch f946ff5a0b Add helper methods to HTTPRequest to match original API dd11b5e01b define HTTP request methods at module level outside of class 7ee7df988e HTTPServer: use a queue to pipeline requests from each connected client 5ef1b80a09 Allow http workers to send data optimistically as an optimization a69bb9e1e6 HTTPServer: disconnect clients cdf71998e5 HTTPServer: compose and send replies to connected clients 6734bcdeff HTTPserver: support "chunked" Transfer-Encoding 80e1cfe5a2 HTTPServer: read requests from connected clients 3c5226ab96 HTTPServer: start an I/O loop in a new thread and accept connections 4ef4ebdc0c http: Introduce HTTPRemoteClient class a85286c5c7 HTTPServer: generate sequential Ids for each newly accepted connection 5a3aa1af28 HTTPServer: implement and test AcceptConnection() f5bc018948 http: Introduce HTTPServer class and implement binding to listening socket 9463e98781 http: Implement HTTPRequest class ad50aa4a0f http: Implement HTTPResponse class 68b5d289d1 http: Implement HTTPHeaders class 89c54ae4cb http: enclose libevent-dependent code in a namespace 5aa3629b48 util/string: LineReader should only trim \r or \r\n 0cdbb191b5 util/string: use string_view in LineReader 881d4b6c75 test: cover common HTTP attacks and common malformed requests 08a25a7231 Merge bitcoin/bitcoin#35465: coins: compact chainstate regularly 27262a2884 Merge bitcoin/bitcoin#35559: scripted-diff: Rename SteadyClockContext to FakeSteadyClock ea626c268a Merge bitcoin/bitcoin#35560: lint: Require scripted-diff script to succeed (take 2) c0922f78af Merge bitcoin/bitcoin#35567: depends: latest config.guess & config.sub b552f1713a ci: use warp docker buildkit cache 1a2523e901 Merge bitcoin/bitcoin#34937: Fix startup failure with RLIM_INFINITY fd limits 5883ba77ea Merge bitcoin/bitcoin#34764: rpc: replace ELISION references with explicit result fields f6939fd13d Merge bitcoin/bitcoin#35564: Update secp256k1 subtree to latest master 61c754ae99 Merge bitcoin/bitcoin#35512: wallet: move fAbortRescan reset into WalletRescanReserver reserve function 794befd4b0 Merge bitcoin/bitcoin#35384: util: Check write failures before renaming settings.json 8f0354995b depends: latest config.guess & config.sub 0e95e1abdb Merge bitcoin/bitcoin#35437: migrate: Handle HD chains that have identical seeds but different IDs fab2874269 lint: Require scripted-diff script to succeed 9caae50682 Update secp256k1 subtree to latest upstream 1f3f0a4e22 Squashed 'src/secp256k1/' changes from 7262adb4b4..bd0287d650 855a3fee88 scripted-diff: Rename SteadyClockContext to FakeSteadyClock 341360964a Merge bitcoin/bitcoin#35549: argsman: Fix duplicate option assertion to allow HIDDEN category registration abc33ff043 test: announce field must be 0 or 1 in sendcmpct 2d0dce0af5 net_processing: fix BIP152 first integer interpretation f963f2b675 argsman: allow duplicate registration between HIDDEN and other categories 0654511e1b util: Check write failures before renaming settings.json 1e169a8a6c Merge bitcoin/bitcoin#35548: doc: updated ci docs to reflect removal of REPO_USE_WARP_RUNNERS flag f570d7cd53 Merge bitcoin/bitcoin#35547: lint: Require scripted-diff script to succeed 744d495019 ci: updated docs to reflect removal of REPO_USE_WARP_RUNNERS flag 2a36d6a561 lint: Require scripted-diff script to succeed 0f156c16e8 Merge bitcoin/bitcoin#35470: argsman: Prevent duplicate option registration across categories 09ba59ff6b Merge bitcoin/bitcoin#35540: test: descriptor: bare multisig at TOP level with exactly 3 pubkeys is allowed 0e475098cd Merge bitcoin/bitcoin#35463: depends: Drop trailing slash from `CMAKE_INSTALL_LIBDIR` 0136e17c0a Merge bitcoin/bitcoin#35546: ci: Use GCC consistently in i686 task fae482b4e6 ci: Use GCC consistently in i686 task 32df86f1d8 argsman: Prevent duplicate option registration across categories a30ef6b91f Merge bitcoin/bitcoin#35396: ci: Rewrite broken wrap-valgrind.sh to .py 55a4c946f6 test: descriptor: bare multisig at TOP level with 3 pubkeys is allowed 9460090f1a Merge bitcoin/bitcoin#35520: lint: remove redundant test suite uniqueness check 61a0305422 Merge bitcoin/bitcoin#35526: ci: bump MSan fuzz timeout from 150 to 180 minutes 6d5c1fb3ee Merge bitcoin/bitcoin#35173: util: shorten thread names to avoid Linux truncation d3e40af259 index: shorten indexer thread names d69c46292d util: zero-pad thread number suffixes 41e531c4ab util: shorten `ThreadPool` worker names 92d812446e Merge bitcoin/bitcoin#35538: test: make TestChain100Setup's m_clock timestamp more readable 011ad6ea3c Merge bitcoin/bitcoin#35441: ci: inline runner selection 58cc2a0453 test: make TestChain100Setup's m_clock timestamp more readable 6e93ef4623 Merge bitcoin/bitcoin#35503: guix: CMake-related improvements f655d887f0 Merge bitcoin/bitcoin#35535: iwyu: Fix warning in `bench/pool.cpp` 059edf1908 guix: Fix "Ignoring empty string" CMake warning for non-Linux hosts 2d86083fd4 guix: Drop redundant CMake `--verbose` options d92a20b310 iwyu: Fix warning in `bench/pool.cpp` 6921f5df01 Merge bitcoin/bitcoin#35414: iwyu: Fix warnings in `src/bench` and treat them as error 355fffb8cc Merge bitcoin/bitcoin#35528: test: doc: remove `--perf` profiling from functional test framework 46927cf82c Merge bitcoin/bitcoin#35504: test/doc: Follow-up nits for #35269 6bc2d996b0 Merge bitcoin/bitcoin#35499: guix: add `package.sh` 87d099d5f8 Merge bitcoin/bitcoin#35519: rpc: tighten setmocktime upper bound to UINT32_MAX 04eccc2be5 Merge bitcoin/bitcoin#35043: refactor: Properly return from ThreadSafeQuestion signal + btcsignals follow-ups 2cfb10b668 Merge bitcoin/bitcoin#35498: net: move cs_main up in FetchBlock to fix rpc assert crash 9fae7e9886 test: doc: remove `--perf` profiling from functional test framework 17353f9d97 ci: bump MSan fuzz timeout debac5f2cd Merge bitcoin/bitcoin#35523: Revert "build: exclude mptest target from compile commands" 406c2348dd rpc: tighten setmocktime upper bound to UINT32_MAX d186c390f4 Revert "build: exclude mptest target from compile commands" 2447385f47 rpc: remove unused RPCResult::Type::ELISION 7a85118005 rpc: expand decodepsbt output script with explicit fields 88e2a6ae89 rpc: expand getaddressinfo embedded with explicit fields a9f9e7d17e rpc: extract fee estimate result helpers 8a615a8800 rpc: extract ListSinceBlockTxFields() helper 372ac283ac rpc: extend TxDoc() for getblock verbosity 2/3 0380a1c46b rpc: extend TxDoc() for getrawtransaction verbosity 2 946feb3f1f test: remove redundant test suite uniqueness lint b3371029dc doc: use signing pubkey instead of aggregate xonly key 4c99ed1076 Merge bitcoin/bitcoin#35418: build: exclude mptest target from compile commands 9bfdde74b5 guix: add package.sh 142e86a65c Merge bitcoin/bitcoin#35458: qa: Avoid extra tracebacks when exception is raised 216b50c9a6 Merge bitcoin/bitcoin#35179: test: Add importdescriptors rpc error coverage 77772e7a30 undo "ui: Compile boost:signals2 only once" fa45783d55 mv btcsignals.h to src/util fa4903db8a refactor: Make scoped_connection ctor explicit fa1bc1fe51 test: Check btcsignals determinism in thread_safety test case fa86e5dba9 refactor: Properly return from ThreadSafeQuestion signal fa4badc0fd refactor: Make ThreadSafeMessageBox signal void faad9d6434 refactor: Mark btcsignals operator [[nodiscard]] 2fe34808fa wallet: reject sendtoaddress and sendmany for external signers 394e473d42 coins: compact chainstate in background aa021b26f3 validation: randomly compact chainstate bd5a32f7db doc: add taproot descriptor to getdescriptors example 7131c82937 doc: clarify which commands receive --chain, --fingerprint and --stdin 4fdd4d8d29 doc: replace stale signtransaction wording with current signtx flow fab92257fe doc, rpc: document enumerate model field and fingerprint deduplication b10889d107 coins: test chainstate flush baseline c117bbc467 Merge bitcoin/bitcoin#35514: ci: Alpine 3.24 3be1115ade ci: Alpine 3.24 3b712b9d02 Merge bitcoin/bitcoin#35120: btcsignals: delete broken scoped_connection move assignment 2818a171c0 test: add abortscan unit test bc30e95163 wallet: move fAbortRescan reset into WalletRescanReserver reserve() b83a999b14 btcsignals: delete broken scoped_connection move assignment 46d0e21d75 Merge bitcoin/bitcoin#35288: ci: Bump toward Ubuntu 26.04 d0b8d445fb Merge bitcoin/bitcoin#35455: fuzz: improve dbwrapper_concurrent_reads performance d6359937bf validation: check invariants when inserting into m_blocks_unlinked 0852925bd8 test/doc: remove misleading comment and improve tests ca4a380281 test: add coverage for UB caused by FindMostWorkChain c787b3b99b validation: avoid duplicates in m_blocks_unlinked e0fb41fd2a Merge bitcoin/bitcoin#35489: fuzz: test non-max descriptor satisfaction weight 50e9f2ad33 Merge bitcoin/bitcoin#35497: test: FakeNodeClock follow-ups in unit tests 809f909e58 Merge bitcoin/bitcoin#35451: lint: Grep for `AUTO` test suites in file names 530e1f5290 Merge bitcoin/bitcoin#34636: node: allocate index caches proportional to usage patterns 8598ec2204 Merge bitcoin/bitcoin#35221: BIP 434 Support: Peer feature negotiation 526aae3768 fuzz: test non-max descriptor satisfaction weight 472b950b7f qa: Use custom assert_greater_than() over naked assert 1ce9e26239 fuzz: improve dbwrapper_concurrent_reads performance fb47793b99 Merge bitcoin/bitcoin#35168: validation: Don't add pruned blocks to `m_blocks_unlinked` on startup 53b836cdce Merge bitcoin/bitcoin#34028: p2p: Prevent integer overflow in LocalServiceInfo::nScore 3bbc3c67ad Merge bitcoin/bitcoin#35101: refactor: disable default std::hash for CTransactionRef 288018131e Merge bitcoin/bitcoin#35254: crypto: cleanse HMAC stack buffers after use and ChainCode c85e04f079 Merge bitcoin/bitcoin#35478: fuzz: reset the mockable steady clock between iterations ed11dd6a5f test: add coverage for importdescriptors when manually interrupting a wallet rescan d90d7f0a55 test: add coverage for importdescriptors errors when using assumeutxo ad388bf254 test: add coverage for importdescriptors while wallet is rescanning ddceb4e603 test: updated different_key to be different_field and also used a single assert_equal with 3 args instead of multiple assert_equals 6751a323c0 iwyu: Fix warnings in `src/bench` and treat them as error fab52281f7 refactor: Drop unused includes after iwyu CI bump fa4774d032 ci: Bump APT_LLVM_V-based task configs to Ubuntu 26.04 fa1414a36a ci: Debian Trixie -> Ubuntu 26.04 359680b74d net: move cs_main up in FetchBlock to fix rpc assert crash 4b91316643 Merge bitcoin/bitcoin#35459: guix: add setup.sh fa03852e9c test: Use SteadyClockContext in pcp_tests fa3716c439 test: Use FakeNodeClock in more places fae9623c8d test: Add FakeNodeClock m_clock to TestChain100Setup a6ed29d6c2 bench, refactor: Use `std::string_view` for `BenchRunner` ctor parameter bcbf5bae16 Merge bitcoin/bitcoin#35114: test: NodeClockContext follow-ups 543c00f47d Merge bitcoin/bitcoin#35448: ci: don't build libunwind in msan 17ed7f5060 Merge bitcoin/bitcoin#35297: p2p: Release m_peer_mutex early in InitiateTxBroadcastToAll 087f02c929 ci: skip libunwind runtime in LLVM build 6d47f7cc6f ci: use llvm 22.1.7 9868e1bf65 Merge bitcoin/bitcoin#35487: scripted-diff: Rename UNIQUE_NAME to BITCOIN_UNIQUE_NAME 577999c2ce Merge bitcoin/bitcoin#35462: test: remove unnecessary nodes from wallet_multisig_descriptor_psbt e36f5d5d0b Merge bitcoin/bitcoin#35456: test: Perform full reset of CoinsResult in order to avoid passing 21M BTC 1d3bc816c3 Merge bitcoin/bitcoin#35267: rpc: make getprivatebroadcastinfo and abortprivatebroadcast fail if privatebroadcast is not enabled fba713a28c scripted-diff: Rename UNIQUE_NAME to BITCOIN_UNIQUE_NAME 1aafd49077 Merge bitcoin/bitcoin#35359: blockstorage: Remove cs_LastBlockFile recursive mutex 84d07e471c test: add coverage for importdescriptor with an encrypted wallet ec6cf49b91 blockstorage: Remove cs_LastBlockFile recursive mutex 35a814a045 test: Limit clocks to one active instance 55e402ffef scripted-diff: Rename NodeClockContext to FakeNodeClock 1e9546fcf4 test: Use NodeClockContext in more call sites 758fea59a8 test: Drop ++ from NodeClockContext default constructor 7c2ec3949a test: Enter mocktime before peer creation in block_relay_only_eviction 0bfc5e4fff add release notes fdc9fc1df2 test: check getprivatebroadcast and abortprivatebroadcast throw if the node is running without -privatebroadcast set 7b821ef9b7 rpc: getprivatebroadcastinfo and abortprivatebroadcast throw if -privatebroadcast is disabled 5f33da9aa3 Merge bitcoin/bitcoin#35481: fuzz: fix dead HD keypaths (de)serialization round-trip 5deb053a75 fuzz: fix dead HD keypaths (de)serialization round-trip 19b32a2e18 fuzz: reset the mockable steady clock between iterations 27472a542c Merge bitcoin/bitcoin#35466: ci: run ipc functional tests in arm job f6bdbcf79d lint: Grep for `AUTO` test suites in file names b2fbd5b5dd ci: run ipc functional tests in arm job 44fc3a290d rpc: introduce HelpElision variant and ElideGroup helper 2cf2b22ff1 depends: Drop trailing slash from `CMAKE_INSTALL_LIBDIR` da74ff9ca4 test: Add functional test for BIP434 01b8a117d2 test_framework: BIP 434 support 6a129983c9 BIP434: FEATURE message support 3210fc477a net: Add AdvertisedVersion() for protocol version advertised to a peer 5b65e31270 test: remove two unnecessary nodes from the test 94ed45427c serialize: add LimitedVectorFormatter 1b3f776ebb serialize: string_view serialization 47da4f9b71 Merge bitcoin/bitcoin#35410: net: use the proxy if overriden when doing v2->v1 reconnections 54de023a7c guix: add setup.sh 0cac23b66e Merge bitcoin/bitcoin#35431: test: pass -datadir to bitcoin-cli -ipcconnect check f42226d526 qa: Silence socket.timeout exception when substituting it for a JSONRPCException 659671ac3d qa: Avoid cleanup when exception is raised e01741e6ac Merge bitcoin/bitcoin#35446: ci: use pyzmq over zmq 628816bc55 Merge bitcoin/bitcoin#35447: ci: use warpbuild cache for docker buildkit cache d0b76c7f3e rpc+bitcoin-tx: Specify correct type for ParseFixedPoint() a5050ddb6b Merge bitcoin/bitcoin#32150: coinselection: Optimize BnB exploration 082bb1a104 Merge bitcoin/bitcoin#35335: Make deployment configuration available outside of regtest in unit tests 43ca54ca00 refactor(test): Make CAmount arg explicit for BuildCreditingTransaction() b5e91e946c wallet: Remove CoinsResult::Clear() 5bd990a3dd Merge bitcoin/bitcoin#34779: BIP 323: reserve version bits 5-28 as extra nonce space 2189a6f5f2 p2p: Saturate LocalServiceInfo::nScore updates at INT_MAX 82901981bf ci: use Warp cache for Docker layers 7c2718a4b8 Merge bitcoin/bitcoin#34767: Bugfix: GUI/Intro: Handle errors from SelectParams the same as if during InitConfig 4a6d1458b4 ci: add pyzmq to msan job c21b58e263 ci: use pyzmq over zmq b28cf409a1 Merge bitcoin/bitcoin#34866: fuzz: target concurrent leveldb reads de92208c2b migrate: Handle HD chains that have identical seeds but different IDs 2669019fe8 Merge bitcoin/bitcoin#35269: musig: Include pubnonce in session id 7735c13488 test: run bitcoin-cli -ipcconnect check under valgrind with -datadir 8cb8653a22 fuzz: target concurrent leveldb reads 6609088fe6 fuzz: extract ConsumeDBParams helper 61d1c78ed4 Merge bitcoin/bitcoin#35192: wallet: unfriend LegacyDataSPKM and DescriptorScriptPubKeyMan 726e196ef2 ci: inline runner selection 2e0a36c360 Merge bitcoin/bitcoin#35439: test: Improve loopback address check in `rpc_bind.py` 53373d07c3 Merge bitcoin/bitcoin#35430: ci: use warp caching on warp runners 4731049ba4 build: exclude mptest target from compile commands 255f7c720f Merge bitcoin/bitcoin#35404: wallet: allow anti-fee-sniping in sendall RPC while not relying on RBF default c8b8c275fa test: Improve loopback address check in `rcp_bind.py` 654a5223af Merge bitcoin/bitcoin#33661: test: Add test on skip heights in CBlockIndex 19e45334bc Merge bitcoin/bitcoin#35312: kernel: assert invalid buffer preconditions in `btck_*_create` functions 107d4178d9 versionbits: update VersionBitsCache doc comment to match current behaviour 94e3ac0b21 doc: release notes and bips doc update for #34779 1d5240574a qa: test we don't warn for ignored unknown version bits deployments f802edf57c versionbits: Limit live activation params and activation warnings per BIP323 2ce4ae7d8f ci: Add dynamic cache switching to warp cache fbe628756c Merge bitcoin/bitcoin#35131: guix, refactor: Minor script cleanups and improvements bf0d257c11 net: un-default the OpenNetworkConnection()'s proxy_override argument 5a3756d150 test: add a regression test for private broadcast v1 retries 34ac53457f Merge bitcoin/bitcoin#35402: doc: Compress doc/build-unix.md dependency package names into table 10dfdd4b9f Merge bitcoin/bitcoin#35379: test: Fix feature_dbcrash.py --usecli error 214ad1761b Merge bitcoin/bitcoin#35408: ci: 35378 followups a3dc44c085 Merge bitcoin/bitcoin#35385: test: restore JSONRPCException error format 9c1fcaca5c wallet, test: fix sendall anti-fee-sniping when locktime is not specified 570a627640 kernel: assert invalid buffer preconditions in `btck_*_create` functions ac09260982 test: restore JSONRPCException error format ab35a028ed test: make reusable filling of a node's addrman 2333be9cbc test: make reusable starting a standalone P2P listener 2ffa81fac4 test: make reusable SOCKS5 server starting 6c525c2ec1 wallet: unfriend LegacyDataSPKM and DescriptorScriptPubKeyMan classes 8877eec726 wallet: allow anti-fee-sniping in sendall RPC while not relying on RBF default 13b7fffc5e Merge bitcoin/bitcoin#35011: iwyu: Fix warnings in `src/script` and treat them as errors 6183942513 ci, iwyu: Fix warnings in src/scripts and treat them as error 5700a61b73 ci: use ubuntu-latest instead of ubuntu-24.04 265563bf75 doc: remove reference to cirrus b847626562 test: refresh MiniWallet after node restart f4e643cb15 test: merge mining options in package feerate check 280ce6a0ae miner: ensure block_max_weight is flattened before limit checks 65bd3164fb mining: clarify test_block_validity comment 978e7216e6 test: use shared default_ipc_timeout 1ea532e590 Merge bitcoin/bitcoin#34953: crypto: disable ASan instrumentation of SSE4 SHA256 for GCC (matching Clang) d0a54dd8e0 Merge bitcoin/bitcoin#35381: wallet, test: optinrbf deprecation followups c6f225c757 Merge bitcoin/bitcoin#28333: wallet: Construct ScriptPubKeyMans with all data rather than loaded progressively 5486ef8cc2 Merge bitcoin/bitcoin#34198: wallet: fix ancient wallets migration fa787043f5 doc: Compress doc/build-unix.md dependency package names into table f1344e6c7f Merge bitcoin/bitcoin#35378: ci: switch to warp runners d12d8e52d2 Merge bitcoin/bitcoin#35400: doc: Remove good_first_issue.yml, Reword "Getting started" section b86c1c443d test: add coverage for migrating ancient wallets fd44d48b24 wallet: fix ancient wallets migration a34dbc836c Merge bitcoin/bitcoin#35313: Bump leveldb subtree 896eaacd91 Merge bitcoin/bitcoin#34644: mining: add submitBlock to IPC Mining interface fa51f37f18 doc: Reword the Getting-Started section 53388773af guix: Remove redundant ShellCheck `source` directives 62cf7bc53f guix, refactor: Add `BASE` argument to `*_for_host` functions 5d46429e32 guix, refactor: Move `distsrc_for_host()` to `prelude.bash` cab65ea9c6 guix, refactor: Move duplicated `profiledir_for_host()` to `prelude.bash` faa9d4345f guix, refactor: Move duplicated `outdir_for_host()` to `prelude.bash` 6b59fd6b8c guix, refactor: Remove `contains()` function d4c69a7224 guix, refactor: Remove unused `out_name()` function fad585b6e5 test: Wait for node exit after crash in verify_utxo_hash faf1475514 ci: Exclude feature_dbcrash.py under --v2transport --usecli fac27d702f test: Fix feature_dbcrash.py --usecli intermittent error fa09de8b68 test: [refactor] Simplify submit_block_catch_error f701cd159a doc: fix typo in release notes of #34917 7bc39e3d08 wallet, test: add wallet_deprecated_rbf.py for walletrbf deprecated keys & options 2cbbcb5659 wallet, test: remove -deprecatedrpc=bip125 from wallet_send.py 307134bd7e wallet, test: remove -deprecatedrpc=bip125 from wallet_migration.py 3ec550d168 wallet, test: remove -deprecatedrpc=bip125 from wallet_basic.py a52ea9bff9 wallet, test: remove -walletrbf startup option from wallet_backwards_compatibility.py e3f5c18913 Merge bitcoin/bitcoin#34948: guix: Split manifest into build and codesign manifests a9ac680af3 build: remove FALLTHROUGH_INTENDED from leveldb.cmake 4d58c3271c build: remove -Wno-conditional-uninitialized from leveldb build 5fe0615f7a Update leveldb subtree to latest upstream 58cdb5c2e8 Squashed 'src/leveldb/' changes from ab6c84e6f3..a7f9bdc611 4bdd46ace3 ci: switch runners from cirrus to warpbuild fab5733f5d doc: Remove good_first_issue.yml fa98d44951 ci: Rewrite broken wrap-valgrind.sh to .py 00af5620f0 Merge bitcoin/bitcoin#35206: doc: fix doxygen links to threads in developer-notes.md faf7e38973 ci: refactor: Avoid warning: INSTALL_BCC_TRACING_TOOLS: unbound variable 85c27c9de5 Merge bitcoin/bitcoin#35394: test: remove unnecessary rpc calls from feature_dbcrash 42330922dd wallet, test: remove -walletrbf startup option from wallet_backwards_compatibility.py 8cb6e405d8 wallet, test: remove -walletrbf startup option from wallet_listtransactions.py 0ee94b2fef wallet, test: remove -deprecatedrpc=bip125 from wallet_listtransactions.py 5e833e068d wallet, test: -walletrbf startup option from wallet_bumpfee.py a2a2b1745f wallet, test: remove -walletrbf startup option from rpc_psbt.py 615c0aefa8 Merge bitcoin/bitcoin#35391: test: Use operator<< for time_points instead of manual TickSinceEpoch c17cc76a18 test: speed up feature_dbcrash 0687438e94 Merge bitcoin/bitcoin#35372: refactor: Enhance type safety in overflow operations fad4f417d1 test: Use operator<< for time_points instead of manual TickSinceEpoch d846444d01 guix: Split manifest into build and codesign manifests 0b9e10ad40 guix: Update `python-signapple` and wrap with OpenSSL paths 3962138cc0 test: add IPC submitBlock functional test 5b60f69e40 mining: add submitBlock IPC method to Mining interface 813b4a80d7 refactor: introduce SubmitBlock helper a3fe455a95 wallet: refactor to read -walletrbf only once instead of twice 9c15022260 Merge bitcoin/bitcoin#35337: doc: add feature deprecation and removal process to developer notes a4157fc24a Merge bitcoin/bitcoin#33966: refactor: disentangle miner startup defaults from runtime options ac9424fdc6 Merge bitcoin/bitcoin#35145: validation: fix misleading VerifyDB summary log 9767e80b21 Merge bitcoin/bitcoin#35296: doc: Fix broken links in dev notes, move sections 9ec4efebd1 Merge bitcoin/bitcoin#35015: bitcoin-cli: note -rpcclienttimeout is not implemented for IPC connections b43a936355 Merge bitcoin/bitcoin#33974: cmake: Check dependencies after build option interaction d5188b5592 Merge bitcoin/bitcoin#35363: test: Allow --usecli in more tests 743bf350f2 Merge bitcoin/bitcoin#35049: test: remove circular dependency between authproxy and util fa24693819 test: Allow --usecli in tests that already support it fa8d4d5c35 test: Catch CalledProcessError to support --usecli in feature_dbcrash.py faf0f848ef test: use echojson to allow rpc_named_arguments.py --usecli faf993ee44 test: Stop node before modifying config to support rpc_users.py --usecli dd0dea3e89 Merge bitcoin/bitcoin#34917: wallet: mark bip125-replaceable RPC key and walletrbf startup option as deprecated acea6f2caf Merge bitcoin/bitcoin#35251: wallet: Fix for duplicate external signers case 801e3bfe38 chainparams: add overloads for RegTest and SigNet with no options 4995c00a9c chainparams: make deployment configuration available on all test networks 0774eaaf0c util: Require integers for SaturatingAdd() and AdditionOverflow() 32d072a49f doc: add release notes for #35319 d01b461f71 net: ensure no direct private broadcast connections fd230f942d net: use the proxy if overriden when doing v2->v1 reconnections a815e3e262 rpc: Correct type for tx_sigops 7be0d6fa18 test: remove the lazy import of util in authproxy 779f444680 test: move out JSONRPCException from authproxy to util de925455c8 Merge bitcoin/bitcoin#35141: fuzz: apply node context reset pattern to p2p_handshake 2e9fdcc6da doc: add feature deprecation and removal process to developer notes fa4fc8c1d7 test: Set TestNode url field early, so that feature_loadblock.py --usecli works 5faf2ad880 doc: add release notes for deprecation of wallet rbf & bip125 fields aba24a9b62 wallet: remove "RPC Only" from -walletrbf option help description 9f7b08c61c Merge bitcoin/bitcoin#35334: test: Allow --usecli in more tests b9f0040caf Merge bitcoin/bitcoin#34614: ci: Put space and non-ASCII char in scratch dir f28cd7587b Merge bitcoin/bitcoin#35348: ci: switch to GitHub cache for all runners 59918de329 Merge bitcoin/bitcoin#34801: ci: Enable pipefail in 03_test_script.sh e4f033789c Merge bitcoin/bitcoin#35324: test: Document rare failure in test_inv_block better 033a56ccb2 Merge bitcoin/bitcoin#34342: cli: Replace libevent usage with simple http client c03107acf5 ci: switch to GitHub cache for all runners 908cc9d30b Merge bitcoin/bitcoin#35344: kernel: improve BITCOINKERNEL_WARN_UNUSED_RESULT usage e91f8713ac Merge bitcoin/bitcoin#35349: ci: Fix `path` input for vcpkg downloads cache 1e5d3b4f0d doc: add release note for mining option validation 0317f52022 ci: enforce iwyu for touched files 8c58f63578 refactor: have mining files include what they use 3bb6498fb0 mining: store block create options in NodeContext 4637cd157d mining: reject invalid block create options 8daac1d6eb mining: add block create option helpers 128da7c3ff miner: add block_max_weight to BlockCreateOptions fa81e51eae mining: parse block creation args in mining_args 020166080c mining: use interface for tests, bench and fuzzers 44082bea47 interfaces: make Mining use const NodeContext d4368e059c move-only: add node/mining_types.h 6aeb1fbea2 test: cover IPC blockmaxweight policy 63b23ea1e9 test: regression test for waitNext mining policy 24750f8b31 test: add createNewBlock failure helper 63ee9cd15b test: misc interface_ipc_mining.py improvements faf02674b3 refactor: Set TestNode.cli only after RPC is connected fae376cafb refactor: Inline get_rpc_proxy fa00c7c7a4 test: Allow rpc_bind.py --usecli fa8f25118c refactor: Use create_new_rpc_connection in wallet_multiwallet.py fa3ae6c7d3 test: Allow feature_shutdown.py --usecli fa2a3683d5 test: Allow mining_getblocktemplate_longpoll.py --usecli 735b1cf431 Merge bitcoin/bitcoin#34806: refactor: logging: Various API improvements a56b4ead41 Merge bitcoin/bitcoin#35017: mempool: remove all subsequent tx in pkg on failure 00e9df90c8 Merge bitcoin/bitcoin#35333: qa: use NORMAL_GBT_REQUEST_PARAMS consistently in functional tests 37d7ce47c5 Merge bitcoin/bitcoin#35350: test: suppress ECONNABORTED in wait_for_rpc_connection on Windows 18c1cc65e9 kernel: improve BITCOINKERNEL_WARN_UNUSED_RESULT usage 7209eb7790 test: suppress ECONNABORTED in wait_for_rpc_connection on Windows 0553ce5ddb Merge bitcoin/bitcoin#35316: musig: Reject empty pubkey list in GetMuSig2KeyAggCache e4f1e43103 ci: Fix `path` input for vcpkg downloads cache fa99a3ccac ci: Enable pipefail in 03_test_script.sh d61053d97b build: Drop libevent from bitcoin-cli link libraries 798d051c80 cli: Remove libevent usage ca5483a662 qa: use NORMAL_GBT_REQUEST_PARAMS consistently bd0942bbd9 Merge bitcoin/bitcoin#34887: fuzz: target CDBWrapper 2940053761 Merge bitcoin/bitcoin#33223: coinselection: Tiebreak SRD eviction by weight 5ccb698f53 Merge bitcoin-core/gui#936: Remove opt-in RBF 211e1053bf Merge bitcoin/bitcoin#32220: cmake: Get rid of undocumented `BITCOIN_GENBUILD_NO_GIT` environment variable ecf20317cb Merge bitcoin/bitcoin#35270: doc: Document minimum versions for Xcode CLT and MSVC 97f7cc0233 wallet: mark -walletrbf startup option as deprecated c4a7613e6a wallet: mark `bip125-replaceable` key as deprecated in transaction RPCs 8ee5622455 Merge bitcoin/bitcoin#35338: qa: regenerate hardcoded regtest chain for kernel lib unit tests 131fa570b9 test: Add test for BuildSkip() and skip heights c6dbf3158b Merge bitcoin/bitcoin#35304: kernel: doc: document wipe lifecycle and best entry nullability f05b1a3532 rpc: Fix for duplicate external signers case 98f706c698 qa: regenerate hardcoded regtest chain for kernel lib unit tests ac9aa71b7f mempool: remove all subsequent tx in pkg on failure df7ed5f355 chainparams: encapsulate deployment configuration logic b63ef20d54 test: add fuzz harness for CDBWrapper 32169c3855 dbwrapper: accept optional testing leveldb::Env in DBParams 8d390c93fc dbwrapper: make max_file_size a configurable DBParams field 376e7ef07c util: Expose IOErrorIsPermanent in sock header b796bf44f3 Merge bitcoin/bitcoin#35228: wallet: use `outpoint` when estimating input size 3158b890e1 Merge bitcoin/bitcoin#33765: doc: update interface, --stdin flag, `signtx` (#31005) 21edcc47e2 Merge bitcoin/bitcoin#35328: test: restore assertion that tx contains exactly 2500 sigops 5d562430de netbase: Add timeout parameter to ConnectDirectly fa37c6a529 test: [move-only] Extract create_new_rpc_connection a988ac592f cli: Add HTTPResponseHeaders class for parsing response headers ae73b69b52 test: restore assertion that tx contains exactly 2500 sigops a7df1bd7ca Merge bitcoin/bitcoin#34537: crypto: fix incorrect variable names in SHA-256 ARM intrinsics 5570b86fa7 Merge bitcoin/bitcoin#33160: bench: Add more realistic Coin Selection Bench 239424064b Merge bitcoin/bitcoin#35189: kernel: document validation state outputs as overwritten in-place 0358c26d42 kernel: document overwritten validation state outputs 489da5df60 Merge bitcoin/bitcoin#33856: kernel: Refactor process_block_header to return btck_BlockValidationState fa89098888 test: Document rare failure in test_inv_block better ce2044a91d Merge bitcoin/bitcoin#33362: Run feature_bind_port_(discover|externalip).py in CI 2284288e9a Merge bitcoin/bitcoin#35279: psbt, test: remove address type restrictions in test 278b9e39df Merge bitcoin/bitcoin#34934: fuzz: exercise ForNode/ForEachNode callbacks in connman fuzz harness 88d9bc5aa4 kernel: Return btck_BlockValidationState from process_block_header API ed15e14b63 Merge bitcoin/bitcoin#35193: test: avoid non-loopback network traffic from node_init_tests/init_test 4f348c2d73 Merge bitcoin/bitcoin#28802: ArgsManager: support command-specific options c7056ff03f Merge bitcoin/bitcoin#34893: psbt: preserve proprietary fields when combining PSBTs 8ce84321ce musig: Reject empty pubkey list in GetMuSig2KeyAggCache b2a3ca3df9 Merge bitcoin/bitcoin#35117: i2p: clean up SESSION CREATE error logging 7802e578c3 Merge bitcoin/bitcoin#34860: mining: always pad scriptSig at low heights, drop include_dummy_extranonce da769855d0 test: add PSBT proprietary merge regression coverage 3f5b3c7a80 psbt: preserve proprietary fields when combining PSBTs 6189335f6b kernel: doc: document wipe lifecycle and best entry nullability ed1795aa17 Merge bitcoin/bitcoin#35285: bench: add benchmark for GetMappedAS() 379b9fbf03 Merge bitcoin/bitcoin#34225: refactor, key: move `CreateMuSig2{Nonce,PartialSig}` functions to `musig.{h,cpp}` module c471c5085b common: Add unused UrlEncode function 9687ef1bd9 ci: Tolerate unused free functions in intermediate commits 02b2c41103 logging: use util/log.h where possible 57d7495fe5 IWYU fixes 611878b46f scripted-diff: logging: Drop LogAcceptCategory 34332dba2f util/log, logging: Provide ShouldDebugLog and ShouldTraceLog instead of a generic ShouldLog abea304dd6 logging: Move GetLogCategory into Logger class 58113e5833 util/log: Rename LogPrintLevel_ into detail_ namespace f69d1ae56d util/log: Provide util::log::NO_RATE_LIMIT to avoid rate limits 72e92d67df logging: Protect ShrinkDebugFile by m_cs faf6afd99d doc: Move mutex and thread section into guideline section fa514caad7 doc: move-only Valgrind section fa0202f31d doc: move-only Python section fa37606c65 doc: Regroup clang-tidy rules fa9c2ddea9 doc: Fix to use lower-case anchors in links to C++ Core Guidelines a154c05d49 cmake: Check dependencies after build option interaction 096bb0b5c0 bench: add benchmark for GetMappedAS() b6c3670442 i2p: clean up SAM error logging 1c500b1709 test: avoid non-loopback network traffic from node_init_tests/init_test fa2afba28b p2p: Release m_peer_mutex early in InitiateTxBroadcastToAll 3381855e51 doc: external signer: update interface, --stdin flag, IPC-command signtx, contains updates from #33947 ddb94fd3e1 Merge bitcoin/bitcoin#35289: fuzz: Fix timeout in `txorphan` 3142e5f8cf doc: Add release notes for #32220 b71cd5c162 cmake: Skip using git when building from source tarball or as subproject fe941938e8 cmake: Remove unnecessary `BITCOIN_GENBUILD_NO_GIT` environment variable 9a2cced23a cmake, refactor: Move `find_package(Git)` to `src/CMakeLists.txt` 3cab711d69 Merge bitcoin/bitcoin#35284: fuzz: use ImmediateBackgroundTaskRunner to silence DEBUG_LOCKORDER 004a7e3cfb fuzz: Fix txorphan timeout by limiting block weight 7777a92a92 ci: Use path with spaces on windows as well fac6c4270d ci: Put space and non-ASCII char in scratch dir fa38759823 ci: Require $FILE_ENV cad5f56045 Merge bitcoin/bitcoin#29136: wallet: `addhdkey` RPC to add just keys to wallets via new `unused(KEY)` descriptor 9961229360 Merge bitcoin/bitcoin#31298: rpc: combinerawtransaction now rejects unmergeable transactions c680cfe343 Merge bitcoin/bitcoin#35123: wallet: remove outdated arguments from chain scanning methods a145fa881a Merge bitcoin/bitcoin#35156: dbwrapper: reuse scratch `DataStream` buffers 04003e1fa3 Merge bitcoin/bitcoin#35274: doc: clarify libfuzzer-nosan preset uses build_fuzz_nosan dir 5309c90542 Merge bitcoin/bitcoin#35283: doc: mention -DWITH_ZMQ=ON in BSD build guides 90eda67bb8 Remove opt-in RBF fa3d7ce11c doc: Document minimum versions for Xcode CLT and MSVC 2ef6679c2c test: Check that MuSig2 signing does not reuse nonces 8544537f41 mining: drop unused include_dummy_extranonce option 58eeab790d mining: only pad with OP_0 at heights <= 16 00d22328b0 mining: pad coinbase to fix createNewBlock at heights <=16 801d36f55b fuzz: use ImmediateBackgroundTaskRunner to silence DEBUG_LOCKORDER ca93ab808c doc: mention -DWITH_ZMQ=ON in BSD build guides 605ff37403 test: bad-cb-length for createNewBlock() at low heights 1966621b76 test: refactor IPC mining test to use script_BIP34_coinbase_height 8ba5f68b1d refactor, key: move `CreateMuSig2PartialSig` to `musig.{h,cpp}` module d087f266fc refactor, key: move `CreateMuSig2Nonce` to `musig.{h,cpp}` module f36d89f436 key: add `GetSecp256k1SignContext` access function 0065f354a7 doc: clarify libfuzzer-nosan preset uses build_fuzz_nosan dir 81348576cc psbt, test: remove address type restrictions in test 82733e61de Merge bitcoin/bitcoin#35277: ci: Enable ruff ambiguous-unicode-character checks fe2bb43e43 Merge bitcoin/bitcoin#35044: contrib: Fix NameError in signet miner gbt() fa9c919678 refactor: Use ignore-list over verbose select-list cd8d3bd937 wallet: use outpoint when estimating input size fa9b01adec ci: Enable ruff ambiguous-unicode-character checks 09a9bb3536 Merge bitcoin/bitcoin#34547: lint: modernise lint tooling 21a1380c13 key: cleanse ChainCode on destruction bb05986c0a musig: Include pubnonce in session id 3f44f9aef7 test: Add coverage for m_blocks_unlinked invariant in LoadBlockIndex 10ca73c02c Merge bitcoin/bitcoin#34580: build: Add a compiler minimum feature check 1af8e0c4e8 Merge bitcoin/bitcoin#35183: doc: recommend script_flags instead of deployments.taproot f24a7b5f75 doc: recommend script_flags instead of deployments.taproot ccbd00ab87 Merge bitcoin/bitcoin#35152: doc: clarify local IWYU workflow and pragmas b3a3f88346 crypto: cleanse HMAC stack buffers after use 88bfe89793 Merge bitcoin/bitcoin#35227: wallet: check the final BDB page LSN during migration 21599ea612 Merge bitcoin/bitcoin#35241: cmake: Set `CTEST_NIGHTLY_START_TIME` for CDash Nightly pipelines d406cffafd Merge bitcoin/bitcoin#34228: depends: Unset `SOURCE_DATE_EPOCH` in `gen_id` script 4defc466a2 cmake: Set `CTEST_NIGHTLY_START_TIME` for CDash Nightly pipelines 1f28ed6b6a Merge bitcoin/bitcoin#35235: contrib: mv verify-commits/pre-push-hook.sh to maintainer tools repo 8396b7f2a3 Merge bitcoin/bitcoin#35236: doc: typo roundup 2b7f5914c4 Merge bitcoin/bitcoin#35222: cmake: add CTestConfig.cmake 888857c551 mv contrib/verify-commits/pre-push-hook.sh to maintainer tools repo d9b57eecad doc: fix whitespace in build-osx.md e7d4a7e3f9 doc: fix stale autotools reference and SQLite typo 3f9c55426a Merge bitcoin/bitcoin#35230: ci: Move --usecli --extended from i386 task to alpine task fad61896e8 ci: Move --usecli --extended from i386 task to alpine task 7c84a2bdb1 Merge bitcoin/bitcoin#35219: doc: Add my key to SECURITY.md cf5c962a39 Merge bitcoin/bitcoin#34991: test: fix feature_index_prune.py bug when using --usecli 6690117c7a Merge bitcoin/bitcoin#35218: test: fix `P2SH` script in coins cache fuzz target 5b11108145 Merge bitcoin/bitcoin#35223: refactor: [rpc] Remove confusing and brittle integral casts (take 3) e2b0984f99 wallet: check BDB last page LSN d5adb9d09b doc: fix doxygen links to threads in developer-notes.md fa864b937e refactor: [rpc] Remove confusing and brittle integral casts (take 3) 9f7a2293c4 depends: Unset `SOURCE_DATE_EPOCH` in `gen_id` script 086894098e cmake: add CTestConfig.cmake 0651a1fc15 doc: Add Niklas Goegge's key to SECURITY.md ac58e6c53c test: fix P2SH output in coins cache fuzz aa1d0d7cd7 Merge bitcoin/bitcoin#35209: validation: correct lifetime of precomputed tx data 0429c503fb bench: Replace Coin Selection bench ec1eefda77 bench: Remove unnecessary wallet parameter e6c4ffb956 bench: Fix type mismatch d7ed2840ac Merge bitcoin/bitcoin#21283: Implement BIP 370 PSBTv2 1ed799fb21 validation: correct lifetime of precomputed tx data 371eac8069 fuzz: exercise ForNode/ForEachNode callbacks in connman fuzz harness 08c3c37d12 bitcoin-cli: note -rpcclienttimeout is not implemented for IPC connections c89c8ddbb3 Merge bitcoin/bitcoin#33300: fuzz: compact block harness 4bf1701f58 Merge bitcoin/bitcoin#33796: kernel: Expose `CheckTransaction` consensus validation function 999e9dbfb4 Merge bitcoin/bitcoin#35202: ci: restore sockets in `i686, no IPC` job 5a2e359213 clarify blockfilterindex cache allocation rationale 224120bf12 Merge bitcoin/bitcoin#32394: net: make m_nodes_mutex non-recursive 11c9ef92a8 ci: unconfine seccomp for i686 no IPC 86718e4589 scripted-diff: rename ABEF_SAVE/CDGH_SAVE to ABCD_SAVE/EFGH_SAVE in SHA-256 ARM intrinsics 8f4a3ba897 Merge bitcoin/bitcoin#35165: cmake: Remove NetBSD-specific workaround from `add_boost_if_needed` b1ff4773ba Merge bitcoin/bitcoin#34544: wallet: Disallow wallet names that are paths including `..` and `.` elements db98e357d3 Merge bitcoin/bitcoin#35018: wallet, bench: Use Nanobench setup() for wallet benchmarks, and remove DuplicateMockDatabase 18d003c3dc Merge bitcoin/bitcoin#34916: contrib: override system locale in gen-manpages.py 567ff2b6d6 Merge bitcoin/bitcoin#33196: docs: clarify RPC credentials security boundary 3c2646eacc Merge bitcoin/bitcoin#34026: fuzz: Add tests for `CCoinControl` methods bfbf1a7ef3 kernel: Expose btck_transaction_check consensus function 404470505a Merge bitcoin/bitcoin#34256: test: support `get_bind_addrs` and `feature_bind_extra` on macOS & BSD 25100fc28d Merge bitcoin/bitcoin#35186: util, iwyu: Add missed header d28179bac9 util, iwyu: Add missed header 32e479f7a5 Merge bitcoin/bitcoin#34669: feefrac: drop comparison and operator{<<,>>} for sorted wrappers 11713c9fa9 net: make CConnman::m_nodes_mutex non-recursive aec4fa2de0 net: drop the only recursive usage of CConnman::m_nodes_mutex eed7af666b doc: Add release note for disallowing some wallet path names 3d7f0e4ed5 wallettool: Use GetWalletPath to determine the wallet path ef499680c8 Merge bitcoin/bitcoin#34176: wallet: crash fix, handle non-writable db directories a39cc16b43 doc: Release note for addhdkey 89b9a01b4e wallet, rpc: Disallow importing unused() to wallets without privkeys 35bbee6374 wallet, rpc: Disallow import of unused() if key already exists f3f8bcbd1d wallet: Add addhdkey RPC 9fa4076b20 test: Test merging implicit PSBTv0 with explicit PSBTv0 1660c18232 doc: Release notes for psbtv2 470e52a5f8 fuzz: Enforce additional version invariants in PSBT fuzzer 5bd0579c09 test: Tests for PSBT AddInput and AddOutput b8b6e7f0c2 tests: Add PSBT unit test for ComputeTimeLock 0bc1c2e508 tests: Add test vectors from BIP 370 e0e4dbdeb5 psbt: Change default psbt version to 2 bcc1dca77b Add psbt_version to PSBT RPCs and default to v2 ab38c30195 Implement PSBTv2 field merging 93e339e29f Implement PSBTv2 AddInput and AddOutput b39c86ae60 Allow specifying PSBT version in constructor dcc9a3c8df Implement PSBTv2 in decodepsbt 5770dbd39f Add PSBT::ComputeLockTime() 863cf47b33 Update test_framework/psbt.py for PSBTv2 925161eaf0 Implement PSBTv2 fields de/ser d9cf658ee0 Restrict joinpsbts to PSBTv0 only 3da0e16012 Replace PSBT.tx with PSBT::GetUnsignedTx and PSBT::GetUniqueID c568624ff2 psbt: Return std::optional from PrecomputePSBTData 092de4f1f6 Replace PSBT::GetInputUTXO with PSBTInput::GetUTXO 1d1ae6f0c4 wallet, test: Remove DuplicateMockDatabase 82bc280de4 test: Simple test for importing unused(KEY) 80c29bc6f1 descriptor: Add unused(KEY) descriptor 82c9fe3179 psbt: Use PSBTInput and PSBTOutput fields instead of accessing global tx 95897507e9 psbt: AddInput and AddOutput should take only PSBTInput and PSBTOutput 1b7d323a72 Add PSBTInput::GetOutPoint 543d3e1cdc psbt: add PSBTv2 global tx fields c01c7f068c psbt: Remove default constructor 9671aa08c2 psbt: add tx input and output fields in PSBTInput and PSBTOutput 990b084f11 Have PSBTInput and PSBTOutput know the PSBT's version 7eacc21ff6 psbt: make PSBT structs into classes f926c326bb gui: Store PSBT in std::optional in PSBTOperationsDialog 1e2d146b47 psbt: Refactor duplicate key lookup and size checks 88384180d3 test: PSBTs should roundtrip through RPCs that do nothing 001877500d test: construct psbt with unknown field programmatically 0cb884e6df psbt: Fill hash preimages and taproot builder from SignatureData 57820c472b bench: Utilize setup() for WalletLoading and use a real database 9a7604fd25 bench: Use setup() in WalletMigration to prepare the legacy wallet 426a94e7bd bench: Utilize setup() in WalletEncrypt to create the encryption wallet d672455d20 bench: Utilitze setup() in WalletBalance for marking caches dirty 61412ef887 bench: Utilize setup() in WalletCreate to cleanup previous wallets 451fdd26a4 test: wallet: Constructing a DSPKM that can't TopUp() throws. 32946e0291 wallet: Setup new autogenerated descriptors on construction e20aaff70f wallet: Construct ExternalSignerSPKM with the new descriptor aa4f7823aa wallet: include keys when constructing DescriptorSPKM during import 6538f69135 fuzz: Skip adding descriptor to wallet if it cannot be expanded 8be5ee554b test: wallet: Check that loading wallet with both unencrypted and encrypted keys fails. 80b0c25992 wallet: Load everything into DescSPKM on construction f713fd1725 refactor: wallet: Don't reuse WALLET_BLANK flag for born-encrypted wallets. cd912c4e10 wallet: Consolidate generation setup callers into one function 0301c758ea wallet migration, fuzz: Migrate hd seed once 2424e52836 lint: doc: detail lint tool install methods 5fefa5a654 Don't pin Python patch version fd15b55c2e lint: use requirements.txt 5f4d3383da lint: switch to ruff for formatting and linting a53b81ce4e lint: switch to uv for python management in linter 2b0dc0d228 wallet: Disallow . and .. from wallet names d084bc88be doc: clarify IWYU workflow 7c7cec4567 ci: update IWYU patch reference 75cf9708a0 ci: add one more routable address to the VMs (docker containers) 1b93983bf5 test: make feature_bind_port_(discover|externalip).py auto-detect the skip condition 032223f403 dbwrapper: reuse iterator scratch stream 7403c0f907 dbwrapper: guard `CDBBatch` scratch streams cb1ab0a716 test: cover repeated dbwrapper stream use 31ce729b28 streams: add `ScopedDataStreamUsage` 0e4b0bacec validation: Don't add pruned blocks to m_blocks_unlinked on startup c8d688f41c fuzz: send blocktxn messages in cmpctblock harness d0333bfe99 fuzz: send compact blocks in cmpctblock harness 3c58efe2ac fuzz: mine blocks and send headers for them in cmpctblock harness 651622432d fuzz: create and send transactions in cmpctblock harness 8c9a3fd0e8 net, fuzz: move CMPCTBLOCK_VERSION to header, use in cmpctblock harness 6cd480f62f fuzz: initial compact block fuzz harness 1d66963749 log: clarify VerifyDB summary log a9301cfa07 refactor: disable default std::hash for CTransactionRef 47d68cd981 ci: backport iwyu PR 2013 std::hash mapping e2ef54b8ba cmake: Remove NetBSD-specific workaround from `add_boost_if_needed` 6d86184a8b rpc: combinerawtransaction now rejects unmergeable transactions 08925d5ee7 test: add coverage for loading a wallet in a non-writable directory 0218966c0d test: add coverage for wallet creation in non-writable directory bc0090f1d6 wallet: handle non-writable db directories a49bc1e24e ci: add --extended when using --usecli 904c0d07bb util/stdmutex: Drop StdLockGuard 735b25519a support: clamp RLIMIT_MEMLOCK to size_t 8ab4b9fc85 init: clamp fd limits to int 4afbabdcef Fix startup failure with RLIM_INFINITY fd limits 89af67d79f tests: Add some fuzz test coverage for command-specific args 92df785859 tests: Add some test coverage for ArgsManager::AddCommand 33c8090be9 ArgsManager: automate checking for correct command options 186354a0d8 bitcoin-wallet: use command-specific options d21e82b7d6 ArgsManager: support command-specific options dfe5d6a81d fuzz: apply node context reset pattern to p2p_handshake dc84a31014 wallet: remove fUpdate argument from AddToWalletIfInvolvingMe 94845df073 wallet: remove update_tx argument from SyncTransaction 6e796e1f47 wallet: remove fUpdate argument from ScanForWalletTransactions 54e4c0be8f wallet: remove update argument from RescanFromTime method 701bc2dc02 contrib: Fix NameError in signet miner gbt() 7249b376a0 opt: Skip UTXOs with worse waste, same eff_value 5204291860 opt: Skip evaluation of equivalent input sets ba1807b981 coinselection: Track effective_value lookahead fa226ab902 coinselection: BnB skip exploring high waste 7ecea1dc5d coinselection: Track whether BnB completed 3ca0f36164 coinselection: rewrite BnB in CoinGrinder-style 2e73739837 coinselection: Track BnB iteration count in result eff9e798b9 coinselection: Tiebreak SRD eviction by weight d06dabf26b node: allocate index caches proportional to usage patterns 1950da94fc test: enable `rpc_bind` on macOS and BSD 7236a05503 test: enable `feature_bind_extra` on macOS and BSD 5603ae0ffa test: fix send_batch_request to pass callables when using --usecli fedeff7f20 crypto: disable ASan instrumentation of SSE4 SHA256 for GCC 758f208cc1 contrib: override system locale in gen-manpages.py 2104282ddd fuzz: Add tests for CCoinControl methods 43b09b993d fuzz: Improve oracle for existing CCoinControl tests ac1ccc5bd9 build: Add CTAD feature check 9f273f1c1c build: Add path to doc recommended versions for CLANG, GCC and MSVC 55d37546fa Bugfix: GUI/Intro: Handle errors from SelectParams the same as if during InitConfig 1aa78cdab6 clusterlin: adopt STL ranges algorithms (refactor) 747da25360 feefrac: drop comparison and operator{<<,>>} for sorted wrappers 938312d7a6 docs: clarify RPC credentials security boundary git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: d84fc352cbc1363df5cd6024a22e73fc63283e4f
…fc352cb d84fc352cb Merge bitcoin/bitcoin#35550: net_processing: fix BIP152 first integer interpretation fafff08e1f Merge bitcoin/bitcoin#35403: mining: pr 33966 followups (disentangle miner startup defaults) e12db0902b Merge bitcoin/bitcoin#34411: Full Libevent removal fa8e4700ba Merge bitcoin/bitcoin#35424: doc, wallet: align external signer documentation, reject sendtoaddress/sendmany 146b3adfaa doc: remove libevent 96d7f55f1d vcpkg: remove libevent 0443943dc0 ci: remove libevent a0ca249f3f depends: remove libevent 35d2d06797 cmake: remove libevent 6b58eb6d51 Merge bitcoin/bitcoin#35070: validation: prevent FindMostWorkChain from causing UB 6d8e15dff0 Merge bitcoin/bitcoin#35571: ci: use warp docker buildkit cache 33e3c7524f Merge bitcoin/bitcoin#35521: fuzz: Speed up `dbwrapper_concurrent_reads` harness 9c20859b5f Merge bitcoin/bitcoin#35182: Replace libevent with our own HTTP and socket-handling implementation 48df0939e7 fuzz: Remove unnecessary thread pool mutexes a4c3b003f8 fuzz: Speed up dbwrapper_concurrent_reads harness 61020b36c5 doc: add release note for #35182 replace libevent HTTP server 39e9099da5 logging: deprecate libevent category 8c1eea0777 http: remove libevent usage from this subsystem e427c227fa fuzz: switch http_libevent::HTTPRequest to http_bitcoin::HTTPRequest 21c7542cf8 http: switch servers from libevent to bitcoin cbb8d1fb33 HTTPServer: disconnect after idle timeout (-rpcservertimeout) e5f242eef3 HTTPServer: implement control methods to match legacy API 2ca645c2e4 refactor: split HTTPBindAddresses into config parse and libevent setup fec6b6bca8 refactor: split http_request_cb into libevent callback and dispatch f946ff5a0b Add helper methods to HTTPRequest to match original API dd11b5e01b define HTTP request methods at module level outside of class 7ee7df988e HTTPServer: use a queue to pipeline requests from each connected client 5ef1b80a09 Allow http workers to send data optimistically as an optimization a69bb9e1e6 HTTPServer: disconnect clients cdf71998e5 HTTPServer: compose and send replies to connected clients 6734bcdeff HTTPserver: support "chunked" Transfer-Encoding 80e1cfe5a2 HTTPServer: read requests from connected clients 3c5226ab96 HTTPServer: start an I/O loop in a new thread and accept connections 4ef4ebdc0c http: Introduce HTTPRemoteClient class a85286c5c7 HTTPServer: generate sequential Ids for each newly accepted connection 5a3aa1af28 HTTPServer: implement and test AcceptConnection() f5bc018948 http: Introduce HTTPServer class and implement binding to listening socket 9463e98781 http: Implement HTTPRequest class ad50aa4a0f http: Implement HTTPResponse class 68b5d289d1 http: Implement HTTPHeaders class 89c54ae4cb http: enclose libevent-dependent code in a namespace 5aa3629b48 util/string: LineReader should only trim \r or \r\n 0cdbb191b5 util/string: use string_view in LineReader 881d4b6c75 test: cover common HTTP attacks and common malformed requests 08a25a7231 Merge bitcoin/bitcoin#35465: coins: compact chainstate regularly 27262a2884 Merge bitcoin/bitcoin#35559: scripted-diff: Rename SteadyClockContext to FakeSteadyClock ea626c268a Merge bitcoin/bitcoin#35560: lint: Require scripted-diff script to succeed (take 2) c0922f78af Merge bitcoin/bitcoin#35567: depends: latest config.guess & config.sub b552f1713a ci: use warp docker buildkit cache 1a2523e901 Merge bitcoin/bitcoin#34937: Fix startup failure with RLIM_INFINITY fd limits 5883ba77ea Merge bitcoin/bitcoin#34764: rpc: replace ELISION references with explicit result fields f6939fd13d Merge bitcoin/bitcoin#35564: Update secp256k1 subtree to latest master 61c754ae99 Merge bitcoin/bitcoin#35512: wallet: move fAbortRescan reset into WalletRescanReserver reserve function 794befd4b0 Merge bitcoin/bitcoin#35384: util: Check write failures before renaming settings.json 8f0354995b depends: latest config.guess & config.sub 0e95e1abdb Merge bitcoin/bitcoin#35437: migrate: Handle HD chains that have identical seeds but different IDs fab2874269 lint: Require scripted-diff script to succeed 9caae50682 Update secp256k1 subtree to latest upstream 1f3f0a4e22 Squashed 'src/secp256k1/' changes from 7262adb4b4..bd0287d650 855a3fee88 scripted-diff: Rename SteadyClockContext to FakeSteadyClock 341360964a Merge bitcoin/bitcoin#35549: argsman: Fix duplicate option assertion to allow HIDDEN category registration abc33ff043 test: announce field must be 0 or 1 in sendcmpct 2d0dce0af5 net_processing: fix BIP152 first integer interpretation f963f2b675 argsman: allow duplicate registration between HIDDEN and other categories 0654511e1b util: Check write failures before renaming settings.json 1e169a8a6c Merge bitcoin/bitcoin#35548: doc: updated ci docs to reflect removal of REPO_USE_WARP_RUNNERS flag f570d7cd53 Merge bitcoin/bitcoin#35547: lint: Require scripted-diff script to succeed 744d495019 ci: updated docs to reflect removal of REPO_USE_WARP_RUNNERS flag 2a36d6a561 lint: Require scripted-diff script to succeed 0f156c16e8 Merge bitcoin/bitcoin#35470: argsman: Prevent duplicate option registration across categories 09ba59ff6b Merge bitcoin/bitcoin#35540: test: descriptor: bare multisig at TOP level with exactly 3 pubkeys is allowed 0e475098cd Merge bitcoin/bitcoin#35463: depends: Drop trailing slash from `CMAKE_INSTALL_LIBDIR` 0136e17c0a Merge bitcoin/bitcoin#35546: ci: Use GCC consistently in i686 task fae482b4e6 ci: Use GCC consistently in i686 task 32df86f1d8 argsman: Prevent duplicate option registration across categories a30ef6b91f Merge bitcoin/bitcoin#35396: ci: Rewrite broken wrap-valgrind.sh to .py 55a4c946f6 test: descriptor: bare multisig at TOP level with 3 pubkeys is allowed 9460090f1a Merge bitcoin/bitcoin#35520: lint: remove redundant test suite uniqueness check 61a0305422 Merge bitcoin/bitcoin#35526: ci: bump MSan fuzz timeout from 150 to 180 minutes 6d5c1fb3ee Merge bitcoin/bitcoin#35173: util: shorten thread names to avoid Linux truncation d3e40af259 index: shorten indexer thread names d69c46292d util: zero-pad thread number suffixes 41e531c4ab util: shorten `ThreadPool` worker names 92d812446e Merge bitcoin/bitcoin#35538: test: make TestChain100Setup's m_clock timestamp more readable 011ad6ea3c Merge bitcoin/bitcoin#35441: ci: inline runner selection 58cc2a0453 test: make TestChain100Setup's m_clock timestamp more readable 6e93ef4623 Merge bitcoin/bitcoin#35503: guix: CMake-related improvements f655d887f0 Merge bitcoin/bitcoin#35535: iwyu: Fix warning in `bench/pool.cpp` 059edf1908 guix: Fix "Ignoring empty string" CMake warning for non-Linux hosts 2d86083fd4 guix: Drop redundant CMake `--verbose` options d92a20b310 iwyu: Fix warning in `bench/pool.cpp` 6921f5df01 Merge bitcoin/bitcoin#35414: iwyu: Fix warnings in `src/bench` and treat them as error 355fffb8cc Merge bitcoin/bitcoin#35528: test: doc: remove `--perf` profiling from functional test framework 46927cf82c Merge bitcoin/bitcoin#35504: test/doc: Follow-up nits for #35269 6bc2d996b0 Merge bitcoin/bitcoin#35499: guix: add `package.sh` 87d099d5f8 Merge bitcoin/bitcoin#35519: rpc: tighten setmocktime upper bound to UINT32_MAX 04eccc2be5 Merge bitcoin/bitcoin#35043: refactor: Properly return from ThreadSafeQuestion signal + btcsignals follow-ups 2cfb10b668 Merge bitcoin/bitcoin#35498: net: move cs_main up in FetchBlock to fix rpc assert crash 9fae7e9886 test: doc: remove `--perf` profiling from functional test framework 17353f9d97 ci: bump MSan fuzz timeout debac5f2cd Merge bitcoin/bitcoin#35523: Revert "build: exclude mptest target from compile commands" 406c2348dd rpc: tighten setmocktime upper bound to UINT32_MAX d186c390f4 Revert "build: exclude mptest target from compile commands" 2447385f47 rpc: remove unused RPCResult::Type::ELISION 7a85118005 rpc: expand decodepsbt output script with explicit fields 88e2a6ae89 rpc: expand getaddressinfo embedded with explicit fields a9f9e7d17e rpc: extract fee estimate result helpers 8a615a8800 rpc: extract ListSinceBlockTxFields() helper 372ac283ac rpc: extend TxDoc() for getblock verbosity 2/3 0380a1c46b rpc: extend TxDoc() for getrawtransaction verbosity 2 946feb3f1f test: remove redundant test suite uniqueness lint b3371029dc doc: use signing pubkey instead of aggregate xonly key 4c99ed1076 Merge bitcoin/bitcoin#35418: build: exclude mptest target from compile commands 9bfdde74b5 guix: add package.sh 142e86a65c Merge bitcoin/bitcoin#35458: qa: Avoid extra tracebacks when exception is raised 216b50c9a6 Merge bitcoin/bitcoin#35179: test: Add importdescriptors rpc error coverage 77772e7a30 undo "ui: Compile boost:signals2 only once" fa45783d55 mv btcsignals.h to src/util fa4903db8a refactor: Make scoped_connection ctor explicit fa1bc1fe51 test: Check btcsignals determinism in thread_safety test case fa86e5dba9 refactor: Properly return from ThreadSafeQuestion signal fa4badc0fd refactor: Make ThreadSafeMessageBox signal void faad9d6434 refactor: Mark btcsignals operator [[nodiscard]] 2fe34808fa wallet: reject sendtoaddress and sendmany for external signers 394e473d42 coins: compact chainstate in background aa021b26f3 validation: randomly compact chainstate bd5a32f7db doc: add taproot descriptor to getdescriptors example 7131c82937 doc: clarify which commands receive --chain, --fingerprint and --stdin 4fdd4d8d29 doc: replace stale signtransaction wording with current signtx flow fab92257fe doc, rpc: document enumerate model field and fingerprint deduplication b10889d107 coins: test chainstate flush baseline c117bbc467 Merge bitcoin/bitcoin#35514: ci: Alpine 3.24 3be1115ade ci: Alpine 3.24 3b712b9d02 Merge bitcoin/bitcoin#35120: btcsignals: delete broken scoped_connection move assignment 2818a171c0 test: add abortscan unit test bc30e95163 wallet: move fAbortRescan reset into WalletRescanReserver reserve() b83a999b14 btcsignals: delete broken scoped_connection move assignment 46d0e21d75 Merge bitcoin/bitcoin#35288: ci: Bump toward Ubuntu 26.04 d0b8d445fb Merge bitcoin/bitcoin#35455: fuzz: improve dbwrapper_concurrent_reads performance d6359937bf validation: check invariants when inserting into m_blocks_unlinked 0852925bd8 test/doc: remove misleading comment and improve tests ca4a380281 test: add coverage for UB caused by FindMostWorkChain c787b3b99b validation: avoid duplicates in m_blocks_unlinked e0fb41fd2a Merge bitcoin/bitcoin#35489: fuzz: test non-max descriptor satisfaction weight 50e9f2ad33 Merge bitcoin/bitcoin#35497: test: FakeNodeClock follow-ups in unit tests 809f909e58 Merge bitcoin/bitcoin#35451: lint: Grep for `AUTO` test suites in file names 530e1f5290 Merge bitcoin/bitcoin#34636: node: allocate index caches proportional to usage patterns 8598ec2204 Merge bitcoin/bitcoin#35221: BIP 434 Support: Peer feature negotiation 526aae3768 fuzz: test non-max descriptor satisfaction weight 472b950b7f qa: Use custom assert_greater_than() over naked assert 1ce9e26239 fuzz: improve dbwrapper_concurrent_reads performance fb47793b99 Merge bitcoin/bitcoin#35168: validation: Don't add pruned blocks to `m_blocks_unlinked` on startup 53b836cdce Merge bitcoin/bitcoin#34028: p2p: Prevent integer overflow in LocalServiceInfo::nScore 3bbc3c67ad Merge bitcoin/bitcoin#35101: refactor: disable default std::hash for CTransactionRef 288018131e Merge bitcoin/bitcoin#35254: crypto: cleanse HMAC stack buffers after use and ChainCode c85e04f079 Merge bitcoin/bitcoin#35478: fuzz: reset the mockable steady clock between iterations ed11dd6a5f test: add coverage for importdescriptors when manually interrupting a wallet rescan d90d7f0a55 test: add coverage for importdescriptors errors when using assumeutxo ad388bf254 test: add coverage for importdescriptors while wallet is rescanning ddceb4e603 test: updated different_key to be different_field and also used a single assert_equal with 3 args instead of multiple assert_equals 6751a323c0 iwyu: Fix warnings in `src/bench` and treat them as error fab52281f7 refactor: Drop unused includes after iwyu CI bump fa4774d032 ci: Bump APT_LLVM_V-based task configs to Ubuntu 26.04 fa1414a36a ci: Debian Trixie -> Ubuntu 26.04 359680b74d net: move cs_main up in FetchBlock to fix rpc assert crash 4b91316643 Merge bitcoin/bitcoin#35459: guix: add setup.sh fa03852e9c test: Use SteadyClockContext in pcp_tests fa3716c439 test: Use FakeNodeClock in more places fae9623c8d test: Add FakeNodeClock m_clock to TestChain100Setup a6ed29d6c2 bench, refactor: Use `std::string_view` for `BenchRunner` ctor parameter bcbf5bae16 Merge bitcoin/bitcoin#35114: test: NodeClockContext follow-ups 543c00f47d Merge bitcoin/bitcoin#35448: ci: don't build libunwind in msan 17ed7f5060 Merge bitcoin/bitcoin#35297: p2p: Release m_peer_mutex early in InitiateTxBroadcastToAll 087f02c929 ci: skip libunwind runtime in LLVM build 6d47f7cc6f ci: use llvm 22.1.7 9868e1bf65 Merge bitcoin/bitcoin#35487: scripted-diff: Rename UNIQUE_NAME to BITCOIN_UNIQUE_NAME 577999c2ce Merge bitcoin/bitcoin#35462: test: remove unnecessary nodes from wallet_multisig_descriptor_psbt e36f5d5d0b Merge bitcoin/bitcoin#35456: test: Perform full reset of CoinsResult in order to avoid passing 21M BTC 1d3bc816c3 Merge bitcoin/bitcoin#35267: rpc: make getprivatebroadcastinfo and abortprivatebroadcast fail if privatebroadcast is not enabled fba713a28c scripted-diff: Rename UNIQUE_NAME to BITCOIN_UNIQUE_NAME 1aafd49077 Merge bitcoin/bitcoin#35359: blockstorage: Remove cs_LastBlockFile recursive mutex 84d07e471c test: add coverage for importdescriptor with an encrypted wallet ec6cf49b91 blockstorage: Remove cs_LastBlockFile recursive mutex 35a814a045 test: Limit clocks to one active instance 55e402ffef scripted-diff: Rename NodeClockContext to FakeNodeClock 1e9546fcf4 test: Use NodeClockContext in more call sites 758fea59a8 test: Drop ++ from NodeClockContext default constructor 7c2ec3949a test: Enter mocktime before peer creation in block_relay_only_eviction 0bfc5e4fff add release notes fdc9fc1df2 test: check getprivatebroadcast and abortprivatebroadcast throw if the node is running without -privatebroadcast set 7b821ef9b7 rpc: getprivatebroadcastinfo and abortprivatebroadcast throw if -privatebroadcast is disabled 5f33da9aa3 Merge bitcoin/bitcoin#35481: fuzz: fix dead HD keypaths (de)serialization round-trip 5deb053a75 fuzz: fix dead HD keypaths (de)serialization round-trip 19b32a2e18 fuzz: reset the mockable steady clock between iterations 27472a542c Merge bitcoin/bitcoin#35466: ci: run ipc functional tests in arm job f6bdbcf79d lint: Grep for `AUTO` test suites in file names b2fbd5b5dd ci: run ipc functional tests in arm job 44fc3a290d rpc: introduce HelpElision variant and ElideGroup helper 2cf2b22ff1 depends: Drop trailing slash from `CMAKE_INSTALL_LIBDIR` da74ff9ca4 test: Add functional test for BIP434 01b8a117d2 test_framework: BIP 434 support 6a129983c9 BIP434: FEATURE message support 3210fc477a net: Add AdvertisedVersion() for protocol version advertised to a peer 5b65e31270 test: remove two unnecessary nodes from the test 94ed45427c serialize: add LimitedVectorFormatter 1b3f776ebb serialize: string_view serialization 47da4f9b71 Merge bitcoin/bitcoin#35410: net: use the proxy if overriden when doing v2->v1 reconnections 54de023a7c guix: add setup.sh 0cac23b66e Merge bitcoin/bitcoin#35431: test: pass -datadir to bitcoin-cli -ipcconnect check f42226d526 qa: Silence socket.timeout exception when substituting it for a JSONRPCException 659671ac3d qa: Avoid cleanup when exception is raised e01741e6ac Merge bitcoin/bitcoin#35446: ci: use pyzmq over zmq 628816bc55 Merge bitcoin/bitcoin#35447: ci: use warpbuild cache for docker buildkit cache d0b76c7f3e rpc+bitcoin-tx: Specify correct type for ParseFixedPoint() a5050ddb6b Merge bitcoin/bitcoin#32150: coinselection: Optimize BnB exploration 082bb1a104 Merge bitcoin/bitcoin#35335: Make deployment configuration available outside of regtest in unit tests 43ca54ca00 refactor(test): Make CAmount arg explicit for BuildCreditingTransaction() b5e91e946c wallet: Remove CoinsResult::Clear() 5bd990a3dd Merge bitcoin/bitcoin#34779: BIP 323: reserve version bits 5-28 as extra nonce space 2189a6f5f2 p2p: Saturate LocalServiceInfo::nScore updates at INT_MAX 82901981bf ci: use Warp cache for Docker layers 7c2718a4b8 Merge bitcoin/bitcoin#34767: Bugfix: GUI/Intro: Handle errors from SelectParams the same as if during InitConfig 4a6d1458b4 ci: add pyzmq to msan job c21b58e263 ci: use pyzmq over zmq b28cf409a1 Merge bitcoin/bitcoin#34866: fuzz: target concurrent leveldb reads de92208c2b migrate: Handle HD chains that have identical seeds but different IDs 2669019fe8 Merge bitcoin/bitcoin#35269: musig: Include pubnonce in session id 7735c13488 test: run bitcoin-cli -ipcconnect check under valgrind with -datadir 8cb8653a22 fuzz: target concurrent leveldb reads 6609088fe6 fuzz: extract ConsumeDBParams helper 61d1c78ed4 Merge bitcoin/bitcoin#35192: wallet: unfriend LegacyDataSPKM and DescriptorScriptPubKeyMan 726e196ef2 ci: inline runner selection 2e0a36c360 Merge bitcoin/bitcoin#35439: test: Improve loopback address check in `rpc_bind.py` 53373d07c3 Merge bitcoin/bitcoin#35430: ci: use warp caching on warp runners 4731049ba4 build: exclude mptest target from compile commands 255f7c720f Merge bitcoin/bitcoin#35404: wallet: allow anti-fee-sniping in sendall RPC while not relying on RBF default c8b8c275fa test: Improve loopback address check in `rcp_bind.py` 654a5223af Merge bitcoin/bitcoin#33661: test: Add test on skip heights in CBlockIndex 19e45334bc Merge bitcoin/bitcoin#35312: kernel: assert invalid buffer preconditions in `btck_*_create` functions 107d4178d9 versionbits: update VersionBitsCache doc comment to match current behaviour 94e3ac0b21 doc: release notes and bips doc update for #34779 1d5240574a qa: test we don't warn for ignored unknown version bits deployments f802edf57c versionbits: Limit live activation params and activation warnings per BIP323 2ce4ae7d8f ci: Add dynamic cache switching to warp cache fbe628756c Merge bitcoin/bitcoin#35131: guix, refactor: Minor script cleanups and improvements bf0d257c11 net: un-default the OpenNetworkConnection()'s proxy_override argument 5a3756d150 test: add a regression test for private broadcast v1 retries 34ac53457f Merge bitcoin/bitcoin#35402: doc: Compress doc/build-unix.md dependency package names into table 10dfdd4b9f Merge bitcoin/bitcoin#35379: test: Fix feature_dbcrash.py --usecli error 214ad1761b Merge bitcoin/bitcoin#35408: ci: 35378 followups a3dc44c085 Merge bitcoin/bitcoin#35385: test: restore JSONRPCException error format 9c1fcaca5c wallet, test: fix sendall anti-fee-sniping when locktime is not specified 570a627640 kernel: assert invalid buffer preconditions in `btck_*_create` functions ac09260982 test: restore JSONRPCException error format ab35a028ed test: make reusable filling of a node's addrman 2333be9cbc test: make reusable starting a standalone P2P listener 2ffa81fac4 test: make reusable SOCKS5 server starting 6c525c2ec1 wallet: unfriend LegacyDataSPKM and DescriptorScriptPubKeyMan classes 8877eec726 wallet: allow anti-fee-sniping in sendall RPC while not relying on RBF default 13b7fffc5e Merge bitcoin/bitcoin#35011: iwyu: Fix warnings in `src/script` and treat them as errors 6183942513 ci, iwyu: Fix warnings in src/scripts and treat them as error 5700a61b73 ci: use ubuntu-latest instead of ubuntu-24.04 265563bf75 doc: remove reference to cirrus b847626562 test: refresh MiniWallet after node restart f4e643cb15 test: merge mining options in package feerate check 280ce6a0ae miner: ensure block_max_weight is flattened before limit checks 65bd3164fb mining: clarify test_block_validity comment 978e7216e6 test: use shared default_ipc_timeout 1ea532e590 Merge bitcoin/bitcoin#34953: crypto: disable ASan instrumentation of SSE4 SHA256 for GCC (matching Clang) d0a54dd8e0 Merge bitcoin/bitcoin#35381: wallet, test: optinrbf deprecation followups c6f225c757 Merge bitcoin/bitcoin#28333: wallet: Construct ScriptPubKeyMans with all data rather than loaded progressively 5486ef8cc2 Merge bitcoin/bitcoin#34198: wallet: fix ancient wallets migration fa787043f5 doc: Compress doc/build-unix.md dependency package names into table f1344e6c7f Merge bitcoin/bitcoin#35378: ci: switch to warp runners d12d8e52d2 Merge bitcoin/bitcoin#35400: doc: Remove good_first_issue.yml, Reword "Getting started" section b86c1c443d test: add coverage for migrating ancient wallets fd44d48b24 wallet: fix ancient wallets migration a34dbc836c Merge bitcoin/bitcoin#35313: Bump leveldb subtree 896eaacd91 Merge bitcoin/bitcoin#34644: mining: add submitBlock to IPC Mining interface fa51f37f18 doc: Reword the Getting-Started section 53388773af guix: Remove redundant ShellCheck `source` directives 62cf7bc53f guix, refactor: Add `BASE` argument to `*_for_host` functions 5d46429e32 guix, refactor: Move `distsrc_for_host()` to `prelude.bash` cab65ea9c6 guix, refactor: Move duplicated `profiledir_for_host()` to `prelude.bash` faa9d4345f guix, refactor: Move duplicated `outdir_for_host()` to `prelude.bash` 6b59fd6b8c guix, refactor: Remove `contains()` function d4c69a7224 guix, refactor: Remove unused `out_name()` function fad585b6e5 test: Wait for node exit after crash in verify_utxo_hash faf1475514 ci: Exclude feature_dbcrash.py under --v2transport --usecli fac27d702f test: Fix feature_dbcrash.py --usecli intermittent error fa09de8b68 test: [refactor] Simplify submit_block_catch_error f701cd159a doc: fix typo in release notes of #34917 7bc39e3d08 wallet, test: add wallet_deprecated_rbf.py for walletrbf deprecated keys & options 2cbbcb5659 wallet, test: remove -deprecatedrpc=bip125 from wallet_send.py 307134bd7e wallet, test: remove -deprecatedrpc=bip125 from wallet_migration.py 3ec550d168 wallet, test: remove -deprecatedrpc=bip125 from wallet_basic.py a52ea9bff9 wallet, test: remove -walletrbf startup option from wallet_backwards_compatibility.py e3f5c18913 Merge bitcoin/bitcoin#34948: guix: Split manifest into build and codesign manifests a9ac680af3 build: remove FALLTHROUGH_INTENDED from leveldb.cmake 4d58c3271c build: remove -Wno-conditional-uninitialized from leveldb build 5fe0615f7a Update leveldb subtree to latest upstream 58cdb5c2e8 Squashed 'src/leveldb/' changes from ab6c84e6f3..a7f9bdc611 4bdd46ace3 ci: switch runners from cirrus to warpbuild fab5733f5d doc: Remove good_first_issue.yml fa98d44951 ci: Rewrite broken wrap-valgrind.sh to .py 00af5620f0 Merge bitcoin/bitcoin#35206: doc: fix doxygen links to threads in developer-notes.md faf7e38973 ci: refactor: Avoid warning: INSTALL_BCC_TRACING_TOOLS: unbound variable 85c27c9de5 Merge bitcoin/bitcoin#35394: test: remove unnecessary rpc calls from feature_dbcrash 42330922dd wallet, test: remove -walletrbf startup option from wallet_backwards_compatibility.py 8cb6e405d8 wallet, test: remove -walletrbf startup option from wallet_listtransactions.py 0ee94b2fef wallet, test: remove -deprecatedrpc=bip125 from wallet_listtransactions.py 5e833e068d wallet, test: -walletrbf startup option from wallet_bumpfee.py a2a2b1745f wallet, test: remove -walletrbf startup option from rpc_psbt.py 615c0aefa8 Merge bitcoin/bitcoin#35391: test: Use operator<< for time_points instead of manual TickSinceEpoch c17cc76a18 test: speed up feature_dbcrash 0687438e94 Merge bitcoin/bitcoin#35372: refactor: Enhance type safety in overflow operations fad4f417d1 test: Use operator<< for time_points instead of manual TickSinceEpoch d846444d01 guix: Split manifest into build and codesign manifests 0b9e10ad40 guix: Update `python-signapple` and wrap with OpenSSL paths 3962138cc0 test: add IPC submitBlock functional test 5b60f69e40 mining: add submitBlock IPC method to Mining interface 813b4a80d7 refactor: introduce SubmitBlock helper a3fe455a95 wallet: refactor to read -walletrbf only once instead of twice 9c15022260 Merge bitcoin/bitcoin#35337: doc: add feature deprecation and removal process to developer notes a4157fc24a Merge bitcoin/bitcoin#33966: refactor: disentangle miner startup defaults from runtime options ac9424fdc6 Merge bitcoin/bitcoin#35145: validation: fix misleading VerifyDB summary log 9767e80b21 Merge bitcoin/bitcoin#35296: doc: Fix broken links in dev notes, move sections 9ec4efebd1 Merge bitcoin/bitcoin#35015: bitcoin-cli: note -rpcclienttimeout is not implemented for IPC connections b43a936355 Merge bitcoin/bitcoin#33974: cmake: Check dependencies after build option interaction d5188b5592 Merge bitcoin/bitcoin#35363: test: Allow --usecli in more tests 743bf350f2 Merge bitcoin/bitcoin#35049: test: remove circular dependency between authproxy and util fa24693819 test: Allow --usecli in tests that already support it fa8d4d5c35 test: Catch CalledProcessError to support --usecli in feature_dbcrash.py faf0f848ef test: use echojson to allow rpc_named_arguments.py --usecli faf993ee44 test: Stop node before modifying config to support rpc_users.py --usecli dd0dea3e89 Merge bitcoin/bitcoin#34917: wallet: mark bip125-replaceable RPC key and walletrbf startup option as deprecated acea6f2caf Merge bitcoin/bitcoin#35251: wallet: Fix for duplicate external signers case 801e3bfe38 chainparams: add overloads for RegTest and SigNet with no options 4995c00a9c chainparams: make deployment configuration available on all test networks 0774eaaf0c util: Require integers for SaturatingAdd() and AdditionOverflow() 32d072a49f doc: add release notes for #35319 d01b461f71 net: ensure no direct private broadcast connections fd230f942d net: use the proxy if overriden when doing v2->v1 reconnections a815e3e262 rpc: Correct type for tx_sigops 7be0d6fa18 test: remove the lazy import of util in authproxy 779f444680 test: move out JSONRPCException from authproxy to util de925455c8 Merge bitcoin/bitcoin#35141: fuzz: apply node context reset pattern to p2p_handshake 2e9fdcc6da doc: add feature deprecation and removal process to developer notes fa4fc8c1d7 test: Set TestNode url field early, so that feature_loadblock.py --usecli works 5faf2ad880 doc: add release notes for deprecation of wallet rbf & bip125 fields aba24a9b62 wallet: remove "RPC Only" from -walletrbf option help description 9f7b08c61c Merge bitcoin/bitcoin#35334: test: Allow --usecli in more tests b9f0040caf Merge bitcoin/bitcoin#34614: ci: Put space and non-ASCII char in scratch dir f28cd7587b Merge bitcoin/bitcoin#35348: ci: switch to GitHub cache for all runners 59918de329 Merge bitcoin/bitcoin#34801: ci: Enable pipefail in 03_test_script.sh e4f033789c Merge bitcoin/bitcoin#35324: test: Document rare failure in test_inv_block better 033a56ccb2 Merge bitcoin/bitcoin#34342: cli: Replace libevent usage with simple http client c03107acf5 ci: switch to GitHub cache for all runners 908cc9d30b Merge bitcoin/bitcoin#35344: kernel: improve BITCOINKERNEL_WARN_UNUSED_RESULT usage e91f8713ac Merge bitcoin/bitcoin#35349: ci: Fix `path` input for vcpkg downloads cache 1e5d3b4f0d doc: add release note for mining option validation 0317f52022 ci: enforce iwyu for touched files 8c58f63578 refactor: have mining files include what they use 3bb6498fb0 mining: store block create options in NodeContext 4637cd157d mining: reject invalid block create options 8daac1d6eb mining: add block create option helpers 128da7c3ff miner: add block_max_weight to BlockCreateOptions fa81e51eae mining: parse block creation args in mining_args 020166080c mining: use interface for tests, bench and fuzzers 44082bea47 interfaces: make Mining use const NodeContext d4368e059c move-only: add node/mining_types.h 6aeb1fbea2 test: cover IPC blockmaxweight policy 63b23ea1e9 test: regression test for waitNext mining policy 24750f8b31 test: add createNewBlock failure helper 63ee9cd15b test: misc interface_ipc_mining.py improvements faf02674b3 refactor: Set TestNode.cli only after RPC is connected fae376cafb refactor: Inline get_rpc_proxy fa00c7c7a4 test: Allow rpc_bind.py --usecli fa8f25118c refactor: Use create_new_rpc_connection in wallet_multiwallet.py fa3ae6c7d3 test: Allow feature_shutdown.py --usecli fa2a3683d5 test: Allow mining_getblocktemplate_longpoll.py --usecli 735b1cf431 Merge bitcoin/bitcoin#34806: refactor: logging: Various API improvements a56b4ead41 Merge bitcoin/bitcoin#35017: mempool: remove all subsequent tx in pkg on failure 00e9df90c8 Merge bitcoin/bitcoin#35333: qa: use NORMAL_GBT_REQUEST_PARAMS consistently in functional tests 37d7ce47c5 Merge bitcoin/bitcoin#35350: test: suppress ECONNABORTED in wait_for_rpc_connection on Windows 18c1cc65e9 kernel: improve BITCOINKERNEL_WARN_UNUSED_RESULT usage 7209eb7790 test: suppress ECONNABORTED in wait_for_rpc_connection on Windows 0553ce5ddb Merge bitcoin/bitcoin#35316: musig: Reject empty pubkey list in GetMuSig2KeyAggCache e4f1e43103 ci: Fix `path` input for vcpkg downloads cache fa99a3ccac ci: Enable pipefail in 03_test_script.sh d61053d97b build: Drop libevent from bitcoin-cli link libraries 798d051c80 cli: Remove libevent usage ca5483a662 qa: use NORMAL_GBT_REQUEST_PARAMS consistently bd0942bbd9 Merge bitcoin/bitcoin#34887: fuzz: target CDBWrapper 2940053761 Merge bitcoin/bitcoin#33223: coinselection: Tiebreak SRD eviction by weight 5ccb698f53 Merge bitcoin-core/gui#936: Remove opt-in RBF 211e1053bf Merge bitcoin/bitcoin#32220: cmake: Get rid of undocumented `BITCOIN_GENBUILD_NO_GIT` environment variable ecf20317cb Merge bitcoin/bitcoin#35270: doc: Document minimum versions for Xcode CLT and MSVC 97f7cc0233 wallet: mark -walletrbf startup option as deprecated c4a7613e6a wallet: mark `bip125-replaceable` key as deprecated in transaction RPCs 8ee5622455 Merge bitcoin/bitcoin#35338: qa: regenerate hardcoded regtest chain for kernel lib unit tests 131fa570b9 test: Add test for BuildSkip() and skip heights c6dbf3158b Merge bitcoin/bitcoin#35304: kernel: doc: document wipe lifecycle and best entry nullability f05b1a3532 rpc: Fix for duplicate external signers case 98f706c698 qa: regenerate hardcoded regtest chain for kernel lib unit tests ac9aa71b7f mempool: remove all subsequent tx in pkg on failure df7ed5f355 chainparams: encapsulate deployment configuration logic b63ef20d54 test: add fuzz harness for CDBWrapper 32169c3855 dbwrapper: accept optional testing leveldb::Env in DBParams 8d390c93fc dbwrapper: make max_file_size a configurable DBParams field 376e7ef07c util: Expose IOErrorIsPermanent in sock header b796bf44f3 Merge bitcoin/bitcoin#35228: wallet: use `outpoint` when estimating input size 3158b890e1 Merge bitcoin/bitcoin#33765: doc: update interface, --stdin flag, `signtx` (#31005) 21edcc47e2 Merge bitcoin/bitcoin#35328: test: restore assertion that tx contains exactly 2500 sigops 5d562430de netbase: Add timeout parameter to ConnectDirectly fa37c6a529 test: [move-only] Extract create_new_rpc_connection a988ac592f cli: Add HTTPResponseHeaders class for parsing response headers ae73b69b52 test: restore assertion that tx contains exactly 2500 sigops a7df1bd7ca Merge bitcoin/bitcoin#34537: crypto: fix incorrect variable names in SHA-256 ARM intrinsics 5570b86fa7 Merge bitcoin/bitcoin#33160: bench: Add more realistic Coin Selection Bench 239424064b Merge bitcoin/bitcoin#35189: kernel: document validation state outputs as overwritten in-place 0358c26d42 kernel: document overwritten validation state outputs 489da5df60 Merge bitcoin/bitcoin#33856: kernel: Refactor process_block_header to return btck_BlockValidationState fa89098888 test: Document rare failure in test_inv_block better ce2044a91d Merge bitcoin/bitcoin#33362: Run feature_bind_port_(discover|externalip).py in CI 2284288e9a Merge bitcoin/bitcoin#35279: psbt, test: remove address type restrictions in test 278b9e39df Merge bitcoin/bitcoin#34934: fuzz: exercise ForNode/ForEachNode callbacks in connman fuzz harness 88d9bc5aa4 kernel: Return btck_BlockValidationState from process_block_header API ed15e14b63 Merge bitcoin/bitcoin#35193: test: avoid non-loopback network traffic from node_init_tests/init_test 4f348c2d73 Merge bitcoin/bitcoin#28802: ArgsManager: support command-specific options c7056ff03f Merge bitcoin/bitcoin#34893: psbt: preserve proprietary fields when combining PSBTs 8ce84321ce musig: Reject empty pubkey list in GetMuSig2KeyAggCache b2a3ca3df9 Merge bitcoin/bitcoin#35117: i2p: clean up SESSION CREATE error logging 7802e578c3 Merge bitcoin/bitcoin#34860: mining: always pad scriptSig at low heights, drop include_dummy_extranonce da769855d0 test: add PSBT proprietary merge regression coverage 3f5b3c7a80 psbt: preserve proprietary fields when combining PSBTs 6189335f6b kernel: doc: document wipe lifecycle and best entry nullability ed1795aa17 Merge bitcoin/bitcoin#35285: bench: add benchmark for GetMappedAS() 379b9fbf03 Merge bitcoin/bitcoin#34225: refactor, key: move `CreateMuSig2{Nonce,PartialSig}` functions to `musig.{h,cpp}` module c471c5085b common: Add unused UrlEncode function 9687ef1bd9 ci: Tolerate unused free functions in intermediate commits 02b2c41103 logging: use util/log.h where possible 57d7495fe5 IWYU fixes 611878b46f scripted-diff: logging: Drop LogAcceptCategory 34332dba2f util/log, logging: Provide ShouldDebugLog and ShouldTraceLog instead of a generic ShouldLog abea304dd6 logging: Move GetLogCategory into Logger class 58113e5833 util/log: Rename LogPrintLevel_ into detail_ namespace f69d1ae56d util/log: Provide util::log::NO_RATE_LIMIT to avoid rate limits 72e92d67df logging: Protect ShrinkDebugFile by m_cs faf6afd99d doc: Move mutex and thread section into guideline section fa514caad7 doc: move-only Valgrind section fa0202f31d doc: move-only Python section fa37606c65 doc: Regroup clang-tidy rules fa9c2ddea9 doc: Fix to use lower-case anchors in links to C++ Core Guidelines a154c05d49 cmake: Check dependencies after build option interaction 096bb0b5c0 bench: add benchmark for GetMappedAS() b6c3670442 i2p: clean up SAM error logging 1c500b1709 test: avoid non-loopback network traffic from node_init_tests/init_test fa2afba28b p2p: Release m_peer_mutex early in InitiateTxBroadcastToAll 3381855e51 doc: external signer: update interface, --stdin flag, IPC-command signtx, contains updates from #33947 ddb94fd3e1 Merge bitcoin/bitcoin#35289: fuzz: Fix timeout in `txorphan` 3142e5f8cf doc: Add release notes for #32220 b71cd5c162 cmake: Skip using git when building from source tarball or as subproject fe941938e8 cmake: Remove unnecessary `BITCOIN_GENBUILD_NO_GIT` environment variable 9a2cced23a cmake, refactor: Move `find_package(Git)` to `src/CMakeLists.txt` 3cab711d69 Merge bitcoin/bitcoin#35284: fuzz: use ImmediateBackgroundTaskRunner to silence DEBUG_LOCKORDER 004a7e3cfb fuzz: Fix txorphan timeout by limiting block weight 7777a92a92 ci: Use path with spaces on windows as well fac6c4270d ci: Put space and non-ASCII char in scratch dir fa38759823 ci: Require $FILE_ENV cad5f56045 Merge bitcoin/bitcoin#29136: wallet: `addhdkey` RPC to add just keys to wallets via new `unused(KEY)` descriptor 9961229360 Merge bitcoin/bitcoin#31298: rpc: combinerawtransaction now rejects unmergeable transactions c680cfe343 Merge bitcoin/bitcoin#35123: wallet: remove outdated arguments from chain scanning methods a145fa881a Merge bitcoin/bitcoin#35156: dbwrapper: reuse scratch `DataStream` buffers 04003e1fa3 Merge bitcoin/bitcoin#35274: doc: clarify libfuzzer-nosan preset uses build_fuzz_nosan dir 5309c90542 Merge bitcoin/bitcoin#35283: doc: mention -DWITH_ZMQ=ON in BSD build guides 90eda67bb8 Remove opt-in RBF fa3d7ce11c doc: Document minimum versions for Xcode CLT and MSVC 2ef6679c2c test: Check that MuSig2 signing does not reuse nonces 8544537f41 mining: drop unused include_dummy_extranonce option 58eeab790d mining: only pad with OP_0 at heights <= 16 00d22328b0 mining: pad coinbase to fix createNewBlock at heights <=16 801d36f55b fuzz: use ImmediateBackgroundTaskRunner to silence DEBUG_LOCKORDER ca93ab808c doc: mention -DWITH_ZMQ=ON in BSD build guides 605ff37403 test: bad-cb-length for createNewBlock() at low heights 1966621b76 test: refactor IPC mining test to use script_BIP34_coinbase_height 8ba5f68b1d refactor, key: move `CreateMuSig2PartialSig` to `musig.{h,cpp}` module d087f266fc refactor, key: move `CreateMuSig2Nonce` to `musig.{h,cpp}` module f36d89f436 key: add `GetSecp256k1SignContext` access function 0065f354a7 doc: clarify libfuzzer-nosan preset uses build_fuzz_nosan dir 81348576cc psbt, test: remove address type restrictions in test 82733e61de Merge bitcoin/bitcoin#35277: ci: Enable ruff ambiguous-unicode-character checks fe2bb43e43 Merge bitcoin/bitcoin#35044: contrib: Fix NameError in signet miner gbt() fa9c919678 refactor: Use ignore-list over verbose select-list cd8d3bd937 wallet: use outpoint when estimating input size fa9b01adec ci: Enable ruff ambiguous-unicode-character checks 09a9bb3536 Merge bitcoin/bitcoin#34547: lint: modernise lint tooling 21a1380c13 key: cleanse ChainCode on destruction bb05986c0a musig: Include pubnonce in session id 3f44f9aef7 test: Add coverage for m_blocks_unlinked invariant in LoadBlockIndex 10ca73c02c Merge bitcoin/bitcoin#34580: build: Add a compiler minimum feature check 1af8e0c4e8 Merge bitcoin/bitcoin#35183: doc: recommend script_flags instead of deployments.taproot f24a7b5f75 doc: recommend script_flags instead of deployments.taproot ccbd00ab87 Merge bitcoin/bitcoin#35152: doc: clarify local IWYU workflow and pragmas b3a3f88346 crypto: cleanse HMAC stack buffers after use 88bfe89793 Merge bitcoin/bitcoin#35227: wallet: check the final BDB page LSN during migration 21599ea612 Merge bitcoin/bitcoin#35241: cmake: Set `CTEST_NIGHTLY_START_TIME` for CDash Nightly pipelines d406cffafd Merge bitcoin/bitcoin#34228: depends: Unset `SOURCE_DATE_EPOCH` in `gen_id` script 4defc466a2 cmake: Set `CTEST_NIGHTLY_START_TIME` for CDash Nightly pipelines 1f28ed6b6a Merge bitcoin/bitcoin#35235: contrib: mv verify-commits/pre-push-hook.sh to maintainer tools repo 8396b7f2a3 Merge bitcoin/bitcoin#35236: doc: typo roundup 2b7f5914c4 Merge bitcoin/bitcoin#35222: cmake: add CTestConfig.cmake 888857c551 mv contrib/verify-commits/pre-push-hook.sh to maintainer tools repo d9b57eecad doc: fix whitespace in build-osx.md e7d4a7e3f9 doc: fix stale autotools reference and SQLite typo 3f9c55426a Merge bitcoin/bitcoin#35230: ci: Move --usecli --extended from i386 task to alpine task fad61896e8 ci: Move --usecli --extended from i386 task to alpine task 7c84a2bdb1 Merge bitcoin/bitcoin#35219: doc: Add my key to SECURITY.md cf5c962a39 Merge bitcoin/bitcoin#34991: test: fix feature_index_prune.py bug when using --usecli 6690117c7a Merge bitcoin/bitcoin#35218: test: fix `P2SH` script in coins cache fuzz target 5b11108145 Merge bitcoin/bitcoin#35223: refactor: [rpc] Remove confusing and brittle integral casts (take 3) e2b0984f99 wallet: check BDB last page LSN d5adb9d09b doc: fix doxygen links to threads in developer-notes.md fa864b937e refactor: [rpc] Remove confusing and brittle integral casts (take 3) 9f7a2293c4 depends: Unset `SOURCE_DATE_EPOCH` in `gen_id` script 086894098e cmake: add CTestConfig.cmake 0651a1fc15 doc: Add Niklas Goegge's key to SECURITY.md ac58e6c53c test: fix P2SH output in coins cache fuzz aa1d0d7cd7 Merge bitcoin/bitcoin#35209: validation: correct lifetime of precomputed tx data 0429c503fb bench: Replace Coin Selection bench ec1eefda77 bench: Remove unnecessary wallet parameter e6c4ffb956 bench: Fix type mismatch d7ed2840ac Merge bitcoin/bitcoin#21283: Implement BIP 370 PSBTv2 1ed799fb21 validation: correct lifetime of precomputed tx data 371eac8069 fuzz: exercise ForNode/ForEachNode callbacks in connman fuzz harness 08c3c37d12 bitcoin-cli: note -rpcclienttimeout is not implemented for IPC connections c89c8ddbb3 Merge bitcoin/bitcoin#33300: fuzz: compact block harness 4bf1701f58 Merge bitcoin/bitcoin#33796: kernel: Expose `CheckTransaction` consensus validation function 999e9dbfb4 Merge bitcoin/bitcoin#35202: ci: restore sockets in `i686, no IPC` job 5a2e359213 clarify blockfilterindex cache allocation rationale 224120bf12 Merge bitcoin/bitcoin#32394: net: make m_nodes_mutex non-recursive 11c9ef92a8 ci: unconfine seccomp for i686 no IPC 86718e4589 scripted-diff: rename ABEF_SAVE/CDGH_SAVE to ABCD_SAVE/EFGH_SAVE in SHA-256 ARM intrinsics 8f4a3ba897 Merge bitcoin/bitcoin#35165: cmake: Remove NetBSD-specific workaround from `add_boost_if_needed` b1ff4773ba Merge bitcoin/bitcoin#34544: wallet: Disallow wallet names that are paths including `..` and `.` elements db98e357d3 Merge bitcoin/bitcoin#35018: wallet, bench: Use Nanobench setup() for wallet benchmarks, and remove DuplicateMockDatabase 18d003c3dc Merge bitcoin/bitcoin#34916: contrib: override system locale in gen-manpages.py 567ff2b6d6 Merge bitcoin/bitcoin#33196: docs: clarify RPC credentials security boundary 3c2646eacc Merge bitcoin/bitcoin#34026: fuzz: Add tests for `CCoinControl` methods bfbf1a7ef3 kernel: Expose btck_transaction_check consensus function 404470505a Merge bitcoin/bitcoin#34256: test: support `get_bind_addrs` and `feature_bind_extra` on macOS & BSD 25100fc28d Merge bitcoin/bitcoin#35186: util, iwyu: Add missed header d28179bac9 util, iwyu: Add missed header 32e479f7a5 Merge bitcoin/bitcoin#34669: feefrac: drop comparison and operator{<<,>>} for sorted wrappers 11713c9fa9 net: make CConnman::m_nodes_mutex non-recursive aec4fa2de0 net: drop the only recursive usage of CConnman::m_nodes_mutex eed7af666b doc: Add release note for disallowing some wallet path names 3d7f0e4ed5 wallettool: Use GetWalletPath to determine the wallet path ef499680c8 Merge bitcoin/bitcoin#34176: wallet: crash fix, handle non-writable db directories a39cc16b43 doc: Release note for addhdkey 89b9a01b4e wallet, rpc: Disallow importing unused() to wallets without privkeys 35bbee6374 wallet, rpc: Disallow import of unused() if key already exists f3f8bcbd1d wallet: Add addhdkey RPC 9fa4076b20 test: Test merging implicit PSBTv0 with explicit PSBTv0 1660c18232 doc: Release notes for psbtv2 470e52a5f8 fuzz: Enforce additional version invariants in PSBT fuzzer 5bd0579c09 test: Tests for PSBT AddInput and AddOutput b8b6e7f0c2 tests: Add PSBT unit test for ComputeTimeLock 0bc1c2e508 tests: Add test vectors from BIP 370 e0e4dbdeb5 psbt: Change default psbt version to 2 bcc1dca77b Add psbt_version to PSBT RPCs and default to v2 ab38c30195 Implement PSBTv2 field merging 93e339e29f Implement PSBTv2 AddInput and AddOutput b39c86ae60 Allow specifying PSBT version in constructor dcc9a3c8df Implement PSBTv2 in decodepsbt 5770dbd39f Add PSBT::ComputeLockTime() 863cf47b33 Update test_framework/psbt.py for PSBTv2 925161eaf0 Implement PSBTv2 fields de/ser d9cf658ee0 Restrict joinpsbts to PSBTv0 only 3da0e16012 Replace PSBT.tx with PSBT::GetUnsignedTx and PSBT::GetUniqueID c568624ff2 psbt: Return std::optional from PrecomputePSBTData 092de4f1f6 Replace PSBT::GetInputUTXO with PSBTInput::GetUTXO 1d1ae6f0c4 wallet, test: Remove DuplicateMockDatabase 82bc280de4 test: Simple test for importing unused(KEY) 80c29bc6f1 descriptor: Add unused(KEY) descriptor 82c9fe3179 psbt: Use PSBTInput and PSBTOutput fields instead of accessing global tx 95897507e9 psbt: AddInput and AddOutput should take only PSBTInput and PSBTOutput 1b7d323a72 Add PSBTInput::GetOutPoint 543d3e1cdc psbt: add PSBTv2 global tx fields c01c7f068c psbt: Remove default constructor 9671aa08c2 psbt: add tx input and output fields in PSBTInput and PSBTOutput 990b084f11 Have PSBTInput and PSBTOutput know the PSBT's version 7eacc21ff6 psbt: make PSBT structs into classes f926c326bb gui: Store PSBT in std::optional in PSBTOperationsDialog 1e2d146b47 psbt: Refactor duplicate key lookup and size checks 88384180d3 test: PSBTs should roundtrip through RPCs that do nothing 001877500d test: construct psbt with unknown field programmatically 0cb884e6df psbt: Fill hash preimages and taproot builder from SignatureData 57820c472b bench: Utilize setup() for WalletLoading and use a real database 9a7604fd25 bench: Use setup() in WalletMigration to prepare the legacy wallet 426a94e7bd bench: Utilize setup() in WalletEncrypt to create the encryption wallet d672455d20 bench: Utilitze setup() in WalletBalance for marking caches dirty 61412ef887 bench: Utilize setup() in WalletCreate to cleanup previous wallets 451fdd26a4 test: wallet: Constructing a DSPKM that can't TopUp() throws. 32946e0291 wallet: Setup new autogenerated descriptors on construction e20aaff70f wallet: Construct ExternalSignerSPKM with the new descriptor aa4f7823aa wallet: include keys when constructing DescriptorSPKM during import 6538f69135 fuzz: Skip adding descriptor to wallet if it cannot be expanded 8be5ee554b test: wallet: Check that loading wallet with both unencrypted and encrypted keys fails. 80b0c25992 wallet: Load everything into DescSPKM on construction f713fd1725 refactor: wallet: Don't reuse WALLET_BLANK flag for born-encrypted wallets. cd912c4e10 wallet: Consolidate generation setup callers into one function 0301c758ea wallet migration, fuzz: Migrate hd seed once 2424e52836 lint: doc: detail lint tool install methods 5fefa5a654 Don't pin Python patch version fd15b55c2e lint: use requirements.txt 5f4d3383da lint: switch to ruff for formatting and linting a53b81ce4e lint: switch to uv for python management in linter 2b0dc0d228 wallet: Disallow . and .. from wallet names d084bc88be doc: clarify IWYU workflow 7c7cec4567 ci: update IWYU patch reference 75cf9708a0 ci: add one more routable address to the VMs (docker containers) 1b93983bf5 test: make feature_bind_port_(discover|externalip).py auto-detect the skip condition 032223f403 dbwrapper: reuse iterator scratch stream 7403c0f907 dbwrapper: guard `CDBBatch` scratch streams cb1ab0a716 test: cover repeated dbwrapper stream use 31ce729b28 streams: add `ScopedDataStreamUsage` 0e4b0bacec validation: Don't add pruned blocks to m_blocks_unlinked on startup c8d688f41c fuzz: send blocktxn messages in cmpctblock harness d0333bfe99 fuzz: send compact blocks in cmpctblock harness 3c58efe2ac fuzz: mine blocks and send headers for them in cmpctblock harness 651622432d fuzz: create and send transactions in cmpctblock harness 8c9a3fd0e8 net, fuzz: move CMPCTBLOCK_VERSION to header, use in cmpctblock harness 6cd480f62f fuzz: initial compact block fuzz harness 1d66963749 log: clarify VerifyDB summary log a9301cfa07 refactor: disable default std::hash for CTransactionRef 47d68cd981 ci: backport iwyu PR 2013 std::hash mapping e2ef54b8ba cmake: Remove NetBSD-specific workaround from `add_boost_if_needed` 6d86184a8b rpc: combinerawtransaction now rejects unmergeable transactions 08925d5ee7 test: add coverage for loading a wallet in a non-writable directory 0218966c0d test: add coverage for wallet creation in non-writable directory bc0090f1d6 wallet: handle non-writable db directories a49bc1e24e ci: add --extended when using --usecli 904c0d07bb util/stdmutex: Drop StdLockGuard 735b25519a support: clamp RLIMIT_MEMLOCK to size_t 8ab4b9fc85 init: clamp fd limits to int 4afbabdcef Fix startup failure with RLIM_INFINITY fd limits 89af67d79f tests: Add some fuzz test coverage for command-specific args 92df785859 tests: Add some test coverage for ArgsManager::AddCommand 33c8090be9 ArgsManager: automate checking for correct command options 186354a0d8 bitcoin-wallet: use command-specific options d21e82b7d6 ArgsManager: support command-specific options dfe5d6a81d fuzz: apply node context reset pattern to p2p_handshake dc84a31014 wallet: remove fUpdate argument from AddToWalletIfInvolvingMe 94845df073 wallet: remove update_tx argument from SyncTransaction 6e796e1f47 wallet: remove fUpdate argument from ScanForWalletTransactions 54e4c0be8f wallet: remove update argument from RescanFromTime method 701bc2dc02 contrib: Fix NameError in signet miner gbt() 7249b376a0 opt: Skip UTXOs with worse waste, same eff_value 5204291860 opt: Skip evaluation of equivalent input sets ba1807b981 coinselection: Track effective_value lookahead fa226ab902 coinselection: BnB skip exploring high waste 7ecea1dc5d coinselection: Track whether BnB completed 3ca0f36164 coinselection: rewrite BnB in CoinGrinder-style 2e73739837 coinselection: Track BnB iteration count in result eff9e798b9 coinselection: Tiebreak SRD eviction by weight d06dabf26b node: allocate index caches proportional to usage patterns 1950da94fc test: enable `rpc_bind` on macOS and BSD 7236a05503 test: enable `feature_bind_extra` on macOS and BSD 5603ae0ffa test: fix send_batch_request to pass callables when using --usecli fedeff7f20 crypto: disable ASan instrumentation of SSE4 SHA256 for GCC 758f208cc1 contrib: override system locale in gen-manpages.py 2104282ddd fuzz: Add tests for CCoinControl methods 43b09b993d fuzz: Improve oracle for existing CCoinControl tests ac1ccc5bd9 build: Add CTAD feature check 9f273f1c1c build: Add path to doc recommended versions for CLANG, GCC and MSVC 55d37546fa Bugfix: GUI/Intro: Handle errors from SelectParams the same as if during InitConfig 1aa78cdab6 clusterlin: adopt STL ranges algorithms (refactor) 747da25360 feefrac: drop comparison and operator{<<,>>} for sorted wrappers 938312d7a6 docs: clarify RPC credentials security boundary git-subtree-dir: libbitcoinkernel-sys/bitcoin git-subtree-split: d84fc352cbc1363df5cd6024a22e73fc63283e4f
…eat them as error 05ca77c iwyu: Fix warnings in `src/bench` and treat them as error (Hennadii Stepanov) 1ed7a47 bench, refactor: Use `std::string_view` for `BenchRunner` ctor parameter (Hennadii Stepanov) Pull request description: This PR addresses [this](bitcoin/bitcoin#35011 (comment)) comment: > I had the impression I already fixed bench in bitcoin/bitcoin#30716 two years ago, but I guess it isn't yet enforced. > > Could do that as a next step? The first two commits act as prerequisites. See the commit messages for details. The third commit additionally ensures that our drop-in header replacements are used instead of system headers: - `util/check.h`:https://github.com/bitcoin/bitcoin/blob/142a89c48b13c3a325a3647c4a3b7735454e3568/src/util/check.h#L11-L13 - `util/time.h`:https://github.com/bitcoin/bitcoin/blob/142a89c48b13c3a325a3647c4a3b7735454e3568/src/util/time.h#L9-L10 ACKs for top commit: maflcko: re-ACK 05ca77c 📃 BrandonOdiwuor: ACK 05ca77c Tree-SHA512: 159ee734a83dcba3c914682be4b119549e1e4269a43d34c52903e76056d537a2ae02c2f5f4e3adff1b4230082b8ed267c04164abc83b16f717b34fba6e03e359
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
This PR addresses this comment:
The first two commits act as prerequisites. See the commit messages for details.
The third commit additionally ensures that our drop-in header replacements are used instead of system headers:
util/check.h:bitcoin/src/util/check.h
Lines 11 to 13 in 10dfdd4
util/time.h:bitcoin/src/util/time.h
Lines 9 to 10 in 10dfdd4