goals: - use existing client software - use existing server software - server uses https - server can be behind a firewall or NAT - server doesn't have DNS - server doesn't have IP reachable externally - if possible, require no additional client software - client only knows the server's nprofile (npub + relays) - make them talk to each other