pay: Annotate both local alias and real scid with channel hints #6428
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Debugging a number of payments showed that we sometimes waste a number of attempts routing through a channel via its alias, rather than its scid. This is because while we annotate the scid when it has been set, we do not do so for the alias. The alias then is picked for routing despite not having enough capacity, failing the attempt locally.
It can also happen that we alternate between scid and alias, doubling the number of failed attempts before we can make progress.
This patch sets the hint for the alias to a capacity of 0 and disables it as if the peer were offline. This means when available we'll always use the scid, which is also far easier to read in the logs.
Changelog-Fixed: pay: We now track spendable amounts when routing on both the local alias as well as the short channel ID