Some notes on the network structure for Cardano as this is not very clear from the official documentation.
Syncing the blockchain depends on outbound connections to other nodes
The node needs to connect to other well-synchronised nodes to collect the latest blockchain slots. There are a few ways to acheive this:
- Connect to the IOHK list of registered nodes which is updated when new stake pools are registered (this is a list of the inbound IP:port combinations registered for all nodes).
- Use another service like topology_updater maintained by the community.
In both cases the topology file for the node must list the peers that will be used. The IOHK option returns a set of nodes based on geographical proximity that tend over time to be nearer than the community services which consistently return a more globally distributed set.
ADAvault use a combination of both methods for maximum coverage and lowest latency with a smaller optimised custom set of peers added to the random sets.
Visibility on transactions depends on inbound broadcasts from other nodes
While the the node can sync without inbound ports (as it simply needs to be able to connect to a well synchronised node), it cannot rely on polling to pick up transactions which are broadcast from connected nodes.
So inbound peers are important if you are a block producer to ensure that transactions get included in blocks that you are minting.
Inbound connections of course are also needed for other nodes to synchronise.