LN-Zap / zap-iOS

Zap Wallet - Native iOS lightning wallet focused on user experience and ease of use ⚡️
http://zaphq.io
MIT License
181 stars 47 forks source link

Can't connect to remote node from outside my local network, but my node is discoverable and listed on 1ml.com. "Name resolution failure" #348

Open anon2414691 opened 3 years ago

anon2414691 commented 3 years ago

Describe the bug Connected to remote node on my local network two days ago and opened a channel, using the iOS app, with Zap Technologies. Yesterday and today tried to connect to remote node from outside my local network, but could not connect. Edit4: My node is discoverable and listed on 1ml.com. Another node operator has opened a channel to my node, unprompted by me.

Additional context Remote node is on a raspberry pi 4 with Samsung SSD. Running bitcoind, not over tor. Fully synced before installing LND. Running LND v0.11.1. Forwarding ports 8333, 9735, and 10009 TCP/UDP to the Pi 4's static IP address. No firewall was added to Raspbian OS. Using lndconnect to generate a QR code which is scanned by Zap iOS. Edit1: I just tried connecting to the remote node using Zap Desktop, and it worked just fine. Edit2: I tried using the same URI that I just used on Zap Desktop, but on Zap iOS, and I connected successfully over home WiFi. Edit3: I thought maybe it was just the QR code, but I just tried using a URI generated by lndconnect (without the -i option) and that did not work. An error is displayed immediately (in less than 0.1 seconds) "Could not connect to server. (Name resolution failure)" Edit4: My node is discoverable and listed on 1ml.com.

I have tried SO many combinations of options in lnd.conf. I've been searching online for two days to figure out where I went wrong, and nothing has worked. This is the current state of my lnd.conf:

bitcoin.active=1 bitcoin.mainnet=1 debuglevel=debug bitcoin.node=bitcoind bitcoind.rpcuser=[my name] bitcoind.rpcpass=[my password] bitcoind.zmqpubrawblock=tcp://127.0.0.1:28332 bitcoind.zmqpubrawtx=tcp://127.0.0.1:28333 listen=0.0.0.0:9735

nat=true

rpclisten=0.0.0.0:10009 rpclisten=127.0.0.1:10008 tlsextraip=0.0.0.0 externalip=[my external ip]

[Application Options] alias=[my alias] maxpendingchannels=10

I have tried nat=true, that didn't work.

Expected behavior Connect to remote node.

Screenshots IMG_6201

Your environment

captCovalent commented 3 years ago

To Fix:

Install TOR

Edit LND config file to enable REST interface on port 8080 $ sudo nano /home/bitcoin/.lnd/lnd.conf

# add the following line in the [Application Options] section restlisten=localhost:8080

Add a hidden service to torrc $ sudo nano /etc/tor/torrc

# add to the hidden service section
HiddenServiceDir /var/lib/tor/lnd/
HiddenServicePort 8080 127.0.0.1:8080

Restart tor $ sudo systemctl restart tor

Find and copy onion hostname $ sudo cat /var/lib/tor/lnd/hostname

Display LNDConnect QR code $ lndconnect --host=ENTER_ONION_ADDRESS --port=8080

Create new wallet in Zap iOS and scan QR code