diff --git a/ci/test/00_setup_env_i686_centos.sh b/ci/test/00_setup_env_i686_centos.sh
index 5f8391c5dac..0f532fd4057 100755
--- a/ci/test/00_setup_env_i686_centos.sh
+++ b/ci/test/00_setup_env_i686_centos.sh
@@ -9,6 +9,7 @@ export LC_ALL=C.UTF-8
export HOST=i686-pc-linux-gnu
export CONTAINER_NAME=ci_i686_centos
export CI_IMAGE_NAME_TAG="quay.io/centos/amd64:stream9"
+export CI_CONTAINER_CAP="--security-opt seccomp=unconfined"
export CI_BASE_PACKAGES="gcc-c++ glibc-devel.x86_64 libstdc++-devel.x86_64 glibc-devel.i686 libstdc++-devel.i686 ccache libtool make git python3 python3-pip which patch lbzip2 xz procps-ng dash rsync coreutils bison util-linux e2fsprogs cmake"
export PIP_PACKAGES="pyzmq"
export GOAL="install"
diff --git a/ci/test/00_setup_env_i686_multiprocess.sh b/ci/test/00_setup_env_i686_multiprocess.sh
index f6463438d39..ef3a63507dc 100755
--- a/ci/test/00_setup_env_i686_multiprocess.sh
+++ b/ci/test/00_setup_env_i686_multiprocess.sh
@@ -9,6 +9,7 @@ export LC_ALL=C.UTF-8
export HOST=i686-pc-linux-gnu
export CONTAINER_NAME=ci_i686_multiprocess
export CI_IMAGE_NAME_TAG="docker.io/amd64/ubuntu:24.04"
+export CI_CONTAINER_CAP="--security-opt seccomp=unconfined"
export PACKAGES="llvm clang g++-multilib"
export DEP_OPTS="DEBUG=1 MULTIPROCESS=1"
export GOAL="install"
diff --git a/ci/test/00_setup_env_win64.sh b/ci/test/00_setup_env_win64.sh
index bf80d5d435f..b0409a28b4f 100755
--- a/ci/test/00_setup_env_win64.sh
+++ b/ci/test/00_setup_env_win64.sh
@@ -8,6 +8,7 @@ export LC_ALL=C.UTF-8
export CONTAINER_NAME=ci_win64
export CI_IMAGE_NAME_TAG="docker.io/amd64/debian:bookworm" # Check that https://packages.debian.org/bookworm/g++-mingw-w64-x86-64-posix (version 12.2, similar to guix) can cross-compile
+export CI_CONTAINER_CAP="--security-opt seccomp=unconfined"
export HOST=x86_64-w64-mingw32
export DPKG_ADD_ARCH="i386"
export PACKAGES="nsis g++-mingw-w64-x86-64-posix wine-binfmt wine64 wine32 file"
diff --git a/doc/release-notes.md b/doc/release-notes.md
index b6af01a4b74..67d738a53da 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -1,6 +1,6 @@
-Bitcoin Core version 28.4 is now available from:
+Bitcoin Core version 28.x is now available from:
-
+
This release includes various bug fixes and performance
improvements, as well as updated translations.
@@ -37,45 +37,21 @@ unsupported systems.
Notable changes
===============
-### Wallet
-
-- #34156 wallet: fix unnamed legacy wallet migration failure
-- #34215 wallettool: fix unnamed createfromdump failure walletsdir deletion
-- #34226 wallet: test: Relative wallet failed migration cleanup
-- #34370 Fix #34222 backport bugs
-
-### P2P
-
-- #33723 chainparams: remove dnsseed.bitcoin.dashjr-list-of-p2p-nodes.us
-
-### Build
-
-- #34227 guix: Fix `osslsigncode` tests
-
### CI
-- #32513 ci: remove 3rd party js from windows dll gha job
-- #34344 ci: update GitHub Actions versions
-- #34463 ci: use macos-14 image
+- #35202 ci: restore sockets in i686, no IPC job
### Misc
-- #34174 doc: update copyright year to 2026
+- #35175 multi_index: fix compilation failure with boost >= 1.91
Credits
=======
Thanks to everyone who directly contributed to this release:
-- achow101
-- davidgumberg
-- fanquake
-- furszy
-- Hennadii Stepanov
-- Luke Dashjr
-- m3dwards
-- Padraic Slattery
-- SatsAndSports
+- Cory Fields
+- Lőrinc
As well as to everyone that helped with translations on
[Transifex](https://explore.transifex.com/bitcoin/bitcoin/).
diff --git a/src/node/miner.h b/src/node/miner.h
index 1b829437669..232df93f3fa 100644
--- a/src/node/miner.h
+++ b/src/node/miner.h
@@ -98,7 +98,9 @@ struct CompareTxIterByAncestorCount {
};
-struct CTxMemPoolModifiedEntry_Indices final : boost::multi_index::indexed_by<
+using indexed_modified_transaction_set = boost::multi_index_container<
+ CTxMemPoolModifiedEntry,
+ boost::multi_index::indexed_by<
boost::multi_index::ordered_unique<
modifiedentry_iter,
CompareCTxMemPoolIter
@@ -111,12 +113,7 @@ struct CTxMemPoolModifiedEntry_Indices final : boost::multi_index::indexed_by<
CompareTxMemPoolEntryByAncestorFee
>
>
-{};
-
-typedef boost::multi_index_container<
- CTxMemPoolModifiedEntry,
- CTxMemPoolModifiedEntry_Indices
-> indexed_modified_transaction_set;
+>;
typedef indexed_modified_transaction_set::nth_index<0>::type::iterator modtxiter;
typedef indexed_modified_transaction_set::index::type::iterator modtxscoreiter;
diff --git a/src/txmempool.h b/src/txmempool.h
index d0cb41a078e..8dc1d2e23e2 100644
--- a/src/txmempool.h
+++ b/src/txmempool.h
@@ -329,7 +329,9 @@ public:
static const int ROLLING_FEE_HALFLIFE = 60 * 60 * 12; // public only for testing
- struct CTxMemPoolEntry_Indices final : boost::multi_index::indexed_by<
+ using indexed_transaction_set = boost::multi_index_container<
+ CTxMemPoolEntry,
+ boost::multi_index::indexed_by<
// sorted by txid
boost::multi_index::hashed_unique,
// sorted by wtxid
@@ -357,11 +359,7 @@ public:
CompareTxMemPoolEntryByAncestorFee
>
>
- {};
- typedef boost::multi_index_container<
- CTxMemPoolEntry,
- CTxMemPoolEntry_Indices
- > indexed_transaction_set;
+ >;
/**
* This mutex needs to be locked when accessing `mapTx` or other members
diff --git a/src/txrequest.cpp b/src/txrequest.cpp
index 96ea716481c..6ef6c9bfaa1 100644
--- a/src/txrequest.cpp
+++ b/src/txrequest.cpp
@@ -212,17 +212,15 @@ struct ByTimeViewExtractor
}
};
-struct Announcement_Indices final : boost::multi_index::indexed_by<
- boost::multi_index::ordered_unique, ByPeerViewExtractor>,
- boost::multi_index::ordered_non_unique, ByTxHashViewExtractor>,
- boost::multi_index::ordered_non_unique, ByTimeViewExtractor>
->
-{};
/** Data type for the main data structure (Announcement objects with ByPeer/ByTxHash/ByTime indexes). */
using Index = boost::multi_index_container<
Announcement,
- Announcement_Indices
+ boost::multi_index::indexed_by<
+ boost::multi_index::ordered_unique, ByPeerViewExtractor>,
+ boost::multi_index::ordered_non_unique, ByTxHashViewExtractor>,
+ boost::multi_index::ordered_non_unique, ByTimeViewExtractor>
+ >
>;
/** Helper type to simplify syntax of iterator types. */