Skip to content

Commit

Permalink
Merge branch 26.1 into core26
Browse files Browse the repository at this point in the history
  • Loading branch information
timemarkovqtum committed Apr 24, 2024
2 parents e3be211 + 0b4aa31 commit 4eaa0bb
Show file tree
Hide file tree
Showing 87 changed files with 7,335 additions and 1,054 deletions.
9 changes: 7 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,12 +90,17 @@ jobs:
uses: actions/checkout@v4

- name: Clang version
run: clang --version
run: |
sudo xcode-select --switch /Applications/Xcode_15.0.app
clang --version
- name: Install Homebrew packages
env:
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
run: brew install automake libtool pkg-config gnu-getopt ccache boost libevent miniupnpc libnatpmp zeromq qt@5 qrencode
run: |
# A workaround for "The `brew link` step did not complete successfully" error.
brew install python@3 || brew link --overwrite python@3
brew install automake libtool pkg-config gnu-getopt ccache boost libevent miniupnpc libnatpmp zeromq qt@5 qrencode
- name: Set Ccache directory
run: echo "CCACHE_DIR=${RUNNER_TEMP}/ccache_dir" >> "$GITHUB_ENV"
Expand Down
4 changes: 3 additions & 1 deletion ci/test/00_setup_env_mac_native.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@
export LC_ALL=C.UTF-8

export HOST=x86_64-apple-darwin
export PIP_PACKAGES="zmq"
# Homebrew's [email protected] is marked as externally managed (PEP 668).
# Therefore, `--break-system-packages` is needed.
export PIP_PACKAGES="--break-system-packages zmq"
export GOAL="install"
export BITCOIN_CONFIG="--with-gui --with-miniupnpc --with-natpmp --enable-reduce-exports"
export CI_OS_NAME="macos"
Expand Down
4 changes: 2 additions & 2 deletions configure.ac
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
AC_PREREQ([2.69])
define(_CLIENT_VERSION_MAJOR, 26)
define(_CLIENT_VERSION_MINOR, 0)
define(_CLIENT_VERSION_MINOR, 1)
define(_CLIENT_VERSION_BUILD, 0)
define(_CLIENT_VERSION_RC, 0)
define(_CLIENT_VERSION_IS_RELEASE, true)
Expand Down Expand Up @@ -761,7 +761,7 @@ case $host in
dnl option to system-ify all /usr/local/include paths without adding it to the list
dnl of search paths in case it's not already there.
if test "$suppress_external_warnings" != "no"; then
AX_CHECK_PREPROC_FLAG([-Xclang -internal-isystem/usr/local/include], [CORE_CPPFLAGS="$CORE_CPPFLAGS -Xclang -internal-isystem/usr/local/include"], [], [$CXXFLAG_WERROR])
AX_CHECK_PREPROC_FLAG([-Xclang -internal-isystem -Xclang /usr/local/include/], [CORE_CPPFLAGS="$CORE_CPPFLAGS -Xclang -internal-isystem -Xclang /usr/local/include/"], [], [$CXXFLAG_WERROR])
fi

openssl_prefix=`$BREW --prefix openssl 2>/dev/null`
Expand Down
2 changes: 1 addition & 1 deletion contrib/macdeploy/detached-sig-create.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ fi
rm -rf ${TEMPDIR}
mkdir -p ${TEMPDIR}

${SIGNAPPLE} sign -f --detach "${TEMPDIR}/${OUTROOT}" "$@" "${BUNDLE}"
${SIGNAPPLE} sign -f --detach "${TEMPDIR}/${OUTROOT}" "$@" "${BUNDLE}" --hardened-runtime

