Bitcoin Nodes & Infrastructure

Listening vs Non-Listening Nodes Explained

Two identical compact computers each have an Ethernet cable visibly connected to a front network socket on a grey wool mat.

The Bitcoin network’s resilience and decentralization rely heavily on its node architecture, with different node types playing distinct but complementary roles in maintaining network health. Understanding the interplay between listening and non-listening nodes provides crucial insights into Bitcoin’s peer-to-peer infrastructure and its implications for network security and sustainability.

At the foundation of Bitcoin’s network topology lies a crucial distinction between listening nodes, which accept incoming connections from other network participants, and non-listening nodes, which only initiate outbound connections. This architectural design creates a decentralized structure that enables efficient information propagation while maintaining network security and reliability.

Two grids of 200 connection slots, the default limit in Bitcoin Core 32.1. In both, 11 slots are for the connections the node opens itself: about 10 that stay open and one for brief test connections. Non-listening node: the other 189 slots stay unused, because nobody can connect in, and bitcoin-cli getnetworkinfo shows connections_in 0. Listening node: up to 189 other nodes can connect in, and connections_in is above 0. Both are full nodes that download and check every block and enforce the rules, and once a connection is open, data flows both ways, whoever opened it.
The only difference is who can start a connection. Every node keeps about 10 connections to nodes it picks; the 11th slot is for brief test connections. A listening node also accepts up to 189 connections from others.

Listening nodes serve as the backbone of the Bitcoin network by providing essential connectivity services. These nodes maintain open ports and accept connection requests from other network participants, facilitating the distribution of blockchain data and transaction information across the network. Their willingness to accept inbound connections makes them crucial infrastructure elements that enable new nodes to join the network and existing nodes to maintain robust peer connections.

A map of nodes. Listening nodes, drawn as black discs, are linked to each other. Non-listening nodes, drawn as hollow circles, each have arrows pointing only to listening nodes, because an arrow starts at the node that opened the connection. Your new node, in orange, also connects only to listening nodes and downloads the whole chain, about 800 GB, from them. Between two non-listening nodes a dashed line ends in a cross: they can't connect, because neither one accepts. Every connection needs one side that accepts it, a listening node; roughly 15,000 to 20,000 nodes accept connections as of November 2026.
Listening nodes are the ones everyone else can reach. A node that doesn’t listen can still connect out, but only to a node that does, and a new node syncs the whole chain from listening nodes.

The operation of listening nodes typically requires more technical expertise and resources compared to non-listening nodes. Port forwarding configuration, enhanced security measures, and higher bandwidth consumption are among the additional requirements for running a listening node. Despite these increased demands, listening nodes are essential for network health, as they prevent network fragmentation and ensure proper block propagation.

Non-listening nodes, while not accepting inbound connections, still contribute significantly to network security and decentralization. These nodes verify transactions, maintain a copy of the blockchain, and enforce consensus rules. By participating in block and transaction verification, non-listening nodes help maintain the network’s integrity even without accepting incoming connections.

Privacy considerations play a crucial role in node operation decisions. The implementation of Tor support in Bitcoin Core and various node implementation solutions provides additional options for running listening nodes without exposing IP addresses. This enhancement allows privacy-conscious users to contribute to network resilience while maintaining their anonymity.

The incentive structure for operating listening nodes remains primarily indirect, based on supporting network health rather than direct financial rewards. This aspect of Bitcoin’s design relies on the community’s understanding of the importance of network decentralization and their willingness to contribute to its maintenance. While this might seem like a potential weakness, the system has proven robust, with sufficient listening nodes consistently available to support network operations.

The emergence of user-friendly node implementations has significantly lowered the barrier to entry for running Bitcoin nodes. Solutions like Umbrel, Start9, and others have made it easier for non-technical users to participate in the network, though the configuration options for listening functionality vary between implementations. This democratization of node operation contributes to increased network decentralization and resilience.

Looking forward, the balance between listening and non-listening nodes remains crucial for Bitcoin’s long-term sustainability. While not every node needs to be a listening node, maintaining a healthy ratio ensures network efficiency and reliability. The continued development of user-friendly node solutions, combined with growing awareness of the importance of network participation, suggests a positive trajectory for Bitcoin’s network architecture.

Step-by-Step Guide

Running a listening Bitcoin node strengthens the network by providing connectivity to peers. Here is how to configure your node to accept incoming connections and verify it is functioning correctly as a listening participant in the Bitcoin network.

Step 1: Ensure Your Node Is Fully Synced. Before configuring incoming connections, your Bitcoin Core node must complete its initial block download (IBD). This process downloads and validates the entire blockchain, which can take several hours to days depending on your hardware and internet speed. Run bitcoin-cli getblockchaininfo and confirm that the “initialblockdownload” field returns false.

