lnd.xprv/routing
Olaoluwa Osuntokun 98f63cdce1
routing: add new paymentSession companion struct to missionControl
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.
2018-01-08 19:50:24 -08:00
..
chainview multi: fix several typos in godoc comments 2017-12-17 18:40:05 -08:00
testdata routing: during path finding skip edge if amount < edge.MinHTLC 2017-11-30 22:29:45 -08:00
errors.go routing: Require adding edge to node before adding node. 2017-08-02 15:58:58 -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: replace sort.Sort with sort.Slice in heap_test.go 2017-10-02 23:13:47 -07:00
heap.go routing: introduce new heap for storing candidate shortest paths 2017-03-21 12:20:30 -07:00
log.go lnd: remove seelog logger 2017-06-25 14:19:56 +01:00
missioncontrol.go routing: add new paymentSession companion struct to missionControl 2018-01-08 19:50:24 -08:00
notifications_test.go config+pathfind_test+notifications_test: format and fix newVertex import 2017-11-15 16:50:19 -08:00
notifications.go multi: fix several typos in godoc comments 2017-12-17 18:40:05 -08:00
pathfind_test.go multi: fix several typos in godoc comments 2017-12-17 18:40:05 -08:00
pathfind.go multi: fix several typos in godoc comments 2017-12-17 18:40:05 -08:00
README.md multi: fix formatting issues in packge README's 2017-03-27 16:25:25 -07:00
router_test.go routing: ensure we set the TotalFees value on routes properly 2017-12-06 18:45:52 -08:00
router.go routing: add new paymentSession companion struct to missionControl 2018-01-08 19:50:24 -08:00
validation_barrier.go routing: add new ValidationBarrier to allow for safe parallel validation of announcements 2017-11-29 16:24:20 -08: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