0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-02-18 11:57:37 -05:00
bitcoin-bitcoin-core/src/node
MarcoFalke 5e49b2a252
Merge bitcoin/bitcoin#24050: validation: Give m_block_index ownership of CBlockIndexs
6c23c41561 refactor: Rewrite AddToBlockIndex with try_emplace (Carl Dong)
c05cf7aa1e style: Modernize range-based loops over m_block_index (Carl Dong)
c2a1655799 style-only: Use using instead of typedef for BlockMap (Carl Dong)
dd79dad175 refactor: Rewrite InsertBlockIndex with try_emplace (Carl Dong)
531dce0347 tests: Remove now-unnecessary manual Unload's (Carl Dong)
bec86ae326 blockstorage: Make m_block_index own CBlockIndex's (Carl Dong)

Pull request description:

  Part of: #24303
  Split off from: #22564

  ```
  Instead of having CBlockIndex's live on the heap, which requires manual
  memory management, have them be owned by m_block_index. This means that
  they will live and die with BlockManager.
  ```

  The second commit demonstrates how this makes calls to `Unload()` to satisfy the address sanitizer unnecessary.

ACKs for top commit:
  ajtowns:
    ACK 6c23c41561
  MarcoFalke:
    re-ACK 6c23c41561 🎨

Tree-SHA512: 81b2b5119be27cc0f8a9457b11da60cc60930315d2a5be36be89fe253d32073ffe622348ff153114b9b3212197bddbc791810913a43811b33cc58e7162bd105b
2022-03-07 13:15:27 +01:00
..
blockstorage.cpp refactor: Rewrite AddToBlockIndex with try_emplace 2022-02-22 11:56:49 -05:00
blockstorage.h style-only: Use using instead of typedef for BlockMap 2022-02-22 11:56:49 -05:00
caches.cpp Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
caches.h Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
chainstate.cpp Avoid implicit-integer-sign-change in VerifyLoadedChainstate 2022-02-21 10:29:37 +01:00
chainstate.h Avoid implicit-integer-sign-change in VerifyLoadedChainstate 2022-02-21 10:29:37 +01:00
coin.cpp Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
coin.h Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
coinstats.cpp Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
coinstats.h Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
context.cpp Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
context.h Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
interfaces.cpp Merge bitcoin/bitcoin#22834: net: respect -onlynet= when making outbound connections 2022-03-01 18:32:01 +01:00
miner.cpp Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
miner.h Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
minisketchwrapper.cpp Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
minisketchwrapper.h Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
psbt.cpp Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05: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 Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05:00
ui_interface.cpp scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
ui_interface.h refactor: Make MessageBoxFlags enum underlying type unsigned 2022-01-31 09:27:12 +01:00
utxo_snapshot.h Add src/node/* code to node:: namespace 2022-01-06 22:14:16 -05: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.