elements/src/node
MacroFake 2642dee136
Merge bitcoin/bitcoin#15936: interfaces: Expose settings.json methods to GUI
f9fdcec7e9 settings: Add resetSettings() method (Ryan Ofsky)
77fabffef4 init: Remove Shutdown() node.args reset (Ryan Ofsky)
0e55bc6e7f settings: Add update/getPersistent/isIgnored methods (Ryan Ofsky)

Pull request description:

  Add `interfaces::Node` `updateSetting`, `forceSetting`, `resetSettings`, `isSettingIgnored`, and `getPersistentSetting` methods so GUI is able to manipulate `settings.json` file and use and modify node settings.

  (Originally this PR also contained GUI changes to unify bitcoin-qt and bitcoind persistent settings and call these methods, but the GUI commits have been dropped from this PR and moved to bitcoin-core/gui/pull/602)

ACKs for top commit:
  vasild:
    ACK f9fdcec7e9
  hebasto:
    re-ACK f9fdcec7e9, only a function renamed since my recent [review](https://github.com/bitcoin/bitcoin/pull/15936#pullrequestreview-979324357).

Tree-SHA512: 4cac853ee29be96d2ff38404165b9dfb7c622b2a9c99a15979596f3484ffde0da3d9c9c372677dff5119ca7cffa6383d81037fd9889a29cc9285882a8dc0c268
2022-05-26 17:05:10 +02:00
..
blockstorage.cpp blockstorage, refactor: pass GetFirstStoredBlock() start_block by reference 2022-04-28 20:42:08 +02:00
blockstorage.h blockstorage: add LIFETIMEBOUND to GetFirstStoredBlock()::start_time 2022-05-03 22:20:31 +02: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 Do not pass Consensus::Params& to Chainstate helpers 2022-05-18 18:45:30 +02:00
chainstate.h Do not pass Consensus::Params& to Chainstate helpers 2022-05-18 18:45:30 +02: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
context.cpp refactor: use C++11 default initializers 2022-05-17 17:18:58 +01:00
context.h [init] Add netgroupman to node.context 2022-04-19 10:25:40 +01:00
interfaces.cpp Merge bitcoin/bitcoin#15936: interfaces: Expose settings.json methods to GUI 2022-05-26 17:05:10 +02:00
miner.cpp Add ChainstateManager::m_adjusted_time_callback 2022-05-20 11:57:51 -04:00
miner.h Do not pass CChainParams& to BlockAssembler constructor 2022-05-18 18:46:07 +02: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 refactor: Remove defunct attributes.h includes 2022-05-21 13:54:33 -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.