Running a Bitcoin Node

Running a Bitcoin full node means downloading the Bitcoin software to your own hardware and independently validating every block and transaction from the genesis block forward.

Operating full nodes is an essential part of how Bitcoin works as a peer-to-peer electronic cash system. The network's integrity depends on a distributed set of independently validating nodes, each one enforcing the consensus rules for itself without trusting anyone else.

Many bitcoin users delegate this validation to a third party without realising it, and that delegation has consequences for your privacy, your sovereignty, and the network you rely on.

Why Should I Run a Bitcoin Node?

There are four distinct reasons to run your own Bitcoin node.

  1. Privacy. When you send or receive bitcoin, your wallet needs to query the blockchain for address balances and transaction history. Without a personal node, those queries go to a third-party server that can observe your IP address, the addresses you are querying, and over time the full address set of your wallet.

    Running your own node moves all of those queries to your own local copy of the blockchain. No external party learns which addresses belong to your wallet, what they have received, or where the request originated. This also eliminates any need to look up your own transactions on a public block explorer, removing that IP-to-address link entirely.

  2. Self-sovereign validation. Without a personal node, your wallet trusts third-party assertions about balances, UTXOs, and confirmation counts. A full node validates every transaction and block against the consensus rules independently. Its view of the UTXO set is authoritative and you are not trusting anyone.

  3. Implementing the rules you want. Bitcoin's software exists in multiple versions that are all broadly compatible, but differ in optional policies. Bitcoin Core and Bitcoin Knots, for example, enforce the same consensus rules for what counts as a valid block, but differ in their mempool filtering policies and what non-standard transaction types they will relay.

    Running a node means you choose which version you run and which rules apply to you. If a contested soft fork or protocol change occurs, nodes running the software that matters determine the outcome.

  4. Strengthening the network. Every full node that validates independently makes Bitcoin more resilient. Nodes that propagate blocks and transactions to peers improve connectivity, reduce reliance on any single server or service, and make the network harder to censor or monitor at a systemic level.

Hardware wallet users sometimes assume that Coldcard's air-gap means their wallet activity is fully private. Coldcard has no network interface and signs PSBTs offline, but coordinator software such as Sparrow must still query a server about which addresses to watch and what transactions they have received. Without a personal node, that query goes to a third party.

What Does a Bitcoin Node Do?

A bitcoin full node performs several distinct functions:

  • Downloads and validates the complete blockchain. It checks every transaction against Bitcoin's consensus rules from the genesis block to the latest block.

  • Maintains the UTXO set. This is the authoritative record of all unspent transaction outputs, also known as the full bitcoin transaction history. Your node's UTXO set is the ground truth for your balance.

  • Keeps the mempool. A local view of unconfirmed transactions waiting to be included in a block, used for fee estimation and transaction monitoring.

  • Relays blocks and transactions to peers. Your node contributes to the propagation of new transactions and blocks across the network.

  • Serves address queries. When paired with an Electrum server (Fulcrum or Electrs), your node answers balance and transaction history queries locally instead of sending them to a third party.

Bitcoin Core is the reference implementation used by the majority of nodes. The blockchain requires several hundred gigabytes of storage, growing at roughly 5 to 7 GB per month. A 2 TB SSD provides several years of headroom from a clean install.

"Initial block download" (IBD) is the one-time process of syncing the full blockchain from the genesis block. On typical home hardware (Raspberry Pi 4 or equivalent), IBD takes one to five days. After IBD, the node only needs to process new blocks as they arrive, which is fast.

What are the Different Node Configurations?

There are different ways to configure a node, but it first helps to distinguish between the full blockchain history and the active UTXO set.

The full blockchain is like an archival library containing every transaction ever executed since Bitcoin's genesis, whereas the UTXO set is more like a slim ledger book listing who owns what right now. The massive library includes a permanent record of old, spent inputs, script signatures, and block headers dating back years and totaling hundreds of gigabytes of data, whereas the active ledger book of unspent coins takes up only a few gigabytes of space.

