0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-02-15 11:36:00 -05:00
bitcoin-bitcoin-core/src/node
Ryan Ofsky b1ba1b178f
Merge bitcoin/bitcoin#30132: indexes: Don't wipe indexes again when continuing a prior reindex
f68cba29b3 blockman: Replace m_reindexing with m_blockfiles_indexed (Ryan Ofsky)
1b1c6dcca0 test: Add functional test for continuing a reindex (TheCharlatan)
201c1a9282 indexes: Don't wipe indexes again when already reindexing (TheCharlatan)
804f09dfa1 kernel: Add less confusing reindex options (Ryan Ofsky)
e172553223 validation: Remove needs_init from LoadBlockIndex (TheCharlatan)
533eab7d67 bugfix: Streamline setting reindex option (TheCharlatan)

Pull request description:

  When restarting `bitcoind` during an ongoing reindex without setting the `-reindex` flag again, the block and coins db is left intact, but any data from the optional indexes is discarded. While not a bug per se, wiping the data again is
  wasteful, both in terms of having to write it again,  as well as potentially leading to longer startup times. So keep the  index data instead when continuing a prior reindex.

  Also includes a bugfix and smaller code cleanups around the reindexing code. The bug was introduced in b47bd95920: "kernel: De-globalize fReindex".

ACKs for top commit:
  stickies-v:
    ACK f68cba29b3
  fjahr:
    Code review ACK f68cba29b3
  furszy:
    Code review ACK f68cba29b3
  ryanofsky:
    Code review ACK f68cba29b3. Only changes since last review were cherry-picking suggested commits that rename variables, improving comments, and making some tweaks to test code.

Tree-SHA512: b252228cc76e9f1eaac56d5bd9e4eac23408e0fc04aeffd97a85417f046229364673ee1ca7410b9b6e7b692b03f13ece17c42a10176da0d7e975a8915deb98ca
2024-06-10 10:12:30 -04:00
..
abort.cpp node: Make translations of fatal errors consistent 2024-03-21 16:40:22 +01:00
abort.h node: Make translations of fatal errors consistent 2024-03-21 16:40:22 +01:00
blockmanager_args.cpp kernel: Add less confusing reindex options 2024-06-07 19:17:11 +02: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 blockman: Replace m_reindexing with m_blockfiles_indexed 2024-06-07 19:18:46 +02:00
blockstorage.h blockman: Replace m_reindexing with m_blockfiles_indexed 2024-06-07 19:18:46 +02:00
caches.cpp move-only: Extract common/args and common/config.cpp from util/system 2023-04-19 10:48:30 +02:00
caches.h Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
chainstate.cpp blockman: Replace m_reindexing with m_blockfiles_indexed 2024-06-07 19:18:46 +02:00
chainstate.h kernel: Add less confusing reindex options 2024-06-07 19:17:11 +02:00
chainstatemanager_args.cpp refactor: Move {MAX,DEFAULT}_SCRIPTCHECK_THREADS constants 2023-10-03 10:52:17 +01:00
chainstatemanager_args.h refactor: Move {MAX,DEFAULT}_SCRIPTCHECK_THREADS constants 2023-10-03 10:52:17 +01: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 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 kernel: Remove key module from kernel library 2024-05-09 15:56:08 +02:00
context.h kernel: Remove key module from kernel library 2024-05-09 15:56:08 +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 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 Merge bitcoin/bitcoin#29086: refactor: Simply include CTxMemPool::Options in CTxMemPool directly rather than duplicating definition 2024-05-14 20:00:34 -04:00
kernel_notifications.cpp kernel: Remove key module from kernel library 2024-05-09 15:56:08 +02:00
kernel_notifications.h node: Make translations of fatal errors consistent 2024-03-21 16:40:22 +01:00
mempool_args.cpp mempool: persist with XOR 2023-11-09 19:44:50 +01:00
mempool_args.h refactor: Replace std::optional<bilingual_str> with util::Result 2023-05-24 08:55:47 -04: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 refactor: Fix timedata includes 2024-02-01 13:52:05 +01:00
miner.h [refactor] rewrite BlockAssembler inBlock and failedTx as sets of txids 2023-11-10 16:44:45 +01:00
mini_miner.cpp [refactor] Miniminer var cached_descendants to descendants 2023-11-07 08:56:43 -06:00
mini_miner.h [refactor] updating miniminer comments to be more accurate 2023-11-08 14:45:18 -06: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
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 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
timeoffsets.cpp Add TimeOffsets helper class 2024-04-10 17:01:27 +02:00
timeoffsets.h Add TimeOffsets helper class 2024-04-10 17:01:27 +02:00
transaction.cpp refactor: De-globalize g_signals 2024-02-15 14:37:01 +01:00
transaction.h RPC: Add maxfeerate and maxburnamount args to submitpackage 2024-03-13 09:45:43 -04:00
txreconciliation.cpp refactor: Move system from util to common library 2023-05-20 12:08:13 +02:00
txreconciliation.h [net processing] Move -txreconciliation to PeerManager::Options 2023-07-24 18:35:28 +02:00
utxo_snapshot.cpp lint: remove /* Continued */ markers from codebase 2023-08-03 17:52:24 +01:00
utxo_snapshot.h assumeutxo: Add network magic ctor param to SnapshotMetadata 2024-05-24 18:44:02 +02:00
validation_cache_args.cpp move-only: Extract common/args and common/config.cpp from util/system 2023-04-19 10:48:30 +02: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.