lightning node daemon hangs at "waiting for chain backend to finish sync, start_height=521042"

0

I'm using Lightning Networks' lnd 0.4.1-beta node in Windows, with a Bitcoin Core bitcoind full node backend. The bitcoind full node has the --txindex option, and is fully synced according to bitnodes.earn.com

I've configured bitcoind to use ZMQ, and indeed netstat -a -b shows bitcoind is listening on 28332 for ZMQ connections. Bitcoin.conf is configured with:

# Generated by https://jlopp.github.io/bitcoin-core-config-generator/

# This config should be placed in following path:
# %UserProfile%\AppData\Roaming\Bitcoin\bitcoin.conf

debug=0
logips=1
printtoconsole=1
txindex=1
zmqpubrawblock=tcp://127.0.0.1:28332
zmqpubrawtx=tcp://127.0.0.1:28332
zmqpubhashblock=tcp://127.0.0.1:28332
zmqpubhashtx=tcp://127.0.0.1:28332

# [wallet]
wallet=wallet1.dat
wallet=wallet2.dat

# [core]
# Specify the location of the configuration file. To use non-default location, create a default location config file containing this setting.
conf=E:\\BitcoinCore
# Specify a non-default location to store blockchain and other data.
datadir=E:\\data
# Set database cache size in megabytes; machines sync faster with a larger cache. Recommend setting as high as possible based upon machine's available RAM.
dbcache=12288
# Keep the transaction memory pool below  megabytess.
maxmempool=3072
# Extra transactions to keep in memory for compact block reconstructions.
blockreconstructionextratxn=512
# Set the number of script verification threads. (1 to CPU_CORES, 0 = automatic, less than 0 = leave that many cores free).
par=0
persistmempool=1

# [network]
listen=1
port=8333
bind=0.0.0.0
listenonion=0
# Maximum per-connection send buffer (KiB).
maxsendbuffer=2000

# [fees]
# fee to use if no fee is specified in outgoing tx
fallbackfee=0.0002
# fees below this amount are considered zero fee
discardfee=0.000025
# allow replace-by-fee for unconfirmed transactions
walletrbf=1
# maximum fee for outgoing transactions
maxtxfee=0.01

# [rpc]
# Accept command line and JSON-RPC commands.
server=1
rpcuser=<username>
rpcpassword=<passwod>
rpcallowip=192.168.0.39
rpcallowip=192.168.0.33
rpcallowip=192.168.0.32
rpcallowip=192.168.0.40

lnd.conf has the following

debuglevel=debug
logdir=E:\lnd\data\logs
lnddir=E:\lnd
datadir=E:\lnd\data
bitcoin.active=1
bitcoin.mainnet-1
bitcoin.node=bitcoind
bitcoin.chaindir=E:\lnd\data\bitcoin-chain
bitcoind.dir=E:\data
bitcoind.rpchost=localhost
bitcoind.rpcuser=&ltusername&gt
bitcoind.rpcpass=&ltpassword&gt
bitcoind.zmqpath=tcp://127.0.0.1:28332
autopilot.active=1
externalip=&ltx.x.x.x&gt

(needless to say, the user/pass and externalip are not literally those values listed).

The lnd.log, with date and time columns removed for brevity:

[INF] LTND: Version 0.4.1-beta commit=
[INF] LTND: Active chain: Bitcoin (network=mainnet)
[INF] CHDB: Checking for schema update: latest_version=0, db_version=0
[INF] RPCS: Generating TLS certificates...
[INF] RPCS: Done generating TLS certificates
[INF] RPCS: password RPC server listening on 127.0.0.1:10009
[INF] RPCS: password gRPC proxy started at 127.0.0.1:8080
[INF] LTND: Waiting for wallet encryption password. Use `lncli create` to create wallet, or `lncli unlock` to unlock already created wallet.
[INF] LNWL: Opened wallet
[INF] LTND: Primary chain is set to: bitcoin
[INF] LTND: Initializing bitcoind backed fee estimator
[INF] LNWL: Opened wallet
[INF] LNWL: Started listening for blocks via ZMQ on tcp://127.0.0.1:28332
[INF] LNWL: The wallet has been unlocked without a time limit
[INF] LTND: LightningWallet opened
[INF] LNWL: Started rescan from block 0000000099c744455f58e6c6e98b671e1bf7f37346bfd4cf5d0274ad8ee660cb (height 10000) for 0 addresses
[INF] LNWL: Starting rescan from block 0000000099c744455f58e6c6e98b671e1bf7f37346bfd4cf5d0274ad8ee660cb
[INF] HSWC: Restoring in-memory circuit state from disk
[INF] HSWC: Payment circuits loaded: num_pending=0, num_open=0
[INF] RPCS: RPC server listening on 127.0.0.1:10009
[INF] RPCS: gRPC proxy started at 127.0.0.1:8080
[INF] LTND: Waiting for chain backend to finish sync, start_height=521042

The lnd daemon has been sitting at Waiting for chain backend to finish sync, start_height=521042 for 20 minutes, no change. bitcoind now reports it has just received block 521044.

Short of switching to the btcd backend, is there anything I can do to get lnd working?


I've asked a separate question about ZeroMQ support in Bitcoin Core 0.16.0

I've raised an issue with the lnd repo on GitHub. @Roasbeef (!) replied - it seems my lnd daemon may in fact be running as expected.

Max Vernon

Posted 2018-05-03T14:36:55.973

Reputation: 1 376

at 00:35:00 this morning, the lnd console displayed a new message: Catching up block hashes to height 20000, this might take a while.Max Vernon 2018-05-04T13:37:59.080

Answers

1

When running bitcoind and lnd on Windows, ensure you specify 127.0.0.1 instead of localhost for the rpchost parameter on the lnd command-line, or in the lnd.conf file.

For some, as yet unknown reason, Windows appears to be inserting an artificial wait when resolving localhost.


I've submitted a pull request to the lnd github repo to have the documentation updated to reflect the details above.

Max Vernon

Posted 2018-05-03T14:36:55.973

Reputation: 1 376