Overview of bitcoind
The following diagram gives a brief overview of how some of the major components in bitcoind are related.
This diagram is not exhaustive and includes simplifications. |
dashed lines indicate optional components |
bitcoind
overviewComponent | Simplified description |
---|---|
| Manage peers' network addresses |
| Manage network connections to peers |
| Give clients access to chain state, fee rate estimates, notifications and allow tx submission |
| An interface for interacting with 1 or 2 chainstates (1. IBD-verified, 2. optional snapshot) |
| Manage net groups. Ensure we don’t connect to multiple nodes in the same ASN bucket |
| Validate and store (valid) transactions which may be included in the next block |
| Manage peer state and interaction e.g. processing messages, fetching blocks & removing for misbehaviour |
| Maintains a tree of blocks on disk (via LevelDB) to determine most-work tip |
| Manages |
bitcoin-cli
overview
The following diagram gives a brief overview of the major components in bitcoin-cli.
This diagram is not exhaustive and includes simplifications. |
bitcoin-cli
overviewWallet structure
The following diagram gives a brief overview of how the wallet is structured.
This diagram is not exhaustive and includes simplifications. |
dashed lines indicate optional components |
Component | Simplified description |
---|---|
| Represents a single wallet. Handles reads and writes to disk |
| Base class for the below SPKM classes to override before being used by |
| A SPKM for descriptor-based wallets |
| A SPKM for legacy wallets |
| An interface for a |
| Give clients access to chain state, fee rate estimates, notifications and allow tx submission |
| The primary wallet lock, held for atomic wallet operations |