aaa04bb2e5
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. |
||
---|---|---|
.. | ||
testdata | ||
errors.go | ||
graph.go | ||
heap_test.go | ||
heap.go | ||
log.go | ||
notifications_test.go | ||
notifications.go | ||
pathfind_test.go | ||
pathfind.go | ||
README.md | ||
router.go |
routing
[] (https://travis-ci.org/lightningnetwork/lnd) [] (https://github.com/lightningnetwork/lnd/blob/master/LICENSE) [] (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