I'm trying to find out the difference between connection types on the P2P network.

I'm aware of the difference between inbound and outbound TCP connections from a firewalling perspective, but I sense cardano-node also does slightly different behaviours depending on whether a connection is inbound or outbound.

For example Daedalus by default makes an outbound connection, it can send transactions and receive blocks, but it does not appear to relay transactions or blocks.

A full cardano-node has outbound and inbound connections, but I think these may be unidirectional for data propagation based on gLiveView.

P2P seems to add duplex connections, which I assume is Tx and Rx on the same connection, but how is that different to non-P2P?

If someone could clarify that would be appreciated.

1 Answer 1


In cardano blocks are being pulled via incoming connections. So if you have stake pool, then your relays must have incoming connection for your blocks being populated to the network. Contrary your relay must have outbound connections so it can fetch blocks from other relays.

In non-p2p world relays must have config file with other relays in it from where it will fetch blocks and your relay should be in other config files, otherwise your blocks will not be propagated. In p2p cardano nodes don't need to have manual topology files, where other relays are listed, but rather cardano node will learn peers from ledger/blockchain. Additionally duplex is not mandatory for p2p, you can switch it off, so duplex is not equal to p2p, but rather additional feature. With duplex 2 relays can fetch blocks inside same connections between them, without need to open 2 separate connections.

More details you can find in great video from Andrew Westberg here:


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.