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 overview| Component | 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 |