mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-08-25 08:51:14 +02:00
Merge bitcoin/bitcoin#32136: [29.x] backports and 29.0rc3
f80ab9a5d8
[doc] update man pages for 29.0rc3 (glozow)7c05ef5673
[build] bump to 29.0rc3 (glozow)c0756b758f
depends: set CMAKE_*_COMPILER_TARGET in toolchain (fanquake)477345207b
cmake: Add `NO_CACHE_IF_FAILED` option for checking linker flags (Hennadii Stepanov)7bc7af9951
fuzz: extract unsequenced operations with side-effects (Lőrinc)288163ea0f
fuzz: Fix off-by-one in package_rbf target (MarcoFalke)a3060483fa
test: avoid disk space warning for non-regtest (Sjors Provoost) Pull request description: Backports + final changes for 29.0rc3. Backports: - #32057 - #32122 - #32141 - #32027 - #31849 ACKs for top commit: hebasto: ACKf80ab9a5d8
, I've verified back-ports locally and reviewed release related changes. fanquake: ACKf80ab9a5d8
Tree-SHA512: 15c882eac98825c41859859af1621e63a5b9d98f3b492c451c14f2d2232220dfa8d1ef933adae773918e188c6ade085f254f2853ff078bf1f99b8cd77facb182
This commit is contained in:
@@ -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 2)
|
||||
set(CLIENT_VERSION_RC 3)
|
||||
set(CLIENT_VERSION_IS_RELEASE "true")
|
||||
set(COPYRIGHT_YEAR "2025")
|
||||
|
||||
@@ -376,6 +376,7 @@ if(SANITIZERS)
|
||||
int main() { return 0; }
|
||||
"
|
||||
RESULT_VAR linker_supports_sanitizers
|
||||
NO_CACHE_IF_FAILED
|
||||
)
|
||||
if(NOT linker_supports_sanitizers)
|
||||
message(FATAL_ERROR "Linker did not accept requested flags, you are missing required libraries.")
|
||||
|
@@ -20,7 +20,7 @@ In configuration output, this function prints a string by the following pattern:
|
||||
function(try_append_linker_flag flag)
|
||||
cmake_parse_arguments(PARSE_ARGV 1
|
||||
TALF # prefix
|
||||
"" # options
|
||||
"NO_CACHE_IF_FAILED" # options
|
||||
"TARGET;VAR;SOURCE;RESULT_VAR" # one_value_keywords
|
||||
"IF_CHECK_PASSED" # multi_value_keywords
|
||||
)
|
||||
@@ -68,6 +68,10 @@ function(try_append_linker_flag flag)
|
||||
if(DEFINED TALF_RESULT_VAR)
|
||||
set(${TALF_RESULT_VAR} "${${result}}" PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
if(NOT ${result} AND TALF_NO_CACHE_IF_FAILED)
|
||||
unset(${result} CACHE)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
if(MSVC)
|
||||
|
@@ -206,6 +206,7 @@ endif
|
||||
$(host_prefix)/toolchain.cmake : toolchain.cmake.in $(host_prefix)/.stamp_$(final_build_id)
|
||||
@mkdir -p $(@D)
|
||||
sed -e 's|@depends_crosscompiling@|$(crosscompiling)|' \
|
||||
-e 's|@host@|$(host)|' \
|
||||
-e 's|@host_system_name@|$($(host_os)_cmake_system_name)|' \
|
||||
-e 's|@host_system_version@|$($(host_os)_cmake_system_version)|' \
|
||||
-e 's|@host_arch@|$(host_arch)|' \
|
||||
|
@@ -13,6 +13,10 @@ if(@depends_crosscompiling@)
|
||||
set(CMAKE_SYSTEM_NAME @host_system_name@)
|
||||
set(CMAKE_SYSTEM_VERSION @host_system_version@)
|
||||
set(CMAKE_SYSTEM_PROCESSOR @host_arch@)
|
||||
|
||||
set(CMAKE_C_COMPILER_TARGET @host@)
|
||||
set(CMAKE_CXX_COMPILER_TARGET @host@)
|
||||
set(CMAKE_OBJCXX_COMPILER_TARGET @host@)
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED CMAKE_C_FLAGS_INIT)
|
||||
|
@@ -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.0rc2" "User Commands"
|
||||
.TH BITCOIN-CLI "1" "March 2025" "bitcoin-cli v29.0.0rc3" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-cli \- manual page for bitcoin-cli v29.0.0rc2
|
||||
bitcoin-cli \- manual page for bitcoin-cli v29.0.0rc3
|
||||
.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.0rc2
|
||||
.B bitcoin-cli
|
||||
[\fI\,options\/\fR] \fI\,help <command>\/\fR
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core RPC client version v29.0.0rc2
|
||||
Bitcoin Core RPC client version v29.0.0rc3
|
||||
.PP
|
||||
The bitcoin\-cli utility provides a command line interface to interact with a Bitcoin Core RPC server.
|
||||
.PP
|
||||
|
@@ -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.0rc2" "User Commands"
|
||||
.TH BITCOIN-QT "1" "March 2025" "bitcoin-qt v29.0.0rc3" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-qt \- manual page for bitcoin-qt v29.0.0rc2
|
||||
bitcoin-qt \- manual page for bitcoin-qt v29.0.0rc3
|
||||
.SH SYNOPSIS
|
||||
.B bitcoin-qt
|
||||
[\fI\,options\/\fR] [\fI\,URI\/\fR]
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core version v29.0.0rc2
|
||||
Bitcoin Core version v29.0.0rc3
|
||||
.PP
|
||||
The bitcoin\-qt application provides a graphical interface for interacting with Bitcoin Core.
|
||||
.PP
|
||||
|
@@ -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.0rc2" "User Commands"
|
||||
.TH BITCOIN-TX "1" "March 2025" "bitcoin-tx v29.0.0rc3" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-tx \- manual page for bitcoin-tx v29.0.0rc2
|
||||
bitcoin-tx \- manual page for bitcoin-tx v29.0.0rc3
|
||||
.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.0rc2
|
||||
.B bitcoin-tx
|
||||
[\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core bitcoin\-tx utility version v29.0.0rc2
|
||||
Bitcoin Core bitcoin\-tx utility version v29.0.0rc3
|
||||
.PP
|
||||
The bitcoin\-tx tool is used for creating and modifying bitcoin transactions.
|
||||
.PP
|
||||
|
@@ -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.0rc2" "User Commands"
|
||||
.TH BITCOIN-UTIL "1" "March 2025" "bitcoin-util v29.0.0rc3" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-util \- manual page for bitcoin-util v29.0.0rc2
|
||||
bitcoin-util \- manual page for bitcoin-util v29.0.0rc3
|
||||
.SH SYNOPSIS
|
||||
.B bitcoin-util
|
||||
[\fI\,options\/\fR] [\fI\,command\/\fR]
|
||||
@@ -9,7 +9,7 @@ bitcoin-util \- manual page for bitcoin-util v29.0.0rc2
|
||||
.B bitcoin-util
|
||||
[\fI\,options\/\fR] \fI\,grind <hex-block-header>\/\fR
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core bitcoin\-util utility version v29.0.0rc2
|
||||
Bitcoin Core bitcoin\-util utility version v29.0.0rc3
|
||||
.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
|
||||
|
@@ -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.0rc2" "User Commands"
|
||||
.TH BITCOIN-WALLET "1" "March 2025" "bitcoin-wallet v29.0.0rc3" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-wallet \- manual page for bitcoin-wallet v29.0.0rc2
|
||||
bitcoin-wallet \- manual page for bitcoin-wallet v29.0.0rc3
|
||||
.SH SYNOPSIS
|
||||
.B bitcoin-wallet
|
||||
[\fI\,options\/\fR] \fI\,<command>\/\fR
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core bitcoin\-wallet utility version v29.0.0rc2
|
||||
Bitcoin Core bitcoin\-wallet utility version v29.0.0rc3
|
||||
.PP
|
||||
bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files.
|
||||
.PP
|
||||
|
@@ -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.0rc2" "User Commands"
|
||||
.TH BITCOIND "1" "March 2025" "bitcoind v29.0.0rc3" "User Commands"
|
||||
.SH NAME
|
||||
bitcoind \- manual page for bitcoind v29.0.0rc2
|
||||
bitcoind \- manual page for bitcoind v29.0.0rc3
|
||||
.SH SYNOPSIS
|
||||
.B bitcoind
|
||||
[\fI\,options\/\fR]
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core daemon version v29.0.0rc2
|
||||
Bitcoin Core daemon version v29.0.0rc3
|
||||
.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
|
||||
|
@@ -92,5 +92,6 @@ FUZZ_TARGET(psbt_base64_decode)
|
||||
|
||||
PartiallySignedTransaction psbt;
|
||||
std::string error;
|
||||
assert(DecodeBase64PSBT(psbt, random_string, error) == error.empty());
|
||||
const bool ok{DecodeBase64PSBT(psbt, random_string, error)};
|
||||
assert(ok == error.empty());
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (c) 2020-2022 The Bitcoin Core developers
|
||||
// Copyright (c) 2020-present The Bitcoin Core developers
|
||||
// Distributed under the MIT software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
@@ -108,7 +108,7 @@ FUZZ_TARGET(package_rbf, .init = initialize_package_rbf)
|
||||
|
||||
// Add a bunch of parent-child pairs to the mempool, and remember them.
|
||||
std::vector<CTransaction> mempool_txs;
|
||||
size_t iter{0};
|
||||
uint32_t iter{0};
|
||||
|
||||
// Keep track of the total vsize of CTxMemPoolEntry's being added to the mempool to avoid overflow
|
||||
// Add replacement_vsize since this is added to new diagram during RBF check
|
||||
@@ -116,9 +116,8 @@ FUZZ_TARGET(package_rbf, .init = initialize_package_rbf)
|
||||
if (!replacement_tx) {
|
||||
return;
|
||||
}
|
||||
assert(iter <= g_outpoints.size());
|
||||
replacement_tx->vin.resize(1);
|
||||
replacement_tx->vin[0].prevout = g_outpoints[iter++];
|
||||
replacement_tx->vin[0].prevout = g_outpoints.at(iter++);
|
||||
CTransaction replacement_tx_final{*replacement_tx};
|
||||
auto replacement_entry = ConsumeTxMemPoolEntry(fuzzed_data_provider, replacement_tx_final);
|
||||
int32_t replacement_vsize = replacement_entry.GetTxSize();
|
||||
@@ -126,13 +125,13 @@ FUZZ_TARGET(package_rbf, .init = initialize_package_rbf)
|
||||
|
||||
LOCK2(cs_main, pool.cs);
|
||||
|
||||
LIMITED_WHILE(fuzzed_data_provider.ConsumeBool(), NUM_ITERS)
|
||||
{
|
||||
while (fuzzed_data_provider.ConsumeBool()) {
|
||||
if (iter >= NUM_ITERS) break;
|
||||
|
||||
// Make sure txns only have one input, and that a unique input is given to avoid circular references
|
||||
CMutableTransaction parent;
|
||||
assert(iter <= g_outpoints.size());
|
||||
parent.vin.resize(1);
|
||||
parent.vin[0].prevout = g_outpoints[iter++];
|
||||
parent.vin[0].prevout = g_outpoints.at(iter++);
|
||||
parent.vout.emplace_back(0, CScript());
|
||||
|
||||
mempool_txs.emplace_back(parent);
|
||||
|
@@ -24,6 +24,9 @@ class ConfArgsTest(BitcoinTestFramework):
|
||||
def set_test_params(self):
|
||||
self.setup_clean_chain = True
|
||||
self.num_nodes = 1
|
||||
# Prune to prevent disk space warning on CI systems with limited space,
|
||||
# when using networks other than regtest.
|
||||
self.extra_args = [["-prune=550"]]
|
||||
self.supports_cli = False
|
||||
self.wallet_names = []
|
||||
self.disable_autoconnect = False
|
||||
@@ -471,32 +474,21 @@ class ConfArgsTest(BitcoinTestFramework):
|
||||
self.log.info("Test testnet3 deprecation warning")
|
||||
t3_warning_log = "Warning: Support for testnet3 is deprecated and will be removed in an upcoming release. Consider switching to testnet4."
|
||||
|
||||
def warning_msg(node, approx_size):
|
||||
return f'Warning: Disk space for "{node.datadir_path / node.chain / "blocks" }" may not accommodate the block files. Approximately {approx_size} GB of data will be stored in this directory.'
|
||||
|
||||
# Testnet3 node will log the warning
|
||||
self.log.debug("Testnet3 node will log the deprecation warning")
|
||||
self.nodes[0].chain = 'testnet3'
|
||||
self.nodes[0].replace_in_config([('regtest=', 'testnet='), ('[regtest]', '[test]')])
|
||||
with self.nodes[0].assert_debug_log([t3_warning_log]):
|
||||
self.start_node(0)
|
||||
# Some CI environments will have limited space and some others won't
|
||||
# so we need to handle both cases as a valid result.
|
||||
self.nodes[0].stderr.seek(0)
|
||||
err = self.nodes[0].stdout.read()
|
||||
self.nodes[0].stderr.seek(0)
|
||||
self.nodes[0].stderr.truncate()
|
||||
if err != b'' and err != warning_msg(self.nodes[0], 42):
|
||||
raise AssertionError("Unexpected stderr after shutdown of Testnet3 node")
|
||||
self.stop_node(0)
|
||||
|
||||
# Testnet4 node will not log the warning
|
||||
self.log.debug("Testnet4 node will not log the deprecation warning")
|
||||
self.nodes[0].chain = 'testnet4'
|
||||
self.nodes[0].replace_in_config([('testnet=', 'testnet4='), ('[test]', '[testnet4]')])
|
||||
with self.nodes[0].assert_debug_log([], unexpected_msgs=[t3_warning_log]):
|
||||
self.start_node(0)
|
||||
self.stop_node(0)
|
||||
|
||||
# Reset to regtest
|
||||
self.log.debug("Reset to regtest")
|
||||
self.nodes[0].chain = 'regtest'
|
||||
self.nodes[0].replace_in_config([('testnet4=', 'regtest='), ('[testnet4]', '[regtest]')])
|
||||
|
||||
|
@@ -26,12 +26,14 @@ signet_blocks = [
|
||||
|
||||
class SignetParams:
|
||||
def __init__(self, challenge=None):
|
||||
# Prune to prevent disk space warning on CI systems with limited space,
|
||||
# when using networks other than regtest.
|
||||
if challenge is None:
|
||||
self.challenge = SIGNET_DEFAULT_CHALLENGE
|
||||
self.shared_args = []
|
||||
self.shared_args = ["-prune=550"]
|
||||
else:
|
||||
self.challenge = challenge
|
||||
self.shared_args = [f"-signetchallenge={challenge}"]
|
||||
self.shared_args = ["-prune=550", f"-signetchallenge={challenge}"]
|
||||
|
||||
class SignetBasicTest(BitcoinTestFramework):
|
||||
def set_test_params(self):
|
||||
|
Reference in New Issue
Block a user