IPv4 Sharing on Mainnet

Networks:
Ethereum Mainnet
Time range:
Start 2026-01-16T00:00:00Z
End 2026-01-23T00:00:00Z
p2p libp2p network synthetic-heartbeat
Published January 23, 2026 at 06:01 AM UTC

Question

How many peer_ids and clients share the same IPv4 address on mainnet?

Background

On the Ethereum P2P network, each node has a unique peer_id derived from its cryptographic identity. Nodes running different client implementations (lighthouse, prysm, nimbus, etc.) can be identified via their agent string in libp2p.

Multiple peer_ids sharing an IP address can indicate:

  • Node operators running multiple nodes behind NAT
  • Cloud providers hosting many nodes on shared infrastructure
  • Sybil attacks attempting to gain disproportionate influence

This analysis uses data from synthetic heartbeat messages - periodic pings that TYSM nodes send to peers, capturing their IP and client information. We measure concurrent peers using hourly snapshots rather than cumulative counts over time, which avoids conflating peer churn with actual density.

Investigation

Distinct Nodes Over Time

View Query: ipv4_nodes_over_time
Loading...

Over the week, we consistently observe around 10,000-12,000 distinct nodes per hour via synthetic heartbeat.

Nodes by Client Type

View Query: ipv4_nodes_by_client
Loading...

Lighthouse dominates with ~7,100 nodes, followed by Prysm (~3,900), Nimbus (~1,600), and Teku (~1,300).

How are concurrent peer_ids distributed across IPs?

View Query: ipv4_peer_distribution
Loading...

The vast majority of IPs have only a single peer_id active at any given time. The max concurrent peers observed on any IP is around 10.

Takeaways

  • Xatu is connected to a lot of nodes: ~10,000 to 12,000 nodes in any given hour!
  • Most IPs have a single concurrent peer: The vast majority of IPv4 addresses have only one peer_id active at any given hour
  • Low concurrent density: The maximum concurrent peers on any IP is around 10