Zcash recently announced a new wallet and service to connect mobile devices to a node running on a private home network using a tunneling service they are calling "wormhole" (1). Basically it is saying that it is fully end-to-end encrypted and allows the mobile client and desktop instance to bypass complex networking requirements (ex. port forwarding, etc...)
I wanted to see what it would take to set up a similar setup to aid in connecting devices in a secure manner. This may be more of a networking question, but what would be the best approach to setting up a VPS instance to allow trusted connections between -
bitcoind <-> a wallet bitcoind <-> lnd lnd <-> a wallet
Just as a few examples.
My first thought was to create a lightweight client to run on run on the machine running the full node that proxies all of the relevant ports to a chosen IP (the VPS for instance) and encrypts / signs the payload. The server could basically just receive and broadcast out the requests to the mobile clients who subscribe.
The problem I'm seeing with this approach is it is a lot of custom code for one and the wallet / mobile clients would have to also support decrypting and verifying the message which is unlikely to happen. The Zcash wallet is able to do this because they of course created the wallet.
Very interested in suggestions on how this could be accomplished (and I will try any suggestions on a fresh VPS so not just asking from a theoretical perspective!)