Skip to content

Commit

Permalink
Merge branch 'auxpow-27.x' into 27.x
Browse files Browse the repository at this point in the history
  • Loading branch information
domob1812 committed May 13, 2024
2 parents 05c76cd + 8666910 commit b1fb3d3
Show file tree
Hide file tree
Showing 18 changed files with 335 additions and 165 deletions.
7 changes: 5 additions & 2 deletions build-aux/m4/l_atomic.m4
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ dnl warranty.
# Clang, when building for 32-bit,
# and linking against libstdc++, requires linking with
# -latomic if using the C++ atomic library.
# Can be tested with: clang++ test.cpp -m32
# Can be tested with: clang++ -std=c++20 test.cpp -m32
#
# Sourced from http://bugs.debian.org/797228

Expand All @@ -27,8 +27,11 @@ m4_define([_CHECK_ATOMIC_testbody], [[
auto t1 = t.load();
t.compare_exchange_strong(t1, 3s);
std::atomic<int64_t> a{};
std::atomic<double> d{};
d.store(3.14);
auto d1 = d.load();
std::atomic<int64_t> a{};
int64_t v = 5;
int64_t r = a.fetch_add(v);
return static_cast<int>(r);
Expand Down
4 changes: 2 additions & 2 deletions ci/test/00_setup_env_s390x.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ export LC_ALL=C.UTF-8
export HOST=s390x-linux-gnu
export PACKAGES="python3-zmq"
export CONTAINER_NAME=ci_s390x
export CI_IMAGE_NAME_TAG="docker.io/s390x/debian:bookworm"
export TEST_RUNNER_EXTRA="--exclude feature_init,rpc_bind,feature_bind_extra" # Excluded for now, see https://github.com/bitcoin/bitcoin/issues/17765#issuecomment-602068547
export CI_IMAGE_NAME_TAG="docker.io/s390x/ubuntu:24.04"
export TEST_RUNNER_EXTRA="--exclude rpc_bind,feature_bind_extra" # Excluded for now, see https://github.com/bitcoin/bitcoin/issues/17765#issuecomment-602068547
export RUN_FUNCTIONAL_TESTS=true
export GOAL="install"
export BITCOIN_CONFIG="--enable-reduce-exports"
3 changes: 3 additions & 0 deletions depends/packages/qt.mk
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ $(package)_patches += fix-macos-linker.patch
$(package)_patches += memory_resource.patch
$(package)_patches += utc_from_string_no_optimize.patch
$(package)_patches += windows_lto.patch
$(package)_patches += zlib-timebits64.patch

$(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
$(package)_qttranslations_sha256_hash=a31785948c640b7c66d9fe2db4993728ca07f64e41c560b3625ad191b276ff20
Expand Down Expand Up @@ -178,6 +179,7 @@ $(package)_config_opts_mingw32 += -xplatform win32-g++
$(package)_config_opts_mingw32 += "QMAKE_CFLAGS = '$($(package)_cflags) $($(package)_cppflags)'"
$(package)_config_opts_mingw32 += "QMAKE_CXX = '$($(package)_cxx)'"
$(package)_config_opts_mingw32 += "QMAKE_CXXFLAGS = '$($(package)_cxxflags) $($(package)_cppflags)'"
$(package)_config_opts_mingw32 += "QMAKE_LINK = '$($(package)_cxx)'"
$(package)_config_opts_mingw32 += "QMAKE_LFLAGS = '$($(package)_ldflags)'"
$(package)_config_opts_mingw32 += "QMAKE_LIB = '$($(package)_ar) rc'"
$(package)_config_opts_mingw32 += -device-option CROSS_COMPILE="$(host)-"
Expand Down Expand Up @@ -254,6 +256,7 @@ define $(package)_preprocess_cmds
patch -p1 -i $($(package)_patch_dir)/fast_fixed_dtoa_no_optimize.patch && \
patch -p1 -i $($(package)_patch_dir)/guix_cross_lib_path.patch && \
patch -p1 -i $($(package)_patch_dir)/windows_lto.patch && \
patch -p1 -i $($(package)_patch_dir)/zlib-timebits64.patch && \
mkdir -p qtbase/mkspecs/macx-clang-linux &&\
cp -f qtbase/mkspecs/macx-clang/qplatformdefs.h qtbase/mkspecs/macx-clang-linux/ &&\
cp -f $($(package)_patch_dir)/mac-qmake.conf qtbase/mkspecs/macx-clang-linux/qmake.conf && \
Expand Down
31 changes: 31 additions & 0 deletions depends/patches/qt/zlib-timebits64.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
From a566e156b3fa07b566ddbf6801b517a9dba04fa3 Mon Sep 17 00:00:00 2001
From: Mark Adler <madler@alumni.caltech.edu>
Date: Sat, 29 Jul 2023 22:13:09 -0700
Subject: [PATCH] Avoid compiler complaints if _TIME_BITS defined when building
zlib.

zlib does not use time_t, so _TIME_BITS is irrelevant. However it
may be defined anyway as part of a sledgehammer indiscriminately
applied to all builds.

From https://github.com/madler/zlib/commit/a566e156b3fa07b566ddbf6801b517a9dba04fa3.patch
---
qtbase/src/3rdparty/zlib/src/gzguts.h | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/qtbase/src/3rdparty/zlib/src/gzguts.h b/qtbase/src/3rdparty/zlib/src/gzguts.h
index e23f831f5..f9375047e 100644
--- a/qtbase/src/3rdparty/zlib/src/gzguts.h
+++ b/qtbase/src/3rdparty/zlib/src/gzguts.h
@@ -26,9 +26,8 @@
# ifndef _LARGEFILE_SOURCE
# define _LARGEFILE_SOURCE 1
# endif
-# ifdef _FILE_OFFSET_BITS
-# undef _FILE_OFFSET_BITS
-# endif
+# undef _FILE_OFFSET_BITS
+# undef _TIME_BITS
#endif

#ifdef HAVE_HIDDEN
14 changes: 14 additions & 0 deletions doc/build-osx.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,20 @@ To install, run the following from your terminal:
brew install automake libtool boost pkg-config libevent
```

For macOS 11 (Big Sur) and 12 (Monterey) you need to install a more recent version of llvm.

``` bash
brew install llvm
```

And append the following to the configure commands below:

``` bash
CC=$(brew --prefix llvm)/bin/clang CXX=$(brew --prefix llvm)/bin/clang++
```

Try `llvm@17` if compilation fails with the default version of llvm.

### 4. Clone Namecoin repository

`git` should already be installed by default on your system.
Expand Down
174 changes: 24 additions & 150 deletions doc/release-notes.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Bitcoin Core version 27.0 is now available from:
Bitcoin Core version 27.x is now available from:

<https://bitcoincore.org/bin/bitcoin-core-27.0/>
<https://bitcoincore.org/bin/bitcoin-core-27.x/>

This release includes new features, various bug fixes and performance
This release includes various bug fixes and performance
improvements, as well as updated translations.

Please report bugs using the issue tracker at GitHub:
Expand Down Expand Up @@ -37,181 +37,55 @@ unsupported systems.
Notable changes
===============

libbitcoinconsensus
-------------------

- libbitcoinconsensus is deprecated and will be removed for v28. This library has
existed for nearly 10 years with very little known uptake or impact. It has
become a maintenance burden.
### Miniscript

The underlying functionality does not change between versions, so any users of
the library can continue to use the final release indefinitely, with the
understanding that Taproot is its final consensus update.
- #29853 sign: don't assume we are parsing a sane TapMiniscript

In the future, libbitcoinkernel will provide a much more useful API that is
aware of the UTXO set, and therefore be able to fully validate transactions and
blocks. (#29189)
### RPC

mempool.dat compatibility
-------------------------
- #29869 rpc, bugfix: Enforce maximum value for setmocktime
- #29870 rpc: Reword SighashFromStr error message

- The `mempool.dat` file created by -persistmempool or the savemempool RPC will
be written in a new format. This new format includes the XOR'ing of transaction
contents to mitigate issues where external programs (such as anti-virus) attempt
to interpret and potentially modify the file.
### Index

This new format can not be read by previous software releases. To allow for a
downgrade, a temporary setting `-persistmempoolv1` has been added to fall back
to the legacy format. (#28207)
- #29776 Fix #29767, set m_synced = true after Commit()

P2P and network changes
-----------------------
### Test

- BIP324 v2 transport is now enabled by default. It remains possible to disable v2
by running with `-v2transport=0`. (#29347)
- Manual connection options (`-connect`, `-addnode` and `-seednode`) will
now follow `-v2transport` to connect with v2 by default. They will retry with
v1 on failure. (#29058)
- #29892 test: Fix failing univalue float test

- Network-adjusted time has been removed from consensus code. It is replaced
with (unadjusted) system time. The warning for a large median time offset
(70 minutes or more) is kept. This removes the implicit security assumption of
requiring an honest majority of outbound peers, and increases the importance
of the node operator ensuring their system time is (and stays) correct to not
fall out of consensus with the network. (#28956)
### Build

Mempool Policy Changes
----------------------
- #29747 depends: fix mingw-w64 Qt DEBUG=1 build
- #29859 build: Fix false positive CHECK_ATOMIC test
- #29985 depends: Fix build of Qt for 32-bit platforms with recent glibc

- Opt-in Topologically Restricted Until Confirmation (TRUC) Transactions policy
(aka v3 transaction policy) is available for use on test networks when
`-acceptnonstdtxn=1` is set. By setting the transaction version number to 3, TRUC transactions
request the application of limits on spending of their unconfirmed outputs. These
restrictions simplify the assessment of incentive compatibility of accepting or
replacing TRUC transactions, thus ensuring any replacements are more profitable for
the node and making fee-bumping more reliable. TRUC transactions are currently
nonstandard and can only be used on test networks where the standardness rules are
relaxed or disabled (e.g. with `-acceptnonstdtxn=1`). (#28948)
### Doc

External Signing
----------------
- #29934 doc: add LLVM instruction for macOS < 13

- Support for external signing on Windows has been disabled. It will be re-enabled
once the underlying dependency (Boost Process), has been replaced with a different
library. (#28967)
### CI

Updated RPCs
------------
- #29856 ci: Bump s390x to ubuntu:24.04

- The addnode RPC now follows the `-v2transport` option (now on by default, see above) for making connections.
It remains possible to specify the transport type manually with the v2transport argument of addnode. (#29239)
### Misc

Build System
------------

- A C++20 capable compiler is now required to build Bitcoin Core. (#28349)
- MacOS releases are configured to use the hardened runtime libraries (#29127)

Wallet
------

- The CoinGrinder coin selection algorithm has been introduced to mitigate unnecessary
large input sets and lower transaction costs at high feerates. CoinGrinder
searches for the input set with minimal weight. Solutions found by
CoinGrinder will produce a change output. CoinGrinder is only active at
elevated feerates (default: 30+ sat/vB, based on `-consolidatefeerate`×3). (#27877)
- The Branch And Bound coin selection algorithm will be disabled when the subtract fee
from outputs feature is used. (#28994)
- If the birth time of a descriptor is detected to be later than the first transaction
involving that descriptor, the birth time will be reset to the earlier time. (#28920)

Low-level changes
=================

Pruning
-------

- When pruning during initial block download, more blocks will be pruned at each
flush in order to speed up the syncing of such nodes. (#20827)

Init
----

- Various fixes to prevent issues where subsequent instances of Bitcoin Core would
result in deletion of files in use by an existing instance. (#28784, #28946)
- Improved handling of empty `settings.json` files. (#29144)
- #29691 Change Luke Dashjr seed to dashjr-list-of-p2p-nodes.us

Credits
=======

Thanks to everyone who directly contributed to this release:

- 22388o⚡️
- Aaron Clauson
- Amiti Uttarwar
- Andrew Toth
- Anthony Towns
- Antoine Poinsot
- Ava Chow
- Brandon Odiwuor
- brunoerg
- Chris Stewart
- Cory Fields
- dergoegge
- djschnei21
- Fabian Jahr
- fanquake
- furszy
- Gloria Zhao
- Greg Sanders
- Hennadii Stepanov
- Hernan Marino
- iamcarlos94
- ismaelsadeeq
- Jameson Lopp
- Jesse Barton
- John Moffett
- Jon Atack
- josibake
- jrakibi
- Justin Dhillon
- Kashif Smith
- kevkevin
- Kristaps Kaupe
- L0la L33tz
- laanwj
- Luke Dashjr
- Lőrinc
- marco
- MarcoFalke
- Mark Friedenbach
- Marnix
- Martin Leitner-Ankerl
- Martin Zumsande
- Max Edwards
- Murch
- muxator
- naiyoma
- Nikodemas Tuckus
- ns-xvrn
- pablomartin4btc
- Peter Todd
- Pieter Wuille
- Richard Myers
- Roman Zeyde
- Russell Yanofsky
- Ryan Ofsky
- Sebastian Falbesoner
- Sergi Delgado Segura
- nanlour
- Sjors Provoost
- stickies-v
- stratospher
- Supachai Kheawjuy
- TheCharlatan
- UdjinM6
- Vasil Dimov
- w0xlt
- willcl-ark


As well as to everyone that helped with translations on
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).
Loading

0 comments on commit b1fb3d3

Please sign in to comment.