This new version of neutrino includes a number of fixes to the query
functionality of neutrino, stuck syncing issues, and peer connection
handling and banning.
In this commit, we update the `btcwallet` dep to the latest version that
includes a fix related to zero conf spends. Before this new version, if
a single output was spent multiple time by conflicting transactions,
then upon removing them all after a new transaction confirms, a number
of zero conf UTXOs could be left over.
In this commit, we update the build to point to the latest version of
neutrino and btcwallet. The latest version of neutrino includes a number
of bug fixes, and new features like reliably transaction broadcast. The
latest version of btcwallet contains a number of bug fixes related to
properly remove invalid transactions from its database.
In this commit, we update lnd to build against the latest version of
neutrino. This new version fixes a bug left behind as a result of the
btcd filter bug fix. When we were comparing filters in order to ban
invalid peers, we used the old OP_RETURN filtering rather than the new
one. As a result, we might've rejected a valid filter/block as we were
applying the old (incorrect) rules.
In this commit, we update all the `btcsuite` dependencies, along with
neutrino to their latest version. The main change in this version is a
bug fix in the way that we generated the filters that neutrino uses. As
a result, any users running btcd with neutrino today will need to
**regenerate their filter chain** using `--dropcfindex`. Any existing
neutrino clients out there will also need _re sync_ all together as the
"correct" filter header chain.
This latest versino of neutrino contains some fixes that make lnd a bit
snappier when running on mobile devices. We'll now wait until we have our
first peer before we try to sync the chain. We'll also no longer try to fail
to query filter checkpoints if we don't actually have any to fetch.
In this commit, we update our btcwallet dependency to point to the
latest version. This latest version redefines what the wallet will
consider as an initial sync. We'll now define it by determining if the
wallet has synced up to its birthday block, rather than looking at the
number of UTXOs in the wallet. This was needed, especially for light
clients, because it would cause unnecessary rescans to happen from the
wallet's birthday if the wallet had no UTXOs.
The main ltcd repo has been force pushed, which removed the commit that we pinned against prior. In this commit, we update to the latest version of ltcd.