> Does it allow two devices, both behind NAT and without a public IP, to connect to each other?
It does! This is one of the big differences between it and something like Wireguard. It uses NAT hole punching to create direct links between machines without any manual configuration.
> Does it rely on some kind of central server that allows devices to discover each other?
Sort of? When you first boot up your first two nodes it uses a set of "bootstrap peers" hosted by the IPFS team. These bootstrap peers allow instances to initially connect to and share their locations with other hyprspace instances with the same discovery key. Although we use these peers for discovery, none of your data is ever sent through them. All of the connections hyperspace makes at the moment are direct end-to-end encrypted peer-to-peer connections.
It does! This is one of the big differences between it and something like Wireguard. It uses NAT hole punching to create direct links between machines without any manual configuration.
> Does it rely on some kind of central server that allows devices to discover each other?
Sort of? When you first boot up your first two nodes it uses a set of "bootstrap peers" hosted by the IPFS team. These bootstrap peers allow instances to initially connect to and share their locations with other hyprspace instances with the same discovery key. Although we use these peers for discovery, none of your data is ever sent through them. All of the connections hyperspace makes at the moment are direct end-to-end encrypted peer-to-peer connections.