3

I understand that route hints can be provided when generating an invoice, but how exactly do wallets use this information to assist in pathfinding? I imagine this can vary slightly between implementations since there doesn't seem to be any strict rules on how to use them in the BOLT specs.

Are there any standards for how to use route hints or might they be completely ignored by a lightning wallet?

2
  • 3
    Does this answer your question? What exactly are route hints? Commented Jun 28, 2023 at 6:34
  • @VojtěchStrnad that answer helped a bit but I was looking for more detail on how a sending wallet uses routing hints to build the onion to attempt a payment
    – oz21m
    Commented Aug 18, 2023 at 22:16

1 Answer 1

6

Generally speaking there are two use-cases that can be facilitated by route hints:

  • Tell the sender about channels that they might not know about. Specifically, if the recipient doesn't announce it's channels, then the sender cannot know about those channels. Hence in order to reach the recipient they will have to share some channels completing the network view and allowing the sender to find paths from sender to recipient. The gossip network is being augmented by route hints from the invoice.
  • The recipient can hint to the sender that some channels have sufficient balance to be used for the payment described by the invoice. Assuming the recipient has many channels, some of them could be exhausted, this the recipient adds a list of channels that have balance to the invoice. This prevents failed attempts that would cost us time, since it's the last hop. This technique is sometimes referred to as route boost.
2
  • so are the route hints added permanently to the sending node's network view or are they discarded after the payment has reached a final state?
    – oz21m
    Commented Aug 18, 2023 at 22:21
  • 1
    They are discarded, as the information contained within is not verifiable. For example, nodes will passively prune their view of the network as they see channels closing onchain, which we can't do if the route hints uses an alias that doesn't point at a specific output (valid with option_scid_alias), and we'd have that channel forever in our view. It also is more respectful to only use the channel the one time the recipient told us about it
    – cdecker
    Commented Aug 21, 2023 at 8:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.