]> git.bitcoin.ninja Git - rust-lightning/commitdiff
arch: update diagram to reflect changes to KeysInterface
authorCarla Kirk-Cohen <kirkcohenc@gmail.com>
Tue, 8 Oct 2024 13:17:47 +0000 (09:17 -0400)
committerCarla Kirk-Cohen <kirkcohenc@gmail.com>
Tue, 8 Oct 2024 14:35:14 +0000 (10:35 -0400)
KeysInterface was split into EntropySource, SignerProvider and
NodeSigner in #1930.

ARCH.md

diff --git a/ARCH.md b/ARCH.md
index bd5fc1bd3164a5ce749ade66c19bb55f6fd74700..e5527d2422e7b0df717bf6bfdeed482362c7aac6 100644 (file)
--- a/ARCH.md
+++ b/ARCH.md
@@ -18,9 +18,9 @@ monitoring for liveness of peers, routing messages to `ChannelManager` and `P2PG
 instances directly, and receiving messages from them via the `EventsProvider` interface.
 
 These structs communicate with each other using a public API, so that you can easily add
-a proxy in between for special handling. Further, APIs for key generation, transaction
-broadcasting, block fetching, and fee estimation must be implemented and the data
-provided by you, the user.
+a proxy in between for special handling. Further, APIs for key generation, entropy source,
+transaction broadcasting, block fetching, and fee estimation must be implemented and the
+data provided by you, the user.
 
 The library does not rely on the presence of a runtime environment outside of access to
 heap, atomic integers, and basic Mutex primitives. This means the library will never
@@ -31,28 +31,30 @@ block time for current time knowledge.
 
 At a high level, some of the common interfaces fit together as follows:
 
-
 ```
-
-                     -----------------
-                     | KeysInterface |  --------------
-                     -----------------  | UserConfig |
-         --------------------       ^   --------------
-   ------| MessageSendEvent |       |   ^     ----------------
-  /      --------------------       |   |     | FeeEstimator | <-----------------------
- |   (as MessageSendEventsProvider) |   |     ----------------                         \
- |                         ^        |   |    ^                ------------------------  |
- |                          \       |   |   /      ---------> | BroadcasterInterface |  |
- |                           \      |   |  /      /           ------------------------  |
- |                            \     |   | /      /                          ^           |
- |    (as                      ------------------       ----------------    |           |
- |    ChannelMessageHandler)-> | ChannelManager | ----> | chain::Watch |    |           |
- v               /             ------------------       ----------------    |           |
---------------- /                  (as EventsProvider)         ^            |           |
-| PeerManager |-                             \                 |            |           |
----------------                               \                | (is-a)     |           |
- |                    --------------           \       _----------------   /           /
- |                    | UtxoLookup |            \     / | ChainMonitor |---------------
+                      ------------------   --------------
+                      | SignerProvider |   | NodeSigner |
+                      ------------------   --------------
+            -----------------         ^    ^        --------------
+            | EntropySource | <----    \  /   ----> | UserConfig |
+            -----------------       \  |  |  /      --------------
+                                    |  |  |  |
+         --------------------       |  |  |  |     ----------------
+   ------| MessageSendEvent |       |  |  |  |     | FeeEstimator | <----------------
+  /      --------------------       |  |  |  |     ----------------                  \
+ |   (as MessageSendEventsProvider) |  |  |  |      ^                                |
+ |                         ^        |  |  |  |     /       -----------------------   |
+ |                          \       |  |  |  |    /  ----> | BroadcasterInterface |  |
+ |                           \      |  |  |  |   / /       -----------------------   |
+ |                            \     |  |  |  |  / /                       ^          |
+ |    (as                      ------------------       ----------------  |          |
+ |    ChannelMessageHandler)-> | ChannelManager | ----> | chain::Watch |  |          |
+ v               /             ------------------       ----------------  |          |
+--------------- /                  (as EventsProvider)         ^          |          |
+| PeerManager |-                             \                 |          |          |
+---------------                               \                | (is-a)  /           |
+ |                    --------------           \       _----------------            /
+ |                    | UtxoLookup |            \     / | ChainMonitor |------------
  |                    --------------             \   /  ----------------
  |                            ^                   \ /          |
 (as RoutingMessageHandler)    |                    v           v