Skip to content

Commit d822839

Browse files
committed
Merge bitcoin#29780: [27.x] More backports and finalize
910e3e8 doc: update manual pages for v27.0 (fanquake) 2d2a0a3 build: bump version to v27.0 final (fanquake) 9442ea8 doc: import release notes from devwiki (fanquake) fe51ace Update the developer mailing list address. (Edil Medeiros) bde54b7 ci: Print tsan errors to stderr (MarcoFalke) 753c68d ci: Pull in qtbase5-dev instead of seperate low-level libraries (laanwj) c4da61b doc: Suggest installing dev packages for debian/ubuntu qt5 build (laanwj) Pull request description: Currently backports: * bitcoin#29740 * bitcoin#29764 * bitcoin#29782 Pulls release notes: https://github.com/bitcoin-core/bitcoin-devwiki/wiki/27.0-Release-Notes-Draft. Finalizes `v27.0`. ACKs for top commit: achow101: ACK 910e3e8 stickies-v: ACK 910e3e8 - no changes except addressing nits Tree-SHA512: 5dd8c6adaab154699f8ad9a5bda26de54901d3d1d09034a5a6775a37f12b44274d2d5ce6e1a527a6c211b56a75fe154f3ccb37bcbc39882be8299a4f127bfe30
2 parents b3cd952 + 910e3e8 commit d822839

14 files changed

+243
-28
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ jobs:
6262
echo "TEST_BASE=$(git rev-list -n$((${{ env.MAX_COUNT }} + 1)) --reverse HEAD ^$(git rev-list -n1 --merges HEAD)^@ | head -1)" >> "$GITHUB_ENV"
6363
- run: |
6464
sudo apt-get update
65-
sudo apt-get install clang-15 ccache build-essential libtool autotools-dev automake pkg-config bsdmainutils python3-zmq libevent-dev libboost-dev libsqlite3-dev libdb++-dev systemtap-sdt-dev libminiupnpc-dev libnatpmp-dev libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools qtwayland5 libqrencode-dev -y
65+
sudo apt-get install clang-15 ccache build-essential libtool autotools-dev automake pkg-config bsdmainutils python3-zmq libevent-dev libboost-dev libsqlite3-dev libdb++-dev systemtap-sdt-dev libminiupnpc-dev libnatpmp-dev qtbase5-dev qttools5-dev qttools5-dev-tools qtwayland5 libqrencode-dev -y
6666
- name: Compile and run tests
6767
run: |
6868
# Run tests on commits after the last merge commit and before the PR head commit

CONTRIBUTING.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,10 @@ Discussion about codebase improvements happens in GitHub issues and pull
6666
requests.
6767

