Modern versions of bitcoin core establish a fixed number of outbound connections: 8 outbound-full-relay connections and 2 block-relay-only connections. What is the purpose of block-relay-only connections and how are they used?
Here are two example log entries of a node establishing these connections:
2022-03-10T14:50:36Z New outbound peer connected: version: 70015, blocks=726709, peer=1566 (outbound-full-relay)
2022-03-10T14:55:28Z New outbound peer connected: version: 70016, blocks=726710, peer=1576 (block-relay-only)
Here is an example CLI query showing all connected peers:
$ bitcoin-cli -netinfo
Bitcoin Core v22.0.0 - 70016/Satoshi:22.0.0/
ipv4 ipv6 onion total block manual
in 0 0 24 24
out 2 0 9 11 2 1
total 2 0 33 35
Local addresses
REDACTED port 8333 score 4
Note: this node has one addnode
entry in its bitcoin.conf
file. Nodes connected to in this fashion do not count against the 8 and 2 outbound connection limits so this adds an additional 11th outbound peer.