Three node configurations exist with different storage requirements and trade-offs.

  1. Full archival node. This is the standard configuration. A full archival node stores the complete blockchain history from the genesis block, validates every transaction against consensus rules, maintains the authoritative UTXO set, and can serve historical block data to an Electrum server.

    Full archival operation requires several hundred gigabytes and is the recommended configuration for users who want full privacy, full Electrum server functionality, and complete independence.

  2. Pruned node. A "pruned" node validates the complete blockchain during initial block download but then discards old block data, keeping only the UTXO set, block headers, and a configurable recent window of blocks. At minimum prune settings, storage can be reduced to a few gigabytes. A typical pruned configuration retains a comfortable buffer of recent blocks and lands in the 10 to 20 GB range, compared to hundreds of gigabytes for a full node.

    A pruned node still validates every transaction and enforces consensus rules fully. What it cannot do is serve historical block data to an Electrum server, which limits coordinator software to connecting via Bitcoin Core RPC with reduced address scanning capability.

  3. SPV client (light client). Simplified payment verification (SPV) wallets do not download or validate the blockchain. They download only block headers and trust connected full nodes to report their transaction data accurately. Older SPV wallets used "Bloom filters" to request transaction data, a probabilistic data structure that effectively acted as a fingerprint of your holdings and leaked your entire address profile to any peer it contacted.

    While modern light clients have improved privacy by switching to Compact Block Filters (BIP 157/158), where block summaries are downloaded and checked locally, they still rely on third-party nodes to serve that data. For true privacy and sovereignty, running even a pruned node is substantially better than any light client.

Bitcoin Core does not natively serve the Electrum protocol, so a separate Electrum server is required for coordinator software such as Sparrow to use the full Electrum query interface.

Information on Pruned Nodes

Pruning does not compromise the integrity of a node's view of transaction history. Bitcoin uses a cryptographic hash chain: block headers act as a cryptographic summary of the block's contents and each header contains a hash of the previous header. Any attempt to alter a historical transaction or block would change its hash and invalidate every subsequent block header all the way to the present.

A pruned node verifies this complete hash chain during IBD before discarding the old blocks. After pruning, the stored UTXO set and chain of headers provide full assurance of historical validity without needing to retain every past transaction permanently.

The reason some operators choose to prune goes beyond simple storage savings. The Bitcoin blockchain contains arbitrary non-transaction data embedded in it by users, including ordinal inscriptions, images, text messages, and other content have been written into Bitcoin's blockchain using script data fields. As a node operator, you may not want to store this data on your hardware. Pruning removes it along with the old block data.

Full archival node operators who want to exclude non-standard transaction data from their relay policies can use Bitcoin Knots, which provides stricter mempool filtering options.

What Hardware and Software Do I Need?

Bitcoin is intentionally designed to run on modest, affordable hardware. Keeping node operation accessible to regular people helps keep bitcoin resilient through decentralization. If running a node required enterprise-scale equipment, only large institutions could validate the chain, which would centralize the network.

The hardware requirements have grown as the blockchain has grown, but they have been kept within reach of anyone with a spare computer and an internet connection.

Hardware

DIY options. A Raspberry Pi 4 with 8 GB of RAM and a 2 TB SSD is a common dedicated node platform. It draws approximately 5 to 10 watts of power, runs continuously without issue, and is supported by every major node software package. You can also repurpose an old laptop, a NUC mini PC, or a spare desktop. Any x86-type processor machine with enough storage will work. x86 hardware typically completes initial block download faster than a Raspberry Pi due to more processing power, and if the hardware would otherwise sit idle, the higher power draw is a reasonable tradeoff.

Commercial node packages. If you prefer a more guided setup, dedicated node platforms bundle Bitcoin Core, Electrum server installation, and optional services into a browser-based interface, removing the need for command-line configuration. The main options are:

  • Umbrel is an easy setup, with an app store model and wide hardware support. Beyond Bitcoin, Umbrel's app store includes a Lightning node, self-hosted cloud storage, media servers, and other services. It is a platform for sovereign computing as much as a Bitcoin node tool.
  • Start9 is built explicitly around sovereign computing. Its Embassy platform lets you run Bitcoin, Lightning, Nostr relays, email servers, file servers, and more, all self-hosted on your own hardware. It takes a conservative, privacy-focused approach to app selection, and Tor is configured and active by default.
  • RaspiBlitz is terminal-based with granular control and a strong Lightning focus. Better suited to users comfortable with the command line.

All three support Fulcrum and Electrs for Electrum server functionality. All three handle Tor configuration, which is covered in Using Tor with Bitcoin. Using a node package means trusting the package maintainer's software choices. Experienced users who want full control can install Bitcoin Core and Fulcrum directly without a node package.

Running a node on your regular computer. Bitcoin Core runs on Windows, macOS, and Linux, so you can run a node alongside your normal apps on a laptop or desktop without dedicated hardware. This can work, but has tradeoffs. Bitcoin Core will use storage, RAM, and bandwidth in the background. If your computer is off, then your node is off. You miss blocks and your wallet software cannot connect to it. For a privacy-focused setup where you want your node always available, a dedicated device is preferable.

Software

Two types of software are needed to run a self-sovereign Bitcoin node: the node software itself, and an Electrum server.

Node software. Your Bitcoin node software is your implementation of Bitcoin's consensus rules and your own local copy of the transaction history. When you run your implementation of the Bitcoin software, you are running your own version of Bitcoin, independent of any third party, and maintaining your own authoritative record of the UTXO set. No one can force you to download, update, or change your version of this software.

