lnd.xprv/routing
Olaoluwa Osuntokun 3da8cd7551
routing: add a caching layer in front of the KSP algorithm
This commit adds caching to our route finding. Caching is done on a
tuple-basis mapping a (dest, amt) pair to a previously calculated set
of shortest paths. The cache invalidated on two occasions: when a block
closes a set of transactions, or we received a new channel update or
channel announcement message.

With this change, payments are now snappier from the PoV of an
application developer as we no longer need to do a series of disk-seeks
before we dispatch each payment.
2017-03-21 12:20:55 -07:00
..
testdata routing: add proper test for excessive number of hops 2017-02-02 00:24:16 -08:00
errors.go routing: implement route failure fallback in SendPayment 2017-03-21 12:20:45 -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: 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: FindRoute is now FindRoutes, uses our KSP algo, ranks by fee 2017-03-21 12:20:40 -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_test.go routing: implement route failure fallback in SendPayment 2017-03-21 12:20:45 -07:00
router.go routing: add a caching layer in front of the KSP algorithm 2017-03-21 12:20:55 -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