diff --git a/docs/ARCHITECTURE.rst b/docs/ARCHITECTURE.rst index 7c968fa..ed1c0e0 100644 --- a/docs/ARCHITECTURE.rst +++ b/docs/ARCHITECTURE.rst @@ -31,14 +31,17 @@ Handles JSON Electrum client connections over TCP or SSL. One instance per client session. Should be the only component concerned with the details of the Electrum wire protocol. -Not started until the block processor has caught up with the daemon. +Not started until the Block Processor has caught up with bitcoind. Daemon ------ Encapsulates the RPC wire protcol with bitcoind for the whole server. -Transparently handles temporary daemon errors, and fails over if -necessary. +Transparently handles temporary bitcoind connection errors, and fails +over if necessary. + +Notifies the Mempool when the list of mempool transaction hashes is +updated. Block Processor @@ -49,7 +52,7 @@ transaction and undo information) and for handling block chain reorganisations. When caught up, processes new blocks as they are found, and flushes -the updates to the database immediately. +the updates to the Database immediately. When syncing uses caches for in-memory state updates since the prior flush. Occasionally flushes state to the storage layer when caches @@ -58,10 +61,10 @@ get large. Prefetcher ---------- -Cooperates with the block processor to asynchronously prefetch blocks -from bitcoind. Once it has caught up it additionally requests mempool -transaction hashes from bitcoind. Serves blocks to the block -processor via a queue, and the mempool hashes to the Mempool object. +Cooperates with the Block Processor to asynchronously prefetch blocks +from bitcoind. Once it has caught up it additionally asks the Daemon +to refresh its view of bitcoind's mempool transaction hashes. Serves +blocks to the Block Processor via a queue. Mempool ------- @@ -70,14 +73,14 @@ Handles all the details of maintaining a representation of bitcoind's mempool state. Obtains the list of current mempool transaction hashes from the Daemon when notified by the Prefetcher. -Notifies the controller that addresses have been touched when the +Notifies the Controller that addresses have been touched when the mempool refreshes (or implicitly when a new block is found). Database -------- -The database. Flushed chain state is stored in the DB backend, such -as leveldb, along with metadata on the host filesystem. +The underlying data store, made up of the DB backend (such as +`leveldb`) and the host filesystem. IRC ---