aboutsummaryrefslogtreecommitdiff
path: root/src/node/README.md
diff options
context:
space:
mode:
authorJohn Newbery <john@johnnewbery.com>2019-04-02 17:14:35 -0400
committerJohn Newbery <john@johnnewbery.com>2019-04-09 17:53:08 -0400
commitfd509bd1f71df628b933ea7a135a9a957a5e0136 (patch)
treec9e056e1ad1897f6ad33ce5b0b9a6d754ce6afc6 /src/node/README.md
parent9eaeb7fb8d4ab0d4493849e6c17e314fd75fea9c (diff)
[docs] Document src subdirectories and different libraries
Diffstat (limited to 'src/node/README.md')
-rw-r--r--src/node/README.md22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/node/README.md b/src/node/README.md
new file mode 100644
index 0000000000..e99a717534
--- /dev/null
+++ b/src/node/README.md
@@ -0,0 +1,22 @@
+# 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/`](../wallet/) and [`src/qt/`](../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/`](../wallet/), or [`src/qt/`](../qt/) directories should avoid
+calling code in the other directories directly, and only invoke it indirectly
+through the more limited [`src/interfaces/`](../interfaces/) classes.
+
+The [`src/node/`](./) directory is a new directory introduced in
+[#14978](https://github.com/bitcoin/bitcoin/pull/14978) and at the moment is
+sparsely populated. Eventually more substantial files like
+[`src/validation.cpp`](../validation.cpp) and
+[`src/txmempool.cpp`](../txmempool.cpp) might be moved there.