addinvoice: refactor hint hop selection algorithm (invoices)

https://github.com/lightningnetwork/lnd/pull/6914

Host: positiveblue  -  PR author: positiveblue

Notes

  • No notes.

Questions

  • What is the purpose of using the –private flag when creating an invoice?
  • How do route hints look like in an invoice?
  • What properties does a channel need to end up as a route hint in an invoice?
  • How do we decide that we already have “enough hints” for a given invoice?
  • Why did generating invoices using the –private flag take so long after updating to lnd v0.15.1-beta?
  • What optimizations did we include in this PR?
  • How do node aliases work? Why are they relevant in this PR?
  • Did we leave out any improvements easy to include?
  • How else could we select the hints included in an invoice? What would be the trade offs?
  • Does this PR include proper testing for its changes?
  • What’s your overall verdict? (ACK, NACK, concept ACK, unknown)