bitcoin/src/node
merge-script 603fcc07d5
Merge bitcoin/bitcoin#31896: refactor: Remove redundant and confusing calls to IsArgSet
0000fb3fd9 doc: Remove outdated and stale todo comment (MarcoFalke)
fa2b529f92 refactor: Remove redundant call to IsArgSet (MarcoFalke)
fa29842c1f refactor: Remove IsArgSet guard when fallback value is provided (MarcoFalke)

Pull request description:

  `IsArgSet` is problematic:

  * It returns whether an arg has been set, even if it has been negated. `IsArgSet` is sometimes used to check for a truthy value, which is wrong, but usually harmless. Cleanup of those cases may or may not be done in a follow-up.
  * In most other cases, calling it is redundant, because the immediately following `Get*Arg` calls can already return an `std::optional` nullopt value to indicate an unset arg.

  So relieve both issues by removing all `IsArgSet` that are redundant.

ACKs for top commit:
  pablomartin4btc:
    re-ACK 0000fb3fd9
  ryanofsky:
    Code review ACK 0000fb3fd9. No changes since last review other than rebase.

Tree-SHA512: d142d71d136b2dbd5fd005667875099777704176f5e08fdeb38f05d6afce40b435a257c5bb6a1f545459fe4f81f967cee3083ab666cb0befdef3f6234f1e3d32
2025-03-27 15:33:11 +08: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 Remove checkpoints 2025-03-13 11:13:13 +00:00
blockstorage.h Remove checkpoints 2025-03-13 11:13:13 +00:00
caches.cpp init: Use size_t consistently for cache sizes 2025-01-15 15:44:56 +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 Remove checkpoints 2025-03-13 11:13:13 +00: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
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
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
eviction.cpp
eviction.h
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 miner: have waitNext return after 20 min on testnet 2025-02-19 17:20:58 +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 refactor: Remove redundant call to IsArgSet 2025-03-25 10:38:00 +01: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
miner.cpp mining: drop unused -nFees and sigops from CBlockTemplate 2025-03-13 11:16:57 +01:00
miner.h mining: drop unused -nFees and sigops from CBlockTemplate 2025-03-13 11:16:57 +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
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
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 Add waitNext() to BlockTemplate interface 2025-02-19 17:20:57 +01: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.