investigate libp2p hole punching options
see https://pkg.go.dev/github.com/libp2p/go-libp2p#EnableHolePunching and `EnableNATService` options. see also https://blog.ipfs.tech/2022-01-20-libp2p-hole-punching/

currently we only have the `NATPortMap` option enabled, which attempts to open a port in the firewall using UPnP. however if UPnP isn't enabled this won't work. we probably need to turn on the above options to allow peers behind a firewall to be discovered/connected to.