htlcswitch: stricter HasActiveLink#2452
Merged
Roasbeef merged 2 commits intoJan 11, 2019
Merged
Conversation
This commit modifies the behavior of the HasActiveLink method within the switch to only return true if the link is in the link index and is eligible to forward HTLCs. The prior version returns true whenever the link is found in the link index, which may return true for pending channels that are not actually active.
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR modifies the behavior of the htlcswitch's
HasActiveLink, such that it will only return true if 1) the channel is no longer pending (short channel id has confirmed) and 2) the link'sEligibleToForwardmethod returns true. This deviates from the prior behavior by requiring the second condition.HasActiveLinkis currently used by the server to determine whether or not its status has changed, and if it should passively send out aChannelUpdateto enable to disable the channel. This same method will be used by the newChanStatusManagerin #2411. Adding the stricter behavior will ensure that we don't produce any false positives, since a link that can't send updates (isn't eligible to forward) has no business being enabled on the network.A test has been added (which fails without the first commit) to ensure the new behavior meets these expectations.
Broken off from #2411