A Bitcoin node is a computer running Bitcoin software that communicates in the Bitcoin peer-to-peer network. It can validate new transactions from peers, sign and broadcast transactions that spend its own coins, and relay valid transactions and blocks across the network.
The primary function of transaction validation is to prevent double-spending by ensuring that transaction outputs have not already been spent by previous transactions.
Every 10 minutes or so, a Bitcoin miner, which may also operate as a Bitcoin node, can mine a block containing new valid transactions and broadcast that block back into the network. Upon receiving a new block from one of its peers, a Bitcoin node validates it before accepting it into its local copy of the blockchain.
Bitcoin nodes accept and relay transactions and blocks using consensus rules coded into the Bitcoin software they run. Honest nodes enforce the same rules and keep an up-to-date copy of the blockchain, which acts as the single source of truth for the state of all outputs.
If a malicious node attempts to propagate an invalid transaction, such as a double-spend, honest peers reject it and may ban the peer that sent it.
Operating a Bitcoin node does not create a direct incentive like mining blocks does. Node operators help increase network resiliency by enforcing consensus rules and can improve their own privacy by having their wallet communicate with their own node.
Using your own node removes the need for a third-party service to validate incoming or outgoing wallet transactions, reducing the amount of wallet history and identity information exposed to external services.
Bitcoin software, such as Bitcoin Core, allows users to operate a full or pruned node. A full Bitcoin node maintains a full copy of the blockchain and can relay blocks or transactions from the genesis block up to the latest block to its peers.
A pruned Bitcoin node stores and relays only recent blocks as far back as the configured disk-space limit allows. A pruned copy can be as small as 500MB, while a full copy requires hundreds of gigabytes and continues to grow. Typically, a full node advertises both NODE_NETWORK and NODE_NETWORK_LIMITED, while a pruned node advertises NODE_NETWORK_LIMITED.
A Bitcoin node joins the peer-to-peer network by making outgoing connections to peers announced by DNS seeders coded into Bitcoin software. Further peer-to-peer message exchange lets the node expand its list of known nodes for future connections.
A reachable node accepts incoming connections from peers. Reachable nodes help new peers bootstrap into the network and improve network resilience. An unreachable node establishes outgoing connections but does not accept incoming connections.
Many nodes are unreachable by default because they are behind corporate or ISP firewalls, NAT, maxed-out inbound connection limits, or are still syncing. Unreachable nodes still enforce consensus rules through outgoing connections and remain part of the Bitcoin peer-to-peer network.
The btcnodes.io project maintains a relatively accurate low-churn estimate of reachable nodes and a rough estimate of global nodes that includes reachable and unreachable nodes. Reachable-node methodology sends getaddr messages recursively from seed nodes; the current reachable snapshot is available here. Global-node methodology and the current rough estimate are available here.
You can test whether your node accepts inbound peer connections from the Check Your Node page.
Updated: November 21, 2025