Bitcoin Core is the reference implementation, run by the vast majority of nodes worldwide. Originally released by Satoshi Nakamoto in 2009 and now maintained by a large open-source contributor community, it is the standard choice and what all major node packages install by default.

Bitcoin Knots is an alternative full-node implementation maintained by developer Luke Dashjr. It is consensus-compatible with Bitcoin Core, meaning it enforces the same foundational rules for what counts as a valid block and accepts the same blockchain. The difference lies in optional policy. Knots includes stricter mempool filtering that rejects certain non-standard transaction types, such as data-heavy inscription transactions.

Electrum server software. Bitcoin Core alone does not serve the Electrum protocol, which is what wallet software such as Sparrow uses to query address balances and transaction history. An Electrum server runs alongside your node, builds a transaction index from your local blockchain data, and answers Sparrow's queries against that index locally with no external observer. Without one, your wallet must connect to a third-party server that can see your addresses and IP address. The Electrum server is what makes self-sovereign wallet operation possible.

Three Electrum server implementations are available:

Implementation Language RAM Index size Best for
Fulcrum C++ 4–12 GB ~120 GB Sparrow users, large wallets
Electrs Rust 1–2 GB ~75 GB Low-RAM hardware
EPS Python Very low None Single-user, minimal resources

Fulcrum is the recommended choice for Sparrow users, providing the fastest query speed and handling large wallets without performance issues. Electrs is appropriate for hardware constrained to 4 GB of RAM or less. EPS (Electrum Personal Server) requires no separate index but is slow and only works for a single wallet.

How Do I Connect Sparrow to My Node?

Sparrow's official documentation includes a detailed walkthrough for connecting to your own node, available at sparrowwallet.com. The steps below cover the two connection modes. Private Electrum is recommended for users running a full archival node with Fulcrum or Electrs. Bitcoin Core RPC is available for pruned node users.

Connecting via Private Electrum (recommended):

  1. In Sparrow, open Preferences and navigate to the Server tab.
  2. Select Private Electrum from the server type options.
  3. Enter the IP address or hostname of your node and the Electrum server port (50001 for TCP, 50002 for SSL).
  4. Click Test Connection. Sparrow displays a green server indicator in the bottom toolbar when the connection is established.
  5. All address queries now resolve locally. No external party observes your addresses or transaction history.

Connecting via Bitcoin Core RPC (pruned node users):

  1. In Sparrow, open Preferences and navigate to the Server tab.
  2. Select Bitcoin Core from the server type options.
  3. Enter the RPC URL (typically http://127.0.0.1:8332), the RPC username, and the RPC password from your bitcoin.conf file.
  4. Click Test Connection to verify.

This mode works with pruned nodes but provides limited address scanning capability compared to a full Electrum connection. For full Sparrow functionality, a full archival node with Fulcrum is required.

If your Electrum server is exposed as a Tor hidden service (.onion address), Sparrow can connect to it remotely from any network without exposing your home node's IP address or your current location. Using Tor with Bitcoin covers the Tor configuration for Bitcoin Core and the Electrum server.

The full privacy stack for a Coldcard user is Bitcoin Core with Tor enabled, a Fulcrum server exposed as a hidden service, Sparrow connecting via Tor to that hidden service, and Coldcard signing PSBTs via QR code or SD card with no network interface.

The node removes address query observation. Tor removes IP correlation at broadcast time. Coldcard keeps all signing offline.

What is the Bitcoin Mempool? covers one additional benefit of running your own node: direct mempool visibility without relying on third-party fee estimation services.

Why No One Can Force Changes to Your Bitcoin Node

One of Bitcoin's most important properties is that no one can push software changes to your node. Unlike your smartphone, where the manufacturer can silently deliver a mandatory OS update that changes how apps behave, your Bitcoin node runs exactly the software you installed, and it stays that way until you choose otherwise.

  • No entity can force a rule change onto your node. If Bitcoin Core releases a new version with different validation rules, your node continues running the version you installed until you decide to update.

  • No one can alter your copy of the blockchain remotely. The hash chain ensures that any modification to historical block data invalidates all subsequent headers. Your node would detect it immediately.

  • No government, corporation, or developer can push changes. This includes censorship rules, address blacklists, or policy changes to your node without your knowledge and consent.

  • You are free to switch Bitcoin node software at any time. You can change between versions of Bitcoin Core, to Bitcoin Knots, or to any other compatible implementation. You can also edit your own software to create a custom implementation. If your chosen software enforces rules that diverge from network consensus, your node may fall out of sync with the rest of the network, but that is a choice you make knowingly, not one imposed on you.

This is fundamentally different from the infrastructure most people rely on for financial services, where rule changes happen at the institutional level and are applied to all users automatically.