tar -C "${TEMPDIR}" -czf "${OUT}" .
rm -rf "${TEMPDIR}"
Expand Down
8 changes: 4 additions & 4 deletions doc/man/bitcoin-cli.1
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH BITCOIN-CLI "1" "November 2023" "bitcoin-cli v26.0.0" "User Commands"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH BITCOIN-CLI "1" "March 2024" "bitcoin-cli v26.1.0" "User Commands"
.SH NAME
bitcoin-cli \- manual page for bitcoin-cli v26.0.0
bitcoin-cli \- manual page for bitcoin-cli v26.1.0
.SH SYNOPSIS
.B bitcoin-cli
[\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR] \fI\,Send command to Bitcoin Core\/\fR
Expand All @@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v26.0.0
.B bitcoin-cli
[\fI\,options\/\fR] \fI\,help <command> Get help for a command\/\fR
.SH DESCRIPTION
Bitcoin Core RPC client version v26.0.0
Bitcoin Core RPC client version v26.1.0
.SH OPTIONS
.HP
\-?
Expand Down
8 changes: 4 additions & 4 deletions doc/man/bitcoin-qt.1
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH BITCOIN-QT "1" "November 2023" "bitcoin-qt v26.0.0" "User Commands"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH BITCOIN-QT "1" "March 2024" "bitcoin-qt v26.1.0" "User Commands"
.SH NAME
bitcoin-qt \- manual page for bitcoin-qt v26.0.0
bitcoin-qt \- manual page for bitcoin-qt v26.1.0
.SH SYNOPSIS
.B bitcoin-qt
[\fI\,command-line options\/\fR]
.SH DESCRIPTION
Bitcoin Core version v26.0.0
Bitcoin Core version v26.1.0
.SH OPTIONS
.HP
\-?
Expand Down
8 changes: 4 additions & 4 deletions doc/man/bitcoin-tx.1
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH BITCOIN-TX "1" "November 2023" "bitcoin-tx v26.0.0" "User Commands"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH BITCOIN-TX "1" "March 2024" "bitcoin-tx v26.1.0" "User Commands"
.SH NAME
bitcoin-tx \- manual page for bitcoin-tx v26.0.0
bitcoin-tx \- manual page for bitcoin-tx v26.1.0
.SH SYNOPSIS
.B bitcoin-tx
[\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR] \fI\,Update hex-encoded bitcoin transaction\/\fR
.br
.B bitcoin-tx
[\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR] \fI\,Create hex-encoded bitcoin transaction\/\fR
.SH DESCRIPTION
Bitcoin Core bitcoin\-tx utility version v26.0.0
Bitcoin Core bitcoin\-tx utility version v26.1.0
.SH OPTIONS
.HP
\-?
Expand Down
8 changes: 4 additions & 4 deletions doc/man/bitcoin-util.1
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH BITCOIN-UTIL "1" "November 2023" "bitcoin-util v26.0.0" "User Commands"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH BITCOIN-UTIL "1" "March 2024" "bitcoin-util v26.1.0" "User Commands"
.SH NAME
bitcoin-util \- manual page for bitcoin-util v26.0.0
bitcoin-util \- manual page for bitcoin-util v26.1.0
.SH SYNOPSIS
.B bitcoin-util
[\fI\,options\/\fR] [\fI\,commands\/\fR] \fI\,Do stuff\/\fR
.SH DESCRIPTION
Bitcoin Core bitcoin\-util utility version v26.0.0
Bitcoin Core bitcoin\-util utility version v26.1.0
.SH OPTIONS
.HP
\-?
Expand Down
8 changes: 4 additions & 4 deletions doc/man/bitcoin-wallet.1
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH BITCOIN-WALLET "1" "November 2023" "bitcoin-wallet v26.0.0" "User Commands"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH BITCOIN-WALLET "1" "March 2024" "bitcoin-wallet v26.1.0" "User Commands"
.SH NAME
bitcoin-wallet \- manual page for bitcoin-wallet v26.0.0
bitcoin-wallet \- manual page for bitcoin-wallet v26.1.0
.SH DESCRIPTION
Bitcoin Core bitcoin\-wallet version v26.0.0
Bitcoin Core bitcoin\-wallet version v26.1.0
.PP
bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files.
By default bitcoin\-wallet will act on wallets in the default mainnet wallet directory in the datadir.
Expand Down
8 changes: 4 additions & 4 deletions doc/man/bitcoind.1
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
.TH BITCOIND "1" "November 2023" "bitcoind v26.0.0" "User Commands"
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.1.
.TH BITCOIND "1" "March 2024" "bitcoind v26.1.0" "User Commands"
.SH NAME
bitcoind \- manual page for bitcoind v26.0.0
bitcoind \- manual page for bitcoind v26.1.0
.SH SYNOPSIS
.B bitcoind
[\fI\,options\/\fR] \fI\,Start Bitcoin Core\/\fR
.SH DESCRIPTION
Bitcoin Core version v26.0.0
Bitcoin Core version v26.1.0
.SH OPTIONS
.HP
\-?
Expand Down
44 changes: 39 additions & 5 deletions doc/release-notes.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
26.x Release Notes
26.1 Release Notes
==================

Bitcoin Core version 26.x is now available from:
Bitcoin Core version 26.1 is now available from:

<https://bitcoincore.org/bin/bitcoin-core-26.x/>
<https://bitcoincore.org/bin/bitcoin-core-26.1/>

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 @@ -45,27 +45,61 @@ Notable changes
- #28994 wallet: skip BnB when SFFO is enabled
- #28920 wallet: birth time update during tx scanning
- #29176 wallet: Fix use-after-free in WalletBatch::EraseRecords
- #29510 wallet: getrawchangeaddress and getnewaddress failures should not affect keypools for descriptor wallets

