lnd.xprv/routing
Olaoluwa Osuntokun aaa04bb2e5
routing: add findPaths function whcih implements Yen's Algorithm
With this commit we make our routing more robust by looking for the
k-shortest paths rather than a single shortest path and using that
unconditionally. In a nut shell Yen’s algorithm does the following:
   * Find the shortest path from the source to the destination
   * From k=1…K, walk the kth shortest path and find possible
divergence from each node in the path

Our version of Yen’s implemented is slightly modified, rather than
actually increasing the edge weights or remove vertexes from the graph,
we instead use two black-lists: one for edges and the other for
vertexes. Our modified version of Djikstra’s algorithm is then made
aware of these black lists in order to more efficiently implement the
path iteration via spur and root node.
2017-03-21 12:20:37 -07:00
..
testdata routing: add proper test for excessive number of hops 2017-02-02 00:24:16 -08:00
errors.go routing: rewrite package to conform to BOLT07 and factor in fees+timelocks 2016-12-27 16:44:22 -08: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: introduce a heap to keep track of closest nodes during pathfinding 2017-03-21 12:20:18 -07:00
heap.go routing: introduce new heap for storing candidate shortest paths 2017-03-21 12:20:30 -07:00
log.go routing: rewrite package to conform to BOLT07 and factor in fees+timelocks 2016-12-27 16:44:22 -08:00
notifications_test.go routing: include the channel point of chan within edge update ntfn 2017-03-14 20:07:33 -07:00
notifications.go routing: only log topology client sends if clients are active 2017-03-16 12:16:32 -07:00
pathfind_test.go routing: add findPaths function whcih implements Yen's Algorithm 2017-03-21 12:20:37 -07:00
pathfind.go routing: add findPaths function whcih implements Yen's Algorithm 2017-03-21 12:20:37 -07:00
README.md multi: add link to LICENSE in README license badges (#100) 2017-01-12 16:31:08 -08:00
router.go routing: findRoute now returns a slice of selected hops in reverse order 2017-03-21 12:20:28 -07:00

routing

[Build Status] (https://travis-ci.org/lightningnetwork/lnd) [MIT licensed] (https://github.com/lightningnetwork/lnd/blob/master/LICENSE) [GoDoc] (http://godoc.org/github.com/lightningnetwork/lnd/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