0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-02-24 12:41:41 -05:00
bitcoin-bitcoin-core/src/node
fanquake b175bdb9b2
Merge bitcoin/bitcoin#27238: refactor: Split logging utilities from system.h
aaced5633b refactor: Move error() from util/system.h to logging.h (Ben Woosley)
e7333b420e refactor: Extract util/exception from util/system (Ben Woosley)

Pull request description:

  This pull request is part of the `libbitcoinkernel` project https://github.com/bitcoin/bitcoin/issues/24303 https://github.com/bitcoin/bitcoin/projects/18 and more specifically its "Step 2: Decouple most non-consensus code from libbitcoinkernel". These commits were originally authored by empact and are taken from their parent PR #25152.

  #### Context

  There is an ongoing effort to decouple the `ArgsManager` used for command line parsing user-provided arguments from the libbitcoinkernel library (https://github.com/bitcoin/bitcoin/pull/25290, https://github.com/bitcoin/bitcoin/pull/25487, https://github.com/bitcoin/bitcoin/pull/25527, https://github.com/bitcoin/bitcoin/pull/25862, https://github.com/bitcoin/bitcoin/pull/26177, and https://github.com/bitcoin/bitcoin/pull/27125). The `ArgsManager` is defined in `system.h`.

  #### Changes

  Next to providing better code organization, this PR removes some reliance of the tree of libbitcoinkernel header includes on `system.h` (and thus the `ArgsManager` definition) by moving some logging functions out of the `system.*` files.

  Further commits splitting more functionality out of `system.h` are still in #25152 and will be submitted in separate PRs once this PR has been processed.

ACKs for top commit:
  MarcoFalke:
    re-ACK aaced5633b 🐍

Tree-SHA512: cb39f4cb7a77e7dc1887b1cbf340d53decab8880fc00878a2f12dc627fe67245b4aafd4cc31a9eab0fad1e5bb5d0eb4cdb8d501323ca200fa6ab7b201ae34aea
2023-03-14 09:56:40 +01:00
..
blockstorage.cpp refactor: Move error() from util/system.h to logging.h 2023-03-13 17:09:54 +01:00
blockstorage.h Merge bitcoin/bitcoin#26533: prune: scan and unlink already pruned block files on startup 2023-02-28 09:54:10 -05:00
caches.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
caches.h Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
chainstate.cpp Merge bitcoin/bitcoin#25740: assumeutxo: background validation completion 2023-03-07 18:54:59 -05:00
chainstate.h doc: add explanation for fail_on_insufficient_dbcache 2023-02-24 15:11:27 -05:00
chainstatemanager_args.cpp refactor, validation: Add ChainstateManagerOpts db options 2023-02-10 04:39:11 -04:00
chainstatemanager_args.h Move ::nMinimumChainWork into ChainstateManager 2022-10-18 14:09:17 +02:00
coin.cpp Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
coin.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
coins_view_args.cpp refactor, txdb: Add CoinsViewOptions struct 2023-02-10 04:39:11 -04:00
coins_view_args.h refactor, txdb: Add CoinsViewOptions struct 2023-02-10 04:39:11 -04:00
connection_types.cpp [net] Move ConnectionType to its own file 2022-07-06 18:13:53 +02:00
connection_types.h [net] Move ConnectionType to its own file 2022-07-06 18:13:53 +02:00
context.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
context.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
database_args.cpp refactor, dbwrapper: Add DBParams and DBOptions structs 2023-02-10 04:39:11 -04: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 Add InitError(error, details) overload 2023-02-28 12:04:47 -05:00
interface_ui.h Add InitError(error, details) overload 2023-02-28 12:04:47 -05:00
interfaces.cpp refactor: Consistently use context args over gArgs in node/interfaces 2023-03-10 17:29:04 +01:00
mempool_args.cpp Merge bitcoin/bitcoin#25872: Fix issues when calling std::move(const&) 2022-08-31 08:38:24 +01:00
mempool_args.h scripted-diff: Move mempool_args to src/node 2022-08-02 15:31:01 +02:00
mempool_persist_args.cpp DumpMempool: Pass in dump_path, stop using gArgs 2022-07-15 11:30:50 -04:00
mempool_persist_args.h Move DEFAULT_PERSIST_MEMPOOL out of libbitcoinkernel 2022-07-15 12:26:20 -04:00
miner.cpp miner: don't re-apply default Options value if argument is unset 2023-01-16 18:58:11 +00:00
miner.h refactor: avoid duplicating BlockAssembler::Options members 2023-01-16 18:58:10 +00:00
minisketchwrapper.cpp Use steady clock in SeedStrengthen and FindBestImplementation 2023-03-02 14:48:28 +01:00
minisketchwrapper.h Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
psbt.cpp scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
psbt.h Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
README.md doc: Remove irrelevant link to GitHub 2021-04-06 09:34:21 +02:00
transaction.cpp Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
transaction.h scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
txreconciliation.cpp p2p, test, refactor: Minor code improvements 2022-11-14 11:49:49 +02:00
txreconciliation.h p2p, refactor: Switch to enum class for ReconciliationRegisterResult 2022-11-14 11:37:28 +02:00
utxo_snapshot.cpp refactor: Remove stray cs_main redundant declaration 2023-01-25 09:56:26 +01:00
utxo_snapshot.h refactor: Remove stray cs_main redundant declaration 2023-01-25 09:56:26 +01:00
validation_cache_args.cpp validationcaches: Use size_t for sizes 2022-08-03 12:03:28 -04:00
validation_cache_args.h validationcaches: Add and use ValidationCacheSizes 2022-08-03 12:03:27 -04: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.