mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-03-17 05:12:07 +01:00
Merge 02d030292a93fdf77bf59c8007fea3cebb2bf3fa into e9e6825b8cbe7b98ee07d068b78f84597e3a9652
This commit is contained in:
commit
e78a7a40c0
@ -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")
|
||||
|
||||
|
@ -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
|
||||
)
|
||||
|
||||
|
@ -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/' \
|
||||
|
@ -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
|
||||
|
@ -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++"
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user