I am trying to understand how Bitcoin P2P works. I understand that for every connection, there is one node opening it (outbound) and one node receiving it (inbound).
I have one i2p/tor node, that accepts inbound connections (if i understand correctly, this is the default). When I look into bitcoin-cli -netinfo, I see:
ipv4 ipv6 onion i2p npr total block
in 0 0 0 5 16 21
out 7 0 2 1 0 10 2
total 7 0 2 6 16 31
What does "npr" (not publicly routable) exactly mean? I can see that the address they’re connecting from is from a private network, but how is this possible? I thought that Bitcoin used TCP connections, and for every TCP connection, the receiving part knows the IP of the initiator of the connection.
One example is this particular peer:
{
"id": 1601,
"addr": "127.0.0.1:46600",
"addrbind": "127.0.0.1:8333",
"network": "not_publicly_routable",
"services": "0000000000000000",
"servicesnames": [
],
[...]
If I run a clearnet-only Bitcoin node without accepting inbound connections and I’m behind a home NAT router, will other peers see my actual IP address, or will I appear as "not publicly routable" to them?










