I read good practices of how to setup a validator node, but I did not see a network part.
A validator node should not expose a public RPC API (it should only be internal, allowing access through a VPN or ssh tunnel), but what should it do for its p2p endpoint? Because it can explore the network thanks to the bootnodes, does it really have to listen to incoming p2p connections or can it rely only on the bidirectional connections it initiates to other parts of the network?
If it exposes a public address, should it listen directly on TCP or can it wrap incoming connections in a websocket or so?