In order to reduce the number of calls to the db we try to process as
few channels as we can + try to not do extra work for each of them.
- First fetch all the channels. Then, filter all the public ones and
sort the potential candidates by remote balance.
- Filter out each potential candidate as soon as possible.
- Only check the alias if the channel supports scid aliases.
- Because we sort the channels by remote balance, we will hit the
target amount, if possible, as soon as we can.
We do not want to leak information about our remote balances, so we
shuffle the hop hints (the forced ones go always first) so the invoice
receiver does not know which channels have more balance than others.
The lnwire package implements the Lightning Network wire protocol.
This package has intentionally been designed so it can be used as a standalone
package for any projects needing to interface with lightning peers at the wire
protocol level.
Installation and Updating
⛰ go get -u github.com/lightningnetwork/lnd/lnwire