Step 2: Configure Port Forwarding on Your Router. Bitcoin Core listens on TCP port 8333 by default. Log into your router’s administration panel and create a port forwarding rule that directs incoming traffic on port 8333 to the local IP address of your node. Assign your node a static local IP address or DHCP reservation to prevent the forwarding rule from breaking if the node reboots and receives a new address. Bitcoin Core 30.0 and later also ask the router to open the port by themselves (PCP or NAT-PMP), which works only if the router supports it; a manual rule works with any router whose internet-facing IPv4 address is public. If another NAT sits in front of your router, the port has to be opened there too. Behind your provider’s carrier-grade NAT (CGNAT) that depends on the provider: ask it for a public address, or listen through Tor instead (Step 5), which needs no open port.

Step 3: Verify Your Firewall Allows Inbound Connections. If your operating system runs a firewall (iptables, ufw, or Windows Firewall), add a rule to permit incoming TCP connections on port 8333. On Ubuntu, the command is sudo ufw allow 8333/tcp. Without this rule, the firewall will silently drop incoming peer connections even if your router forwards them correctly.

Step 4: Confirm Listening Status in Bitcoin Core. Open the Bitcoin Core debug console or run bitcoin-cli getnetworkinfo. The “localaddresses” field may list your public IP address with port 8333, but behind a home router it can stay empty even when other nodes reach you, so it proves nothing. The test is the “connections_in” count. It rises above 0 as other nodes learn your address through the network’s peer exchange: bitcoin.org’s full node guide says a node that has been online for at least 30 minutes “should normally have inbound connections”. Inbound connections over Tor count too, so on a node that listens through an onion service the count shows the onion service works, not that the router port is open; bitcoin-cli getpeerinfo lists the network of each peer.

Another node connects in and passes three gates in a row before it reaches your node. Gate 1, your router: forward TCP port 8333 to your node; Bitcoin Core also asks the router to do this itself with PCP or NAT-PMP, if the router supports that. Gate 2, the node's firewall, if one is on: allow incoming TCP connections on port 8333, for example with sudo ufw allow 8333/tcp. Gate 3, Bitcoin Core: listening is on by default (listen=1), but a proxy= or connect= line in bitcoin.conf turns it off unless you add listen=1. The test, once your node has synced: bitcoin-cli getnetworkinfo shows connections_in above 0. One closed gate keeps it at 0.
An incoming connection has to get through all three gates. A closed router or firewall gives no error message: the node simply never sees anyone connect in. Count the incoming connections to know.

Step 5: Enable Tor for Anonymous Listening (Optional). For privacy-conscious operators, Bitcoin Core supports listening over the Tor network. Install Tor on your system and turn on its control port, which Bitcoin Core uses to create the onion service: ControlPort 9051 and CookieAuthentication 1 in /etc/tor/torrc, and the user that runs Bitcoin Core must be able to read Tor’s cookie file (our full node setup guide lists every line). Then add proxy=127.0.0.1:9050 and listen=1 to your bitcoin.conf file. Bitcoin Core creates an onion service address for your node, allowing it to accept incoming connections without exposing your residential IP address to the public Bitcoin network. Onion services need no open port, so a Tor-only node skips the port forwarding of Step 2. Keep port 8333 closed on your router: with these settings Bitcoin Core still listens on your home address as well, so a node that knows that address could connect to it over clearnet. Add bind=127.0.0.1:8334=onion to limit it to Tor, as the setup guide explains.

Two ways to accept connections. On your home IP address: another node connects straight to your node through the open port on your router. You forward port 8333 (Step 2); peers see your home IP address, which your node also announces; nothing else to set up, because Bitcoin Core listens by default. As a Tor onion service: both the other node and yours connect out to Tor, which joins them. Nothing to open on the router, because Tor only makes outgoing connections, and port 8333 stays closed; peers see only your .onion address. Setup: turn on Tor's control port and add proxy=127.0.0.1:9050, listen=1 and bind=127.0.0.1:8334=onion to bitcoin.conf; then Bitcoin Core creates the .onion address itself.
An onion service hides your IP address and needs no open port. Both sides connect out to Tor, which joins them, so your router has nothing to forward.

Step 6: Monitor Peer Connections and Bandwidth. Use bitcoin-cli getpeerinfo to review connected peers and identify whether connections are inbound or outbound. A listening node keeps about 10 outbound connections (8 that relay blocks and transactions, 2 that relay only blocks) plus its inbound peers: up to 189 with Bitcoin Core 32.1’s default limit of 200 connections, depending on how many nodes find yours. Monitor bandwidth usage, as listening nodes consume significantly more data than non-listening nodes—often 200 GB or more per month.

Step 7: Set Resource Limits for Stability. In your bitcoin.conf file, configure maxconnections to cap the total number of peer connections at a level your hardware and bandwidth can comfortably support. Set maxuploadtarget to limit upload bandwidth if you have a metered internet connection. It is a target for each 24 hours, in MiB (maxuploadtarget=5000 is about 5 GB a day), not a monthly cap: near it, your node stops serving blocks older than a week, and it keeps relaying new blocks and transactions. These limits prevent your node from becoming overwhelmed while still contributing meaningfully to network connectivity.