### RPC

- #29003 rpc: fix getrawtransaction segfault
- #28784 rpc: keep .cookie file if it was not generated

### Logs

- #29227 log mempool loading progress

### P2P and network changes

- #29200 net: create I2P sessions using both ECIES-X25519 and ElGamal encryption
- #29412 p2p: Don't process mutated blocks
- #29524 p2p: Don't consider blocks mutated if they don't connect to known prev block

### Build

- #29127 Use hardened runtime on macOS release builds.
- #29195 build: Fix -Xclang -internal-isystem option

### CI

- #28992 ci: Use Ubuntu 24.04 Noble for asan,tsan,tidy,fuzz
- #29080 ci: Set HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK to avoid unrelated failures
- #29610 ci: Fix "macOS native" job

### Miscellaneous

- #28391 refactor: Simplify CTxMempool/BlockAssembler fields, remove some external mapTx access
- #29179 test: wallet rescan with reorged parent + IsFromMe child in mempool
- #28791 snapshots: don't core dump when running -checkblockindex after loadtxoutset
- #29357 test: Drop x modifier in fsbridge::fopen call for MinGW builds
- #29529 fuzz: restrict fopencookie usage to Linux & FreeBSD

Credits
=======

Thanks to everyone who directly contributed to this release:

- Andrew Chow
- dergoegge
- fanquake
- furszy
- glozow
- Greg Sanders
- Hennadii Stepanov
- Jon Atack
- MarcoFalke
- Mark Friedenbach
- Martin Zumsande
- Murch
- Roman Zeyde
- stickies-v
- UdjinM6

As well as to everyone that helped with translations on
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).
2 changes: 2 additions & 0 deletions src/Makefile.qt_locale.include
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ QT_TS = \
qt/locale/bitcoin_lt.ts \
qt/locale/bitcoin_lv.ts \
qt/locale/bitcoin_mg.ts \
qt/locale/bitcoin_mi.ts \
qt/locale/bitcoin_mk.ts \
qt/locale/bitcoin_ml.ts \
qt/locale/bitcoin_mn.ts \
Expand All @@ -87,6 +88,7 @@ QT_TS = \
qt/locale/bitcoin_ro.ts \
qt/locale/bitcoin_ru.ts \
qt/locale/bitcoin_sc.ts \
qt/locale/bitcoin_sd.ts \
qt/locale/bitcoin_si.ts \
qt/locale/bitcoin_sk.ts \
qt/locale/bitcoin_sl.ts \
Expand Down
4 changes: 2 additions & 2 deletions src/i2p.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,7 @@ void Session::CreateIfNotCreatedAlready()
const Reply& reply = SendRequestAndGetReply(
*sock,
strprintf("SESSION CREATE STYLE=STREAM ID=%s DESTINATION=TRANSIENT SIGNATURE_TYPE=7 "
"inbound.quantity=1 outbound.quantity=1",
"i2cp.leaseSetEncType=4,0 inbound.quantity=1 outbound.quantity=1",
session_id));

m_private_key = DecodeI2PBase64(reply.Get("DESTINATION"));
Expand All @@ -445,7 +445,7 @@ void Session::CreateIfNotCreatedAlready()

SendRequestAndGetReply(*sock,
strprintf("SESSION CREATE STYLE=STREAM ID=%s DESTINATION=%s "
"inbound.quantity=3 outbound.quantity=3",
"i2cp.leaseSetEncType=4,0 inbound.quantity=3 outbound.quantity=3",
session_id,
private_key_b64));
}
Expand Down
2 changes: 2 additions & 0 deletions src/kernel/mempool_entry.h
Original file line number Diff line number Diff line change
Expand Up @@ -179,4 +179,6 @@ class CTxMemPoolEntry
mutable Epoch::Marker m_epoch_marker; //!< epoch when last touched, useful for graph algorithms
};

using CTxMemPoolEntryRef = CTxMemPoolEntry::CTxMemPoolEntryRef;

