Skip to content

routing: track in-flight htlcs in mission control [wip, don't review]#3373

Closed
joostjager wants to merge 6 commits into
lightningnetwork:masterfrom
joostjager:mc-stuck-htlc
Closed

routing: track in-flight htlcs in mission control [wip, don't review]#3373
joostjager wants to merge 6 commits into
lightningnetwork:masterfrom
joostjager:mc-stuck-htlc

Conversation

@joostjager
Copy link
Copy Markdown
Contributor

@joostjager joostjager commented Aug 5, 2019

This PR is a first step towards avoiding paths that have stuck htlcs on them. Mission control is modified to be aware of initiated but not yet completed payments. Based on that information, the probability estimation can be modified to return lower probabilities for those paths.

Previously mission control tracked failures on a per node, per channel basis.
This commit changes this to tracking on the level of directed node pairs. The goal
of moving to this coarser-grained level is to reduce the number of required
payment attempts without compromising payment reliability.
This commit updates existing tests to not rely on mission control for
pruning of local channels. Information about local channels should
already be up to date before path finding starts. If not, the problem
should be fixed where bandwidth hints are set up.
@joostjager joostjager requested a review from Roasbeef as a code owner August 5, 2019 12:39
@joostjager joostjager removed the request for review from Roasbeef August 5, 2019 12:39
@Roasbeef Roasbeef modified the milestone: 0.10.0 Jan 14, 2020
@joostjager joostjager changed the title routing: handle stuck htlcs in mission control [wip] routing: track in-flight htlcs in mission control [wip] Jan 17, 2020
@joostjager joostjager added the incomplete WIP PR, not fully finalized, but light review possible label Jan 17, 2020
@joostjager joostjager changed the title routing: track in-flight htlcs in mission control [wip] routing: track in-flight htlcs in mission control [wip, don't review] Jan 17, 2020
@joostjager
Copy link
Copy Markdown
Contributor Author

This PR needs to be rebased. Most of the code has already been merged.

@joostjager joostjager added the needs rebase PR has merge conflicts label Jan 17, 2020
@Roasbeef
Copy link
Copy Markdown
Member

Roasbeef commented May 5, 2020

What of the fate of this PR?

@joostjager
Copy link
Copy Markdown
Contributor Author

This is a component for prepay probing. If a (min amount) probe get stuck, that route will be avoided for further probes/payments.

Its fate depends on how we prioritize this.

@joostjager
Copy link
Copy Markdown
Contributor Author

Examined this PR again. The only commit that isn't merged yet is routing: report payment initiation, which isn't much more than passing a signal to mission control when an attempt is initiated. The code to actually decrease the probability estimate based on which htlcs are still in-flight never left the planning stage.

The priority of this improvement is not very high at the moment. The 'black hole' event doesn't seem to be a pressing problem, at least not on mainnet.

One can also argue whether the approach is right. Especially with MPP (and previously already with hold invoice), an in-flight htlc isn't necessarily bad. Avoiding these channels may actually result in worse routing performance.

Closing this PR until there is a better plan and/or more urgency to solve the issue.

@joostjager joostjager closed this Sep 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

incomplete WIP PR, not fully finalized, but light review possible needs rebase PR has merge conflicts

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants