In bitcoin network will there be a path from every node to every other node? In bitcoin's gossip network will there be a path from every node to every other node? It can certainly have different number of hops.

I have a private testnet in which I modified some source code. I get a graph like this

A-&gt;B-&gt;C 


So we have a path from A to C but not C to A. So when C mines a block, the information is remained with it and it does not send inv messages out. Not sure if I am wrong or this is expected?

Edit:

The only change I did is to make testnet work on my localhost. Removed the IsLocal() check from IsRoutable() and added my own hardcoded seeds.
The bitcoin network is only as connected as each node wants to be. The protocol is designed in such a way as to incentivize being connected to the network, so in practice, almost every full node is connected to a lot of other nodes and hence, there's at least a very good chance of a short path between any two nodes.

However, that's not to say that every node is connected. It is entirely possible to run a full node that's not connected, like you seem to have done. In your case, it seems C does not have any peers, so C's mined block won't get to anyone else.

Run this command to see which peers it has:

$ bitcoin-cli getpeerinfo


You'll want to add connections this way:

$ bitcoin-cli addnode &lt;node ip and port&gt; add