We should be able to handle incoming connections which would help with peer visibility. For this we need to be publicly reachable, which means running either on a machine directly exposed to the internet (server on Fly.io) or through NAT. NAT is complicated so unless this is somehow included in the underlying libraries we use we shouldn't spend too much time on it and just spin up a Fly.io server.
# Tasks
- [x] Incoming connection handler (Hermes / Armiarma)
- [x] Check for NAT functionality
- [x] Fix #3 so we can deploy on a publicly accessible server
Context
We should be able to handle incoming connections which would help with peer visibility. For this we need to be publicly reachable, which means running either on a machine directly exposed to the internet (server on Fly.io) or through NAT. NAT is complicated so unless this is somehow included in the underlying libraries we use we shouldn't spend too much time on it and just spin up a Fly.io server.