Overview
In computing, a daemon is a program that runs as a background process rather than being directly controlled by a user through a graphical interface. In the Bitcoin context, the most important daemon is bitcoind, the Bitcoin Core daemon that operates a full node. Running bitcoind allows a server to participate in the Bitcoin network, validate transactions and blocks, maintain a copy of the blockchain, and provide services via its RPC interface.
bitcoind Architecture
┌──────────────────────────────────────────────┐
│ bitcoind │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ P2P │ │Validation│ │ Wallet │ │
│ │ Network │ │ Engine │ │ (optional)│ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
│ │ │ │ │
│ ┌────┴──────────────┴─────────────┴─────┐ │
│ │ Blockchain Database │ │
│ └────────────────────────────────────────┘ │
│ │
│ ┌────────────────────────────────────────┐ │
│ │ JSON-RPC Interface │ │
│ └────────────────┬───────────────────────┘ │
└───────────────────┼───────────────────────────┘
│
┌───────────┴───────────┐
│ │
bitcoin-cli Applications
(command line) (wallets, explorers)
Common Usage
Running bitcoind on a server is the standard way to operate a Bitcoin full node:
- Initial block download (IBD): On first run, bitcoind downloads and validates the entire blockchain history
- Ongoing operation: Continuously receives new blocks and transactions, validates them, and relays them to peers
- RPC interface: Exposes a JSON-RPC API that allows other software to query blockchain data, submit transactions, and manage wallets
Configuration
bitcoind is configured through a bitcoin.conf file or command-line arguments. Common settings include network selection (mainnet, testnet, signet), RPC credentials, peer connection limits, pruning options for disk-constrained setups, and memory allocation for the UTXO cache.
Why Run a Daemon
Running your own bitcoind daemon is the most sovereign way to interact with Bitcoin. It allows you to verify all transactions independently, enhances your privacy by not relying on third-party services to check your balances, and contributes to the health of the network by relaying transactions and blocks to other peers.