mirror of
https://github.com/lightningdevkit/rust-lightning.git
synced 2025-01-18 05:12:38 +01:00
arch: update diagram to reflect changes to KeysInterface
KeysInterface was split into EntropySource, SignerProvider and NodeSigner in #1930.
This commit is contained in:
parent
bc1931bd0b
commit
7c1db56d39
50
ARCH.md
50
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
|
||||
|
Loading…
Reference in New Issue
Block a user