#endif // BITCOIN_KERNEL_MEMPOOL_ENTRY_H
18 changes: 14 additions & 4 deletions src/kernel/mempool_persist.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,20 @@ bool LoadMempool(CTxMemPool& pool, const fs::path& load_path, Chainstate& active
if (version != MEMPOOL_DUMP_VERSION) {
return false;
}
uint64_t num;
file >> num;
while (num) {
--num;
uint64_t total_txns_to_load;
file >> total_txns_to_load;
uint64_t txns_tried = 0;
LogPrintf("Loading %u mempool transactions from disk...\n", total_txns_to_load);
int next_tenth_to_report = 0;
while (txns_tried < total_txns_to_load) {
const int percentage_done(100.0 * txns_tried / total_txns_to_load);
if (next_tenth_to_report < percentage_done / 10) {
LogPrintf("Progress loading mempool transactions from disk: %d%% (tried %u, %u remaining)\n",
percentage_done, txns_tried, total_txns_to_load - txns_tried);
next_tenth_to_report = percentage_done / 10;
}
++txns_tried;

CTransactionRef tx;
int64_t nTime;
int64_t nFeeDelta;
Expand Down
12 changes: 11 additions & 1 deletion src/net_processing.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4956,6 +4956,17 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,

LogPrint(BCLog::NET, "received block %s peer=%d\n", pblock->GetHash().ToString(), pfrom.GetId());

const CBlockIndex* prev_block{WITH_LOCK(m_chainman.GetMutex(), return m_chainman.m_blockman.LookupBlockIndex(pblock->hashPrevBlock))};

// Check for possible mutation if it connects to something we know so we can check for DEPLOYMENT_SEGWIT being active
if (prev_block && IsBlockMutated(/*block=*/*pblock,
/*check_witness_root=*/DeploymentActiveAfter(prev_block, m_chainman, Consensus::DEPLOYMENT_SEGWIT))) {
LogPrint(BCLog::NET, "Received mutated block from peer=%d\n", peer->m_id);
Misbehaving(*peer, 100, "mutated block");
WITH_LOCK(cs_main, RemoveBlockRequest(pblock->GetHash(), peer->m_id));
return;
}

bool forceProcessing = false;
const uint256 hash(pblock->GetHash());
bool min_pow_checked = false;
Expand All @@ -4971,7 +4982,6 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
mapBlockSource.emplace(hash, std::make_pair(pfrom.GetId(), true));

// Check work on this block against our anti-dos thresholds.
const CBlockIndex* prev_block = m_chainman.m_blockman.LookupBlockIndex(pblock->hashPrevBlock);
if (prev_block && prev_block->nChainWork + CalculateHeadersWork({pblock->GetBlockHeader()}) >= GetAntiDoSWorkThreshold()) {
min_pow_checked = true;
}
Expand Down
2 changes: 1 addition & 1 deletion src/node/interfaces.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -896,7 +896,7 @@ class ChainImpl : public Chain
{
if (!m_node.mempool) return;
LOCK2(::cs_main, m_node.mempool->cs);
for (const CTxMemPoolEntry& entry : m_node.mempool->mapTx) {
for (const CTxMemPoolEntry& entry : m_node.mempool->entryAll()) {
notifications.transactionAddedToMempool(entry.GetSharedTx());
}
}
Expand Down
8 changes: 6 additions & 2 deletions src/primitives/block.h
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,10 @@ class CBlock : public CBlockHeader
// network and disk
std::vector<CTransactionRef> vtx;

// memory only
mutable bool fChecked;
// Memory-only flags for caching expensive checks
mutable bool fChecked; // CheckBlock()
mutable bool m_checked_witness_commitment{false}; // CheckWitnessCommitment()
mutable bool m_checked_merkle_root{false}; // CheckMerkleRoot()

CBlock()
{
Expand All @@ -137,6 +139,8 @@ class CBlock : public CBlockHeader
CBlockHeader::SetNull();
vtx.clear();
fChecked = false;
m_checked_witness_commitment = false;
m_checked_merkle_root = false;
}

std::pair<COutPoint, unsigned int> GetProofOfStake() const //qtum
Expand Down
2 changes: 2 additions & 0 deletions src/qt/bitcoin_locale.qrc
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@
<file alias="lt">locale/bitcoin_lt.qm</file>
<file alias="lv">locale/bitcoin_lv.qm</file>
<file alias="mg">locale/bitcoin_mg.qm</file>
<file alias="mi">locale/bitcoin_mi.qm</file>
<file alias="mk">locale/bitcoin_mk.qm</file>
<file alias="ml">locale/bitcoin_ml.qm</file>
<file alias="mn">locale/bitcoin_mn.qm</file>
Expand All @@ -88,6 +89,7 @@
<file alias="ro">locale/bitcoin_ro.qm</file>
<file alias="ru">locale/bitcoin_ru.qm</file>
<file alias="sc">locale/bitcoin_sc.qm</file>
<file alias="sd">locale/bitcoin_sd.qm</file>
<file alias="si">locale/bitcoin_si.qm</file>
<file alias="sk">locale/bitcoin_sk.qm</file>
<file alias="sl">locale/bitcoin_sl.qm</file>
Expand Down
Loading

0 comments on commit 4eaa0bb

Please sign in to comment.