6868
The developer
69-
[mailing list](https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev)
69+
[mailing list](https://groups.google.com/g/bitcoindev)
7070
should be used to discuss complicated or controversial consensus or P2P protocol changes before working on
7171
a patch set.
72+
Archives can be found on [https://gnusha.org/pi/bitcoindev/](https://gnusha.org/pi/bitcoindev/).
7273

7374

7475
Contributor Workflow

ci/test/00_setup_env_native_tidy.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export LC_ALL=C.UTF-8
99
export CI_IMAGE_NAME_TAG="docker.io/ubuntu:24.04"
1010
export CONTAINER_NAME=ci_native_tidy
1111
export TIDY_LLVM_V="17"
12-
export PACKAGES="clang-${TIDY_LLVM_V} libclang-${TIDY_LLVM_V}-dev llvm-${TIDY_LLVM_V}-dev libomp-${TIDY_LLVM_V}-dev clang-tidy-${TIDY_LLVM_V} jq bear libevent-dev libboost-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev systemtap-sdt-dev libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools libqrencode-dev libsqlite3-dev libdb++-dev"
12+
export PACKAGES="clang-${TIDY_LLVM_V} libclang-${TIDY_LLVM_V}-dev llvm-${TIDY_LLVM_V}-dev libomp-${TIDY_LLVM_V}-dev clang-tidy-${TIDY_LLVM_V} jq bear libevent-dev libboost-dev libminiupnpc-dev libnatpmp-dev libzmq3-dev systemtap-sdt-dev qtbase5-dev qttools5-dev qttools5-dev-tools libqrencode-dev libsqlite3-dev libdb++-dev"
1313
export NO_DEPENDS=1
1414
export RUN_UNIT_TESTS=false
1515
export RUN_FUNCTIONAL_TESTS=false

ci/test/03_test_script.sh

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ set -ex
1010

1111
export ASAN_OPTIONS="detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1"
1212
export LSAN_OPTIONS="suppressions=${BASE_ROOT_DIR}/test/sanitizer_suppressions/lsan"
13-
export TSAN_OPTIONS="suppressions=${BASE_ROOT_DIR}/test/sanitizer_suppressions/tsan:halt_on_error=1:log_path=${BASE_SCRATCH_DIR}/sanitizer-output/tsan"
13+
export TSAN_OPTIONS="suppressions=${BASE_ROOT_DIR}/test/sanitizer_suppressions/tsan:halt_on_error=1"
1414
export UBSAN_OPTIONS="suppressions=${BASE_ROOT_DIR}/test/sanitizer_suppressions/ubsan:print_stacktrace=1:halt_on_error=1:report_error_type=1"
1515

1616
if [ "$CI_OS_NAME" == "macos" ]; then
@@ -71,8 +71,6 @@ elif [ "$RUN_UNIT_TESTS" = "true" ] || [ "$RUN_UNIT_TESTS_SEQUENTIAL" = "true" ]
7171
fi
7272
fi
7373

74-
mkdir -p "${BASE_SCRATCH_DIR}/sanitizer-output/"
75-
7674
if [ "$USE_BUSY_BOX" = "true" ]; then
7775
echo "Setup to use BusyBox utils"
7876
# tar excluded for now because it requires passing in the exact archive type in ./depends (fixed in later BusyBox version)

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ AC_PREREQ([2.69])
22
define(_CLIENT_VERSION_MAJOR, 27)
33
define(_CLIENT_VERSION_MINOR, 0)
44
define(_CLIENT_VERSION_BUILD, 0)
5-
define(_CLIENT_VERSION_RC, 1)
5+
define(_CLIENT_VERSION_RC, 0)
66
define(_CLIENT_VERSION_IS_RELEASE, true)
77
define(_COPYRIGHT_YEAR, 2024)
88
define(_COPYRIGHT_HOLDERS,[The %s developers])

doc/build-unix.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ To build without GUI pass `--without-gui`.
8181

8282
To build with Qt 5 you need the following:
8383

84-
sudo apt-get install libqt5gui5 libqt5core5a libqt5dbus5 qttools5-dev qttools5-dev-tools
84+
sudo apt-get install qtbase5-dev qttools5-dev qttools5-dev-tools
8585

8686
Additionally, to support Wayland protocol for modern desktop environments:
8787

doc/dnsseed-policy.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ related to the DNS seed operation.
4444
If these expectations cannot be satisfied the operator should
4545
discontinue providing services and contact the active Bitcoin
4646
Core development team as well as posting on
47-
[bitcoin-dev](https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev).
47+
[bitcoin-dev](https://groups.google.com/g/bitcoindev).
4848

4949
Behavior outside of these expectations may be reasonable in some
5050
situations but should be discussed in public in advance.

doc/man/bitcoin-cli.1

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
2-
.TH BITCOIN-CLI "1" "March 2024" "bitcoin-cli v27.0.0rc1" "User Commands"
2+
.TH BITCOIN-CLI "1" "April 2024" "bitcoin-cli v27.0.0" "User Commands"
33
.SH NAME
4-
bitcoin-cli \- manual page for bitcoin-cli v27.0.0rc1
4+
bitcoin-cli \- manual page for bitcoin-cli v27.0.0
55
.SH SYNOPSIS
66
.B bitcoin-cli
77
[\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR] \fI\,Send command to Bitcoin Core\/\fR
@@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v27.0.0rc1
1515
.B bitcoin-cli
1616
[\fI\,options\/\fR] \fI\,help <command> Get help for a command\/\fR
1717
.SH DESCRIPTION
18-
Bitcoin Core RPC client version v27.0.0rc1
18+
Bitcoin Core RPC client version v27.0.0
1919
.SH OPTIONS
2020
.HP
2121
\-?

doc/man/bitcoin-qt.1

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
2-
.TH BITCOIN-QT "1" "March 2024" "bitcoin-qt v27.0.0rc1" "User Commands"
2+
.TH BITCOIN-QT "1" "April 2024" "bitcoin-qt v27.0.0" "User Commands"
33
.SH NAME
4-
bitcoin-qt \- manual page for bitcoin-qt v27.0.0rc1
4+
bitcoin-qt \- manual page for bitcoin-qt v27.0.0
55
.SH SYNOPSIS
66
.B bitcoin-qt
77
[\fI\,command-line options\/\fR] [\fI\,URI\/\fR]
88
.SH DESCRIPTION
9-
Bitcoin Core version v27.0.0rc1
9+
Bitcoin Core version v27.0.0
1010
.PP
1111
Optional URI is a Bitcoin address in BIP21 URI format.
1212
.SH OPTIONS

doc/man/bitcoin-tx.1

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
2-
.TH BITCOIN-TX "1" "March 2024" "bitcoin-tx v27.0.0rc1" "User Commands"
2+
.TH BITCOIN-TX "1" "April 2024" "bitcoin-tx v27.0.0" "User Commands"
33
.SH NAME
4-
bitcoin-tx \- manual page for bitcoin-tx v27.0.0rc1
4+
bitcoin-tx \- manual page for bitcoin-tx v27.0.0
55
.SH SYNOPSIS
66
.B bitcoin-tx
77
[\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR] \fI\,Update hex-encoded bitcoin transaction\/\fR
88
.br
99
.B bitcoin-tx
1010
[\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR] \fI\,Create hex-encoded bitcoin transaction\/\fR
1111
.SH DESCRIPTION
12-
Bitcoin Core bitcoin\-tx utility version v27.0.0rc1
12+
Bitcoin Core bitcoin\-tx utility version v27.0.0
1313
.SH OPTIONS
1414
.HP
1515
\-?

doc/man/bitcoin-util.1

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
2-
.TH BITCOIN-UTIL "1" "March 2024" "bitcoin-util v27.0.0rc1" "User Commands"
2+
.TH BITCOIN-UTIL "1" "April 2024" "bitcoin-util v27.0.0" "User Commands"
33
.SH NAME
4-
bitcoin-util \- manual page for bitcoin-util v27.0.0rc1
4+
bitcoin-util \- manual page for bitcoin-util v27.0.0
55
.SH SYNOPSIS
66
.B bitcoin-util
77
[\fI\,options\/\fR] [\fI\,commands\/\fR] \fI\,Do stuff\/\fR
88
.SH DESCRIPTION
9-
Bitcoin Core bitcoin\-util utility version v27.0.0rc1
9+
Bitcoin Core bitcoin\-util utility version v27.0.0
1010
.SH OPTIONS
1111
.HP
1212
\-?

doc/man/bitcoin-wallet.1

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
2-
.TH BITCOIN-WALLET "1" "March 2024" "bitcoin-wallet v27.0.0rc1" "User Commands"
2+
.TH BITCOIN-WALLET "1" "April 2024" "bitcoin-wallet v27.0.0" "User Commands"
33
.SH NAME
4-
bitcoin-wallet \- manual page for bitcoin-wallet v27.0.0rc1
4+
bitcoin-wallet \- manual page for bitcoin-wallet v27.0.0
55
.SH DESCRIPTION
6-
Bitcoin Core bitcoin\-wallet version v27.0.0rc1
6+
Bitcoin Core bitcoin\-wallet version v27.0.0
77
.PP
88
bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files.
99
By default bitcoin\-wallet will act on wallets in the default mainnet wallet directory in the datadir.

doc/man/bitcoind.1

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
2-
.TH BITCOIND "1" "March 2024" "bitcoind v27.0.0rc1" "User Commands"
2+
.TH BITCOIND "1" "April 2024" "bitcoind v27.0.0" "User Commands"
33
.SH NAME
4-
bitcoind \- manual page for bitcoind v27.0.0rc1
4+
bitcoind \- manual page for bitcoind v27.0.0
55
.SH SYNOPSIS
66
.B bitcoind
77
[\fI\,options\/\fR] \fI\,Start Bitcoin Core\/\fR
88
.SH DESCRIPTION
9-
Bitcoin Core version v27.0.0rc1
9+
Bitcoin Core version v27.0.0
1010
.SH OPTIONS
1111
.HP
1212
\-?

doc/release-notes.md

Lines changed: 217 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,217 @@
1-
See https://github.com/bitcoin-core/bitcoin-devwiki/wiki/27.0-Release-Notes-Draft
1+
Bitcoin Core version 27.0 is now available from:
2+
3+
<https://bitcoincore.org/bin/bitcoin-core-27.0/>
4+
5+
This release includes new features, various bug fixes and performance
6+
improvements, as well as updated translations.
7+
8+
Please report bugs using the issue tracker at GitHub:
9+
10+
<https://github.com/bitcoin/bitcoin/issues>
11+
12+
To receive security and update notifications, please subscribe to:
13+
14+
<https://bitcoincore.org/en/list/announcements/join/>
15+
16+
How to Upgrade
17+
==============
18+
19+
If you are running an older version, shut it down. Wait until it has completely
20+
shut down (which might take a few minutes in some cases), then run the
21+
installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS)
22+
or `bitcoind`/`bitcoin-qt` (on Linux).
23+
24+
Upgrading directly from a version of Bitcoin Core that has reached its EOL is
25+
possible, but it might take some time if the data directory needs to be migrated. Old
26+
wallet versions of Bitcoin Core are generally supported.
27+
28+
Compatibility
29+
==============
30+
31+
Bitcoin Core is supported and extensively tested on operating systems
32+
using the Linux Kernel 3.17+, macOS 11.0+, and Windows 7 and newer. Bitcoin
33+
Core should also work on most other Unix-like systems but is not as
34+
frequently tested on them. It is not recommended to use Bitcoin Core on
35+
unsupported systems.
36+
37+
Notable changes
38+
===============
39+
40+
libbitcoinconsensus
41+
-------------------
42+
43+
- libbitcoinconsensus is deprecated and will be removed for v28. This library has
44+
existed for nearly 10 years with very little known uptake or impact. It has
45+
become a maintenance burden.
46+
47+
The underlying functionality does not change between versions, so any users of
48+
the library can continue to use the final release indefinitely, with the
49+
understanding that Taproot is its final consensus update.
50+
51+
In the future, libbitcoinkernel will provide a much more useful API that is
52+
aware of the UTXO set, and therefore be able to fully validate transactions and
53+
blocks. (#29189)
54+
55+
mempool.dat compatibility
56+
-------------------------
57+
58+
- The `mempool.dat` file created by -persistmempool or the savemempool RPC will
59+
be written in a new format. This new format includes the XOR'ing of transaction
60+
contents to mitigate issues where external programs (such as anti-virus) attempt
61+
to interpret and potentially modify the file.
62+
63+
This new format can not be read by previous software releases. To allow for a
64+
downgrade, a temporary setting `-persistmempoolv1` has been added to fall back
65+
to the legacy format. (#28207)
66+
67+
P2P and network changes
68+
-----------------------
69+
70+
- BIP324 v2 transport is now enabled by default. It remains possible to disable v2
71+
by running with `-v2transport=0`. (#29347)
72+
- Manual connection options (`-connect`, `-addnode` and `-seednode`) will
73+
now follow `-v2transport` to connect with v2 by default. They will retry with
74+
v1 on failure. (#29058)
75+
76+
- Network-adjusted time has been removed from consensus code. It is replaced
77+
with (unadjusted) system time. The warning for a large median time offset
78+
(70 minutes or more) is kept. This removes the implicit security assumption of
79+
requiring an honest majority of outbound peers, and increases the importance
80+
of the node operator ensuring their system time is (and stays) correct to not
81+
fall out of consensus with the network. (#28956)
82+
83+
Mempool Policy Changes
84+
----------------------
85+
86+
- Opt-in Topologically Restricted Until Confirmation (TRUC) Transactions policy
87+
(aka v3 transaction policy) is available for use on test networks when
88+
`-acceptnonstdtxn=1` is set. By setting the transaction version number to 3, TRUC transactions
89+
request the application of limits on spending of their unconfirmed outputs. These
90+
restrictions simplify the assessment of incentive compatibility of accepting or
91+
replacing TRUC transactions, thus ensuring any replacements are more profitable for
92+
the node and making fee-bumping more reliable. TRUC transactions are currently
93+
nonstandard and can only be used on test networks where the standardness rules are
94+
relaxed or disabled (e.g. with `-acceptnonstdtxn=1`). (#28948)
95+
96+
External Signing
97+
----------------
98+
99+
- Support for external signing on Windows has been disabled. It will be re-enabled
100+
once the underlying dependency (Boost Process), has been replaced with a different
101+
library. (#28967)
102+
103+
Updated RPCs
104+
------------
105+
106+
- The addnode RPC now follows the `-v2transport` option (now on by default, see above) for making connections.
107+
It remains possible to specify the transport type manually with the v2transport argument of addnode. (#29239)
108+
109+
Build System
110+
------------
111+
112+
- A C++20 capable compiler is now required to build Bitcoin Core. (#28349)
113+
- MacOS releases are configured to use the hardened runtime libraries (#29127)
114+
115+
Wallet
116+
------
117+
118+
- The CoinGrinder coin selection algorithm has been introduced to mitigate unnecessary
119+
large input sets and lower transaction costs at high feerates. CoinGrinder
120+
searches for the input set with minimal weight. Solutions found by
121+
CoinGrinder will produce a change output. CoinGrinder is only active at
122+
elevated feerates (default: 30+ sat/vB, based on `-consolidatefeerate`×3). (#27877)
123+
- The Branch And Bound coin selection algorithm will be disabled when the subtract fee
124+
from outputs feature is used. (#28994)
125+
- If the birth time of a descriptor is detected to be later than the first transaction
126+
involving that descriptor, the birth time will be reset to the earlier time. (#28920)
127+
128+
Low-level changes
129+
=================
130+
131+
Pruning
132+
-------
133+
134+
- When pruning during initial block download, more blocks will be pruned at each
135+
flush in order to speed up the syncing of such nodes. (#20827)
136+
137+
Init
138+
----
139+
140+
- Various fixes to prevent issues where subsequent instances of Bitcoin Core would
141+
result in deletion of files in use by an existing instance. (#28784, #28946)
142+
- Improved handling of empty `settings.json` files. (#29144)
143+
144+
Credits
145+
=======
146+
147+
Thanks to everyone who directly contributed to this release:
148+
149+
- 22388o⚡️
150+
- Aaron Clauson
151+
- Amiti Uttarwar
152+
- Andrew Toth
153+
- Anthony Towns
154+
- Antoine Poinsot
155+
- Ava Chow
156+
- Brandon Odiwuor
157+
- brunoerg
158+
- Chris Stewart
159+
- Cory Fields
160+
- dergoegge
161+
- djschnei21
162+
- Fabian Jahr
163+
- fanquake
164+
- furszy
165+
- Gloria Zhao
166+
- Greg Sanders
167+
- Hennadii Stepanov
168+
- Hernan Marino
169+
- iamcarlos94
170+
- ismaelsadeeq
171+
- Jameson Lopp
172+
- Jesse Barton
173+
- John Moffett
174+
- Jon Atack
175+
- josibake
176+
- jrakibi
177+
- Justin Dhillon
178+
- Kashif Smith
179+
- kevkevin
180+
- Kristaps Kaupe
181+
- L0la L33tz
182+
- Luke Dashjr
183+
- Lőrinc
184+
- marco
185+
- MarcoFalke
186+
- Mark Friedenbach
187+
- Marnix
188+
- Martin Leitner-Ankerl
189+
- Martin Zumsande
190+
- Max Edwards
191+
- Murch
192+
- muxator
193+
- naiyoma
194+
- Nikodemas Tuckus
195+
- ns-xvrn
196+
- pablomartin4btc
197+
- Peter Todd
198+
- Pieter Wuille
199+
- Richard Myers
200+
- Roman Zeyde
201+
- Russell Yanofsky
202+
- Ryan Ofsky
203+
- Sebastian Falbesoner
204+
- Sergi Delgado Segura
205+
- Sjors Provoost
206+
- stickies-v
207+
- stratospher
208+
- Supachai Kheawjuy
209+
- TheCharlatan
210+
- UdjinM6
211+
- Vasil Dimov
212+
- w0xlt
213+
- willcl-ark
214+
215+
216+
As well as to everyone that helped with translations on
217+
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).

0 commit comments

Comments
 (0)