aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormerge-script <fanquake@gmail.com>2025-03-18 08:38:18 +0800
committermerge-script <fanquake@gmail.com>2025-03-18 08:38:18 +0800
commitd6db87165c6dc2123a759c79ec236ea1ed90c0e3 (patch)
tree6aaa7c155bb64ac472f72bb6dbc39ba6d1a30efb
parente9e6825b8cbe7b98ee07d068b78f84597e3a9652 (diff)
parent74df31cb0bdef9cce31ae62ed71a1e386cba0274 (diff)
Merge bitcoin/bitcoin#32062: [29.x] backports and rc2v29.0rc2
74df31cb0bdef9cce31ae62ed71a1e386cba0274 [doc] update example bitcoin.conf with missing options (glozow) 8082f88d1a434b3ba1018c6592affe759d53df48 [doc] update man pages for 29.0rc2 (glozow) 472d582bfec4dcdecb5f4d9bbbe41ea7961ca62b [build] bump to 29.0rc2 (glozow) a4c30bd00a0ec977a1518416cdf7f0a24868a9f2 qt: doc: adapt outdated binary paths to CMake changes (Sebastian Falbesoner) 4e438d326ea55ac0f98f89e41e69b56354e801e7 build: use make < 3.82 syntax for define directive (Sjors Provoost) 7ff0b02161a1687b8bee6af0ff93ec65bbfc6cf2 build: Remove manpages when making MacOS app (Ava Chow) 5ebcb59fdb1270edac6b878d7bd97dd1f077aa06 test: fix intermittent failure in p2p_orphan_handling.py (Martin Zumsande) 458655bca8eddd4d913958c579a46a6fca23cbf6 fuzz: make sure DecodeBase58(Check) is called with valid values more often (Lőrinc) 15ecae31a83ea66985496d2b8f2017cbd7749c26 fuzz: Always restrict base conversion input lengths (Lőrinc) 80c5d57bd118b1812c21604224dd316214af879c contrib: Fix `gen-bitcoin-conf.sh`. (David Gumberg) Pull request description: backports: - #32049 - #32063 - #32064 - #32070 - #31917 ACKs for top commit: Sjors: ACK 74df31cb0bdef9cce31ae62ed71a1e386cba0274 hebasto: ACK 74df31cb0bdef9cce31ae62ed71a1e386cba0274, I have reviewed the code and it looks OK. ismaelsadeeq: Code review ACK 74df31cb0bdef9cce31ae62ed71a1e386cba0274 Tree-SHA512: df4ef832a03c9c3f89d30d3f65d81b7c7e4793d2cad8a269f1ff221454a4b0b05e06109f4556926c1c4f7fcbd2537052b4d58b4b3911dfcfc35726c600b587d9
-rw-r--r--CMakeLists.txt2
-rw-r--r--cmake/module/Maintenance.cmake1
-rwxr-xr-xcontrib/devtools/gen-bitcoin-conf.sh3
-rw-r--r--depends/packages/capnp.mk2
-rw-r--r--depends/packages/libmultiprocess.mk2
-rw-r--r--doc/man/bitcoin-cli.16
-rw-r--r--doc/man/bitcoin-qt.16
-rw-r--r--doc/man/bitcoin-tx.16
-rw-r--r--doc/man/bitcoin-util.16
-rw-r--r--doc/man/bitcoin-wallet.16
-rw-r--r--doc/man/bitcoind.16
-rw-r--r--share/examples/bitcoin.conf79
-rw-r--r--src/qt/README.md2
-rw-r--r--src/qt/test/wallettests.cpp6
-rw-r--r--src/test/fuzz/base_encode_decode.cpp51
-rwxr-xr-xtest/functional/p2p_orphan_handling.py1
16 files changed, 130 insertions, 55 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3ad29249e9..8b7e663134 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,7 +26,7 @@ set(CLIENT_NAME "Bitcoin Core")
set(CLIENT_VERSION_MAJOR 29)
set(CLIENT_VERSION_MINOR 0)
set(CLIENT_VERSION_BUILD 0)
-set(CLIENT_VERSION_RC 1)
+set(CLIENT_VERSION_RC 2)
set(CLIENT_VERSION_IS_RELEASE "true")
set(COPYRIGHT_YEAR "2025")
diff --git a/cmake/module/Maintenance.cmake b/cmake/module/Maintenance.cmake
index a1ae7c9e8f..59e26d1bc1 100644
--- a/cmake/module/Maintenance.cmake
+++ b/cmake/module/Maintenance.cmake
@@ -83,6 +83,7 @@ function(add_macos_deploy_target)
COMMAND ${CMAKE_COMMAND} --install ${PROJECT_BINARY_DIR} --config $<CONFIG> --component bitcoin-qt --prefix ${macos_app}/Contents/MacOS --strip
COMMAND ${CMAKE_COMMAND} -E rename ${macos_app}/Contents/MacOS/bin/$<TARGET_FILE_NAME:bitcoin-qt> ${macos_app}/Contents/MacOS/Bitcoin-Qt
COMMAND ${CMAKE_COMMAND} -E rm -rf ${macos_app}/Contents/MacOS/bin
+ COMMAND ${CMAKE_COMMAND} -E rm -rf ${macos_app}/Contents/MacOS/share
VERBATIM
)
diff --git a/contrib/devtools/gen-bitcoin-conf.sh b/contrib/devtools/gen-bitcoin-conf.sh
index 234318e1a1..d31f546295 100755
--- a/contrib/devtools/gen-bitcoin-conf.sh
+++ b/contrib/devtools/gen-bitcoin-conf.sh
@@ -50,7 +50,8 @@ EOF
# adding newlines is a bit funky to ensure portability for BSD
# see here for more details: https://stackoverflow.com/a/24575385
${BITCOIND} --help \
- | sed '1,/Print this help message and exit/d' \
+ | sed '1,/Options:/d' \
+ | sed -E '/^[[:space:]]{2}-help/,/^[[:space:]]*$/d' \
| sed -E 's/^[[:space:]]{2}\-/#/' \
| sed -E 's/^[[:space:]]{7}/# /' \
| sed -E '/[=[:space:]]/!s/#.*$/&=1/' \
diff --git a/depends/packages/capnp.mk b/depends/packages/capnp.mk
index 7f41d3b5a4..542bf12629 100644
--- a/depends/packages/capnp.mk
+++ b/depends/packages/capnp.mk
@@ -5,7 +5,7 @@ $(package)_download_file=$(native_$(package)_download_file)
$(package)_file_name=$(native_$(package)_file_name)
$(package)_sha256_hash=$(native_$(package)_sha256_hash)
-define $(package)_set_vars :=
+define $(package)_set_vars
$(package)_config_opts := -DBUILD_TESTING=OFF
$(package)_config_opts += -DWITH_OPENSSL=OFF
$(package)_config_opts += -DWITH_ZLIB=OFF
diff --git a/depends/packages/libmultiprocess.mk b/depends/packages/libmultiprocess.mk
index afbd315e38..47064a9bb6 100644
--- a/depends/packages/libmultiprocess.mk
+++ b/depends/packages/libmultiprocess.mk
@@ -8,7 +8,7 @@ ifneq ($(host),$(build))
$(package)_dependencies += native_capnp
endif
-define $(package)_set_vars :=
+define $(package)_set_vars
ifneq ($(host),$(build))
$(package)_config_opts := -DCAPNP_EXECUTABLE="$$(native_capnp_prefixbin)/capnp"
$(package)_config_opts += -DCAPNPC_CXX_EXECUTABLE="$$(native_capnp_prefixbin)/capnpc-c++"
diff --git a/doc/man/bitcoin-cli.1 b/doc/man/bitcoin-cli.1
index 2eb89ffa08..94d06025c3 100644
--- a/doc/man/bitcoin-cli.1
+++ b/doc/man/bitcoin-cli.1
@@ -1,7 +1,7 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
-.TH BITCOIN-CLI "1" "March 2025" "bitcoin-cli v29.0.0rc1" "User Commands"
+.TH BITCOIN-CLI "1" "March 2025" "bitcoin-cli v29.0.0rc2" "User Commands"
.SH NAME
-bitcoin-cli \- manual page for bitcoin-cli v29.0.0rc1
+bitcoin-cli \- manual page for bitcoin-cli v29.0.0rc2
.SH SYNOPSIS
.B bitcoin-cli
[\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]
@@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v29.0.0rc1
.B bitcoin-cli
[\fI\,options\/\fR] \fI\,help <command>\/\fR
.SH DESCRIPTION
-Bitcoin Core RPC client version v29.0.0rc1
+Bitcoin Core RPC client version v29.0.0rc2
.PP
The bitcoin\-cli utility provides a command line interface to interact with a Bitcoin Core RPC server.
.PP
diff --git a/doc/man/bitcoin-qt.1 b/doc/man/bitcoin-qt.1
index 20b7b96e3e..58640975b8 100644
--- a/doc/man/bitcoin-qt.1
+++ b/doc/man/bitcoin-qt.1
@@ -1,12 +1,12 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
-.TH BITCOIN-QT "1" "March 2025" "bitcoin-qt v29.0.0rc1" "User Commands"
+.TH BITCOIN-QT "1" "March 2025" "bitcoin-qt v29.0.0rc2" "User Commands"
.SH NAME
-bitcoin-qt \- manual page for bitcoin-qt v29.0.0rc1
+bitcoin-qt \- manual page for bitcoin-qt v29.0.0rc2
.SH SYNOPSIS
.B bitcoin-qt
[\fI\,options\/\fR] [\fI\,URI\/\fR]
.SH DESCRIPTION
-Bitcoin Core version v29.0.0rc1
+Bitcoin Core version v29.0.0rc2
.PP
The bitcoin\-qt application provides a graphical interface for interacting with Bitcoin Core.
.PP
diff --git a/doc/man/bitcoin-tx.1 b/doc/man/bitcoin-tx.1
index b493f916b0..7d4f7de5a3 100644
--- a/doc/man/bitcoin-tx.1
+++ b/doc/man/bitcoin-tx.1
@@ -1,7 +1,7 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
-.TH BITCOIN-TX "1" "March 2025" "bitcoin-tx v29.0.0rc1" "User Commands"
+.TH BITCOIN-TX "1" "March 2025" "bitcoin-tx v29.0.0rc2" "User Commands"
.SH NAME
-bitcoin-tx \- manual page for bitcoin-tx v29.0.0rc1
+bitcoin-tx \- manual page for bitcoin-tx v29.0.0rc2
.SH SYNOPSIS
.B bitcoin-tx
[\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]
@@ -9,7 +9,7 @@ bitcoin-tx \- manual page for bitcoin-tx v29.0.0rc1
.B bitcoin-tx
[\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]
.SH DESCRIPTION
-Bitcoin Core bitcoin\-tx utility version v29.0.0rc1
+Bitcoin Core bitcoin\-tx utility version v29.0.0rc2
.PP
The bitcoin\-tx tool is used for creating and modifying bitcoin transactions.
.PP
diff --git a/doc/man/bitcoin-util.1 b/doc/man/bitcoin-util.1
index 74cf2329ed..44ff8e860a 100644
--- a/doc/man/bitcoin-util.1
+++ b/doc/man/bitcoin-util.1
@@ -1,7 +1,7 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
-.TH BITCOIN-UTIL "1" "March 2025" "bitcoin-util v29.0.0rc1" "User Commands"
+.TH BITCOIN-UTIL "1" "March 2025" "bitcoin-util v29.0.0rc2" "User Commands"
.SH NAME
-bitcoin-util \- manual page for bitcoin-util v29.0.0rc1
+bitcoin-util \- manual page for bitcoin-util v29.0.0rc2
.SH SYNOPSIS
.B bitcoin-util
[\fI\,options\/\fR] [\fI\,command\/\fR]
@@ -9,7 +9,7 @@ bitcoin-util \- manual page for bitcoin-util v29.0.0rc1
.B bitcoin-util
[\fI\,options\/\fR] \fI\,grind <hex-block-header>\/\fR
.SH DESCRIPTION
-Bitcoin Core bitcoin\-util utility version v29.0.0rc1
+Bitcoin Core bitcoin\-util utility version v29.0.0rc2
.PP
The bitcoin\-util tool provides bitcoin related functionality that does not rely on the ability to access a running node. Available [commands] are listed below.
.SH OPTIONS
diff --git a/doc/man/bitcoin-wallet.1 b/doc/man/bitcoin-wallet.1
index dbf3010070..b41d5e965e 100644
--- a/doc/man/bitcoin-wallet.1
+++ b/doc/man/bitcoin-wallet.1
@@ -1,12 +1,12 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
-.TH BITCOIN-WALLET "1" "March 2025" "bitcoin-wallet v29.0.0rc1" "User Commands"
+.TH BITCOIN-WALLET "1" "March 2025" "bitcoin-wallet v29.0.0rc2" "User Commands"
.SH NAME
-bitcoin-wallet \- manual page for bitcoin-wallet v29.0.0rc1
+bitcoin-wallet \- manual page for bitcoin-wallet v29.0.0rc2
.SH SYNOPSIS
.B bitcoin-wallet
[\fI\,options\/\fR] \fI\,<command>\/\fR
.SH DESCRIPTION
-Bitcoin Core bitcoin\-wallet utility version v29.0.0rc1
+Bitcoin Core bitcoin\-wallet utility version v29.0.0rc2
.PP
bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files.
.PP
diff --git a/doc/man/bitcoind.1 b/doc/man/bitcoind.1
index 865a59e87c..b5993a052a 100644
--- a/doc/man/bitcoind.1
+++ b/doc/man/bitcoind.1
@@ -1,12 +1,12 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
-.TH BITCOIND "1" "March 2025" "bitcoind v29.0.0rc1" "User Commands"
+.TH BITCOIND "1" "March 2025" "bitcoind v29.0.0rc2" "User Commands"
.SH NAME
-bitcoind \- manual page for bitcoind v29.0.0rc1
+bitcoind \- manual page for bitcoind v29.0.0rc2
.SH SYNOPSIS
.B bitcoind
[\fI\,options\/\fR]
.SH DESCRIPTION
-Bitcoin Core daemon version v29.0.0rc1
+Bitcoin Core daemon version v29.0.0rc2
.PP
The Bitcoin Core daemon (bitcoind) is a headless program that connects to the Bitcoin network to validate and relay transactions and blocks, as well as relaying addresses.
.PP
diff --git a/share/examples/bitcoin.conf b/share/examples/bitcoin.conf
index 5b0003b723..d3999ecb4a 100644
--- a/share/examples/bitcoin.conf
+++ b/share/examples/bitcoin.conf
@@ -12,6 +12,82 @@
### Options
+# Execute command when an alert is raised (%s in cmd is replaced by
+# message)
+#alertnotify=<cmd>
+
+# For backwards compatibility, treat an unused bitcoin.conf file in the
+# datadir as a warning, not an error.
+#allowignoredconf=1
+
+# If this block is in the chain assume that it and its ancestors are valid
+# and potentially skip their script verification (0 to verify all,
+# default:
+# 00000000000000000001b658dd1120e82e66d2790811f89ede9742ada3ed6d77,
+# testnet3:
+# 00000000000003fc7967410ba2d0a8a8d50daedc318d43e8baf1a9782c236a57,
+# testnet4:
+# 0000000000003ed4f08dbdf6f7d6b271a6bcffce25675cb40aa9fa43179a89f3,
+# signet:
+# 000000895a110f46e59eb82bbc5bfb67fa314656009c295509c21b4999f5180a)
+#assumevalid=<hex>
+
+# Maintain an index of compact filters by block (default: 0, values:
+# basic). If <type> is not supplied or if <type> = 1, indexes for
+# all known types are enabled.
+#blockfilterindex=<type>
+
+# Execute command when the best block changes (%s in cmd is replaced by
+# block hash)
+#blocknotify=<cmd>
+
+# Extra transactions to keep in memory for compact block reconstructions
+# (default: 100)
+#blockreconstructionextratxn=<n>
+
+# Specify directory to hold blocks subdirectory for *.dat files (default:
+# <datadir>)
+#blocksdir=<dir>
+
+# Whether to reject transactions from network peers. Disables automatic
+# broadcast and rebroadcast of transactions, unless the source peer
+# has the 'forcerelay' permission. RPC transactions are not
+# affected. (default: 0)
+#blocksonly=1
+
+# Whether an XOR-key applies to blocksdir *.dat files. The created XOR-key
+# will be zeros for an existing blocksdir or when `-blocksxor=0` is
+# set, and random for a freshly initialized blocksdir. (default: 1)
+#blocksxor=1
+
+# Maintain coinstats index used by the gettxoutsetinfo RPC (default: 0)
+#coinstatsindex=1
+
+# Specify path to read-only configuration file. Relative paths will be
+# prefixed by datadir location (only useable from command line, not
+# configuration file) (default: bitcoin.conf)
+#conf=<file>
+
+# Run in the background as a daemon and accept commands (default: 0)
+#daemon=1
+
+# Wait for initialization to be finished before exiting. This implies
+# -daemon (default: 0)
+#daemonwait=1
+
+# Specify data directory
+#datadir=<dir>
+
+# Maximum database cache size <n> MiB (minimum 4, default: 450). Make sure
+# you have enough RAM. In addition, unused memory allocated to the
+# mempool is shared with this cache (see -maxmempool).
+#dbcache=<n>
+
+# Specify location of debug log file (default: debug.log). Relative paths
+# will be prefixed by a net-specific datadir location. Pass
+# -nodebuglogfile to disable writing the log to a file.
+#debuglogfile=<file>
+
# Specify additional configuration file, relative to the -datadir path
# (only useable from configuration file, not command line)
#includeconf=<file>
@@ -428,9 +504,6 @@
# takes priority over "-debug"
#debugexclude=<category>
-# Print help message with debugging options and exit
-#help-debug=1
-
# Include IP addresses in debug output (default: 0)
#logips=1
diff --git a/src/qt/README.md b/src/qt/README.md
index 1fcac5414f..4a662b2a12 100644
--- a/src/qt/README.md
+++ b/src/qt/README.md
@@ -120,5 +120,5 @@ sudo apt-get install qtcreator
- Under `Debuggers`: select `"GDB"` as debugger
8. While in the `Projects` tab, ensure that you have the `bitcoin-qt` executable specified under `Run`
- - If the executable is not specified: click `"Choose..."`, navigate to `src/qt`, and select `bitcoin-qt`
+ - If the executable is not specified: click `"Choose..."`, navigate to `build/bin`, and select `bitcoin-qt`
9. You're all set! Start developing, building, and debugging the Bitcoin Core GUI
diff --git a/src/qt/test/wallettests.cpp b/src/qt/test/wallettests.cpp
index 98dfe12f08..816d47fed4 100644
--- a/src/qt/test/wallettests.cpp
+++ b/src/qt/test/wallettests.cpp
@@ -268,9 +268,9 @@ public:
//
// This also requires overriding the default minimal Qt platform:
//
-// QT_QPA_PLATFORM=xcb src/qt/test/test_bitcoin-qt # Linux
-// QT_QPA_PLATFORM=windows src/qt/test/test_bitcoin-qt # Windows
-// QT_QPA_PLATFORM=cocoa src/qt/test/test_bitcoin-qt # macOS
+// QT_QPA_PLATFORM=xcb build/bin/test_bitcoin-qt # Linux
+// QT_QPA_PLATFORM=windows build/bin/test_bitcoin-qt # Windows
+// QT_QPA_PLATFORM=cocoa build/bin/test_bitcoin-qt # macOS
void TestGUI(interfaces::Node& node, const std::shared_ptr<CWallet>& wallet)
{
// Create widgets for sending coins and listing transactions.
diff --git a/src/test/fuzz/base_encode_decode.cpp b/src/test/fuzz/base_encode_decode.cpp
index 06b249fb8d..2ffcbdf720 100644
--- a/src/test/fuzz/base_encode_decode.cpp
+++ b/src/test/fuzz/base_encode_decode.cpp
@@ -6,6 +6,7 @@
#include <base58.h>
#include <psbt.h>
+#include <span.h>
#include <test/fuzz/FuzzedDataProvider.h>
#include <util/strencodings.h>
#include <util/string.h>
@@ -19,42 +20,40 @@ using util::TrimStringView;
FUZZ_TARGET(base58_encode_decode)
{
- FuzzedDataProvider provider(buffer.data(), buffer.size());
- const std::string random_string{provider.ConsumeRandomLengthString(1000)};
- const int max_ret_len{provider.ConsumeIntegralInRange<int>(-1, 1000)};
+ FuzzedDataProvider provider{buffer.data(), buffer.size()};
+ const auto random_string{provider.ConsumeRandomLengthString(100)};
- // Decode/Encode roundtrip
- std::vector<unsigned char> decoded;
- if (DecodeBase58(random_string, decoded, max_ret_len)) {
+ const auto encoded{EncodeBase58(MakeUCharSpan(random_string))};
+ const auto decode_input{provider.ConsumeBool() ? random_string : encoded};
+ const int max_ret_len{provider.ConsumeIntegralInRange<int>(-1, decode_input.size() + 1)};
+ if (std::vector<unsigned char> decoded; DecodeBase58(decode_input, decoded, max_ret_len)) {
const auto encoded_string{EncodeBase58(decoded)};
- assert(encoded_string == TrimStringView(random_string));
- assert(encoded_string.empty() || !DecodeBase58(encoded_string, decoded, provider.ConsumeIntegralInRange<int>(0, decoded.size() - 1)));
+ assert(encoded_string == TrimStringView(decode_input));
+ if (decoded.size() > 0) {
+ assert(max_ret_len > 0);
+ assert(decoded.size() <= static_cast<size_t>(max_ret_len));
+ assert(!DecodeBase58(encoded_string, decoded, provider.ConsumeIntegralInRange<int>(0, decoded.size() - 1)));
+ }
}
- // Encode/Decode roundtrip
- const auto encoded{EncodeBase58(buffer)};
- std::vector<unsigned char> roundtrip_decoded;
- assert(DecodeBase58(encoded, roundtrip_decoded, buffer.size())
- && std::ranges::equal(roundtrip_decoded, buffer));
}
FUZZ_TARGET(base58check_encode_decode)
{
- FuzzedDataProvider provider(buffer.data(), buffer.size());
- const std::string random_string{provider.ConsumeRandomLengthString(1000)};
- const int max_ret_len{provider.ConsumeIntegralInRange<int>(-1, 1000)};
+ FuzzedDataProvider provider{buffer.data(), buffer.size()};
+ const auto random_string{provider.ConsumeRandomLengthString(100)};
- // Decode/Encode roundtrip
- std::vector<unsigned char> decoded;
- if (DecodeBase58Check(random_string, decoded, max_ret_len)) {
+ const auto encoded{EncodeBase58Check(MakeUCharSpan(random_string))};
+ const auto decode_input{provider.ConsumeBool() ? random_string : encoded};
+ const int max_ret_len{provider.ConsumeIntegralInRange<int>(-1, decode_input.size() + 1)};
+ if (std::vector<unsigned char> decoded; DecodeBase58Check(decode_input, decoded, max_ret_len)) {
const auto encoded_string{EncodeBase58Check(decoded)};
- assert(encoded_string == TrimStringView(random_string));
- assert(encoded_string.empty() || !DecodeBase58Check(encoded_string, decoded, provider.ConsumeIntegralInRange<int>(0, decoded.size() - 1)));
+ assert(encoded_string == TrimStringView(decode_input));
+ if (decoded.size() > 0) {
+ assert(max_ret_len > 0);
+ assert(decoded.size() <= static_cast<size_t>(max_ret_len));
+ assert(!DecodeBase58Check(encoded_string, decoded, provider.ConsumeIntegralInRange<int>(0, decoded.size() - 1)));
+ }
}
- // Encode/Decode roundtrip
- const auto encoded{EncodeBase58Check(buffer)};
- std::vector<unsigned char> roundtrip_decoded;
- assert(DecodeBase58Check(encoded, roundtrip_decoded, buffer.size())
- && std::ranges::equal(roundtrip_decoded, buffer));
}
FUZZ_TARGET(base32_encode_decode)
diff --git a/test/functional/p2p_orphan_handling.py b/test/functional/p2p_orphan_handling.py
index 370caad880..d74a866ae5 100755
--- a/test/functional/p2p_orphan_handling.py
+++ b/test/functional/p2p_orphan_handling.py
@@ -788,6 +788,7 @@ class OrphanHandlingTest(BitcoinTestFramework):
# Disconnect peer1. peer2 should become the new candidate for orphan resolution.
peer1.peer_disconnect()
+ self.wait_until(lambda: node.num_test_p2p_connections() == 1)
node.bumpmocktime(TXREQUEST_TIME_SKIP)
self.wait_until(lambda: len(node.getorphantxs(verbosity=2)[0]["from"]) == 1)
# Both parents should be requested, now that they are both missing.