Outbound connection attempts
Before looking at connection success rates, it makes sense to look at outbound connection attempts per time. All of the following plots show attempts-per-hour averaged over a day or a week.
Generally, my nodes all make ~57 outbound connections per hour. So close to one per minute. Node jade differs here, it makes ~43 per hour. I haven’t looked into why yet. The number of outbound attempts per hour seems to be stable since the start of my data in 2024.
By connection type
To drill down by connection type, we can look at the data captured while running with net: extend log message to include attempted connection type · bitcoin/bitcoin@67696b2 · GitHub . This is limited to a shorter time frame and only three nodes for now:
We can see that all three nodes make ~30 feeler connections per hour (one every two minutes). This exactly matches what we’d expect:
We also make roughly the same number of outbound-full-relay and block-relay-only connections at about 13 to 14 per hour. The timings for this aren’t as clear and well defined (see e.g. bitcoin/src/net.cpp at 341360964a6fef725825639edc507c275f8ad0b2 · bitcoin/bitcoin · GitHub ) and I haven’t dug deeper into why we (happen to?) make these at the same rate.
By network
We can also split these 57 connections per hour up by network we are connecting to. Note that the nodes can reach (
) different networks. Some nodes might try to connect to e.g. IPv6, while they’ll never be able to make a connection (
).
| Node | IPv4 | IPv6 | Tor | I2P |
|---|---|---|---|---|
| alice | - | - | ||
| bob | - | - | ||
| charlie | - | - | ||
| dave | ||||
| frank | - | - | ||
| jade | ||||
| ian | - | - |
For IPv4, alice, bob, charlie, frank, and ian make about 37 connection attempts per hour. Both dave and jade, who can reach more network, make fewer connections (about 27) to IPv4 per hour.
For IPv6, alice, bob, charlie, frank, and ian make about 17 connection attempts per hour. The node dave, which can’t reach IPv6 (but can reach Tor and I2P), makes about 15 connections to IPv6. Since none of these nodes can reach IPv6, all these connections are going to fail. However, node jade can actually reach IPv6 and makes about 5 connection attempts per hour.
Dave and jade make about 12.5 connections to Tor per hour. Both can reach Tor.
For I2P, which both dave and jade can reach, they make about 2 connections per hour.
To summarize, the nodes make the following number of connections per hour to:
| Node | IPv4 | IPv6 | Tor | I2P |
|---|---|---|---|---|
| alice | 37 | 17 | - | - |
| alice | 37 | 17 | - | - |
| alice | 37 | 17 | - | - |
| dave | 27 | 15 | 12.5 | 2 |
| alice | 37 | 17 | - | - |
| jade | 27 | 5 | 12.5 | 2 |
| alice | 37 | 17 | - | - |
This explains why jade is making fewer connections per hour (about 43 vs about 57): jade is the only one that can reach IPv6 nodes. Once it has IPv6 connections, it does not need to retry connecting to IPv6 too often.
Connection attempts are likely affected by outbound connection churn (how often the connection to our outbounds drop) and our address manager composition. These numbers might be different on nodes configured differently.
By network and connection type
Looking at the number of attempts node alice makes by network and connection type shows that about 25 attempts per hour are IPv4 feeler while only 5 attempts are IPv6 feeler. About 12.5 attempts are IPv6 outbound-full-relay (which all fail), while it’s only 2-3 IPv4 outbound-full-relay attempts per hour (out of which some succeed). For block-relay-only connections, it’s the other way around: Alice only makes about 2 block-relay-only IPv6 connections per hour, while it makes 12.5 block-relay-only IPv4 connections per hour.






