0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-02-04 10:07:27 -05:00
bitcoin-bitcoin-core/src/node
Carl Dong ae9121f958 node/chainstate: Decouple from stringy errors
This allows us to separate the initialization code from translations and
error reporting.

This change changes the caller semantics of LoadChainstate quite
drastically.

To see that this change doesn't change behaviour, observe that:

1. Prior to this change, LoadChainstate returned false only in the "bad
   genesis block" failure case (by returning InitError()), indicating
   that the caller should immediately bail. After this change, the
   corresponding ERROR_BAD_GENESIS_BLOCK handler in src/init.cpp
   maintains behavioue by also bailing immediately.

2. The failed_* temporary booleans were only used to break out of the
   outer do/while(false) loop. They can therefore be safely removed.
2021-12-06 15:56:50 -05:00
..
blockstorage.cpp Merge bitcoin/bitcoin#22937: refactor: Forbid calling unsafe fs::path(std::string) constructor and fs::path::string() method 2021-10-15 10:01:56 +02:00
blockstorage.h add missing atomic include 2021-06-22 11:06:30 +02:00
chainstate.cpp node/chainstate: Decouple from stringy errors 2021-12-06 15:56:50 -05:00
chainstate.h node/chainstate: Decouple from stringy errors 2021-12-06 15:56:50 -05:00
coin.cpp scripted-diff: tree-wide: Remove all review-only assertions 2021-06-10 15:05:24 -04:00
coin.h node: Use mempool from node context instead of global 2019-12-05 14:22:05 -05:00
coinstats.cpp scripted-diff: tree-wide: Remove all review-only assertions 2021-06-10 15:05:24 -04:00
coinstats.h [MOVEONLY] consensus: move amount.h into consensus 2021-09-30 07:41:57 +08:00
context.cpp validation: Farewell, global Chainstate! 2021-06-10 15:05:25 -04:00
context.h scripted-diff: Rename CAddrMan to AddrMan 2021-09-28 22:21:10 -04:00
interfaces.cpp Merge bitcoin/bitcoin#23512: policy: Treat taproot as always active 2021-11-25 08:16:19 +01:00
miner.cpp miner: Remove uncompiled MTP code 2021-12-01 09:32:03 +01:00
miner.h miner: Remove uncompiled MTP code 2021-12-01 09:32:03 +01:00
minisketchwrapper.cpp scripted-diff: Move minisketchwrapper to src/node 2021-11-12 10:56:08 +01:00
minisketchwrapper.h Sort file list after rename 2021-11-12 10:56:27 +01:00
psbt.cpp [MOVEONLY] consensus: move amount.h into consensus 2021-09-30 07:41:57 +08:00
psbt.h refactor: post Optional<> removal cleanups 2021-03-17 14:56:20 +08:00
README.md doc: Remove irrelevant link to GitHub 2021-04-06 09:34:21 +02:00
transaction.cpp [refactor] Don't call AcceptToMemoryPool() from outside validation.cpp 2021-11-03 14:34:41 +00:00
transaction.h refactor: move GetTransaction(...) to node/transaction.cpp 2021-07-22 15:53:17 +02:00
ui_interface.cpp multiprocess: Delay wallet client construction 2021-09-16 14:17:01 -04:00
ui_interface.h multiprocess: Delay wallet client construction 2021-09-16 14:17:01 -04:00
utxo_snapshot.h validation: remove nchaintx from assumeutxo metadata 2021-04-26 13:22:37 -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.