A sketch of one day of upload, not a measurement. 1: the line rises fast while your node serves old blocks to nodes doing their first sync, plus new blocks and transactions. 2: near your target, the node stops serving blocks older than a week, so the line flattens; without a target, a dashed line keeps rising. 3: new blocks and transactions keep flowing, so the day can end a little over the target. 4: every 24 hours the count starts again. Plain numbers are MiB per 24 hours: maxuploadtarget=5000 is about 5 GB a day, about 160 GB in 30 days; 0, the default, means no target.
maxuploadtarget is a daily target, not a monthly cap. Near the target, your node stops serving old blocks to nodes doing their first sync. It keeps relaying new blocks and transactions.

Common Mistakes to Avoid

1. Assuming Your Node Is Listening Without Verification. Many node operators believe their node accepts incoming connections simply because Bitcoin Core is running. In reality, NAT routers block inbound traffic by default. Always verify listening status with bitcoin-cli getnetworkinfo once your node has synced. If “connections_in” stays at zero, your port forwarding, firewall or bitcoin.conf settings need attention (for a Tor-only node, check the onion service instead).

2. Exposing Your Node Without Understanding the Bandwidth Commitment. A listening node can easily serve 50 or more inbound peers, each requesting block and transaction data. This can generate several hundred gigabytes of upload traffic monthly. Running a listening node on a metered residential connection without setting maxuploadtarget can result in unexpected bandwidth charges or ISP throttling.

3. Running a Node on Unreliable Hardware or Network. Listening nodes that frequently go offline create churn in the peer-to-peer network and provide poor service to peers that rely on them. If you cannot keep your node online most of the time, consider running a non-listening node instead, which still validates blocks and transactions without the connectivity obligation.

4. Ignoring Security Hardening for a Public-Facing Service. A listening node is a public service reachable from the internet. Failing to keep your operating system updated, using weak passwords, or running unnecessary services alongside your node increases the attack surface. Restrict SSH access, disable unused ports, and consider running your node on a dedicated machine or virtual environment.

5. Forgetting to Configure Tor When Privacy Matters. Running a clearnet listening node publicly associates your residential IP address with Bitcoin node operation. If privacy is important to you, always configure Tor-only listening or at minimum use a VPN with a dedicated IP. Every node that connects to yours sees your IP address, and you cannot take that back.

Frequently Asked Questions

Does running a listening node earn any Bitcoin rewards?

No. Unlike mining, operating a listening node does not generate direct financial rewards. The incentive is indirect: by accepting inbound connections, you strengthen the network that secures your own Bitcoin holdings. You also gain the privacy and security benefits of verifying your own transactions rather than trusting a third party. Many node operators view the modest hosting costs as a worthwhile contribution to Bitcoin’s decentralization.

How much bandwidth does a listening node actually consume?

It depends on how many nodes connect in and how many of them are still downloading the chain. bitcoin.org says “it’s common for full nodes on high-speed connections to use 200 gigabytes upload or more a month”, and puts downloads at around 20 GB a month once your node has synced (the first sync downloads about 800 GB). To limit uploads, set maxuploadtarget in bitcoin.conf: it is a daily target in MiB, not a hard cap, so maxuploadtarget=5000 aims for about 5 GB a day, and new blocks and transactions can still push past it. Lowering maxconnections also reduces traffic, because your node then serves fewer peers.

Can I run a listening node on a Raspberry Pi?

Yes, but with caveats. A Raspberry Pi 5 with 8 GB of RAM and a 2 TB SSD can run Bitcoin Core as a listening node. A Pi 4 is a weaker choice: Umbrel recommends the Pi 5 and warns that USB drives, like that SSD, can make a Pi 4 crash. The Pi’s limited CPU and I/O throughput means it will serve peers more slowly than a desktop-class machine. A Pi works well as a non-listening node that checks your own payments: it still validates every block, but it serves no inbound peers. For a heavily-connected listening node, consider a more powerful device like a used mini-PC with an Intel i5 or equivalent processor.

What is the difference between a listening node and a full node?

All listening nodes are full nodes, but not all full nodes are listening nodes. A full node downloads and validates every block and transaction according to consensus rules. A listening node is a full node that additionally accepts incoming peer connections, helping other nodes synchronize and propagate data. A non-listening full node still validates everything independently but only connects outward, to about ten peers by default, without serving inbound requests from the broader network.

Related Resources

Part of our free Bitcoin course: This topic is covered in Why Run a Bitcoin Node? Benefits, Requirements and What You'll Need, from the Lightning Network & Bitcoin Nodes course.
Filed under: Bitcoin Nodes & Infrastructure
← Back to All Articles