elements/src/node
Cory Fields 546598b736
multi_index: fix compilation failure with boost >= 1.91
This effectively reverts a3cb309e7c from PR #30194.

That PR reduced the multi_index type signatures as recommended upstream, but
this is no longer supported as of boost 1.91 because it is no longer necessary.
1.91 drops support for the pre-c++11 work-arounds that bloated the type
signatures to begin with.

The upstream `BOOST_MULTI_INDEX_ENABLE_MPL_SUPPORT` define is meant to provide
compatibility with removed features, but it does not work for this case. Using
`indexed_by` directly when defining the `multi_index` (as opposed to inheriting
from it) works with all versions, and avoids the use of the back-compat define.

This is a slight regression when building against boost < 1.91 because the
bloated type signatures are reintroduced in that case, but it's not significant
enough to go to the trouble of introducing version detection and ifdefs.

Github-Pull: #35175
Rebased-From: 0bc9d354dfd8074d1c36a891a69b6585a8775c65
2026-04-30 15:06:17 +01:00
..
abort.cpp refactor: Split up NodeContext shutdown_signal and shutdown_request 2024-10-01 09:10:54 +02:00
abort.h refactor: Split up NodeContext shutdown_signal and shutdown_request 2024-10-01 09:10:54 +02:00
blockmanager_args.cpp kernel: Move block tree db open to block manager 2025-01-20 21:19:39 +01:00
blockmanager_args.h Add [[nodiscard]] where ignoring a Result return type is an error 2023-05-29 13:12:45 +02:00
blockstorage.cpp Merge bitcoin/bitcoin#30965: kernel: Move block tree db open to block manager 2025-01-31 15:28:06 -05:00
blockstorage.h kernel: Move block tree db open to BlockManager constructor 2025-01-20 21:27:50 +01:00
caches.cpp node: cap -dbcache to 1GiB on 32-bit architectures 2025-06-26 17:36:06 +01:00
caches.h init: Use size_t consistently for cache sizes 2025-01-15 15:44:56 +01:00
chainstate.cpp kernel: Move block tree db open to BlockManager constructor 2025-01-20 21:27:50 +01:00
chainstate.h kernel: Move block tree db open to block manager 2025-01-20 21:19:39 +01:00
chainstatemanager_args.cpp kernel: Move block tree db open to block manager 2025-01-20 21:19:39 +01:00
chainstatemanager_args.h refactor: Clamp worker threads in ChainstateManager constructor 2024-11-18 11:13:20 +01:00
coin.cpp refactor: Rely on returned value of GetCoin instead of parameter 2024-09-18 20:03:47 +02:00
coin.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
coins_view_args.cpp move-only: Extract common/args and common/config.cpp from util/system 2023-04-19 10:48:30 +02:00
coins_view_args.h refactor, txdb: Add CoinsViewOptions struct 2023-02-10 04:39:11 -04:00
connection_types.cpp net: expose transport types/session IDs of connections in RPC and logs 2023-10-02 18:11:11 -04:00
connection_types.h net: expose transport types/session IDs of connections in RPC and logs 2023-10-02 18:11:11 -04:00
context.cpp Introduce Mining interface 2024-06-18 18:47:51 +02:00
context.h refactor: Split up NodeContext shutdown_signal and shutdown_request 2024-10-01 09:10:54 +02:00
database_args.cpp move-only: Extract common/args and common/config.cpp from util/system 2023-04-19 10:48:30 +02:00
database_args.h refactor, dbwrapper: Add DBParams and DBOptions structs 2023-02-10 04:39:11 -04:00
eviction.cpp [net] Move eviction logic to its own file 2022-07-06 18:13:54 +02:00
eviction.h [net] Move eviction logic to its own file 2022-07-06 18:13:54 +02:00
interface_ui.cpp refactor: Use + instead of strformat to concatenate translated & untranslated strings 2024-12-04 15:09:05 -04:00
interface_ui.h add missing #include <cstdint> for GCC 15 2024-08-12 11:15:11 +01:00
interfaces.cpp Merge bitcoin/bitcoin#31157: Cleanups to port mapping module post UPnP drop 2025-02-14 11:15:53 +01:00
kernel_notifications.cpp Ensure m_tip_block is never ZERO 2024-12-17 10:19:00 +07:00
kernel_notifications.h Ensure m_tip_block is never ZERO 2024-12-17 10:19:00 +07:00
mempool_args.cpp [doc] assert that default min relay feerate and incremental are the same 2025-08-20 10:19:23 -04:00
mempool_args.h refactor: Replace std::optional<bilingual_str> with util::Result 2023-05-24 08:55:47 -04:00
mempool_persist.cpp streams: remove AutoFile::Get() entirely 2024-09-13 21:59:29 -04:00
mempool_persist.h mempool: move LoadMempool/DumpMempool to node 2024-06-26 22:47:09 +00:00
mempool_persist_args.cpp move-only: Extract common/args and common/config.cpp from util/system 2023-04-19 10:48:30 +02:00
mempool_persist_args.h refactor: Move fs.* to util/fs.* 2023-03-23 12:55:18 +01:00
miner.cpp miner: fix addPackageTxs unsigned integer overflow 2026-01-12 13:13:45 -08:00
miner.h multi_index: fix compilation failure with boost >= 1.91 2026-04-30 15:06:17 +01:00
mini_miner.cpp MiniMiner: use FeeFrac in AncestorFeerateComparator 2024-07-09 17:22:51 +01:00
mini_miner.h Don't use iterator addresses in IteratorComparator 2024-06-19 10:14:31 +01:00
minisketchwrapper.cpp Use steady clock in SeedStrengthen and FindBestImplementation 2023-03-02 14:48:28 +01:00
minisketchwrapper.h
peerman_args.cpp Merge bitcoin/bitcoin#28149: net processing: clamp PeerManager::Options user input 2023-08-09 14:26:03 +02:00
peerman_args.h [net processing] Introduce PeerManager options 2023-07-24 18:30:59 +02:00
protocol_version.h Rename version.h to node/protocol_version.h 2023-11-30 11:28:31 +01:00
psbt.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
psbt.h
README.md
timeoffsets.cpp refactor: remove warnings globals 2024-06-13 11:20:49 +01:00
timeoffsets.h refactor: remove warnings globals 2024-06-13 11:20:49 +01:00
transaction.cpp scripted-diff: rename block and undo functions for consistency 2025-01-09 15:17:02 +01:00
transaction.h util: move fees.h and error.h to common/messages.h 2024-05-16 10:16:08 -05:00
txdownloadman.h [cleanup] remove p2p_inv from AddTxAnnouncement 2025-01-06 09:02:05 -05:00
txdownloadman_impl.cpp add orphanage byte accounting to TxDownloadManagerImpl::CheckIsEmpty() 2025-02-06 15:45:30 -05:00
txdownloadman_impl.h [refactor] rename to OrphanResolutionCandidate to MaybeAdd* 2025-01-29 18:05:09 -05:00
txreconciliation.cpp random: get rid of GetRand by inlining 2024-07-01 12:39:53 -04:00
txreconciliation.h [net processing] Move -txreconciliation to PeerManager::Options 2023-07-24 18:35:28 +02:00
types.h miner: bugfix: fix duplicate weight reservation in block assembler 2025-02-04 11:53:03 -05:00
utxo_snapshot.cpp streams: remove unused code 2024-09-19 07:33:02 -04:00
utxo_snapshot.h assumeutxo: Drop block height from metadata 2024-08-08 23:55:06 +02:00
warnings.cpp scripted-diff: drop config/ subdir for bitcoin-config.h, rename to bitcoin-build-config.h 2024-10-10 12:22:12 +02:00
warnings.h refactor: remove warnings globals 2024-06-13 11:20:49 +01:00

src/node/

The src/node/ directory contains code that needs to access node state (state in CChain, CBlockIndex, CCoinsView, CTxMemPool, and similar classes).

Code in src/node/ is meant to be segregated from code in src/wallet/ and src/qt/, to ensure wallet and GUI code changes don't interfere with node operation, to allow wallet and GUI code to run in separate processes, and to perhaps eventually allow wallet and GUI code to be maintained in separate source repositories.

As a rule of thumb, code in one of the src/node/, src/wallet/, or src/qt/ directories should avoid calling code in the other directories directly, and only invoke it indirectly through the more limited src/interfaces/ classes.

This directory is at the moment sparsely populated. Eventually more substantial files like src/validation.cpp and src/txmempool.cpp might be moved there.