lnd.xprv/routing
Olaoluwa Osuntokun bd9f1b597e
routing: prune edges instead of vertexes in response to an FailUnknownNextPeer error
In this commit we fix an lingering bug in the Mission Control logic we
execute in response to the FailUnknownNextPeer error. Historically, we
would treat this as the _next_ node not being online. As a result, we
would then prune away the vertex from the current reachable graph all
together. It was recently realized, that this would at times be a bit
_tooo_ aggressive if the channel we attempt to route over was faulty,
down, or the incoming node had connectivity issues with the outgoing
node.

In light of this realization, we'll now instead only prune the _edge_
that we attempted to route over. This ensures that we'll continue to
explore the possible edges. Additionally, this guards us against failure
modes where nodes report FailUnknownNextPeer to other nodes in an
attempt to more closely control our retry logic.

This change is a stop gap on the path to a more intelligent set of
autopilot heuristics.

Fixes #1114.
2018-04-23 17:51:02 -07:00
..
chainview multi: fix typos in comments 2018-04-17 19:03:27 -07:00
testdata routing: add new vertex and to new channels to basic_graph.json 2018-03-23 17:55:15 -07:00
errors.go multi: fix a-vs-an typos 2018-04-17 19:02:04 -07:00
graph.go routing: rewrite package to conform to BOLT07 and factor in fees+timelocks 2016-12-27 16:44:22 -08:00
heap_test.go routing: correct recent type change in heap_test.go 2018-02-12 16:44:42 -08:00
heap.go routing: weight findPath more heavily towards fees during edge relaxation 2018-02-12 16:27:38 -08:00
log.go lnd: remove seelog logger 2017-06-25 14:19:56 +01:00
missioncontrol.go routing: modify findPath to take into account additional edges 2018-04-20 04:01:32 -04:00
notifications_test.go routing: update package to account for recent channeldb API changes 2018-02-06 20:14:32 -08:00
notifications.go routing: update package to account for recent channeldb API changes 2018-02-06 20:14:32 -08:00
pathfind_test.go routing: add test for finding paths with additional edges 2018-04-20 04:01:33 -04:00
pathfind.go routing: modify findPath to take into account additional edges 2018-04-20 04:01:32 -04:00
README.md multi: fix formatting issues in packge README's 2017-03-27 16:25:25 -07:00
router_test.go routing: modify findPath to take into account additional edges 2018-04-20 04:01:32 -04:00
router.go routing: prune edges instead of vertexes in response to an FailUnknownNextPeer error 2018-04-23 17:51:02 -07:00
validation_barrier.go multi: fix a-vs-an typos 2018-04-17 19:02:04 -07:00

routing

Build Status MIT licensed GoDoc

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