mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-22 08:09:19 +01:00
Compare commits
31 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f490f5562d | ||
|
|
87e53781f7 | ||
|
|
56ed476a29 | ||
|
|
977db54233 | ||
|
|
190e718e83 | ||
|
|
50108104d7 | ||
|
|
1344d3bd0f | ||
|
|
f80ab9a5d8 | ||
|
|
7c05ef5673 | ||
|
|
c0756b758f | ||
|
|
477345207b | ||
|
|
7bc7af9951 | ||
|
|
288163ea0f | ||
|
|
a3060483fa | ||
|
|
d6db87165c | ||
|
|
74df31cb0b | ||
|
|
8082f88d1a | ||
|
|
472d582bfe | ||
|
|
a4c30bd00a | ||
|
|
4e438d326e | ||
|
|
7ff0b02161 | ||
|
|
5ebcb59fdb | ||
|
|
458655bca8 | ||
|
|
15ecae31a8 | ||
|
|
80c5d57bd1 | ||
|
|
e9e6825b8c | ||
|
|
47e2fa86dc | ||
|
|
21f423939e | ||
|
|
86a3ce6209 | ||
|
|
95c21b1fdd | ||
|
|
153bd443ec |
@@ -23,11 +23,11 @@ endif()
|
||||
# Project / Package metadata
|
||||
#=============================
|
||||
set(CLIENT_NAME "Bitcoin Core")
|
||||
set(CLIENT_VERSION_MAJOR 28)
|
||||
set(CLIENT_VERSION_MINOR 99)
|
||||
set(CLIENT_VERSION_MAJOR 29)
|
||||
set(CLIENT_VERSION_MINOR 0)
|
||||
set(CLIENT_VERSION_BUILD 0)
|
||||
set(CLIENT_VERSION_RC 0)
|
||||
set(CLIENT_VERSION_IS_RELEASE "false")
|
||||
set(CLIENT_VERSION_IS_RELEASE "true")
|
||||
set(COPYRIGHT_YEAR "2025")
|
||||
|
||||
# During the enabling of the CXX and CXXOBJ languages, we modify
|
||||
@@ -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.")
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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/' \
|
||||
|
||||
@@ -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)|' \
|
||||
|
||||
@@ -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++"
|
||||
|
||||
@@ -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,5 +1,201 @@
|
||||
.TH BITCOIN-CLI "1"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
|
||||
.TH BITCOIN-CLI "1" "April 2025" "bitcoin-cli v29.0.0" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-cli \- manual page for bitcoin-cli
|
||||
bitcoin-cli \- manual page for bitcoin-cli v29.0.0
|
||||
.SH SYNOPSIS
|
||||
.B bitcoin-cli
|
||||
[\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR]
|
||||
.br
|
||||
.B bitcoin-cli
|
||||
[\fI\,options\/\fR] \fI\,-named <command> \/\fR[\fI\,name=value\/\fR]...
|
||||
.br
|
||||
.B bitcoin-cli
|
||||
[\fI\,options\/\fR] \fI\,help\/\fR
|
||||
.br
|
||||
.B bitcoin-cli
|
||||
[\fI\,options\/\fR] \fI\,help <command>\/\fR
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core RPC client version v29.0.0
|
||||
.PP
|
||||
The bitcoin\-cli utility provides a command line interface to interact with a Bitcoin Core RPC server.
|
||||
.PP
|
||||
It can be used to query network information, manage wallets, create or broadcast transactions, and control the Bitcoin Core server.
|
||||
.PP
|
||||
Use the "help" command to list all commands. Use "help <command>" to show help for that command.
|
||||
The \fB\-named\fR option allows you to specify parameters using the key=value format, eliminating the need to pass unused positional parameters.
|
||||
.SH OPTIONS
|
||||
.HP
|
||||
\fB\-color=\fR<when>
|
||||
.IP
|
||||
Color setting for CLI output (default: auto). Valid values: always, auto
|
||||
(add color codes when standard output is connected to a terminal
|
||||
and OS is not WIN32), never. Only applies to the output of
|
||||
\fB\-getinfo\fR.
|
||||
.HP
|
||||
\fB\-conf=\fR<file>
|
||||
.IP
|
||||
Specify configuration file. Relative paths will be prefixed by datadir
|
||||
location. (default: bitcoin.conf)
|
||||
.HP
|
||||
\fB\-datadir=\fR<dir>
|
||||
.IP
|
||||
Specify data directory
|
||||
.HP
|
||||
\fB\-help\fR
|
||||
.IP
|
||||
Print this help message and exit (also \fB\-h\fR or \-?)
|
||||
.HP
|
||||
\fB\-named\fR
|
||||
.IP
|
||||
Pass named instead of positional arguments (default: false)
|
||||
.HP
|
||||
\fB\-rpcclienttimeout=\fR<n>
|
||||
.IP
|
||||
Timeout in seconds during HTTP requests, or 0 for no timeout. (default:
|
||||
900)
|
||||
.HP
|
||||
\fB\-rpcconnect=\fR<ip>
|
||||
.IP
|
||||
Send commands to node running on <ip> (default: 127.0.0.1)
|
||||
.HP
|
||||
\fB\-rpccookiefile=\fR<loc>
|
||||
.IP
|
||||
Location of the auth cookie. Relative paths will be prefixed by a
|
||||
net\-specific datadir location. (default: data dir)
|
||||
.HP
|
||||
\fB\-rpcpassword=\fR<pw>
|
||||
.IP
|
||||
Password for JSON\-RPC connections
|
||||
.HP
|
||||
\fB\-rpcport=\fR<port>
|
||||
.IP
|
||||
Connect to JSON\-RPC on <port> (default: 8332, testnet: 18332, testnet4:
|
||||
48332, signet: 38332, regtest: 18443)
|
||||
.HP
|
||||
\fB\-rpcuser=\fR<user>
|
||||
.IP
|
||||
Username for JSON\-RPC connections
|
||||
.HP
|
||||
\fB\-rpcwait\fR
|
||||
.IP
|
||||
Wait for RPC server to start
|
||||
.HP
|
||||
\fB\-rpcwaittimeout=\fR<n>
|
||||
.IP
|
||||
Timeout in seconds to wait for the RPC server to start, or 0 for no
|
||||
timeout. (default: 0)
|
||||
.HP
|
||||
\fB\-rpcwallet=\fR<walletname>
|
||||
.IP
|
||||
Send RPC for non\-default wallet on RPC server (needs to exactly match
|
||||
corresponding \fB\-wallet\fR option passed to bitcoind). This changes
|
||||
the RPC endpoint used, e.g.
|
||||
http://127.0.0.1:8332/wallet/<walletname>
|
||||
.HP
|
||||
\fB\-stdin\fR
|
||||
.IP
|
||||
Read extra arguments from standard input, one per line until EOF/Ctrl\-D
|
||||
(recommended for sensitive information such as passphrases). When
|
||||
combined with \fB\-stdinrpcpass\fR, the first line from standard input
|
||||
is used for the RPC password.
|
||||
.HP
|
||||
\fB\-stdinrpcpass\fR
|
||||
.IP
|
||||
Read RPC password from standard input as a single line. When combined
|
||||
with \fB\-stdin\fR, the first line from standard input is used for the
|
||||
RPC password. When combined with \fB\-stdinwalletpassphrase\fR,
|
||||
\fB\-stdinrpcpass\fR consumes the first line, and \fB\-stdinwalletpassphrase\fR
|
||||
consumes the second.
|
||||
.HP
|
||||
\fB\-stdinwalletpassphrase\fR
|
||||
.IP
|
||||
Read wallet passphrase from standard input as a single line. When
|
||||
combined with \fB\-stdin\fR, the first line from standard input is used
|
||||
for the wallet passphrase.
|
||||
.HP
|
||||
\fB\-version\fR
|
||||
.IP
|
||||
Print version and exit
|
||||
.PP
|
||||
Debugging/Testing options:
|
||||
.PP
|
||||
Chain selection options:
|
||||
.HP
|
||||
\fB\-chain=\fR<chain>
|
||||
.IP
|
||||
Use the chain <chain> (default: main). Allowed values: main, test,
|
||||
testnet4, signet, regtest
|
||||
.HP
|
||||
\fB\-signet\fR
|
||||
.IP
|
||||
Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
|
||||
is defined by the \fB\-signetchallenge\fR parameter
|
||||
.HP
|
||||
\fB\-signetchallenge\fR
|
||||
.IP
|
||||
Blocks must satisfy the given script to be considered valid (only for
|
||||
signet networks; defaults to the global default signet test
|
||||
network challenge)
|
||||
.HP
|
||||
\fB\-signetseednode\fR
|
||||
.IP
|
||||
Specify a seed node for the signet network, in the hostname[:port]
|
||||
format, e.g. sig.net:1234 (may be used multiple times to specify
|
||||
multiple seed nodes; defaults to the global default signet test
|
||||
network seed node(s))
|
||||
.HP
|
||||
\fB\-testnet\fR
|
||||
.IP
|
||||
Use the testnet3 chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR. Support for testnet3
|
||||
is deprecated and will be removed in an upcoming release.
|
||||
Consider moving to testnet4 now by using \fB\-testnet4\fR.
|
||||
.HP
|
||||
\fB\-testnet4\fR
|
||||
.IP
|
||||
Use the testnet4 chain. Equivalent to \fB\-chain\fR=\fI\,testnet4\/\fR.
|
||||
.PP
|
||||
CLI Commands:
|
||||
.HP
|
||||
\fB\-addrinfo\fR
|
||||
.IP
|
||||
Get the number of addresses known to the node, per network and total,
|
||||
after filtering for quality and recency. The total number of
|
||||
addresses known to the node may be higher.
|
||||
.HP
|
||||
\fB\-generate\fR
|
||||
.IP
|
||||
Generate blocks, equivalent to RPC getnewaddress followed by RPC
|
||||
generatetoaddress. Optional positional integer arguments are
|
||||
number of blocks to generate (default: 1) and maximum iterations
|
||||
to try (default: 1000000), equivalent to RPC generatetoaddress
|
||||
nblocks and maxtries arguments. Example: bitcoin\-cli \fB\-generate\fR 4
|
||||
1000
|
||||
.HP
|
||||
\fB\-getinfo\fR
|
||||
.IP
|
||||
Get general information from the remote server. Note that unlike
|
||||
server\-side RPC calls, the output of \fB\-getinfo\fR is the result of
|
||||
multiple non\-atomic requests. Some entries in the output may
|
||||
represent results from different states (e.g. wallet balance may
|
||||
be as of a different block from the chain state reported)
|
||||
.HP
|
||||
\fB\-netinfo\fR
|
||||
.IP
|
||||
Get network peer connection information from the remote server. An
|
||||
optional argument from 0 to 4 can be passed for different peers
|
||||
listings (default: 0). If a non\-zero value is passed, an
|
||||
additional "outonly" (or "o") argument can be passed to see
|
||||
outbound peers only. Pass "help" (or "h") for detailed help
|
||||
documentation.
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) 2009-2025 The Bitcoin Core developers
|
||||
|
||||
This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
|
||||
Please contribute if you find Bitcoin Core useful. Visit
|
||||
<https://bitcoincore.org/> for further information about the software.
|
||||
The source code is available from <https://github.com/bitcoin/bitcoin>.
|
||||
|
||||
This is experimental software.
|
||||
Distributed under the MIT software license, see the accompanying file COPYING
|
||||
or <https://opensource.org/licenses/MIT>
|
||||
.SH "SEE ALSO"
|
||||
bitcoind(1), bitcoin-cli(1), bitcoin-tx(1), bitcoin-wallet(1), bitcoin-util(1), bitcoin-qt(1)
|
||||
|
||||
@@ -1,5 +1,852 @@
|
||||
.TH BITCOIN-QT "1"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
|
||||
.TH BITCOIN-QT "1" "April 2025" "bitcoin-qt v29.0.0" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-qt \- manual page for bitcoin-qt
|
||||
bitcoin-qt \- manual page for bitcoin-qt v29.0.0
|
||||
.SH SYNOPSIS
|
||||
.B bitcoin-qt
|
||||
[\fI\,options\/\fR] [\fI\,URI\/\fR]
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core version v29.0.0
|
||||
.PP
|
||||
The bitcoin\-qt application provides a graphical interface for interacting with Bitcoin Core.
|
||||
.PP
|
||||
It combines the core functionalities of bitcoind with a user\-friendly interface for wallet management, transaction history, and network statistics.
|
||||
.PP
|
||||
It is suitable for users who prefer a graphical over a command\-line interface.
|
||||
.PP
|
||||
You can optionally specify a payment [URI], in e.g. the BIP21 URI format.
|
||||
.SH OPTIONS
|
||||
.HP
|
||||
\fB\-alertnotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command when an alert is raised (%s in cmd is replaced by
|
||||
message)
|
||||
.HP
|
||||
\fB\-allowignoredconf\fR
|
||||
.IP
|
||||
For backwards compatibility, treat an unused bitcoin.conf file in the
|
||||
datadir as a warning, not an error.
|
||||
.HP
|
||||
\fB\-assumevalid=\fR<hex>
|
||||
.IP
|
||||
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)
|
||||
.HP
|
||||
\fB\-blockfilterindex=\fR<type>
|
||||
.IP
|
||||
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.
|
||||
.HP
|
||||
\fB\-blocknotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command when the best block changes (%s in cmd is replaced by
|
||||
block hash)
|
||||
.HP
|
||||
\fB\-blockreconstructionextratxn=\fR<n>
|
||||
.IP
|
||||
Extra transactions to keep in memory for compact block reconstructions
|
||||
(default: 100)
|
||||
.HP
|
||||
\fB\-blocksdir=\fR<dir>
|
||||
.IP
|
||||
Specify directory to hold blocks subdirectory for *.dat files (default:
|
||||
<datadir>)
|
||||
.HP
|
||||
\fB\-blocksonly\fR
|
||||
.IP
|
||||
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)
|
||||
.HP
|
||||
\fB\-blocksxor\fR
|
||||
.IP
|
||||
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)
|
||||
.HP
|
||||
\fB\-coinstatsindex\fR
|
||||
.IP
|
||||
Maintain coinstats index used by the gettxoutsetinfo RPC (default: 0)
|
||||
.HP
|
||||
\fB\-conf=\fR<file>
|
||||
.IP
|
||||
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)
|
||||
.HP
|
||||
\fB\-daemon\fR
|
||||
.IP
|
||||
Run in the background as a daemon and accept commands (default: 0)
|
||||
.HP
|
||||
\fB\-daemonwait\fR
|
||||
.IP
|
||||
Wait for initialization to be finished before exiting. This implies
|
||||
\fB\-daemon\fR (default: 0)
|
||||
.HP
|
||||
\fB\-datadir=\fR<dir>
|
||||
.IP
|
||||
Specify data directory
|
||||
.HP
|
||||
\fB\-dbcache=\fR<n>
|
||||
.IP
|
||||
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 \fB\-maxmempool\fR).
|
||||
.HP
|
||||
\fB\-debuglogfile=\fR<file>
|
||||
.IP
|
||||
Specify location of debug log file (default: debug.log). Relative paths
|
||||
will be prefixed by a net\-specific datadir location. Pass
|
||||
\fB\-nodebuglogfile\fR to disable writing the log to a file.
|
||||
.HP
|
||||
\fB\-help\fR
|
||||
.IP
|
||||
Print this help message and exit (also \fB\-h\fR or \-?)
|
||||
.HP
|
||||
\fB\-includeconf=\fR<file>
|
||||
.IP
|
||||
Specify additional configuration file, relative to the \fB\-datadir\fR path
|
||||
(only useable from configuration file, not command line)
|
||||
.HP
|
||||
\fB\-loadblock=\fR<file>
|
||||
.IP
|
||||
Imports blocks from external file on startup
|
||||
.HP
|
||||
\fB\-maxmempool=\fR<n>
|
||||
.IP
|
||||
Keep the transaction memory pool below <n> megabytes (default: 300)
|
||||
.HP
|
||||
\fB\-maxorphantx=\fR<n>
|
||||
.IP
|
||||
Keep at most <n> unconnectable transactions in memory (default: 100)
|
||||
.HP
|
||||
\fB\-mempoolexpiry=\fR<n>
|
||||
.IP
|
||||
Do not keep transactions in the mempool longer than <n> hours (default:
|
||||
336)
|
||||
.HP
|
||||
\fB\-par=\fR<n>
|
||||
.IP
|
||||
Set the number of script verification threads (0 = auto, up to 15, <0 =
|
||||
leave that many cores free, default: 0)
|
||||
.HP
|
||||
\fB\-persistmempool\fR
|
||||
.IP
|
||||
Whether to save the mempool on shutdown and load on restart (default: 1)
|
||||
.HP
|
||||
\fB\-persistmempoolv1\fR
|
||||
.IP
|
||||
Whether a mempool.dat file created by \fB\-persistmempool\fR or the savemempool
|
||||
RPC will be written in the legacy format (version 1) or the
|
||||
current format (version 2). This temporary option will be removed
|
||||
in the future. (default: 0)
|
||||
.HP
|
||||
\fB\-pid=\fR<file>
|
||||
.IP
|
||||
Specify pid file. Relative paths will be prefixed by a net\-specific
|
||||
datadir location. (default: bitcoind.pid)
|
||||
.HP
|
||||
\fB\-prune=\fR<n>
|
||||
.IP
|
||||
Reduce storage requirements by enabling pruning (deleting) of old
|
||||
blocks. This allows the pruneblockchain RPC to be called to
|
||||
delete specific blocks and enables automatic pruning of old
|
||||
blocks if a target size in MiB is provided. This mode is
|
||||
incompatible with \fB\-txindex\fR. Warning: Reverting this setting
|
||||
requires re\-downloading the entire blockchain. (default: 0 =
|
||||
disable pruning blocks, 1 = allow manual pruning via RPC, >=550 =
|
||||
automatically prune block files to stay under the specified
|
||||
target size in MiB)
|
||||
.HP
|
||||
\fB\-reindex\fR
|
||||
.IP
|
||||
If enabled, wipe chain state and block index, and rebuild them from
|
||||
blk*.dat files on disk. Also wipe and rebuild other optional
|
||||
indexes that are active. If an assumeutxo snapshot was loaded,
|
||||
its chainstate will be wiped as well. The snapshot can then be
|
||||
reloaded via RPC.
|
||||
.HP
|
||||
\fB\-reindex\-chainstate\fR
|
||||
.IP
|
||||
If enabled, wipe chain state, and rebuild it from blk*.dat files on
|
||||
disk. If an assumeutxo snapshot was loaded, its chainstate will
|
||||
be wiped as well. The snapshot can then be reloaded via RPC.
|
||||
.HP
|
||||
\fB\-settings=\fR<file>
|
||||
.IP
|
||||
Specify path to dynamic settings data file. Can be disabled with
|
||||
\fB\-nosettings\fR. File is written at runtime and not meant to be
|
||||
edited by users (use bitcoin.conf instead for custom settings).
|
||||
Relative paths will be prefixed by datadir location. (default:
|
||||
settings.json)
|
||||
.HP
|
||||
\fB\-shutdownnotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command immediately before beginning shutdown. The need for
|
||||
shutdown may be urgent, so be careful not to delay it long (if
|
||||
the command doesn't require interaction with the server, consider
|
||||
having it fork into the background).
|
||||
.HP
|
||||
\fB\-startupnotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command on startup.
|
||||
.HP
|
||||
\fB\-txindex\fR
|
||||
.IP
|
||||
Maintain a full transaction index, used by the getrawtransaction rpc
|
||||
call (default: 0)
|
||||
.HP
|
||||
\fB\-version\fR
|
||||
.IP
|
||||
Print version and exit
|
||||
.PP
|
||||
Connection options:
|
||||
.HP
|
||||
\fB\-addnode=\fR<ip>
|
||||
.IP
|
||||
Add a node to connect to and attempt to keep the connection open (see
|
||||
the addnode RPC help for more info). This option can be specified
|
||||
multiple times to add multiple nodes; connections are limited to
|
||||
8 at a time and are counted separately from the \fB\-maxconnections\fR
|
||||
limit.
|
||||
.HP
|
||||
\fB\-asmap=\fR<file>
|
||||
.IP
|
||||
Specify asn mapping used for bucketing of the peers (default:
|
||||
ip_asn.map). Relative paths will be prefixed by the net\-specific
|
||||
datadir location.
|
||||
.HP
|
||||
\fB\-bantime=\fR<n>
|
||||
.IP
|
||||
Default duration (in seconds) of manually configured bans (default:
|
||||
86400)
|
||||
.HP
|
||||
\fB\-bind=\fR<addr>[:<port>][=onion]
|
||||
.IP
|
||||
Bind to given address and always listen on it (default: 0.0.0.0). Use
|
||||
[host]:port notation for IPv6. Append =onion to tag any incoming
|
||||
connections to that address and port as incoming Tor connections
|
||||
(default: 127.0.0.1:8334=onion, testnet3: 127.0.0.1:18334=onion,
|
||||
testnet4: 127.0.0.1:48334=onion, signet: 127.0.0.1:38334=onion,
|
||||
regtest: 127.0.0.1:18445=onion)
|
||||
.HP
|
||||
\fB\-cjdnsreachable\fR
|
||||
.IP
|
||||
If set, then this host is configured for CJDNS (connecting to fc00::/8
|
||||
addresses would lead us to the CJDNS network, see doc/cjdns.md)
|
||||
(default: 0)
|
||||
.HP
|
||||
\fB\-connect=\fR<ip>
|
||||
.IP
|
||||
Connect only to the specified node; \fB\-noconnect\fR disables automatic
|
||||
connections (the rules for this peer are the same as for
|
||||
\fB\-addnode\fR). This option can be specified multiple times to connect
|
||||
to multiple nodes.
|
||||
.HP
|
||||
\fB\-discover\fR
|
||||
.IP
|
||||
Discover own IP addresses (default: 1 when listening and no \fB\-externalip\fR
|
||||
or \fB\-proxy\fR)
|
||||
.HP
|
||||
\fB\-dns\fR
|
||||
.IP
|
||||
Allow DNS lookups for \fB\-addnode\fR, \fB\-seednode\fR and \fB\-connect\fR (default: 1)
|
||||
.HP
|
||||
\fB\-dnsseed\fR
|
||||
.IP
|
||||
Query for peer addresses via DNS lookup, if low on addresses (default: 1
|
||||
unless \fB\-connect\fR used or \fB\-maxconnections\fR=\fI\,0\/\fR)
|
||||
.HP
|
||||
\fB\-externalip=\fR<ip>
|
||||
.IP
|
||||
Specify your own public address
|
||||
.HP
|
||||
\fB\-fixedseeds\fR
|
||||
.IP
|
||||
Allow fixed seeds if DNS seeds don't provide peers (default: 1)
|
||||
.HP
|
||||
\fB\-forcednsseed\fR
|
||||
.IP
|
||||
Always query for peer addresses via DNS lookup (default: 0)
|
||||
.HP
|
||||
\fB\-i2pacceptincoming\fR
|
||||
.IP
|
||||
Whether to accept inbound I2P connections (default: 1). Ignored if
|
||||
\fB\-i2psam\fR is not set. Listening for inbound I2P connections is done
|
||||
through the SAM proxy, not by binding to a local address and
|
||||
port.
|
||||
.HP
|
||||
\fB\-i2psam=\fR<ip:port>
|
||||
.IP
|
||||
I2P SAM proxy to reach I2P peers and accept I2P connections (default:
|
||||
none)
|
||||
.HP
|
||||
\fB\-listen\fR
|
||||
.IP
|
||||
Accept connections from outside (default: 1 if no \fB\-proxy\fR, \fB\-connect\fR or
|
||||
\fB\-maxconnections\fR=\fI\,0\/\fR)
|
||||
.HP
|
||||
\fB\-listenonion\fR
|
||||
.IP
|
||||
Automatically create Tor onion service (default: 1)
|
||||
.HP
|
||||
\fB\-maxconnections=\fR<n>
|
||||
.IP
|
||||
Maintain at most <n> automatic connections to peers (default: 125). This
|
||||
limit does not apply to connections manually added via \fB\-addnode\fR
|
||||
or the addnode RPC, which have a separate limit of 8.
|
||||
.HP
|
||||
\fB\-maxreceivebuffer=\fR<n>
|
||||
.IP
|
||||
Maximum per\-connection receive buffer, <n>*1000 bytes (default: 5000)
|
||||
.HP
|
||||
\fB\-maxsendbuffer=\fR<n>
|
||||
.IP
|
||||
Maximum per\-connection memory usage for the send buffer, <n>*1000 bytes
|
||||
(default: 1000)
|
||||
.HP
|
||||
\fB\-maxuploadtarget=\fR<n>
|
||||
.IP
|
||||
Tries to keep outbound traffic under the given target per 24h. Limit
|
||||
does not apply to peers with 'download' permission or blocks
|
||||
created within past week. 0 = no limit (default: 0M). Optional
|
||||
suffix units [k|K|m|M|g|G|t|T] (default: M). Lowercase is 1000
|
||||
base while uppercase is 1024 base
|
||||
.HP
|
||||
\fB\-natpmp\fR
|
||||
.IP
|
||||
Use PCP or NAT\-PMP to map the listening port (default: 0)
|
||||
.HP
|
||||
\fB\-networkactive\fR
|
||||
.IP
|
||||
Enable all P2P network activity (default: 1). Can be changed by the
|
||||
setnetworkactive RPC command
|
||||
.HP
|
||||
\fB\-onion=\fR<ip:port|path>
|
||||
.IP
|
||||
Use separate SOCKS5 proxy to reach peers via Tor onion services, set
|
||||
\fB\-noonion\fR to disable (default: \fB\-proxy\fR). May be a local file path
|
||||
prefixed with 'unix:'.
|
||||
.HP
|
||||
\fB\-onlynet=\fR<net>
|
||||
.IP
|
||||
Make automatic outbound connections only to network <net> (ipv4, ipv6,
|
||||
onion, i2p, cjdns). Inbound and manual connections are not
|
||||
affected by this option. It can be specified multiple times to
|
||||
allow multiple networks.
|
||||
.HP
|
||||
\fB\-peerblockfilters\fR
|
||||
.IP
|
||||
Serve compact block filters to peers per BIP 157 (default: 0)
|
||||
.HP
|
||||
\fB\-peerbloomfilters\fR
|
||||
.IP
|
||||
Support filtering of blocks and transaction with bloom filters (default:
|
||||
0)
|
||||
.HP
|
||||
\fB\-port=\fR<port>
|
||||
.IP
|
||||
Listen for connections on <port> (default: 8333, testnet3: 18333,
|
||||
testnet4: 48333, signet: 38333, regtest: 18444). Not relevant for
|
||||
I2P (see doc/i2p.md). If set to a value x, the default onion
|
||||
listening port will be set to x+1.
|
||||
.HP
|
||||
\fB\-proxy=\fR<ip:port|path>
|
||||
.IP
|
||||
Connect through SOCKS5 proxy, set \fB\-noproxy\fR to disable (default:
|
||||
disabled). May be a local file path prefixed with 'unix:' if the
|
||||
proxy supports it.
|
||||
.HP
|
||||
\fB\-proxyrandomize\fR
|
||||
.IP
|
||||
Randomize credentials for every proxy connection. This enables Tor
|
||||
stream isolation (default: 1)
|
||||
.HP
|
||||
\fB\-seednode=\fR<ip>
|
||||
.IP
|
||||
Connect to a node to retrieve peer addresses, and disconnect. This
|
||||
option can be specified multiple times to connect to multiple
|
||||
nodes. During startup, seednodes will be tried before dnsseeds.
|
||||
.HP
|
||||
\fB\-timeout=\fR<n>
|
||||
.IP
|
||||
Specify socket connection timeout in milliseconds. If an initial attempt
|
||||
to connect is unsuccessful after this amount of time, drop it
|
||||
(minimum: 1, default: 5000)
|
||||
.HP
|
||||
\fB\-torcontrol=\fR<ip>:<port>
|
||||
.IP
|
||||
Tor control host and port to use if onion listening enabled (default:
|
||||
127.0.0.1:9051). If no port is specified, the default port of
|
||||
9051 will be used.
|
||||
.HP
|
||||
\fB\-torpassword=\fR<pass>
|
||||
.IP
|
||||
Tor control port password (default: empty)
|
||||
.HP
|
||||
\fB\-v2transport\fR
|
||||
.IP
|
||||
Support v2 transport (default: 1)
|
||||
.HP
|
||||
\fB\-whitebind=\fR<[permissions@]addr>
|
||||
.IP
|
||||
Bind to the given address and add permission flags to the peers
|
||||
connecting to it. Use [host]:port notation for IPv6. Allowed
|
||||
permissions: bloomfilter (allow requesting BIP37 filtered blocks
|
||||
and transactions), noban (do not ban for misbehavior; implies
|
||||
download), forcerelay (relay transactions that are already in the
|
||||
mempool; implies relay), relay (relay even in \fB\-blocksonly\fR mode,
|
||||
and unlimited transaction announcements), mempool (allow
|
||||
requesting BIP35 mempool contents), download (allow getheaders
|
||||
during IBD, no disconnect after maxuploadtarget limit), addr
|
||||
(responses to GETADDR avoid hitting the cache and contain random
|
||||
records with the most up\-to\-date info). Specify multiple
|
||||
permissions separated by commas (default:
|
||||
download,noban,mempool,relay). Can be specified multiple times.
|
||||
.HP
|
||||
\fB\-whitelist=\fR<[permissions@]IP address or network>
|
||||
.IP
|
||||
Add permission flags to the peers using the given IP address (e.g.
|
||||
1.2.3.4) or CIDR\-notated network (e.g. 1.2.3.0/24). Uses the same
|
||||
permissions as \fB\-whitebind\fR. Additional flags "in" and "out"
|
||||
control whether permissions apply to incoming connections and/or
|
||||
manual (default: incoming only). Can be specified multiple times.
|
||||
.PP
|
||||
Wallet options:
|
||||
.HP
|
||||
\fB\-addresstype\fR
|
||||
.IP
|
||||
What type of addresses to use ("legacy", "p2sh\-segwit", "bech32", or
|
||||
"bech32m", default: "bech32")
|
||||
.HP
|
||||
\fB\-avoidpartialspends\fR
|
||||
.IP
|
||||
Group outputs by address, selecting many (possibly all) or none, instead
|
||||
of selecting on a per\-output basis. Privacy is improved as
|
||||
addresses are mostly swept with fewer transactions and outputs
|
||||
are aggregated in clean change addresses. It may result in higher
|
||||
fees due to less optimal coin selection caused by this added
|
||||
limitation and possibly a larger\-than\-necessary number of inputs
|
||||
being used. Always enabled for wallets with "avoid_reuse"
|
||||
enabled, otherwise default: 0.
|
||||
.HP
|
||||
\fB\-changetype\fR
|
||||
.IP
|
||||
What type of change to use ("legacy", "p2sh\-segwit", "bech32", or
|
||||
"bech32m"). Default is "legacy" when \fB\-addresstype\fR=\fI\,legacy\/\fR, else it
|
||||
is an implementation detail.
|
||||
.HP
|
||||
\fB\-consolidatefeerate=\fR<amt>
|
||||
.IP
|
||||
The maximum feerate (in BTC/kvB) at which transaction building may use
|
||||
more inputs than strictly necessary so that the wallet's UTXO
|
||||
pool can be reduced (default: 0.0001).
|
||||
.HP
|
||||
\fB\-disablewallet\fR
|
||||
.IP
|
||||
Do not load the wallet and disable wallet RPC calls
|
||||
.HP
|
||||
\fB\-discardfee=\fR<amt>
|
||||
.IP
|
||||
The fee rate (in BTC/kvB) that indicates your tolerance for discarding
|
||||
change by adding it to the fee (default: 0.0001). Note: An output
|
||||
is discarded if it is dust at this rate, but we will always
|
||||
discard up to the dust relay fee and a discard fee above that is
|
||||
limited by the fee estimate for the longest target
|
||||
.HP
|
||||
\fB\-fallbackfee=\fR<amt>
|
||||
.IP
|
||||
A fee rate (in BTC/kvB) that will be used when fee estimation has
|
||||
insufficient data. 0 to entirely disable the fallbackfee feature.
|
||||
(default: 0.00)
|
||||
.HP
|
||||
\fB\-keypool=\fR<n>
|
||||
.IP
|
||||
Set key pool size to <n> (default: 1000). Warning: Smaller sizes may
|
||||
increase the risk of losing funds when restoring from an old
|
||||
backup, if none of the addresses in the original keypool have
|
||||
been used.
|
||||
.HP
|
||||
\fB\-maxapsfee=\fR<n>
|
||||
.IP
|
||||
Spend up to this amount in additional (absolute) fees (in BTC) if it
|
||||
allows the use of partial spend avoidance (default: 0.00)
|
||||
.HP
|
||||
\fB\-mintxfee=\fR<amt>
|
||||
.IP
|
||||
Fee rates (in BTC/kvB) smaller than this are considered zero fee for
|
||||
transaction creation (default: 0.00001)
|
||||
.HP
|
||||
\fB\-paytxfee=\fR<amt>
|
||||
.IP
|
||||
Fee rate (in BTC/kvB) to add to transactions you send (default: 0.00)
|
||||
.HP
|
||||
\fB\-signer=\fR<cmd>
|
||||
.IP
|
||||
External signing tool, see doc/external\-signer.md
|
||||
.HP
|
||||
\fB\-spendzeroconfchange\fR
|
||||
.IP
|
||||
Spend unconfirmed change when sending transactions (default: 1)
|
||||
.HP
|
||||
\fB\-txconfirmtarget=\fR<n>
|
||||
.IP
|
||||
If paytxfee is not set, include enough fee so transactions begin
|
||||
confirmation on average within n blocks (default: 6)
|
||||
.HP
|
||||
\fB\-wallet=\fR<path>
|
||||
.IP
|
||||
Specify wallet path to load at startup. Can be used multiple times to
|
||||
load multiple wallets. Path is to a directory containing wallet
|
||||
data and log files. If the path is not absolute, it is
|
||||
interpreted relative to <walletdir>. This only loads existing
|
||||
wallets and does not create new ones. For backwards compatibility
|
||||
this also accepts names of existing top\-level data files in
|
||||
<walletdir>.
|
||||
.HP
|
||||
\fB\-walletbroadcast\fR
|
||||
.IP
|
||||
Make the wallet broadcast transactions (default: 1)
|
||||
.HP
|
||||
\fB\-walletdir=\fR<dir>
|
||||
.IP
|
||||
Specify directory to hold wallets (default: <datadir>/wallets if it
|
||||
exists, otherwise <datadir>)
|
||||
.HP
|
||||
\fB\-walletnotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command when a wallet transaction changes. %s in cmd is replaced
|
||||
by TxID, %w is replaced by wallet name, %b is replaced by the
|
||||
hash of the block including the transaction (set to 'unconfirmed'
|
||||
if the transaction is not included) and %h is replaced by the
|
||||
block height (\fB\-1\fR if not included). %w is not currently
|
||||
implemented on windows. On systems where %w is supported, it
|
||||
should NOT be quoted because this would break shell escaping used
|
||||
to invoke the command.
|
||||
.HP
|
||||
\fB\-walletrbf\fR
|
||||
.IP
|
||||
Send transactions with full\-RBF opt\-in enabled (RPC only, default: 1)
|
||||
.PP
|
||||
ZeroMQ notification options:
|
||||
.HP
|
||||
\fB\-zmqpubhashblock=\fR<address>
|
||||
.IP
|
||||
Enable publish hash block in <address>
|
||||
.HP
|
||||
\fB\-zmqpubhashblockhwm=\fR<n>
|
||||
.IP
|
||||
Set publish hash block outbound message high water mark (default: 1000)
|
||||
.HP
|
||||
\fB\-zmqpubhashtx=\fR<address>
|
||||
.IP
|
||||
Enable publish hash transaction in <address>
|
||||
.HP
|
||||
\fB\-zmqpubhashtxhwm=\fR<n>
|
||||
.IP
|
||||
Set publish hash transaction outbound message high water mark (default:
|
||||
1000)
|
||||
.HP
|
||||
\fB\-zmqpubrawblock=\fR<address>
|
||||
.IP
|
||||
Enable publish raw block in <address>
|
||||
.HP
|
||||
\fB\-zmqpubrawblockhwm=\fR<n>
|
||||
.IP
|
||||
Set publish raw block outbound message high water mark (default: 1000)
|
||||
.HP
|
||||
\fB\-zmqpubrawtx=\fR<address>
|
||||
.IP
|
||||
Enable publish raw transaction in <address>
|
||||
.HP
|
||||
\fB\-zmqpubrawtxhwm=\fR<n>
|
||||
.IP
|
||||
Set publish raw transaction outbound message high water mark (default:
|
||||
1000)
|
||||
.HP
|
||||
\fB\-zmqpubsequence=\fR<address>
|
||||
.IP
|
||||
Enable publish hash block and tx sequence in <address>
|
||||
.HP
|
||||
\fB\-zmqpubsequencehwm=\fR<n>
|
||||
.IP
|
||||
Set publish hash sequence message high water mark (default: 1000)
|
||||
.PP
|
||||
Debugging/Testing options:
|
||||
.HP
|
||||
\fB\-debug=\fR<category>
|
||||
.IP
|
||||
Output debug and trace logging (default: \fB\-nodebug\fR, supplying <category>
|
||||
is optional). If <category> is not supplied or if <category> is 1
|
||||
or "all", output all debug logging. If <category> is 0 or "none",
|
||||
any other categories are ignored. Other valid values for
|
||||
<category> are: addrman, bench, blockstorage, cmpctblock, coindb,
|
||||
estimatefee, http, i2p, ipc, leveldb, libevent, mempool,
|
||||
mempoolrej, net, proxy, prune, qt, rand, reindex, rpc, scan,
|
||||
selectcoins, tor, txpackages, txreconciliation, validation,
|
||||
walletdb, zmq. This option can be specified multiple times to
|
||||
output multiple categories.
|
||||
.HP
|
||||
\fB\-debugexclude=\fR<category>
|
||||
.IP
|
||||
Exclude debug and trace logging for a category. Can be used in
|
||||
conjunction with \fB\-debug\fR=\fI\,1\/\fR to output debug and trace logging for
|
||||
all categories except the specified category. This option can be
|
||||
specified multiple times to exclude multiple categories. This
|
||||
takes priority over "\-debug"
|
||||
.HP
|
||||
\fB\-help\-debug\fR
|
||||
.IP
|
||||
Print help message with debugging options and exit
|
||||
.HP
|
||||
\fB\-logips\fR
|
||||
.IP
|
||||
Include IP addresses in debug output (default: 0)
|
||||
.HP
|
||||
\fB\-loglevelalways\fR
|
||||
.IP
|
||||
Always prepend a category and level (default: 0)
|
||||
.HP
|
||||
\fB\-logsourcelocations\fR
|
||||
.IP
|
||||
Prepend debug output with name of the originating source location
|
||||
(source file, line number and function name) (default: 0)
|
||||
.HP
|
||||
\fB\-logthreadnames\fR
|
||||
.IP
|
||||
Prepend debug output with name of the originating thread (default: 0)
|
||||
.HP
|
||||
\fB\-logtimestamps\fR
|
||||
.IP
|
||||
Prepend debug output with timestamp (default: 1)
|
||||
.HP
|
||||
\fB\-maxtxfee=\fR<amt>
|
||||
.IP
|
||||
Maximum total fees (in BTC) to use in a single wallet transaction;
|
||||
setting this too low may abort large transactions (default: 0.10)
|
||||
.HP
|
||||
\fB\-printtoconsole\fR
|
||||
.IP
|
||||
Send trace/debug info to console (default: 1 when no \fB\-daemon\fR. To disable
|
||||
logging to file, set \fB\-nodebuglogfile\fR)
|
||||
.HP
|
||||
\fB\-shrinkdebugfile\fR
|
||||
.IP
|
||||
Shrink debug.log file on client startup (default: 1 when no \fB\-debug\fR)
|
||||
.HP
|
||||
\fB\-uacomment=\fR<cmt>
|
||||
.IP
|
||||
Append comment to the user agent string
|
||||
.PP
|
||||
Chain selection options:
|
||||
.HP
|
||||
\fB\-chain=\fR<chain>
|
||||
.IP
|
||||
Use the chain <chain> (default: main). Allowed values: main, test,
|
||||
testnet4, signet, regtest
|
||||
.HP
|
||||
\fB\-signet\fR
|
||||
.IP
|
||||
Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
|
||||
is defined by the \fB\-signetchallenge\fR parameter
|
||||
.HP
|
||||
\fB\-signetchallenge\fR
|
||||
.IP
|
||||
Blocks must satisfy the given script to be considered valid (only for
|
||||
signet networks; defaults to the global default signet test
|
||||
network challenge)
|
||||
.HP
|
||||
\fB\-signetseednode\fR
|
||||
.IP
|
||||
Specify a seed node for the signet network, in the hostname[:port]
|
||||
format, e.g. sig.net:1234 (may be used multiple times to specify
|
||||
multiple seed nodes; defaults to the global default signet test
|
||||
network seed node(s))
|
||||
.HP
|
||||
\fB\-testnet\fR
|
||||
.IP
|
||||
Use the testnet3 chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR. Support for testnet3
|
||||
is deprecated and will be removed in an upcoming release.
|
||||
Consider moving to testnet4 now by using \fB\-testnet4\fR.
|
||||
.HP
|
||||
\fB\-testnet4\fR
|
||||
.IP
|
||||
Use the testnet4 chain. Equivalent to \fB\-chain\fR=\fI\,testnet4\/\fR.
|
||||
.PP
|
||||
Node relay options:
|
||||
.HP
|
||||
\fB\-bytespersigop\fR
|
||||
.IP
|
||||
Equivalent bytes per sigop in transactions for relay and mining
|
||||
(default: 20)
|
||||
.HP
|
||||
\fB\-datacarrier\fR
|
||||
.IP
|
||||
Relay and mine data carrier transactions (default: 1)
|
||||
.HP
|
||||
\fB\-datacarriersize\fR
|
||||
.IP
|
||||
Relay and mine transactions whose data\-carrying raw scriptPubKey is of
|
||||
this size or less (default: 83)
|
||||
.HP
|
||||
\fB\-minrelaytxfee=\fR<amt>
|
||||
.IP
|
||||
Fees (in BTC/kvB) smaller than this are considered zero fee for
|
||||
relaying, mining and transaction creation (default: 0.00001)
|
||||
.HP
|
||||
\fB\-permitbaremultisig\fR
|
||||
.IP
|
||||
Relay transactions creating non\-P2SH multisig outputs (default: 1)
|
||||
.HP
|
||||
\fB\-whitelistforcerelay\fR
|
||||
.IP
|
||||
Add 'forcerelay' permission to whitelisted peers with default
|
||||
permissions. This will relay transactions even if the
|
||||
transactions were already in the mempool. (default: 0)
|
||||
.HP
|
||||
\fB\-whitelistrelay\fR
|
||||
.IP
|
||||
Add 'relay' permission to whitelisted peers with default permissions.
|
||||
This will accept relayed transactions even when not relaying
|
||||
transactions (default: 1)
|
||||
.PP
|
||||
Block creation options:
|
||||
.HP
|
||||
\fB\-blockmaxweight=\fR<n>
|
||||
.IP
|
||||
Set maximum BIP141 block weight (default: 4000000)
|
||||
.HP
|
||||
\fB\-blockmintxfee=\fR<amt>
|
||||
.IP
|
||||
Set lowest fee rate (in BTC/kvB) for transactions to be included in
|
||||
block creation. (default: 0.00001)
|
||||
.HP
|
||||
\fB\-blockreservedweight=\fR<n>
|
||||
.IP
|
||||
Reserve space for the fixed\-size block header plus the largest coinbase
|
||||
transaction the mining software may add to the block. (default:
|
||||
8000).
|
||||
.PP
|
||||
RPC server options:
|
||||
.HP
|
||||
\fB\-rest\fR
|
||||
.IP
|
||||
Accept public REST requests (default: 0)
|
||||
.HP
|
||||
\fB\-rpcallowip=\fR<ip>
|
||||
.IP
|
||||
Allow JSON\-RPC connections from specified source. Valid values for <ip>
|
||||
are a single IP (e.g. 1.2.3.4), a network/netmask (e.g.
|
||||
1.2.3.4/255.255.255.0), a network/CIDR (e.g. 1.2.3.4/24), all
|
||||
ipv4 (0.0.0.0/0), or all ipv6 (::/0). This option can be
|
||||
specified multiple times
|
||||
.HP
|
||||
\fB\-rpcauth=\fR<userpw>
|
||||
.IP
|
||||
Username and HMAC\-SHA\-256 hashed password for JSON\-RPC connections. The
|
||||
field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A
|
||||
canonical python script is included in share/rpcauth. The client
|
||||
then connects normally using the
|
||||
rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This
|
||||
option can be specified multiple times
|
||||
.HP
|
||||
\fB\-rpcbind=\fR<addr>[:port]
|
||||
.IP
|
||||
Bind to given address to listen for JSON\-RPC connections. Do not expose
|
||||
the RPC server to untrusted networks such as the public internet!
|
||||
This option is ignored unless \fB\-rpcallowip\fR is also passed. Port is
|
||||
optional and overrides \fB\-rpcport\fR. Use [host]:port notation for
|
||||
IPv6. This option can be specified multiple times (default:
|
||||
127.0.0.1 and ::1 i.e., localhost)
|
||||
.HP
|
||||
\fB\-rpccookiefile=\fR<loc>
|
||||
.IP
|
||||
Location of the auth cookie. Relative paths will be prefixed by a
|
||||
net\-specific datadir location. (default: data dir)
|
||||
.HP
|
||||
\fB\-rpccookieperms=\fR<readable\-by>
|
||||
.IP
|
||||
Set permissions on the RPC auth cookie file so that it is readable by
|
||||
[owner|group|all] (default: owner [via umask 0077])
|
||||
.HP
|
||||
\fB\-rpcpassword=\fR<pw>
|
||||
.IP
|
||||
Password for JSON\-RPC connections
|
||||
.HP
|
||||
\fB\-rpcport=\fR<port>
|
||||
.IP
|
||||
Listen for JSON\-RPC connections on <port> (default: 8332, testnet3:
|
||||
18332, testnet4: 48332, signet: 38332, regtest: 18443)
|
||||
.HP
|
||||
\fB\-rpcthreads=\fR<n>
|
||||
.IP
|
||||
Set the number of threads to service RPC calls (default: 16)
|
||||
.HP
|
||||
\fB\-rpcuser=\fR<user>
|
||||
.IP
|
||||
Username for JSON\-RPC connections
|
||||
.HP
|
||||
\fB\-rpcwhitelist=\fR<whitelist>
|
||||
.IP
|
||||
Set a whitelist to filter incoming RPC calls for a specific user. The
|
||||
field <whitelist> comes in the format: <USERNAME>:<rpc 1>,<rpc
|
||||
2>,...,<rpc n>. If multiple whitelists are set for a given user,
|
||||
they are set\-intersected. See \fB\-rpcwhitelistdefault\fR documentation
|
||||
for information on default whitelist behavior.
|
||||
.HP
|
||||
\fB\-rpcwhitelistdefault\fR
|
||||
.IP
|
||||
Sets default behavior for rpc whitelisting. Unless rpcwhitelistdefault
|
||||
is set to 0, if any \fB\-rpcwhitelist\fR is set, the rpc server acts as
|
||||
if all rpc users are subject to empty\-unless\-otherwise\-specified
|
||||
whitelists. If rpcwhitelistdefault is set to 1 and no
|
||||
\fB\-rpcwhitelist\fR is set, rpc server acts as if all rpc users are
|
||||
subject to empty whitelists.
|
||||
.HP
|
||||
\fB\-server\fR
|
||||
.IP
|
||||
Accept command line and JSON\-RPC commands
|
||||
.PP
|
||||
UI Options:
|
||||
.HP
|
||||
\fB\-choosedatadir\fR
|
||||
.IP
|
||||
Choose data directory on startup (default: 0)
|
||||
.HP
|
||||
\fB\-lang=\fR<lang>
|
||||
.IP
|
||||
Set language, for example "de_DE" (default: system locale)
|
||||
.HP
|
||||
\fB\-min\fR
|
||||
.IP
|
||||
Start minimized
|
||||
.HP
|
||||
\fB\-resetguisettings\fR
|
||||
.IP
|
||||
Reset all settings changed in the GUI
|
||||
.HP
|
||||
\fB\-splash\fR
|
||||
.IP
|
||||
Show splash screen on startup (default: 1)
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) 2009-2025 The Bitcoin Core developers
|
||||
|
||||
This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
|
||||
Please contribute if you find Bitcoin Core useful. Visit
|
||||
<https://bitcoincore.org/> for further information about the software.
|
||||
The source code is available from <https://github.com/bitcoin/bitcoin>.
|
||||
|
||||
This is experimental software.
|
||||
Distributed under the MIT software license, see the accompanying file COPYING
|
||||
or <https://opensource.org/licenses/MIT>
|
||||
.SH "SEE ALSO"
|
||||
bitcoind(1), bitcoin-cli(1), bitcoin-tx(1), bitcoin-wallet(1), bitcoin-util(1), bitcoin-qt(1)
|
||||
|
||||
@@ -1,5 +1,159 @@
|
||||
.TH BITCOIN-TX "1"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
|
||||
.TH BITCOIN-TX "1" "April 2025" "bitcoin-tx v29.0.0" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-tx \- manual page for bitcoin-tx
|
||||
bitcoin-tx \- manual page for bitcoin-tx v29.0.0
|
||||
.SH SYNOPSIS
|
||||
.B bitcoin-tx
|
||||
[\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR]
|
||||
.br
|
||||
.B bitcoin-tx
|
||||
[\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR]
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core bitcoin\-tx utility version v29.0.0
|
||||
.PP
|
||||
The bitcoin\-tx tool is used for creating and modifying bitcoin transactions.
|
||||
.PP
|
||||
bitcoin\-tx can be used with "<hex\-tx> [commands]" to update a hex\-encoded bitcoin transaction, or with "\-create [commands]" to create a hex\-encoded bitcoin transaction.
|
||||
.SH OPTIONS
|
||||
.HP
|
||||
\fB\-create\fR
|
||||
.IP
|
||||
Create new, empty TX.
|
||||
.HP
|
||||
\fB\-help\fR
|
||||
.IP
|
||||
Print this help message and exit (also \fB\-h\fR or \-?)
|
||||
.HP
|
||||
\fB\-json\fR
|
||||
.IP
|
||||
Select JSON output
|
||||
.HP
|
||||
\fB\-txid\fR
|
||||
.IP
|
||||
Output only the hex\-encoded transaction id of the resultant transaction.
|
||||
.HP
|
||||
\fB\-version\fR
|
||||
.IP
|
||||
Print version and exit
|
||||
.PP
|
||||
Debugging/Testing options:
|
||||
.PP
|
||||
Chain selection options:
|
||||
.HP
|
||||
\fB\-chain=\fR<chain>
|
||||
.IP
|
||||
Use the chain <chain> (default: main). Allowed values: main, test,
|
||||
testnet4, signet, regtest
|
||||
.HP
|
||||
\fB\-signet\fR
|
||||
.IP
|
||||
Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
|
||||
is defined by the \fB\-signetchallenge\fR parameter
|
||||
.HP
|
||||
\fB\-signetchallenge\fR
|
||||
.IP
|
||||
Blocks must satisfy the given script to be considered valid (only for
|
||||
signet networks; defaults to the global default signet test
|
||||
network challenge)
|
||||
.HP
|
||||
\fB\-signetseednode\fR
|
||||
.IP
|
||||
Specify a seed node for the signet network, in the hostname[:port]
|
||||
format, e.g. sig.net:1234 (may be used multiple times to specify
|
||||
multiple seed nodes; defaults to the global default signet test
|
||||
network seed node(s))
|
||||
.HP
|
||||
\fB\-testnet\fR
|
||||
.IP
|
||||
Use the testnet3 chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR. Support for testnet3
|
||||
is deprecated and will be removed in an upcoming release.
|
||||
Consider moving to testnet4 now by using \fB\-testnet4\fR.
|
||||
.HP
|
||||
\fB\-testnet4\fR
|
||||
.IP
|
||||
Use the testnet4 chain. Equivalent to \fB\-chain\fR=\fI\,testnet4\/\fR.
|
||||
.PP
|
||||
Commands:
|
||||
.IP
|
||||
delin=N
|
||||
.IP
|
||||
Delete input N from TX
|
||||
.IP
|
||||
delout=N
|
||||
.IP
|
||||
Delete output N from TX
|
||||
.IP
|
||||
in=TXID:VOUT(:SEQUENCE_NUMBER)
|
||||
.IP
|
||||
Add input to TX
|
||||
.IP
|
||||
locktime=N
|
||||
.IP
|
||||
Set TX lock time to N
|
||||
.IP
|
||||
nversion=N
|
||||
.IP
|
||||
Set TX version to N
|
||||
.IP
|
||||
outaddr=VALUE:ADDRESS
|
||||
.IP
|
||||
Add address\-based output to TX
|
||||
.IP
|
||||
outdata=[VALUE:]DATA
|
||||
.IP
|
||||
Add data\-based output to TX
|
||||
.IP
|
||||
outmultisig=VALUE:REQUIRED:PUBKEYS:PUBKEY1:PUBKEY2:....[:FLAGS]
|
||||
.IP
|
||||
Add Pay To n\-of\-m Multi\-sig output to TX. n = REQUIRED, m = PUBKEYS.
|
||||
Optionally add the "W" flag to produce a
|
||||
pay\-to\-witness\-script\-hash output. Optionally add the "S" flag to
|
||||
wrap the output in a pay\-to\-script\-hash.
|
||||
.IP
|
||||
outpubkey=VALUE:PUBKEY[:FLAGS]
|
||||
.IP
|
||||
Add pay\-to\-pubkey output to TX. Optionally add the "W" flag to produce a
|
||||
pay\-to\-witness\-pubkey\-hash output. Optionally add the "S" flag to
|
||||
wrap the output in a pay\-to\-script\-hash.
|
||||
.IP
|
||||
outscript=VALUE:SCRIPT[:FLAGS]
|
||||
.IP
|
||||
Add raw script output to TX. Optionally add the "W" flag to produce a
|
||||
pay\-to\-witness\-script\-hash output. Optionally add the "S" flag to
|
||||
wrap the output in a pay\-to\-script\-hash.
|
||||
.IP
|
||||
replaceable(=N)
|
||||
.IP
|
||||
Sets Replace\-By\-Fee (RBF) opt\-in sequence number for input N. If N is
|
||||
not provided, the command attempts to opt\-in all available inputs
|
||||
for RBF. If the transaction has no inputs, this option is
|
||||
ignored.
|
||||
.IP
|
||||
sign=SIGHASH\-FLAGS
|
||||
.IP
|
||||
Add zero or more signatures to transaction. This command requires JSON
|
||||
registers:prevtxs=JSON object, privatekeys=JSON object. See
|
||||
signrawtransactionwithkey docs for format of sighash flags, JSON
|
||||
objects.
|
||||
.PP
|
||||
Register Commands:
|
||||
.IP
|
||||
load=NAME:FILENAME
|
||||
.IP
|
||||
Load JSON file FILENAME into register NAME
|
||||
.IP
|
||||
set=NAME:JSON\-STRING
|
||||
.IP
|
||||
Set register NAME to given JSON\-STRING
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) 2009-2025 The Bitcoin Core developers
|
||||
|
||||
This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
|
||||
Please contribute if you find Bitcoin Core useful. Visit
|
||||
<https://bitcoincore.org/> for further information about the software.
|
||||
The source code is available from <https://github.com/bitcoin/bitcoin>.
|
||||
|
||||
This is experimental software.
|
||||
Distributed under the MIT software license, see the accompanying file COPYING
|
||||
or <https://opensource.org/licenses/MIT>
|
||||
.SH "SEE ALSO"
|
||||
bitcoind(1), bitcoin-cli(1), bitcoin-tx(1), bitcoin-wallet(1), bitcoin-util(1), bitcoin-qt(1)
|
||||
|
||||
@@ -1,5 +1,78 @@
|
||||
.TH BITCOIN-UTIL "1"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
|
||||
.TH BITCOIN-UTIL "1" "April 2025" "bitcoin-util v29.0.0" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-util \- manual page for bitcoin-util
|
||||
bitcoin-util \- manual page for bitcoin-util v29.0.0
|
||||
.SH SYNOPSIS
|
||||
.B bitcoin-util
|
||||
[\fI\,options\/\fR] [\fI\,command\/\fR]
|
||||
.br
|
||||
.B bitcoin-util
|
||||
[\fI\,options\/\fR] \fI\,grind <hex-block-header>\/\fR
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core bitcoin\-util utility version v29.0.0
|
||||
.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
|
||||
.HP
|
||||
\fB\-help\fR
|
||||
.IP
|
||||
Print this help message and exit (also \fB\-h\fR or \-?)
|
||||
.HP
|
||||
\fB\-version\fR
|
||||
.IP
|
||||
Print version and exit
|
||||
.PP
|
||||
Debugging/Testing options:
|
||||
.PP
|
||||
Chain selection options:
|
||||
.HP
|
||||
\fB\-chain=\fR<chain>
|
||||
.IP
|
||||
Use the chain <chain> (default: main). Allowed values: main, test,
|
||||
testnet4, signet, regtest
|
||||
.HP
|
||||
\fB\-signet\fR
|
||||
.IP
|
||||
Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
|
||||
is defined by the \fB\-signetchallenge\fR parameter
|
||||
.HP
|
||||
\fB\-signetchallenge\fR
|
||||
.IP
|
||||
Blocks must satisfy the given script to be considered valid (only for
|
||||
signet networks; defaults to the global default signet test
|
||||
network challenge)
|
||||
.HP
|
||||
\fB\-signetseednode\fR
|
||||
.IP
|
||||
Specify a seed node for the signet network, in the hostname[:port]
|
||||
format, e.g. sig.net:1234 (may be used multiple times to specify
|
||||
multiple seed nodes; defaults to the global default signet test
|
||||
network seed node(s))
|
||||
.HP
|
||||
\fB\-testnet\fR
|
||||
.IP
|
||||
Use the testnet3 chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR. Support for testnet3
|
||||
is deprecated and will be removed in an upcoming release.
|
||||
Consider moving to testnet4 now by using \fB\-testnet4\fR.
|
||||
.HP
|
||||
\fB\-testnet4\fR
|
||||
.IP
|
||||
Use the testnet4 chain. Equivalent to \fB\-chain\fR=\fI\,testnet4\/\fR.
|
||||
.PP
|
||||
Commands:
|
||||
.IP
|
||||
grind
|
||||
.IP
|
||||
Perform proof of work on hex header string
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) 2009-2025 The Bitcoin Core developers
|
||||
|
||||
This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
|
||||
Please contribute if you find Bitcoin Core useful. Visit
|
||||
<https://bitcoincore.org/> for further information about the software.
|
||||
The source code is available from <https://github.com/bitcoin/bitcoin>.
|
||||
|
||||
This is experimental software.
|
||||
Distributed under the MIT software license, see the accompanying file COPYING
|
||||
or <https://opensource.org/licenses/MIT>
|
||||
.SH "SEE ALSO"
|
||||
bitcoind(1), bitcoin-cli(1), bitcoin-tx(1), bitcoin-wallet(1), bitcoin-util(1), bitcoin-qt(1)
|
||||
|
||||
@@ -1,5 +1,136 @@
|
||||
.TH BITCOIN-WALLET "1"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
|
||||
.TH BITCOIN-WALLET "1" "April 2025" "bitcoin-wallet v29.0.0" "User Commands"
|
||||
.SH NAME
|
||||
bitcoin-wallet \- manual page for bitcoin-wallet
|
||||
bitcoin-wallet \- manual page for bitcoin-wallet v29.0.0
|
||||
.SH SYNOPSIS
|
||||
.B bitcoin-wallet
|
||||
[\fI\,options\/\fR] \fI\,<command>\/\fR
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core bitcoin\-wallet utility version v29.0.0
|
||||
.PP
|
||||
bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files.
|
||||
.PP
|
||||
By default bitcoin\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
|
||||
.PP
|
||||
To change the target wallet, use the \fB\-datadir\fR, \fB\-wallet\fR and (test)chain selection arguments.
|
||||
.SH OPTIONS
|
||||
.HP
|
||||
\fB\-datadir=\fR<dir>
|
||||
.IP
|
||||
Specify data directory
|
||||
.HP
|
||||
\fB\-descriptors\fR
|
||||
.IP
|
||||
Create descriptors wallet. Only for 'create'
|
||||
.HP
|
||||
\fB\-dumpfile=\fR<file name>
|
||||
.IP
|
||||
When used with 'dump', writes out the records to this file. When used
|
||||
with 'createfromdump', loads the records into a new wallet.
|
||||
.HP
|
||||
\fB\-format=\fR<format>
|
||||
.IP
|
||||
The format of the wallet file to create. Either "bdb" or "sqlite". Only
|
||||
used with 'createfromdump'
|
||||
.HP
|
||||
\fB\-help\fR
|
||||
.IP
|
||||
Print this help message and exit (also \fB\-h\fR or \-?)
|
||||
.HP
|
||||
\fB\-legacy\fR
|
||||
.IP
|
||||
Create legacy wallet. Only for 'create'
|
||||
.HP
|
||||
\fB\-version\fR
|
||||
.IP
|
||||
Print version and exit
|
||||
.HP
|
||||
\fB\-wallet=\fR<wallet\-name>
|
||||
.IP
|
||||
Specify wallet name
|
||||
.PP
|
||||
Debugging/Testing options:
|
||||
.HP
|
||||
\fB\-debug=\fR<category>
|
||||
.IP
|
||||
Output debugging information (default: 0).
|
||||
.HP
|
||||
\fB\-printtoconsole\fR
|
||||
.IP
|
||||
Send trace/debug info to console (default: 1 when no \fB\-debug\fR is true, 0
|
||||
otherwise).
|
||||
.HP
|
||||
\fB\-withinternalbdb\fR
|
||||
.IP
|
||||
Use the internal Berkeley DB parser when dumping a Berkeley DB wallet
|
||||
file (default: false)
|
||||
.PP
|
||||
Chain selection options:
|
||||
.HP
|
||||
\fB\-chain=\fR<chain>
|
||||
.IP
|
||||
Use the chain <chain> (default: main). Allowed values: main, test,
|
||||
testnet4, signet, regtest
|
||||
.HP
|
||||
\fB\-signet\fR
|
||||
.IP
|
||||
Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
|
||||
is defined by the \fB\-signetchallenge\fR parameter
|
||||
.HP
|
||||
\fB\-signetchallenge\fR
|
||||
.IP
|
||||
Blocks must satisfy the given script to be considered valid (only for
|
||||
signet networks; defaults to the global default signet test
|
||||
network challenge)
|
||||
.HP
|
||||
\fB\-signetseednode\fR
|
||||
.IP
|
||||
Specify a seed node for the signet network, in the hostname[:port]
|
||||
format, e.g. sig.net:1234 (may be used multiple times to specify
|
||||
multiple seed nodes; defaults to the global default signet test
|
||||
network seed node(s))
|
||||
.HP
|
||||
\fB\-testnet\fR
|
||||
.IP
|
||||
Use the testnet3 chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR. Support for testnet3
|
||||
is deprecated and will be removed in an upcoming release.
|
||||
Consider moving to testnet4 now by using \fB\-testnet4\fR.
|
||||
.HP
|
||||
\fB\-testnet4\fR
|
||||
.IP
|
||||
Use the testnet4 chain. Equivalent to \fB\-chain\fR=\fI\,testnet4\/\fR.
|
||||
.PP
|
||||
Commands:
|
||||
.IP
|
||||
create
|
||||
.IP
|
||||
Create new wallet file
|
||||
.IP
|
||||
createfromdump
|
||||
.IP
|
||||
Create new wallet file from dumped records
|
||||
.IP
|
||||
dump
|
||||
.IP
|
||||
Print out all of the wallet key\-value records
|
||||
.IP
|
||||
info
|
||||
.IP
|
||||
Get wallet info
|
||||
.IP
|
||||
salvage
|
||||
.IP
|
||||
Attempt to recover private keys from a corrupt wallet. Warning:
|
||||
\&'salvage' is experimental.
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) 2009-2025 The Bitcoin Core developers
|
||||
|
||||
This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
|
||||
Please contribute if you find Bitcoin Core useful. Visit
|
||||
<https://bitcoincore.org/> for further information about the software.
|
||||
The source code is available from <https://github.com/bitcoin/bitcoin>.
|
||||
|
||||
This is experimental software.
|
||||
Distributed under the MIT software license, see the accompanying file COPYING
|
||||
or <https://opensource.org/licenses/MIT>
|
||||
.SH "SEE ALSO"
|
||||
bitcoind(1), bitcoin-cli(1), bitcoin-tx(1), bitcoin-wallet(1), bitcoin-util(1), bitcoin-qt(1)
|
||||
|
||||
@@ -1,5 +1,830 @@
|
||||
.TH BITCOIND "1"
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
|
||||
.TH BITCOIND "1" "April 2025" "bitcoind v29.0.0" "User Commands"
|
||||
.SH NAME
|
||||
bitcoind \- manual page for bitcoind
|
||||
bitcoind \- manual page for bitcoind v29.0.0
|
||||
.SH SYNOPSIS
|
||||
.B bitcoind
|
||||
[\fI\,options\/\fR]
|
||||
.SH DESCRIPTION
|
||||
Bitcoin Core daemon version v29.0.0
|
||||
.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
|
||||
It provides the backbone of the Bitcoin network and its RPC, REST and ZMQ services can provide various transaction, block and address\-related services.
|
||||
.PP
|
||||
There is an optional wallet component which provides transaction services.
|
||||
.PP
|
||||
It can be used in a headless environment or as part of a server setup.
|
||||
.SH OPTIONS
|
||||
.HP
|
||||
\fB\-alertnotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command when an alert is raised (%s in cmd is replaced by
|
||||
message)
|
||||
.HP
|
||||
\fB\-allowignoredconf\fR
|
||||
.IP
|
||||
For backwards compatibility, treat an unused bitcoin.conf file in the
|
||||
datadir as a warning, not an error.
|
||||
.HP
|
||||
\fB\-assumevalid=\fR<hex>
|
||||
.IP
|
||||
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)
|
||||
.HP
|
||||
\fB\-blockfilterindex=\fR<type>
|
||||
.IP
|
||||
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.
|
||||
.HP
|
||||
\fB\-blocknotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command when the best block changes (%s in cmd is replaced by
|
||||
block hash)
|
||||
.HP
|
||||
\fB\-blockreconstructionextratxn=\fR<n>
|
||||
.IP
|
||||
Extra transactions to keep in memory for compact block reconstructions
|
||||
(default: 100)
|
||||
.HP
|
||||
\fB\-blocksdir=\fR<dir>
|
||||
.IP
|
||||
Specify directory to hold blocks subdirectory for *.dat files (default:
|
||||
<datadir>)
|
||||
.HP
|
||||
\fB\-blocksonly\fR
|
||||
.IP
|
||||
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)
|
||||
.HP
|
||||
\fB\-blocksxor\fR
|
||||
.IP
|
||||
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)
|
||||
.HP
|
||||
\fB\-coinstatsindex\fR
|
||||
.IP
|
||||
Maintain coinstats index used by the gettxoutsetinfo RPC (default: 0)
|
||||
.HP
|
||||
\fB\-conf=\fR<file>
|
||||
.IP
|
||||
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)
|
||||
.HP
|
||||
\fB\-daemon\fR
|
||||
.IP
|
||||
Run in the background as a daemon and accept commands (default: 0)
|
||||
.HP
|
||||
\fB\-daemonwait\fR
|
||||
.IP
|
||||
Wait for initialization to be finished before exiting. This implies
|
||||
\fB\-daemon\fR (default: 0)
|
||||
.HP
|
||||
\fB\-datadir=\fR<dir>
|
||||
.IP
|
||||
Specify data directory
|
||||
.HP
|
||||
\fB\-dbcache=\fR<n>
|
||||
.IP
|
||||
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 \fB\-maxmempool\fR).
|
||||
.HP
|
||||
\fB\-debuglogfile=\fR<file>
|
||||
.IP
|
||||
Specify location of debug log file (default: debug.log). Relative paths
|
||||
will be prefixed by a net\-specific datadir location. Pass
|
||||
\fB\-nodebuglogfile\fR to disable writing the log to a file.
|
||||
.HP
|
||||
\fB\-help\fR
|
||||
.IP
|
||||
Print this help message and exit (also \fB\-h\fR or \-?)
|
||||
.HP
|
||||
\fB\-includeconf=\fR<file>
|
||||
.IP
|
||||
Specify additional configuration file, relative to the \fB\-datadir\fR path
|
||||
(only useable from configuration file, not command line)
|
||||
.HP
|
||||
\fB\-loadblock=\fR<file>
|
||||
.IP
|
||||
Imports blocks from external file on startup
|
||||
.HP
|
||||
\fB\-maxmempool=\fR<n>
|
||||
.IP
|
||||
Keep the transaction memory pool below <n> megabytes (default: 300)
|
||||
.HP
|
||||
\fB\-maxorphantx=\fR<n>
|
||||
.IP
|
||||
Keep at most <n> unconnectable transactions in memory (default: 100)
|
||||
.HP
|
||||
\fB\-mempoolexpiry=\fR<n>
|
||||
.IP
|
||||
Do not keep transactions in the mempool longer than <n> hours (default:
|
||||
336)
|
||||
.HP
|
||||
\fB\-par=\fR<n>
|
||||
.IP
|
||||
Set the number of script verification threads (0 = auto, up to 15, <0 =
|
||||
leave that many cores free, default: 0)
|
||||
.HP
|
||||
\fB\-persistmempool\fR
|
||||
.IP
|
||||
Whether to save the mempool on shutdown and load on restart (default: 1)
|
||||
.HP
|
||||
\fB\-persistmempoolv1\fR
|
||||
.IP
|
||||
Whether a mempool.dat file created by \fB\-persistmempool\fR or the savemempool
|
||||
RPC will be written in the legacy format (version 1) or the
|
||||
current format (version 2). This temporary option will be removed
|
||||
in the future. (default: 0)
|
||||
.HP
|
||||
\fB\-pid=\fR<file>
|
||||
.IP
|
||||
Specify pid file. Relative paths will be prefixed by a net\-specific
|
||||
datadir location. (default: bitcoind.pid)
|
||||
.HP
|
||||
\fB\-prune=\fR<n>
|
||||
.IP
|
||||
Reduce storage requirements by enabling pruning (deleting) of old
|
||||
blocks. This allows the pruneblockchain RPC to be called to
|
||||
delete specific blocks and enables automatic pruning of old
|
||||
blocks if a target size in MiB is provided. This mode is
|
||||
incompatible with \fB\-txindex\fR. Warning: Reverting this setting
|
||||
requires re\-downloading the entire blockchain. (default: 0 =
|
||||
disable pruning blocks, 1 = allow manual pruning via RPC, >=550 =
|
||||
automatically prune block files to stay under the specified
|
||||
target size in MiB)
|
||||
.HP
|
||||
\fB\-reindex\fR
|
||||
.IP
|
||||
If enabled, wipe chain state and block index, and rebuild them from
|
||||
blk*.dat files on disk. Also wipe and rebuild other optional
|
||||
indexes that are active. If an assumeutxo snapshot was loaded,
|
||||
its chainstate will be wiped as well. The snapshot can then be
|
||||
reloaded via RPC.
|
||||
.HP
|
||||
\fB\-reindex\-chainstate\fR
|
||||
.IP
|
||||
If enabled, wipe chain state, and rebuild it from blk*.dat files on
|
||||
disk. If an assumeutxo snapshot was loaded, its chainstate will
|
||||
be wiped as well. The snapshot can then be reloaded via RPC.
|
||||
.HP
|
||||
\fB\-settings=\fR<file>
|
||||
.IP
|
||||
Specify path to dynamic settings data file. Can be disabled with
|
||||
\fB\-nosettings\fR. File is written at runtime and not meant to be
|
||||
edited by users (use bitcoin.conf instead for custom settings).
|
||||
Relative paths will be prefixed by datadir location. (default:
|
||||
settings.json)
|
||||
.HP
|
||||
\fB\-shutdownnotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command immediately before beginning shutdown. The need for
|
||||
shutdown may be urgent, so be careful not to delay it long (if
|
||||
the command doesn't require interaction with the server, consider
|
||||
having it fork into the background).
|
||||
.HP
|
||||
\fB\-startupnotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command on startup.
|
||||
.HP
|
||||
\fB\-txindex\fR
|
||||
.IP
|
||||
Maintain a full transaction index, used by the getrawtransaction rpc
|
||||
call (default: 0)
|
||||
.HP
|
||||
\fB\-version\fR
|
||||
.IP
|
||||
Print version and exit
|
||||
.PP
|
||||
Connection options:
|
||||
.HP
|
||||
\fB\-addnode=\fR<ip>
|
||||
.IP
|
||||
Add a node to connect to and attempt to keep the connection open (see
|
||||
the addnode RPC help for more info). This option can be specified
|
||||
multiple times to add multiple nodes; connections are limited to
|
||||
8 at a time and are counted separately from the \fB\-maxconnections\fR
|
||||
limit.
|
||||
.HP
|
||||
\fB\-asmap=\fR<file>
|
||||
.IP
|
||||
Specify asn mapping used for bucketing of the peers (default:
|
||||
ip_asn.map). Relative paths will be prefixed by the net\-specific
|
||||
datadir location.
|
||||
.HP
|
||||
\fB\-bantime=\fR<n>
|
||||
.IP
|
||||
Default duration (in seconds) of manually configured bans (default:
|
||||
86400)
|
||||
.HP
|
||||
\fB\-bind=\fR<addr>[:<port>][=onion]
|
||||
.IP
|
||||
Bind to given address and always listen on it (default: 0.0.0.0). Use
|
||||
[host]:port notation for IPv6. Append =onion to tag any incoming
|
||||
connections to that address and port as incoming Tor connections
|
||||
(default: 127.0.0.1:8334=onion, testnet3: 127.0.0.1:18334=onion,
|
||||
testnet4: 127.0.0.1:48334=onion, signet: 127.0.0.1:38334=onion,
|
||||
regtest: 127.0.0.1:18445=onion)
|
||||
.HP
|
||||
\fB\-cjdnsreachable\fR
|
||||
.IP
|
||||
If set, then this host is configured for CJDNS (connecting to fc00::/8
|
||||
addresses would lead us to the CJDNS network, see doc/cjdns.md)
|
||||
(default: 0)
|
||||
.HP
|
||||
\fB\-connect=\fR<ip>
|
||||
.IP
|
||||
Connect only to the specified node; \fB\-noconnect\fR disables automatic
|
||||
connections (the rules for this peer are the same as for
|
||||
\fB\-addnode\fR). This option can be specified multiple times to connect
|
||||
to multiple nodes.
|
||||
.HP
|
||||
\fB\-discover\fR
|
||||
.IP
|
||||
Discover own IP addresses (default: 1 when listening and no \fB\-externalip\fR
|
||||
or \fB\-proxy\fR)
|
||||
.HP
|
||||
\fB\-dns\fR
|
||||
.IP
|
||||
Allow DNS lookups for \fB\-addnode\fR, \fB\-seednode\fR and \fB\-connect\fR (default: 1)
|
||||
.HP
|
||||
\fB\-dnsseed\fR
|
||||
.IP
|
||||
Query for peer addresses via DNS lookup, if low on addresses (default: 1
|
||||
unless \fB\-connect\fR used or \fB\-maxconnections\fR=\fI\,0\/\fR)
|
||||
.HP
|
||||
\fB\-externalip=\fR<ip>
|
||||
.IP
|
||||
Specify your own public address
|
||||
.HP
|
||||
\fB\-fixedseeds\fR
|
||||
.IP
|
||||
Allow fixed seeds if DNS seeds don't provide peers (default: 1)
|
||||
.HP
|
||||
\fB\-forcednsseed\fR
|
||||
.IP
|
||||
Always query for peer addresses via DNS lookup (default: 0)
|
||||
.HP
|
||||
\fB\-i2pacceptincoming\fR
|
||||
.IP
|
||||
Whether to accept inbound I2P connections (default: 1). Ignored if
|
||||
\fB\-i2psam\fR is not set. Listening for inbound I2P connections is done
|
||||
through the SAM proxy, not by binding to a local address and
|
||||
port.
|
||||
.HP
|
||||
\fB\-i2psam=\fR<ip:port>
|
||||
.IP
|
||||
I2P SAM proxy to reach I2P peers and accept I2P connections (default:
|
||||
none)
|
||||
.HP
|
||||
\fB\-listen\fR
|
||||
.IP
|
||||
Accept connections from outside (default: 1 if no \fB\-proxy\fR, \fB\-connect\fR or
|
||||
\fB\-maxconnections\fR=\fI\,0\/\fR)
|
||||
.HP
|
||||
\fB\-listenonion\fR
|
||||
.IP
|
||||
Automatically create Tor onion service (default: 1)
|
||||
.HP
|
||||
\fB\-maxconnections=\fR<n>
|
||||
.IP
|
||||
Maintain at most <n> automatic connections to peers (default: 125). This
|
||||
limit does not apply to connections manually added via \fB\-addnode\fR
|
||||
or the addnode RPC, which have a separate limit of 8.
|
||||
.HP
|
||||
\fB\-maxreceivebuffer=\fR<n>
|
||||
.IP
|
||||
Maximum per\-connection receive buffer, <n>*1000 bytes (default: 5000)
|
||||
.HP
|
||||
\fB\-maxsendbuffer=\fR<n>
|
||||
.IP
|
||||
Maximum per\-connection memory usage for the send buffer, <n>*1000 bytes
|
||||
(default: 1000)
|
||||
.HP
|
||||
\fB\-maxuploadtarget=\fR<n>
|
||||
.IP
|
||||
Tries to keep outbound traffic under the given target per 24h. Limit
|
||||
does not apply to peers with 'download' permission or blocks
|
||||
created within past week. 0 = no limit (default: 0M). Optional
|
||||
suffix units [k|K|m|M|g|G|t|T] (default: M). Lowercase is 1000
|
||||
base while uppercase is 1024 base
|
||||
.HP
|
||||
\fB\-natpmp\fR
|
||||
.IP
|
||||
Use PCP or NAT\-PMP to map the listening port (default: 0)
|
||||
.HP
|
||||
\fB\-networkactive\fR
|
||||
.IP
|
||||
Enable all P2P network activity (default: 1). Can be changed by the
|
||||
setnetworkactive RPC command
|
||||
.HP
|
||||
\fB\-onion=\fR<ip:port|path>
|
||||
.IP
|
||||
Use separate SOCKS5 proxy to reach peers via Tor onion services, set
|
||||
\fB\-noonion\fR to disable (default: \fB\-proxy\fR). May be a local file path
|
||||
prefixed with 'unix:'.
|
||||
.HP
|
||||
\fB\-onlynet=\fR<net>
|
||||
.IP
|
||||
Make automatic outbound connections only to network <net> (ipv4, ipv6,
|
||||
onion, i2p, cjdns). Inbound and manual connections are not
|
||||
affected by this option. It can be specified multiple times to
|
||||
allow multiple networks.
|
||||
.HP
|
||||
\fB\-peerblockfilters\fR
|
||||
.IP
|
||||
Serve compact block filters to peers per BIP 157 (default: 0)
|
||||
.HP
|
||||
\fB\-peerbloomfilters\fR
|
||||
.IP
|
||||
Support filtering of blocks and transaction with bloom filters (default:
|
||||
0)
|
||||
.HP
|
||||
\fB\-port=\fR<port>
|
||||
.IP
|
||||
Listen for connections on <port> (default: 8333, testnet3: 18333,
|
||||
testnet4: 48333, signet: 38333, regtest: 18444). Not relevant for
|
||||
I2P (see doc/i2p.md). If set to a value x, the default onion
|
||||
listening port will be set to x+1.
|
||||
.HP
|
||||
\fB\-proxy=\fR<ip:port|path>
|
||||
.IP
|
||||
Connect through SOCKS5 proxy, set \fB\-noproxy\fR to disable (default:
|
||||
disabled). May be a local file path prefixed with 'unix:' if the
|
||||
proxy supports it.
|
||||
.HP
|
||||
\fB\-proxyrandomize\fR
|
||||
.IP
|
||||
Randomize credentials for every proxy connection. This enables Tor
|
||||
stream isolation (default: 1)
|
||||
.HP
|
||||
\fB\-seednode=\fR<ip>
|
||||
.IP
|
||||
Connect to a node to retrieve peer addresses, and disconnect. This
|
||||
option can be specified multiple times to connect to multiple
|
||||
nodes. During startup, seednodes will be tried before dnsseeds.
|
||||
.HP
|
||||
\fB\-timeout=\fR<n>
|
||||
.IP
|
||||
Specify socket connection timeout in milliseconds. If an initial attempt
|
||||
to connect is unsuccessful after this amount of time, drop it
|
||||
(minimum: 1, default: 5000)
|
||||
.HP
|
||||
\fB\-torcontrol=\fR<ip>:<port>
|
||||
.IP
|
||||
Tor control host and port to use if onion listening enabled (default:
|
||||
127.0.0.1:9051). If no port is specified, the default port of
|
||||
9051 will be used.
|
||||
.HP
|
||||
\fB\-torpassword=\fR<pass>
|
||||
.IP
|
||||
Tor control port password (default: empty)
|
||||
.HP
|
||||
\fB\-v2transport\fR
|
||||
.IP
|
||||
Support v2 transport (default: 1)
|
||||
.HP
|
||||
\fB\-whitebind=\fR<[permissions@]addr>
|
||||
.IP
|
||||
Bind to the given address and add permission flags to the peers
|
||||
connecting to it. Use [host]:port notation for IPv6. Allowed
|
||||
permissions: bloomfilter (allow requesting BIP37 filtered blocks
|
||||
and transactions), noban (do not ban for misbehavior; implies
|
||||
download), forcerelay (relay transactions that are already in the
|
||||
mempool; implies relay), relay (relay even in \fB\-blocksonly\fR mode,
|
||||
and unlimited transaction announcements), mempool (allow
|
||||
requesting BIP35 mempool contents), download (allow getheaders
|
||||
during IBD, no disconnect after maxuploadtarget limit), addr
|
||||
(responses to GETADDR avoid hitting the cache and contain random
|
||||
records with the most up\-to\-date info). Specify multiple
|
||||
permissions separated by commas (default:
|
||||
download,noban,mempool,relay). Can be specified multiple times.
|
||||
.HP
|
||||
\fB\-whitelist=\fR<[permissions@]IP address or network>
|
||||
.IP
|
||||
Add permission flags to the peers using the given IP address (e.g.
|
||||
1.2.3.4) or CIDR\-notated network (e.g. 1.2.3.0/24). Uses the same
|
||||
permissions as \fB\-whitebind\fR. Additional flags "in" and "out"
|
||||
control whether permissions apply to incoming connections and/or
|
||||
manual (default: incoming only). Can be specified multiple times.
|
||||
.PP
|
||||
Wallet options:
|
||||
.HP
|
||||
\fB\-addresstype\fR
|
||||
.IP
|
||||
What type of addresses to use ("legacy", "p2sh\-segwit", "bech32", or
|
||||
"bech32m", default: "bech32")
|
||||
.HP
|
||||
\fB\-avoidpartialspends\fR
|
||||
.IP
|
||||
Group outputs by address, selecting many (possibly all) or none, instead
|
||||
of selecting on a per\-output basis. Privacy is improved as
|
||||
addresses are mostly swept with fewer transactions and outputs
|
||||
are aggregated in clean change addresses. It may result in higher
|
||||
fees due to less optimal coin selection caused by this added
|
||||
limitation and possibly a larger\-than\-necessary number of inputs
|
||||
being used. Always enabled for wallets with "avoid_reuse"
|
||||
enabled, otherwise default: 0.
|
||||
.HP
|
||||
\fB\-changetype\fR
|
||||
.IP
|
||||
What type of change to use ("legacy", "p2sh\-segwit", "bech32", or
|
||||
"bech32m"). Default is "legacy" when \fB\-addresstype\fR=\fI\,legacy\/\fR, else it
|
||||
is an implementation detail.
|
||||
.HP
|
||||
\fB\-consolidatefeerate=\fR<amt>
|
||||
.IP
|
||||
The maximum feerate (in BTC/kvB) at which transaction building may use
|
||||
more inputs than strictly necessary so that the wallet's UTXO
|
||||
pool can be reduced (default: 0.0001).
|
||||
.HP
|
||||
\fB\-disablewallet\fR
|
||||
.IP
|
||||
Do not load the wallet and disable wallet RPC calls
|
||||
.HP
|
||||
\fB\-discardfee=\fR<amt>
|
||||
.IP
|
||||
The fee rate (in BTC/kvB) that indicates your tolerance for discarding
|
||||
change by adding it to the fee (default: 0.0001). Note: An output
|
||||
is discarded if it is dust at this rate, but we will always
|
||||
discard up to the dust relay fee and a discard fee above that is
|
||||
limited by the fee estimate for the longest target
|
||||
.HP
|
||||
\fB\-fallbackfee=\fR<amt>
|
||||
.IP
|
||||
A fee rate (in BTC/kvB) that will be used when fee estimation has
|
||||
insufficient data. 0 to entirely disable the fallbackfee feature.
|
||||
(default: 0.00)
|
||||
.HP
|
||||
\fB\-keypool=\fR<n>
|
||||
.IP
|
||||
Set key pool size to <n> (default: 1000). Warning: Smaller sizes may
|
||||
increase the risk of losing funds when restoring from an old
|
||||
backup, if none of the addresses in the original keypool have
|
||||
been used.
|
||||
.HP
|
||||
\fB\-maxapsfee=\fR<n>
|
||||
.IP
|
||||
Spend up to this amount in additional (absolute) fees (in BTC) if it
|
||||
allows the use of partial spend avoidance (default: 0.00)
|
||||
.HP
|
||||
\fB\-mintxfee=\fR<amt>
|
||||
.IP
|
||||
Fee rates (in BTC/kvB) smaller than this are considered zero fee for
|
||||
transaction creation (default: 0.00001)
|
||||
.HP
|
||||
\fB\-paytxfee=\fR<amt>
|
||||
.IP
|
||||
Fee rate (in BTC/kvB) to add to transactions you send (default: 0.00)
|
||||
.HP
|
||||
\fB\-signer=\fR<cmd>
|
||||
.IP
|
||||
External signing tool, see doc/external\-signer.md
|
||||
.HP
|
||||
\fB\-spendzeroconfchange\fR
|
||||
.IP
|
||||
Spend unconfirmed change when sending transactions (default: 1)
|
||||
.HP
|
||||
\fB\-txconfirmtarget=\fR<n>
|
||||
.IP
|
||||
If paytxfee is not set, include enough fee so transactions begin
|
||||
confirmation on average within n blocks (default: 6)
|
||||
.HP
|
||||
\fB\-wallet=\fR<path>
|
||||
.IP
|
||||
Specify wallet path to load at startup. Can be used multiple times to
|
||||
load multiple wallets. Path is to a directory containing wallet
|
||||
data and log files. If the path is not absolute, it is
|
||||
interpreted relative to <walletdir>. This only loads existing
|
||||
wallets and does not create new ones. For backwards compatibility
|
||||
this also accepts names of existing top\-level data files in
|
||||
<walletdir>.
|
||||
.HP
|
||||
\fB\-walletbroadcast\fR
|
||||
.IP
|
||||
Make the wallet broadcast transactions (default: 1)
|
||||
.HP
|
||||
\fB\-walletdir=\fR<dir>
|
||||
.IP
|
||||
Specify directory to hold wallets (default: <datadir>/wallets if it
|
||||
exists, otherwise <datadir>)
|
||||
.HP
|
||||
\fB\-walletnotify=\fR<cmd>
|
||||
.IP
|
||||
Execute command when a wallet transaction changes. %s in cmd is replaced
|
||||
by TxID, %w is replaced by wallet name, %b is replaced by the
|
||||
hash of the block including the transaction (set to 'unconfirmed'
|
||||
if the transaction is not included) and %h is replaced by the
|
||||
block height (\fB\-1\fR if not included). %w is not currently
|
||||
implemented on windows. On systems where %w is supported, it
|
||||
should NOT be quoted because this would break shell escaping used
|
||||
to invoke the command.
|
||||
.HP
|
||||
\fB\-walletrbf\fR
|
||||
.IP
|
||||
Send transactions with full\-RBF opt\-in enabled (RPC only, default: 1)
|
||||
.PP
|
||||
ZeroMQ notification options:
|
||||
.HP
|
||||
\fB\-zmqpubhashblock=\fR<address>
|
||||
.IP
|
||||
Enable publish hash block in <address>
|
||||
.HP
|
||||
\fB\-zmqpubhashblockhwm=\fR<n>
|
||||
.IP
|
||||
Set publish hash block outbound message high water mark (default: 1000)
|
||||
.HP
|
||||
\fB\-zmqpubhashtx=\fR<address>
|
||||
.IP
|
||||
Enable publish hash transaction in <address>
|
||||
.HP
|
||||
\fB\-zmqpubhashtxhwm=\fR<n>
|
||||
.IP
|
||||
Set publish hash transaction outbound message high water mark (default:
|
||||
1000)
|
||||
.HP
|
||||
\fB\-zmqpubrawblock=\fR<address>
|
||||
.IP
|
||||
Enable publish raw block in <address>
|
||||
.HP
|
||||
\fB\-zmqpubrawblockhwm=\fR<n>
|
||||
.IP
|
||||
Set publish raw block outbound message high water mark (default: 1000)
|
||||
.HP
|
||||
\fB\-zmqpubrawtx=\fR<address>
|
||||
.IP
|
||||
Enable publish raw transaction in <address>
|
||||
.HP
|
||||
\fB\-zmqpubrawtxhwm=\fR<n>
|
||||
.IP
|
||||
Set publish raw transaction outbound message high water mark (default:
|
||||
1000)
|
||||
.HP
|
||||
\fB\-zmqpubsequence=\fR<address>
|
||||
.IP
|
||||
Enable publish hash block and tx sequence in <address>
|
||||
.HP
|
||||
\fB\-zmqpubsequencehwm=\fR<n>
|
||||
.IP
|
||||
Set publish hash sequence message high water mark (default: 1000)
|
||||
.PP
|
||||
Debugging/Testing options:
|
||||
.HP
|
||||
\fB\-debug=\fR<category>
|
||||
.IP
|
||||
Output debug and trace logging (default: \fB\-nodebug\fR, supplying <category>
|
||||
is optional). If <category> is not supplied or if <category> is 1
|
||||
or "all", output all debug logging. If <category> is 0 or "none",
|
||||
any other categories are ignored. Other valid values for
|
||||
<category> are: addrman, bench, blockstorage, cmpctblock, coindb,
|
||||
estimatefee, http, i2p, ipc, leveldb, libevent, mempool,
|
||||
mempoolrej, net, proxy, prune, qt, rand, reindex, rpc, scan,
|
||||
selectcoins, tor, txpackages, txreconciliation, validation,
|
||||
walletdb, zmq. This option can be specified multiple times to
|
||||
output multiple categories.
|
||||
.HP
|
||||
\fB\-debugexclude=\fR<category>
|
||||
.IP
|
||||
Exclude debug and trace logging for a category. Can be used in
|
||||
conjunction with \fB\-debug\fR=\fI\,1\/\fR to output debug and trace logging for
|
||||
all categories except the specified category. This option can be
|
||||
specified multiple times to exclude multiple categories. This
|
||||
takes priority over "\-debug"
|
||||
.HP
|
||||
\fB\-help\-debug\fR
|
||||
.IP
|
||||
Print help message with debugging options and exit
|
||||
.HP
|
||||
\fB\-logips\fR
|
||||
.IP
|
||||
Include IP addresses in debug output (default: 0)
|
||||
.HP
|
||||
\fB\-loglevelalways\fR
|
||||
.IP
|
||||
Always prepend a category and level (default: 0)
|
||||
.HP
|
||||
\fB\-logsourcelocations\fR
|
||||
.IP
|
||||
Prepend debug output with name of the originating source location
|
||||
(source file, line number and function name) (default: 0)
|
||||
.HP
|
||||
\fB\-logthreadnames\fR
|
||||
.IP
|
||||
Prepend debug output with name of the originating thread (default: 0)
|
||||
.HP
|
||||
\fB\-logtimestamps\fR
|
||||
.IP
|
||||
Prepend debug output with timestamp (default: 1)
|
||||
.HP
|
||||
\fB\-maxtxfee=\fR<amt>
|
||||
.IP
|
||||
Maximum total fees (in BTC) to use in a single wallet transaction;
|
||||
setting this too low may abort large transactions (default: 0.10)
|
||||
.HP
|
||||
\fB\-printtoconsole\fR
|
||||
.IP
|
||||
Send trace/debug info to console (default: 1 when no \fB\-daemon\fR. To disable
|
||||
logging to file, set \fB\-nodebuglogfile\fR)
|
||||
.HP
|
||||
\fB\-shrinkdebugfile\fR
|
||||
.IP
|
||||
Shrink debug.log file on client startup (default: 1 when no \fB\-debug\fR)
|
||||
.HP
|
||||
\fB\-uacomment=\fR<cmt>
|
||||
.IP
|
||||
Append comment to the user agent string
|
||||
.PP
|
||||
Chain selection options:
|
||||
.HP
|
||||
\fB\-chain=\fR<chain>
|
||||
.IP
|
||||
Use the chain <chain> (default: main). Allowed values: main, test,
|
||||
testnet4, signet, regtest
|
||||
.HP
|
||||
\fB\-signet\fR
|
||||
.IP
|
||||
Use the signet chain. Equivalent to \fB\-chain\fR=\fI\,signet\/\fR. Note that the network
|
||||
is defined by the \fB\-signetchallenge\fR parameter
|
||||
.HP
|
||||
\fB\-signetchallenge\fR
|
||||
.IP
|
||||
Blocks must satisfy the given script to be considered valid (only for
|
||||
signet networks; defaults to the global default signet test
|
||||
network challenge)
|
||||
.HP
|
||||
\fB\-signetseednode\fR
|
||||
.IP
|
||||
Specify a seed node for the signet network, in the hostname[:port]
|
||||
format, e.g. sig.net:1234 (may be used multiple times to specify
|
||||
multiple seed nodes; defaults to the global default signet test
|
||||
network seed node(s))
|
||||
.HP
|
||||
\fB\-testnet\fR
|
||||
.IP
|
||||
Use the testnet3 chain. Equivalent to \fB\-chain\fR=\fI\,test\/\fR. Support for testnet3
|
||||
is deprecated and will be removed in an upcoming release.
|
||||
Consider moving to testnet4 now by using \fB\-testnet4\fR.
|
||||
.HP
|
||||
\fB\-testnet4\fR
|
||||
.IP
|
||||
Use the testnet4 chain. Equivalent to \fB\-chain\fR=\fI\,testnet4\/\fR.
|
||||
.PP
|
||||
Node relay options:
|
||||
.HP
|
||||
\fB\-bytespersigop\fR
|
||||
.IP
|
||||
Equivalent bytes per sigop in transactions for relay and mining
|
||||
(default: 20)
|
||||
.HP
|
||||
\fB\-datacarrier\fR
|
||||
.IP
|
||||
Relay and mine data carrier transactions (default: 1)
|
||||
.HP
|
||||
\fB\-datacarriersize\fR
|
||||
.IP
|
||||
Relay and mine transactions whose data\-carrying raw scriptPubKey is of
|
||||
this size or less (default: 83)
|
||||
.HP
|
||||
\fB\-minrelaytxfee=\fR<amt>
|
||||
.IP
|
||||
Fees (in BTC/kvB) smaller than this are considered zero fee for
|
||||
relaying, mining and transaction creation (default: 0.00001)
|
||||
.HP
|
||||
\fB\-permitbaremultisig\fR
|
||||
.IP
|
||||
Relay transactions creating non\-P2SH multisig outputs (default: 1)
|
||||
.HP
|
||||
\fB\-whitelistforcerelay\fR
|
||||
.IP
|
||||
Add 'forcerelay' permission to whitelisted peers with default
|
||||
permissions. This will relay transactions even if the
|
||||
transactions were already in the mempool. (default: 0)
|
||||
.HP
|
||||
\fB\-whitelistrelay\fR
|
||||
.IP
|
||||
Add 'relay' permission to whitelisted peers with default permissions.
|
||||
This will accept relayed transactions even when not relaying
|
||||
transactions (default: 1)
|
||||
.PP
|
||||
Block creation options:
|
||||
.HP
|
||||
\fB\-blockmaxweight=\fR<n>
|
||||
.IP
|
||||
Set maximum BIP141 block weight (default: 4000000)
|
||||
.HP
|
||||
\fB\-blockmintxfee=\fR<amt>
|
||||
.IP
|
||||
Set lowest fee rate (in BTC/kvB) for transactions to be included in
|
||||
block creation. (default: 0.00001)
|
||||
.HP
|
||||
\fB\-blockreservedweight=\fR<n>
|
||||
.IP
|
||||
Reserve space for the fixed\-size block header plus the largest coinbase
|
||||
transaction the mining software may add to the block. (default:
|
||||
8000).
|
||||
.PP
|
||||
RPC server options:
|
||||
.HP
|
||||
\fB\-rest\fR
|
||||
.IP
|
||||
Accept public REST requests (default: 0)
|
||||
.HP
|
||||
\fB\-rpcallowip=\fR<ip>
|
||||
.IP
|
||||
Allow JSON\-RPC connections from specified source. Valid values for <ip>
|
||||
are a single IP (e.g. 1.2.3.4), a network/netmask (e.g.
|
||||
1.2.3.4/255.255.255.0), a network/CIDR (e.g. 1.2.3.4/24), all
|
||||
ipv4 (0.0.0.0/0), or all ipv6 (::/0). This option can be
|
||||
specified multiple times
|
||||
.HP
|
||||
\fB\-rpcauth=\fR<userpw>
|
||||
.IP
|
||||
Username and HMAC\-SHA\-256 hashed password for JSON\-RPC connections. The
|
||||
field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A
|
||||
canonical python script is included in share/rpcauth. The client
|
||||
then connects normally using the
|
||||
rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This
|
||||
option can be specified multiple times
|
||||
.HP
|
||||
\fB\-rpcbind=\fR<addr>[:port]
|
||||
.IP
|
||||
Bind to given address to listen for JSON\-RPC connections. Do not expose
|
||||
the RPC server to untrusted networks such as the public internet!
|
||||
This option is ignored unless \fB\-rpcallowip\fR is also passed. Port is
|
||||
optional and overrides \fB\-rpcport\fR. Use [host]:port notation for
|
||||
IPv6. This option can be specified multiple times (default:
|
||||
127.0.0.1 and ::1 i.e., localhost)
|
||||
.HP
|
||||
\fB\-rpccookiefile=\fR<loc>
|
||||
.IP
|
||||
Location of the auth cookie. Relative paths will be prefixed by a
|
||||
net\-specific datadir location. (default: data dir)
|
||||
.HP
|
||||
\fB\-rpccookieperms=\fR<readable\-by>
|
||||
.IP
|
||||
Set permissions on the RPC auth cookie file so that it is readable by
|
||||
[owner|group|all] (default: owner [via umask 0077])
|
||||
.HP
|
||||
\fB\-rpcpassword=\fR<pw>
|
||||
.IP
|
||||
Password for JSON\-RPC connections
|
||||
.HP
|
||||
\fB\-rpcport=\fR<port>
|
||||
.IP
|
||||
Listen for JSON\-RPC connections on <port> (default: 8332, testnet3:
|
||||
18332, testnet4: 48332, signet: 38332, regtest: 18443)
|
||||
.HP
|
||||
\fB\-rpcthreads=\fR<n>
|
||||
.IP
|
||||
Set the number of threads to service RPC calls (default: 16)
|
||||
.HP
|
||||
\fB\-rpcuser=\fR<user>
|
||||
.IP
|
||||
Username for JSON\-RPC connections
|
||||
.HP
|
||||
\fB\-rpcwhitelist=\fR<whitelist>
|
||||
.IP
|
||||
Set a whitelist to filter incoming RPC calls for a specific user. The
|
||||
field <whitelist> comes in the format: <USERNAME>:<rpc 1>,<rpc
|
||||
2>,...,<rpc n>. If multiple whitelists are set for a given user,
|
||||
they are set\-intersected. See \fB\-rpcwhitelistdefault\fR documentation
|
||||
for information on default whitelist behavior.
|
||||
.HP
|
||||
\fB\-rpcwhitelistdefault\fR
|
||||
.IP
|
||||
Sets default behavior for rpc whitelisting. Unless rpcwhitelistdefault
|
||||
is set to 0, if any \fB\-rpcwhitelist\fR is set, the rpc server acts as
|
||||
if all rpc users are subject to empty\-unless\-otherwise\-specified
|
||||
whitelists. If rpcwhitelistdefault is set to 1 and no
|
||||
\fB\-rpcwhitelist\fR is set, rpc server acts as if all rpc users are
|
||||
subject to empty whitelists.
|
||||
.HP
|
||||
\fB\-server\fR
|
||||
.IP
|
||||
Accept command line and JSON\-RPC commands
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) 2009-2025 The Bitcoin Core developers
|
||||
|
||||
This is a placeholder file. Please follow the instructions in \fIcontrib/devtools/README.md\fR to generate the manual pages after a release.
|
||||
Please contribute if you find Bitcoin Core useful. Visit
|
||||
<https://bitcoincore.org/> for further information about the software.
|
||||
The source code is available from <https://github.com/bitcoin/bitcoin>.
|
||||
|
||||
This is experimental software.
|
||||
Distributed under the MIT software license, see the accompanying file COPYING
|
||||
or <https://opensource.org/licenses/MIT>
|
||||
.SH "SEE ALSO"
|
||||
bitcoind(1), bitcoin-cli(1), bitcoin-tx(1), bitcoin-wallet(1), bitcoin-util(1), bitcoin-qt(1)
|
||||
|
||||
@@ -1,99 +0,0 @@
|
||||
*The release notes draft is a temporary file that can be added to by anyone. See
|
||||
[/doc/developer-notes.md#release-notes](/doc/developer-notes.md#release-notes)
|
||||
for the process.*
|
||||
|
||||
*version* Release Notes Draft
|
||||
===============================
|
||||
|
||||
Bitcoin Core version *version* is now available from:
|
||||
|
||||
<https://bitcoincore.org/bin/bitcoin-core-*version*/>
|
||||
|
||||
This release includes new features, various bug fixes and performance
|
||||
improvements, as well as updated translations.
|
||||
|
||||
Please report bugs using the issue tracker at GitHub:
|
||||
|
||||
<https://github.com/bitcoin/bitcoin/issues>
|
||||
|
||||
To receive security and update notifications, please subscribe to:
|
||||
|
||||
<https://bitcoincore.org/en/list/announcements/join/>
|
||||
|
||||
How to Upgrade
|
||||
==============
|
||||
|
||||
If you are running an older version, shut it down. Wait until it has completely
|
||||
shut down (which might take a few minutes in some cases), then run the
|
||||
installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS)
|
||||
or `bitcoind`/`bitcoin-qt` (on Linux).
|
||||
|
||||
Upgrading directly from a version of Bitcoin Core that has reached its EOL is
|
||||
possible, but it might take some time if the data directory needs to be migrated. Old
|
||||
wallet versions of Bitcoin Core are generally supported.
|
||||
|
||||
Compatibility
|
||||
==============
|
||||
|
||||
Bitcoin Core is supported and tested on operating systems using the
|
||||
Linux Kernel 3.17+, macOS 13+, and Windows 10+. Bitcoin
|
||||
Core should also work on most other Unix-like systems but is not as
|
||||
frequently tested on them. It is not recommended to use Bitcoin Core on
|
||||
unsupported systems.
|
||||
|
||||
Notable changes
|
||||
===============
|
||||
|
||||
P2P and network changes
|
||||
-----------------------
|
||||
|
||||
Updated RPCs
|
||||
------------
|
||||
|
||||
|
||||
Changes to wallet related RPCs can be found in the Wallet section below.
|
||||
|
||||
New RPCs
|
||||
--------
|
||||
|
||||
Build System
|
||||
------------
|
||||
|
||||
Updated settings
|
||||
----------------
|
||||
|
||||
|
||||
Changes to GUI or wallet related settings can be found in the GUI or Wallet section below.
|
||||
|
||||
New settings
|
||||
------------
|
||||
|
||||
Tools and Utilities
|
||||
-------------------
|
||||
|
||||
Wallet
|
||||
------
|
||||
|
||||
GUI changes
|
||||
-----------
|
||||
|
||||
Low-level changes
|
||||
=================
|
||||
|
||||
RPC
|
||||
---
|
||||
|
||||
Tests
|
||||
-----
|
||||
|
||||
*version* change log
|
||||
====================
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Thanks to everyone who directly contributed to this release:
|
||||
|
||||
|
||||
As well as to everyone that helped with translations on
|
||||
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).
|
||||
262
doc/release-notes.md
Normal file
262
doc/release-notes.md
Normal file
@@ -0,0 +1,262 @@
|
||||
Bitcoin Core version 29.0 is now available from:
|
||||
|
||||
<https://bitcoincore.org/bin/bitcoin-core-29.0/>
|
||||
|
||||
This release includes new features, various bug fixes and performance
|
||||
improvements, as well as updated translations.
|
||||
|
||||
Please report bugs using the issue tracker at GitHub:
|
||||
|
||||
<https://github.com/bitcoin/bitcoin/issues>
|
||||
|
||||
To receive security and update notifications, please subscribe to:
|
||||
|
||||
<https://bitcoincore.org/en/list/announcements/join/>
|
||||
|
||||
How to Upgrade
|
||||
==============
|
||||
|
||||
If you are running an older version, shut it down. Wait until it has completely
|
||||
shut down (which might take a few minutes in some cases), then run the
|
||||
installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS)
|
||||
or `bitcoind`/`bitcoin-qt` (on Linux).
|
||||
|
||||
Upgrading directly from a version of Bitcoin Core that has reached its EOL is
|
||||
possible, but it might take some time if the data directory needs to be migrated. Old
|
||||
wallet versions of Bitcoin Core are generally supported.
|
||||
|
||||
Compatibility
|
||||
==============
|
||||
|
||||
Bitcoin Core is supported and tested on operating systems using the
|
||||
Linux Kernel 3.17+, macOS 13+, and Windows 10+. Bitcoin
|
||||
Core should also work on most other Unix-like systems but is not as
|
||||
frequently tested on them. It is not recommended to use Bitcoin Core on
|
||||
unsupported systems.
|
||||
|
||||
Notable changes
|
||||
===============
|
||||
|
||||
### P2P and Network Changes
|
||||
|
||||
- Support for UPnP was dropped. If you want to open a port automatically, consider using the `-natpmp`
|
||||
option instead, which uses PCP or NAT-PMP depending on router support. (#31130)
|
||||
|
||||
- libnatpmp was replaced with a built-in implementation of PCP and NAT-PMP (still enabled using the `-natpmp` option). This supports automatic IPv4 port forwarding as well as IPv6 pinholing. (#30043)
|
||||
|
||||
- When the `-port` configuration option is used, the default onion listening port will now
|
||||
be derived to be that port + 1 instead of being set to a fixed value (8334 on mainnet).
|
||||
This re-allows setups with multiple local nodes using different `-port` and not using `-bind`,
|
||||
which would lead to a startup failure in v28.0 due to a port collision.
|
||||
Note that a `HiddenServicePort` manually configured in `torrc` may need adjustment if used in
|
||||
connection with the `-port` option.
|
||||
For example, if you are using `-port=5555` with a non-standard value and not using `-bind=...=onion`,
|
||||
previously Bitcoin Core would listen for incoming Tor connections on `127.0.0.1:8334`.
|
||||
Now it would listen on `127.0.0.1:5556` (`-port` plus one). If you configured the hidden service manually
|
||||
in torrc now you have to change it from `HiddenServicePort 8333 127.0.0.1:8334` to `HiddenServicePort 8333
|
||||
127.0.0.1:5556`, or configure bitcoind with `-bind=127.0.0.1:8334=onion` to get the previous behavior.
|
||||
(#31223)
|
||||
|
||||
- Upon receiving an orphan transaction (an unconfirmed transaction that spends unknown inputs), the node will attempt to download missing parents from all peers who announced the orphan. This change may increase bandwidth usage but make orphan-handling more reliable. (#31397)
|
||||
|
||||
### Mempool Policy and Mining Changes
|
||||
|
||||
- Ephemeral dust is a new concept that allows a single
|
||||
dust output in a transaction, provided the transaction
|
||||
is zero fee. In order to spend any unconfirmed outputs
|
||||
from this transaction, the spender must also spend
|
||||
this dust in addition to any other desired outputs.
|
||||
In other words, this type of transaction
|
||||
should be created in a transaction package where
|
||||
the dust is both created and spent simultaneously. (#30239)
|
||||
|
||||
- Due to a bug, the default block reserved weight (`4,000 WU`) for fixed-size block header, transactions count, and coinbase transaction was reserved twice and could not be lowered. As a result the total reserved weight was always `8,000 WU`, meaning that even when specifying a `-blockmaxweight` higher than the default (even to the max of `4,000,000 WU`), the actual block size will never exceed `3,992,000 WU`.
|
||||
The fix consolidates the reservation into a single place and introduces a new startup option, `-blockreservedweight` which specifies the reserved weight directly. The default value of `-blockreservedweight` is set to `8,000 WU` to ensure backward compatibility for users who relied on the previous behavior of `-blockmaxweight`.
|
||||
The minimum value of `-blockreservedweight` is set to `2,000 WU`. Users setting `-blockreservedweight` below the default should ensure that the total weight of their block header, transaction count, and coinbase transaction does not exceed the reduced value or they may risk mining an invalid block. (#31384)
|
||||
|
||||
### Updated RPCs
|
||||
|
||||
- The RPC `testmempoolaccept` response now includes a `reject-details` field in some cases,
|
||||
similar to the complete error messages returned by `sendrawtransaction` (#28121)
|
||||
|
||||
- Duplicate blocks submitted with `submitblock` will now persist their block data
|
||||
even if it was previously pruned. If pruning is activated, the data will be
|
||||
pruned again eventually once the block file it is persisted in is selected for
|
||||
pruning. This is consistent with the behaviour of `getblockfrompeer` where the
|
||||
block is persisted as well even when pruning. (#31175)
|
||||
|
||||
- `getmininginfo` now returns `nBits` and the current target in the `target` field. It also returns a `next` object which specifies the `height`, `nBits`, `difficulty`, and `target` for the next block. (#31583)
|
||||
|
||||
- `getblock` and `getblockheader` now return the current target in the `target` field (#31583)
|
||||
|
||||
- `getblockchaininfo` and `getchainstates` now return `nBits` and the current target in the `target` field (#31583)
|
||||
|
||||
- the `getblocktemplate` RPC `curtime` (BIP22) and `mintime` (BIP23) fields now
|
||||
account for the timewarp fix proposed in BIP94 on all networks. This ensures
|
||||
that, in the event a timewarp fix softfork activates on mainnet, un-upgraded
|
||||
miners will not accidentally violate the timewarp rule. (#31376, #31600)
|
||||
As a reminder, it's important that any software which uses the `getblocktemplate`
|
||||
RPC takes these values into account (either `curtime` or `mintime` is fine).
|
||||
Relying only on a clock can lead to invalid blocks under some circumstances,
|
||||
especially once a timewarp fix is deployed. (#31600)
|
||||
|
||||
### New RPCs
|
||||
|
||||
- `getdescriptoractivity` can be used to find all spend/receive activity relevant to
|
||||
a given set of descriptors within a set of specified blocks. This call can be used with
|
||||
`scanblocks` to lessen the need for additional indexing programs. (#30708)
|
||||
|
||||
|
||||
### Updated REST APIs
|
||||
|
||||
- `GET /rest/block/<BLOCK-HASH>.json` and `GET /rest/headers/<BLOCK-HASH>.json` now return the current target in the `target` field
|
||||
|
||||
### Updated Settings
|
||||
|
||||
- The maximum allowed value for the `-dbcache` configuration option has been
|
||||
dropped due to recent UTXO set growth. Note that before this change, large `-dbcache`
|
||||
values were automatically reduced to 16 GiB (1 GiB on 32 bit systems). (#28358)
|
||||
|
||||
- Handling of negated `-noseednode`, `-nobind`, `-nowhitebind`, `-norpcbind`, `-norpcallowip`, `-norpcwhitelist`, `-notest`, `-noasmap`, `-norpcwallet`, `-noonlynet`, and `-noexternalip` options has changed. Previously negating these options had various confusing and undocumented side effects. Now negating them just resets the settings and restores default behaviors, as if the options were not specified.
|
||||
|
||||
- Starting with v28.0, the `-mempoolfullrbf` startup option was set to
|
||||
default to `1`. With widespread adoption of this policy, users no longer
|
||||
benefit from disabling it, so the option has been removed, making full
|
||||
replace-by-fee the standard behavior. (#30592)
|
||||
|
||||
- Setting `-upnp` will now log a warning and be interpreted as `-natpmp`. Consider using `-natpmp` directly instead. (#31130, #31916)
|
||||
|
||||
- As a safety check, Bitcoin core will **fail to start** when `-blockreservedweight` init parameter value is lower than `2000` weight units. Bitcoin Core will also **fail to start** if the `-blockmaxweight` or `-blockreservedweight` init parameter exceeds consensus limit of `4,000,000 WU`.
|
||||
|
||||
- Passing `-debug=0` or `-debug=none` now behaves like `-nodebug`: previously set debug categories will be cleared, but subsequent `-debug` options will still be applied.
|
||||
|
||||
- The default for `-rpcthreads` has been changed from 4 to 16, and the default for `-rpcworkqueue` has been changed from 16 to 64. (#31215).
|
||||
|
||||
### Build System
|
||||
|
||||
The build system has been migrated from Autotools to CMake:
|
||||
|
||||
1. The minimum required CMake version is 3.22.
|
||||
2. In-source builds are not allowed. When using a subdirectory within the root source tree as a build directory, it is recommended that its name includes the substring "build".
|
||||
3. CMake variables may be used to configure the build system. See [Autotools to CMake Options Mapping](https://github.com/bitcoin-core/bitcoin-devwiki/wiki/Autotools-to-CMake-Options-Mapping) for details.
|
||||
4. For single-configuration generators, the default build configuration (`CMAKE_BUILD_TYPE`) is "RelWithDebInfo". However, for the "Release" configuration, CMake defaults to the compiler optimization flag `-O3`, which has not been extensively tested with Bitcoin Core. Therefore, the build system replaces it with `-O2`.
|
||||
5. By default, the built executables and libraries are located in the `bin/` and `lib/` subdirectories of the build directory.
|
||||
6. The build system supports component‐based installation. The names of the installable components coincide with the build target names. For example:
|
||||
```
|
||||
cmake -B build
|
||||
cmake --build build --target bitcoind
|
||||
cmake --install build --component bitcoind
|
||||
```
|
||||
|
||||
7. If any of the `CPPFLAGS`, `CFLAGS`, `CXXFLAGS` or `LDFLAGS` environment variables were used in your Autotools-based build process, you should instead use the corresponding CMake variables (`APPEND_CPPFLAGS`, `APPEND_CFLAGS`, `APPEND_CXXFLAGS` and `APPEND_LDFLAGS`). Alternatively, if you opt to use the dedicated `CMAKE_<...>_FLAGS` variables, you must ensure that the resulting compiler or linker invocations are as expected.
|
||||
|
||||
For more detailed guidance on configuring and using CMake, please refer to the official [CMake documentation](https://cmake.org/cmake/help/latest/) and [CMake’s User Interaction Guide](https://cmake.org/cmake/help/latest/guide/user-interaction/index.html). Additionally, consult platform-specific `doc/build-*.md` build guides for instructions tailored to your operating system.
|
||||
|
||||
## Low-Level Changes
|
||||
|
||||
### Tools and Utilities
|
||||
|
||||
- A new tool [`utxo_to_sqlite.py`](/contrib/utxo-tools/utxo_to_sqlite.py)
|
||||
converts a compact-serialized UTXO snapshot (as created with the
|
||||
`dumptxoutset` RPC) to a SQLite3 database. Refer to the script's `--help`
|
||||
output for more details. (#27432)
|
||||
|
||||
### Tests
|
||||
|
||||
- The BIP94 timewarp attack mitigation (designed for testnet4) is no longer active on the regtest network. (#31156)
|
||||
|
||||
### Dependencies
|
||||
|
||||
- MiniUPnPc and libnatpmp have been removed as dependencies (#31130, #30043).
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Thanks to everyone who directly contributed to this release:
|
||||
|
||||
- 0xb10c
|
||||
- Adlai Chandrasekhar
|
||||
- Afanti
|
||||
- Alfonso Roman Zubeldia
|
||||
- am-sq
|
||||
- Andre
|
||||
- Andre Alves
|
||||
- Anthony Towns
|
||||
- Antoine Poinsot
|
||||
- Ash Manning
|
||||
- Ava Chow
|
||||
- Boris Nagaev
|
||||
- Brandon Odiwuor
|
||||
- brunoerg
|
||||
- Chris Stewart
|
||||
- Cory Fields
|
||||
- costcould
|
||||
- Daniel Pfeifer
|
||||
- Daniela Brozzoni
|
||||
- David Gumberg
|
||||
- dergoegge
|
||||
- epysqyli
|
||||
- espi3
|
||||
- Eval EXEC
|
||||
- Fabian Jahr
|
||||
- fanquake
|
||||
- furszy
|
||||
- Gabriele Bocchi
|
||||
- glozow
|
||||
- Greg Sanders
|
||||
- Gutflo
|
||||
- Hennadii Stepanov
|
||||
- Hodlinator
|
||||
- i-am-yuvi
|
||||
- ion-
|
||||
- ismaelsadeeq
|
||||
- Jadi
|
||||
- James O'Beirne
|
||||
- Jeremy Rand
|
||||
- Jon Atack
|
||||
- jurraca
|
||||
- Kay
|
||||
- kevkevinpal
|
||||
- l0rinc
|
||||
- laanwj
|
||||
- Larry Ruane
|
||||
- Lőrinc
|
||||
- Maciej S. Szmigiero
|
||||
- Mackain
|
||||
- MarcoFalke
|
||||
- marcofleon
|
||||
- Marnix
|
||||
- Martin Leitner-Ankerl
|
||||
- Martin Saposnic
|
||||
- Martin Zumsande
|
||||
- Matthew Zipkin
|
||||
- Max Edwards
|
||||
- Michael Dietz
|
||||
- naiyoma
|
||||
- Nicola Leonardo Susca
|
||||
- omahs
|
||||
- pablomartin4btc
|
||||
- Pieter Wuille
|
||||
- Randall Naar
|
||||
- RiceChuan
|
||||
- rkrux
|
||||
- Roman Zeyde
|
||||
- Ryan Ofsky
|
||||
- Sebastian Falbesoner
|
||||
- secp512k2
|
||||
- Sergi Delgado Segura
|
||||
- Simon
|
||||
- Sjors Provoost
|
||||
- stickies-v
|
||||
- Suhas Daftuar
|
||||
- tdb3
|
||||
- TheCharlatan
|
||||
- tianzedavid
|
||||
- Torkel Rogstad
|
||||
- Vasil Dimov
|
||||
- wgyt
|
||||
- willcl-ark
|
||||
- yancy
|
||||
|
||||
As well as to everyone that helped with translations on
|
||||
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).
|
||||
@@ -1 +1,706 @@
|
||||
# This is a placeholder file. Please follow the instructions in `contrib/devtools/README.md` to generate a bitcoin.conf file.
|
||||
##
|
||||
## bitcoin.conf configuration file.
|
||||
## Generated by contrib/devtools/gen-bitcoin-conf.sh.
|
||||
##
|
||||
## Lines beginning with # are comments.
|
||||
## All possible configuration options are provided. To use, copy this file
|
||||
## to your data directory (default or specified by -datadir), uncomment
|
||||
## options you would like to change, and save the file.
|
||||
##
|
||||
|
||||
|
||||
### 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>
|
||||
|
||||
# Imports blocks from external file on startup
|
||||
#loadblock=<file>
|
||||
|
||||
# Keep the transaction memory pool below <n> megabytes (default: 300)
|
||||
#maxmempool=<n>
|
||||
|
||||
# Keep at most <n> unconnectable transactions in memory (default: 100)
|
||||
#maxorphantx=<n>
|
||||
|
||||
# Do not keep transactions in the mempool longer than <n> hours (default:
|
||||
# 336)
|
||||
#mempoolexpiry=<n>
|
||||
|
||||
# Set the number of script verification threads (0 = auto, up to 15, <0 =
|
||||
# leave that many cores free, default: 0)
|
||||
#par=<n>
|
||||
|
||||
# Whether to save the mempool on shutdown and load on restart (default: 1)
|
||||
#persistmempool=1
|
||||
|
||||
# Whether a mempool.dat file created by -persistmempool or the savemempool
|
||||
# RPC will be written in the legacy format (version 1) or the
|
||||
# current format (version 2). This temporary option will be removed
|
||||
# in the future. (default: 0)
|
||||
#persistmempoolv1=1
|
||||
|
||||
# Specify pid file. Relative paths will be prefixed by a net-specific
|
||||
# datadir location. (default: bitcoind.pid)
|
||||
#pid=<file>
|
||||
|
||||
# Reduce storage requirements by enabling pruning (deleting) of old
|
||||
# blocks. This allows the pruneblockchain RPC to be called to
|
||||
# delete specific blocks and enables automatic pruning of old
|
||||
# blocks if a target size in MiB is provided. This mode is
|
||||
# incompatible with -txindex. Warning: Reverting this setting
|
||||
# requires re-downloading the entire blockchain. (default: 0 =
|
||||
# disable pruning blocks, 1 = allow manual pruning via RPC, >=550 =
|
||||
# automatically prune block files to stay under the specified
|
||||
# target size in MiB)
|
||||
#prune=<n>
|
||||
|
||||
# If enabled, wipe chain state and block index, and rebuild them from
|
||||
# blk*.dat files on disk. Also wipe and rebuild other optional
|
||||
# indexes that are active. If an assumeutxo snapshot was loaded,
|
||||
# its chainstate will be wiped as well. The snapshot can then be
|
||||
# reloaded via RPC.
|
||||
#reindex=1
|
||||
|
||||
# If enabled, wipe chain state, and rebuild it from blk*.dat files on
|
||||
# disk. If an assumeutxo snapshot was loaded, its chainstate will
|
||||
# be wiped as well. The snapshot can then be reloaded via RPC.
|
||||
#reindex-chainstate=1
|
||||
|
||||
# Specify path to dynamic settings data file. Can be disabled with
|
||||
# -nosettings. File is written at runtime and not meant to be
|
||||
# edited by users (use bitcoin.conf instead for custom settings).
|
||||
# Relative paths will be prefixed by datadir location. (default:
|
||||
# settings.json)
|
||||
#settings=<file>
|
||||
|
||||
# Execute command immediately before beginning shutdown. The need for
|
||||
# shutdown may be urgent, so be careful not to delay it long (if
|
||||
# the command doesn't require interaction with the server, consider
|
||||
# having it fork into the background).
|
||||
#shutdownnotify=<cmd>
|
||||
|
||||
# Execute command on startup.
|
||||
#startupnotify=<cmd>
|
||||
|
||||
# Maintain a full transaction index, used by the getrawtransaction rpc
|
||||
# call (default: 0)
|
||||
#txindex=1
|
||||
|
||||
# Print version and exit
|
||||
#version=1
|
||||
|
||||
|
||||
### Connection options
|
||||
|
||||
|
||||
# Add a node to connect to and attempt to keep the connection open (see
|
||||
# the addnode RPC help for more info). This option can be specified
|
||||
# multiple times to add multiple nodes; connections are limited to
|
||||
# 8 at a time and are counted separately from the -maxconnections
|
||||
# limit.
|
||||
#addnode=<ip>
|
||||
|
||||
# Specify asn mapping used for bucketing of the peers (default:
|
||||
# ip_asn.map). Relative paths will be prefixed by the net-specific
|
||||
# datadir location.
|
||||
#asmap=<file>
|
||||
|
||||
# Default duration (in seconds) of manually configured bans (default:
|
||||
# 86400)
|
||||
#bantime=<n>
|
||||
|
||||
# Bind to given address and always listen on it (default: 0.0.0.0). Use
|
||||
# [host]:port notation for IPv6. Append =onion to tag any incoming
|
||||
# connections to that address and port as incoming Tor connections
|
||||
# (default: 127.0.0.1:8334=onion, testnet3: 127.0.0.1:18334=onion,
|
||||
# testnet4: 127.0.0.1:48334=onion, signet: 127.0.0.1:38334=onion,
|
||||
# regtest: 127.0.0.1:18445=onion)
|
||||
#bind=<addr>[:<port>][=onion]
|
||||
|
||||
# If set, then this host is configured for CJDNS (connecting to fc00::/8
|
||||
# addresses would lead us to the CJDNS network, see doc/cjdns.md)
|
||||
# (default: 0)
|
||||
#cjdnsreachable=1
|
||||
|
||||
# Connect only to the specified node; -noconnect disables automatic
|
||||
# connections (the rules for this peer are the same as for
|
||||
# -addnode). This option can be specified multiple times to connect
|
||||
# to multiple nodes.
|
||||
#connect=<ip>
|
||||
|
||||
# Discover own IP addresses (default: 1 when listening and no -externalip
|
||||
# or -proxy)
|
||||
#discover=1
|
||||
|
||||
# Allow DNS lookups for -addnode, -seednode and -connect (default: 1)
|
||||
#dns=1
|
||||
|
||||
# Query for peer addresses via DNS lookup, if low on addresses (default: 1
|
||||
# unless -connect used or -maxconnections=0)
|
||||
#dnsseed=1
|
||||
|
||||
# Specify your own public address
|
||||
#externalip=<ip>
|
||||
|
||||
# Allow fixed seeds if DNS seeds don't provide peers (default: 1)
|
||||
#fixedseeds=1
|
||||
|
||||
# Always query for peer addresses via DNS lookup (default: 0)
|
||||
#forcednsseed=1
|
||||
|
||||
# Whether to accept inbound I2P connections (default: 1). Ignored if
|
||||
# -i2psam is not set. Listening for inbound I2P connections is done
|
||||
# through the SAM proxy, not by binding to a local address and
|
||||
# port.
|
||||
#i2pacceptincoming=1
|
||||
|
||||
# I2P SAM proxy to reach I2P peers and accept I2P connections (default:
|
||||
# none)
|
||||
#i2psam=<ip:port>
|
||||
|
||||
# Accept connections from outside (default: 1 if no -proxy, -connect or
|
||||
# -maxconnections=0)
|
||||
#listen=1
|
||||
|
||||
# Automatically create Tor onion service (default: 1)
|
||||
#listenonion=1
|
||||
|
||||
# Maintain at most <n> automatic connections to peers (default: 125). This
|
||||
# limit does not apply to connections manually added via -addnode
|
||||
# or the addnode RPC, which have a separate limit of 8.
|
||||
#maxconnections=<n>
|
||||
|
||||
# Maximum per-connection receive buffer, <n>*1000 bytes (default: 5000)
|
||||
#maxreceivebuffer=<n>
|
||||
|
||||
# Maximum per-connection memory usage for the send buffer, <n>*1000 bytes
|
||||
# (default: 1000)
|
||||
#maxsendbuffer=<n>
|
||||
|
||||
# Tries to keep outbound traffic under the given target per 24h. Limit
|
||||
# does not apply to peers with 'download' permission or blocks
|
||||
# created within past week. 0 = no limit (default: 0M). Optional
|
||||
# suffix units [k|K|m|M|g|G|t|T] (default: M). Lowercase is 1000
|
||||
# base while uppercase is 1024 base
|
||||
#maxuploadtarget=<n>
|
||||
|
||||
# Use PCP or NAT-PMP to map the listening port (default: 0)
|
||||
#natpmp=1
|
||||
|
||||
# Enable all P2P network activity (default: 1). Can be changed by the
|
||||
# setnetworkactive RPC command
|
||||
#networkactive=1
|
||||
|
||||
# Use separate SOCKS5 proxy to reach peers via Tor onion services, set
|
||||
# -noonion to disable (default: -proxy). May be a local file path
|
||||
# prefixed with 'unix:'.
|
||||
#onion=<ip:port|path>
|
||||
|
||||
# Make automatic outbound connections only to network <net> (ipv4, ipv6,
|
||||
# onion, i2p, cjdns). Inbound and manual connections are not
|
||||
# affected by this option. It can be specified multiple times to
|
||||
# allow multiple networks.
|
||||
#onlynet=<net>
|
||||
|
||||
# Serve compact block filters to peers per BIP 157 (default: 0)
|
||||
#peerblockfilters=1
|
||||
|
||||
# Support filtering of blocks and transaction with bloom filters (default:
|
||||
# 0)
|
||||
#peerbloomfilters=1
|
||||
|
||||
# Listen for connections on <port> (default: 8333, testnet3: 18333,
|
||||
# testnet4: 48333, signet: 38333, regtest: 18444). Not relevant for
|
||||
# I2P (see doc/i2p.md). If set to a value x, the default onion
|
||||
# listening port will be set to x+1.
|
||||
#port=<port>
|
||||
|
||||
# Connect through SOCKS5 proxy, set -noproxy to disable (default:
|
||||
# disabled). May be a local file path prefixed with 'unix:' if the
|
||||
# proxy supports it.
|
||||
#proxy=<ip:port|path>
|
||||
|
||||
# Randomize credentials for every proxy connection. This enables Tor
|
||||
# stream isolation (default: 1)
|
||||
#proxyrandomize=1
|
||||
|
||||
# Connect to a node to retrieve peer addresses, and disconnect. This
|
||||
# option can be specified multiple times to connect to multiple
|
||||
# nodes. During startup, seednodes will be tried before dnsseeds.
|
||||
#seednode=<ip>
|
||||
|
||||
# Specify socket connection timeout in milliseconds. If an initial attempt
|
||||
# to connect is unsuccessful after this amount of time, drop it
|
||||
# (minimum: 1, default: 5000)
|
||||
#timeout=<n>
|
||||
|
||||
# Tor control host and port to use if onion listening enabled (default:
|
||||
# 127.0.0.1:9051). If no port is specified, the default port of
|
||||
# 9051 will be used.
|
||||
#torcontrol=<ip>:<port>
|
||||
|
||||
# Tor control port password (default: empty)
|
||||
#torpassword=<pass>
|
||||
|
||||
# Support v2 transport (default: 1)
|
||||
#v2transport=1
|
||||
|
||||
# Bind to the given address and add permission flags to the peers
|
||||
# connecting to it. Use [host]:port notation for IPv6. Allowed
|
||||
# permissions: bloomfilter (allow requesting BIP37 filtered blocks
|
||||
# and transactions), noban (do not ban for misbehavior; implies
|
||||
# download), forcerelay (relay transactions that are already in the
|
||||
# mempool; implies relay), relay (relay even in -blocksonly mode,
|
||||
# and unlimited transaction announcements), mempool (allow
|
||||
# requesting BIP35 mempool contents), download (allow getheaders
|
||||
# during IBD, no disconnect after maxuploadtarget limit), addr
|
||||
# (responses to GETADDR avoid hitting the cache and contain random
|
||||
# records with the most up-to-date info). Specify multiple
|
||||
# permissions separated by commas (default:
|
||||
# download,noban,mempool,relay). Can be specified multiple times.
|
||||
#whitebind=<[permissions@]addr>
|
||||
|
||||
# Add permission flags to the peers using the given IP address (e.g.
|
||||
# 1.2.3.4) or CIDR-notated network (e.g. 1.2.3.0/24). Uses the same
|
||||
# permissions as -whitebind. Additional flags "in" and "out"
|
||||
# control whether permissions apply to incoming connections and/or
|
||||
# manual (default: incoming only). Can be specified multiple times.
|
||||
#whitelist=<[permissions@]IP address or network>
|
||||
|
||||
|
||||
### Wallet options
|
||||
|
||||
|
||||
# What type of addresses to use ("legacy", "p2sh-segwit", "bech32", or
|
||||
# "bech32m", default: "bech32")
|
||||
#addresstype=1
|
||||
|
||||
# Group outputs by address, selecting many (possibly all) or none, instead
|
||||
# of selecting on a per-output basis. Privacy is improved as
|
||||
# addresses are mostly swept with fewer transactions and outputs
|
||||
# are aggregated in clean change addresses. It may result in higher
|
||||
# fees due to less optimal coin selection caused by this added
|
||||
# limitation and possibly a larger-than-necessary number of inputs
|
||||
# being used. Always enabled for wallets with "avoid_reuse"
|
||||
# enabled, otherwise default: 0.
|
||||
#avoidpartialspends=1
|
||||
|
||||
# What type of change to use ("legacy", "p2sh-segwit", "bech32", or
|
||||
# "bech32m"). Default is "legacy" when -addresstype=legacy, else it
|
||||
# is an implementation detail.
|
||||
#changetype=1
|
||||
|
||||
# The maximum feerate (in BTC/kvB) at which transaction building may use
|
||||
# more inputs than strictly necessary so that the wallet's UTXO
|
||||
# pool can be reduced (default: 0.0001).
|
||||
#consolidatefeerate=<amt>
|
||||
|
||||
# Do not load the wallet and disable wallet RPC calls
|
||||
#disablewallet=1
|
||||
|
||||
# The fee rate (in BTC/kvB) that indicates your tolerance for discarding
|
||||
# change by adding it to the fee (default: 0.0001). Note: An output
|
||||
# is discarded if it is dust at this rate, but we will always
|
||||
# discard up to the dust relay fee and a discard fee above that is
|
||||
# limited by the fee estimate for the longest target
|
||||
#discardfee=<amt>
|
||||
|
||||
# A fee rate (in BTC/kvB) that will be used when fee estimation has
|
||||
# insufficient data. 0 to entirely disable the fallbackfee feature.
|
||||
# (default: 0.00)
|
||||
#fallbackfee=<amt>
|
||||
|
||||
# Set key pool size to <n> (default: 1000). Warning: Smaller sizes may
|
||||
# increase the risk of losing funds when restoring from an old
|
||||
# backup, if none of the addresses in the original keypool have
|
||||
# been used.
|
||||
#keypool=<n>
|
||||
|
||||
# Spend up to this amount in additional (absolute) fees (in BTC) if it
|
||||
# allows the use of partial spend avoidance (default: 0.00)
|
||||
#maxapsfee=<n>
|
||||
|
||||
# Fee rates (in BTC/kvB) smaller than this are considered zero fee for
|
||||
# transaction creation (default: 0.00001)
|
||||
#mintxfee=<amt>
|
||||
|
||||
# Fee rate (in BTC/kvB) to add to transactions you send (default: 0.00)
|
||||
#paytxfee=<amt>
|
||||
|
||||
# External signing tool, see doc/external-signer.md
|
||||
#signer=<cmd>
|
||||
|
||||
# Spend unconfirmed change when sending transactions (default: 1)
|
||||
#spendzeroconfchange=1
|
||||
|
||||
# If paytxfee is not set, include enough fee so transactions begin
|
||||
# confirmation on average within n blocks (default: 6)
|
||||
#txconfirmtarget=<n>
|
||||
|
||||
# Specify wallet path to load at startup. Can be used multiple times to
|
||||
# load multiple wallets. Path is to a directory containing wallet
|
||||
# data and log files. If the path is not absolute, it is
|
||||
# interpreted relative to <walletdir>. This only loads existing
|
||||
# wallets and does not create new ones. For backwards compatibility
|
||||
# this also accepts names of existing top-level data files in
|
||||
# <walletdir>.
|
||||
#wallet=<path>
|
||||
|
||||
# Make the wallet broadcast transactions (default: 1)
|
||||
#walletbroadcast=1
|
||||
|
||||
# Specify directory to hold wallets (default: <datadir>/wallets if it
|
||||
# exists, otherwise <datadir>)
|
||||
#walletdir=<dir>
|
||||
|
||||
# Execute command when a wallet transaction changes. %s in cmd is replaced
|
||||
# by TxID, %w is replaced by wallet name, %b is replaced by the
|
||||
# hash of the block including the transaction (set to 'unconfirmed'
|
||||
# if the transaction is not included) and %h is replaced by the
|
||||
# block height (-1 if not included). %w is not currently
|
||||
# implemented on windows. On systems where %w is supported, it
|
||||
# should NOT be quoted because this would break shell escaping used
|
||||
# to invoke the command.
|
||||
#walletnotify=<cmd>
|
||||
|
||||
# Send transactions with full-RBF opt-in enabled (RPC only, default: 1)
|
||||
#walletrbf=1
|
||||
|
||||
|
||||
### ZeroMQ notification options
|
||||
|
||||
|
||||
# Enable publish hash block in <address>
|
||||
#zmqpubhashblock=<address>
|
||||
|
||||
# Set publish hash block outbound message high water mark (default: 1000)
|
||||
#zmqpubhashblockhwm=<n>
|
||||
|
||||
# Enable publish hash transaction in <address>
|
||||
#zmqpubhashtx=<address>
|
||||
|
||||
# Set publish hash transaction outbound message high water mark (default:
|
||||
# 1000)
|
||||
#zmqpubhashtxhwm=<n>
|
||||
|
||||
# Enable publish raw block in <address>
|
||||
#zmqpubrawblock=<address>
|
||||
|
||||
# Set publish raw block outbound message high water mark (default: 1000)
|
||||
#zmqpubrawblockhwm=<n>
|
||||
|
||||
# Enable publish raw transaction in <address>
|
||||
#zmqpubrawtx=<address>
|
||||
|
||||
# Set publish raw transaction outbound message high water mark (default:
|
||||
# 1000)
|
||||
#zmqpubrawtxhwm=<n>
|
||||
|
||||
# Enable publish hash block and tx sequence in <address>
|
||||
#zmqpubsequence=<address>
|
||||
|
||||
# Set publish hash sequence message high water mark (default: 1000)
|
||||
#zmqpubsequencehwm=<n>
|
||||
|
||||
|
||||
### Debugging/Testing options
|
||||
|
||||
|
||||
# Output debug and trace logging (default: -nodebug, supplying <category>
|
||||
# is optional). If <category> is not supplied or if <category> is 1
|
||||
# or "all", output all debug logging. If <category> is 0 or "none",
|
||||
# any other categories are ignored. Other valid values for
|
||||
# <category> are: addrman, bench, blockstorage, cmpctblock, coindb,
|
||||
# estimatefee, http, i2p, ipc, leveldb, libevent, mempool,
|
||||
# mempoolrej, net, proxy, prune, qt, rand, reindex, rpc, scan,
|
||||
# selectcoins, tor, txpackages, txreconciliation, validation,
|
||||
# walletdb, zmq. This option can be specified multiple times to
|
||||
# output multiple categories.
|
||||
#debug=<category>
|
||||
|
||||
# Exclude debug and trace logging for a category. Can be used in
|
||||
# conjunction with -debug=1 to output debug and trace logging for
|
||||
# all categories except the specified category. This option can be
|
||||
# specified multiple times to exclude multiple categories. This
|
||||
# takes priority over "-debug"
|
||||
#debugexclude=<category>
|
||||
|
||||
# Include IP addresses in debug output (default: 0)
|
||||
#logips=1
|
||||
|
||||
# Always prepend a category and level (default: 0)
|
||||
#loglevelalways=1
|
||||
|
||||
# Prepend debug output with name of the originating source location
|
||||
# (source file, line number and function name) (default: 0)
|
||||
#logsourcelocations=1
|
||||
|
||||
# Prepend debug output with name of the originating thread (default: 0)
|
||||
#logthreadnames=1
|
||||
|
||||
# Prepend debug output with timestamp (default: 1)
|
||||
#logtimestamps=1
|
||||
|
||||
# Maximum total fees (in BTC) to use in a single wallet transaction;
|
||||
# setting this too low may abort large transactions (default: 0.10)
|
||||
#maxtxfee=<amt>
|
||||
|
||||
# Send trace/debug info to console (default: 1 when no -daemon. To disable
|
||||
# logging to file, set -nodebuglogfile)
|
||||
#printtoconsole=1
|
||||
|
||||
# Shrink debug.log file on client startup (default: 1 when no -debug)
|
||||
#shrinkdebugfile=1
|
||||
|
||||
# Append comment to the user agent string
|
||||
#uacomment=<cmt>
|
||||
|
||||
|
||||
### Chain selection options
|
||||
|
||||
|
||||
# Use the chain <chain> (default: main). Allowed values: main, test,
|
||||
# testnet4, signet, regtest
|
||||
#chain=<chain>
|
||||
|
||||
# Use the signet chain. Equivalent to -chain=signet. Note that the network
|
||||
# is defined by the -signetchallenge parameter
|
||||
#signet=1
|
||||
|
||||
# Blocks must satisfy the given script to be considered valid (only for
|
||||
# signet networks; defaults to the global default signet test
|
||||
# network challenge)
|
||||
#signetchallenge=1
|
||||
|
||||
# Specify a seed node for the signet network, in the hostname[:port]
|
||||
# format, e.g. sig.net:1234 (may be used multiple times to specify
|
||||
# multiple seed nodes; defaults to the global default signet test
|
||||
# network seed node(s))
|
||||
#signetseednode=1
|
||||
|
||||
# Use the testnet3 chain. Equivalent to -chain=test. Support for testnet3
|
||||
# is deprecated and will be removed in an upcoming release.
|
||||
# Consider moving to testnet4 now by using -testnet4.
|
||||
#testnet=1
|
||||
|
||||
# Use the testnet4 chain. Equivalent to -chain=testnet4.
|
||||
#testnet4=1
|
||||
|
||||
|
||||
### Node relay options
|
||||
|
||||
|
||||
# Equivalent bytes per sigop in transactions for relay and mining
|
||||
# (default: 20)
|
||||
#bytespersigop=1
|
||||
|
||||
# Relay and mine data carrier transactions (default: 1)
|
||||
#datacarrier=1
|
||||
|
||||
# Relay and mine transactions whose data-carrying raw scriptPubKey is of
|
||||
# this size or less (default: 83)
|
||||
#datacarriersize=1
|
||||
|
||||
# Fees (in BTC/kvB) smaller than this are considered zero fee for
|
||||
# relaying, mining and transaction creation (default: 0.00001)
|
||||
#minrelaytxfee=<amt>
|
||||
|
||||
# Relay transactions creating non-P2SH multisig outputs (default: 1)
|
||||
#permitbaremultisig=1
|
||||
|
||||
# Add 'forcerelay' permission to whitelisted peers with default
|
||||
# permissions. This will relay transactions even if the
|
||||
# transactions were already in the mempool. (default: 0)
|
||||
#whitelistforcerelay=1
|
||||
|
||||
# Add 'relay' permission to whitelisted peers with default permissions.
|
||||
# This will accept relayed transactions even when not relaying
|
||||
# transactions (default: 1)
|
||||
#whitelistrelay=1
|
||||
|
||||
|
||||
### Block creation options
|
||||
|
||||
|
||||
# Set maximum BIP141 block weight (default: 4000000)
|
||||
#blockmaxweight=<n>
|
||||
|
||||
# Set lowest fee rate (in BTC/kvB) for transactions to be included in
|
||||
# block creation. (default: 0.00001)
|
||||
#blockmintxfee=<amt>
|
||||
|
||||
# Reserve space for the fixed-size block header plus the largest coinbase
|
||||
# transaction the mining software may add to the block. (default:
|
||||
# 8000).
|
||||
#blockreservedweight=<n>
|
||||
|
||||
|
||||
### RPC server options
|
||||
|
||||
|
||||
# Accept public REST requests (default: 0)
|
||||
#rest=1
|
||||
|
||||
# Allow JSON-RPC connections from specified source. Valid values for <ip>
|
||||
# are a single IP (e.g. 1.2.3.4), a network/netmask (e.g.
|
||||
# 1.2.3.4/255.255.255.0), a network/CIDR (e.g. 1.2.3.4/24), all
|
||||
# ipv4 (0.0.0.0/0), or all ipv6 (::/0). This option can be
|
||||
# specified multiple times
|
||||
#rpcallowip=<ip>
|
||||
|
||||
# Username and HMAC-SHA-256 hashed password for JSON-RPC connections. The
|
||||
# field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A
|
||||
# canonical python script is included in share/rpcauth. The client
|
||||
# then connects normally using the
|
||||
# rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This
|
||||
# option can be specified multiple times
|
||||
#rpcauth=<userpw>
|
||||
|
||||
# Bind to given address to listen for JSON-RPC connections. Do not expose
|
||||
# the RPC server to untrusted networks such as the public internet!
|
||||
# This option is ignored unless -rpcallowip is also passed. Port is
|
||||
# optional and overrides -rpcport. Use [host]:port notation for
|
||||
# IPv6. This option can be specified multiple times (default:
|
||||
# 127.0.0.1 and ::1 i.e., localhost)
|
||||
#rpcbind=<addr>[:port]
|
||||
|
||||
# Location of the auth cookie. Relative paths will be prefixed by a
|
||||
# net-specific datadir location. (default: data dir)
|
||||
#rpccookiefile=<loc>
|
||||
|
||||
# Set permissions on the RPC auth cookie file so that it is readable by
|
||||
# [owner|group|all] (default: owner [via umask 0077])
|
||||
#rpccookieperms=<readable-by>
|
||||
|
||||
# Password for JSON-RPC connections
|
||||
#rpcpassword=<pw>
|
||||
|
||||
# Listen for JSON-RPC connections on <port> (default: 8332, testnet3:
|
||||
# 18332, testnet4: 48332, signet: 38332, regtest: 18443)
|
||||
#rpcport=<port>
|
||||
|
||||
# Set the number of threads to service RPC calls (default: 16)
|
||||
#rpcthreads=<n>
|
||||
|
||||
# Username for JSON-RPC connections
|
||||
#rpcuser=<user>
|
||||
|
||||
# Set a whitelist to filter incoming RPC calls for a specific user. The
|
||||
# field <whitelist> comes in the format: <USERNAME>:<rpc 1>,<rpc
|
||||
# 2>,...,<rpc n>. If multiple whitelists are set for a given user,
|
||||
# they are set-intersected. See -rpcwhitelistdefault documentation
|
||||
# for information on default whitelist behavior.
|
||||
#rpcwhitelist=<whitelist>
|
||||
|
||||
# Sets default behavior for rpc whitelisting. Unless rpcwhitelistdefault
|
||||
# is set to 0, if any -rpcwhitelist is set, the rpc server acts as
|
||||
# if all rpc users are subject to empty-unless-otherwise-specified
|
||||
# whitelists. If rpcwhitelistdefault is set to 1 and no
|
||||
# -rpcwhitelist is set, rpc server acts as if all rpc users are
|
||||
# subject to empty whitelists.
|
||||
#rpcwhitelistdefault=1
|
||||
|
||||
# Accept command line and JSON-RPC commands
|
||||
#server=1
|
||||
|
||||
|
||||
# [Sections]
|
||||
# Most options will apply to all networks. To confine an option to a specific
|
||||
# network, add it under the relevant section below.
|
||||
#
|
||||
# Note: If not specified under a network section, the options addnode, connect,
|
||||
# port, bind, rpcport, rpcbind, and wallet will only apply to mainnet.
|
||||
|
||||
# Options for mainnet
|
||||
[main]
|
||||
|
||||
# Options for testnet3
|
||||
[test]
|
||||
|
||||
# Options for testnet4
|
||||
[testnet4]
|
||||
|
||||
# Options for signet
|
||||
[signet]
|
||||
|
||||
# Options for regtest
|
||||
[regtest]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
@@ -93,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):
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user