81cea5d4ee0e226f7c7145072de85829f4166ec9 Ensure m_tip_block is never ZERO (Sjors Provoost) e058544d0e83aed691903d13d7e5775beb7e678f Make m_tip_block an std::optional (Sjors Provoost) Pull request description: Suggested in https://github.com/bitcoin/bitcoin/pull/31297#discussion_r1844244309 ACKs for top commit: fjahr: re-ACK 81cea5d4ee0e226f7c7145072de85829f4166ec9 tdb3: code review re ACK 81cea5d4ee0e226f7c7145072de85829f4166ec9 l0rinc: ACK 81cea5d4ee0e226f7c7145072de85829f4166ec9 Tree-SHA512: 31a75ba29e3d567bab32e4e7925a419d9d7a4d2d85ed1c1012116d8d22adc14d31d5b4ce5f6c499c994188dcd26a01cced05be74f94c892fc90ae17a6783a472
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.