98f63cdce1
In this commit, we modify the pruning semantics of the missionControl struct. Before this commit, on each payment attempt, we would fetch a new graph pruned view each time. This served to instantly propagate any detected failures to all outstanding payment attempts. However, this meant that we could at times get stuck in a retry loop if sends take a few second, then we may prune an edge, try another, then the original edge is now unpruned. To remedy this, we now introduce the concept of a paymentSession. The session will start out as a snapshot of the latest graph prune view. Any payment failures are now reported directly to the paymentSession rather than missionControl. The rationale for this is that edges/vertexes pruned as result of failures will never decay for a local payment session, only for the global prune view. With this in place, we ensure that our set of prune view only grows for a session. Fixes #536. |
||
---|---|---|
.. | ||
chainview | ||
testdata | ||
errors.go | ||
graph.go | ||
heap_test.go | ||
heap.go | ||
log.go | ||
missioncontrol.go | ||
notifications_test.go | ||
notifications.go | ||
pathfind_test.go | ||
pathfind.go | ||
README.md | ||
router_test.go | ||
router.go | ||
validation_barrier.go |
routing
The routing package implements authentication+validation of channel announcements, pruning of the channel graph, path finding within the network, sending outgoing payments into the network and synchronizing new peers to our channel graph state.
Installation and Updating
$ go get -u github.com/lightningnetwork/lnd/routing