lnd/routing
Joost Jager dc13da5abb
routing: move second chance logic into mission control
If nodes return a channel policy related failure, they may get a second
chance. Our graph may not be up to date. Previously this logic was
contained in the payment session.

This commit moves that into global mission control and thereby removes
the last mission control state that was kept on the payment level.

Because mission control is not aware of the relation between payment
attempts and payments, the second chance logic is no longer based
tracking second chances given per payment.

Instead a time based approach is used. If a node reports a policy
failure that prevents forwarding to its peer, it will get a second
chance. But it will get it only if the previous second chance was
long enough ago.

Also those second chances are no longer dependent on whether an
associated channel update is valid. It will get the second chance
regardless, to prevent creating a dependency between mission control and
the graph. This would interfer with (future) replay of history, because
the graph may not be the same anymore at that point.
2019-07-13 22:38:23 +02:00
..
chainview multi: update build to latest version of neutrino+btcwallet 2019-03-13 15:03:39 -07:00
route routing: Route String() method 2019-06-04 10:00:15 +02:00
testdata routing: update test edge policy fields to include max htlc + new flags 2019-03-01 08:05:27 -08:00
ann_validation.go routing: skip max htlc validation when capacity is 0 2019-04-18 21:57:38 -07:00
conf_experimental.go routing/conf: add experimental assume valid conf 2018-09-03 20:15:18 -07:00
conf.go routing/conf: add experimental assume valid conf 2018-09-03 20:15:18 -07:00
control_tower_test.go channeldb: add subscription to control tower 2019-06-05 12:41:49 +02:00
control_tower.go routing+routerrpc+channeldb: return route on invalid payment details 2019-07-04 09:27:16 +02:00
errors.go routing: return ErrRejected if found in reject cache 2018-08-23 07:40:40 +02: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: use probability source in path finding 2019-06-04 10:00:21 +02:00
log.go multi: init subsystem loggers via build pkg 2018-10-05 13:04:45 +09:00
missioncontrol_test.go routing: move second chance logic into mission control 2019-07-13 22:38:23 +02:00
missioncontrol.go routing: move second chance logic into mission control 2019-07-13 22:38:23 +02:00
mock_test.go routing: move second chance logic into mission control 2019-07-13 22:38:23 +02:00
nodepair.go routing: move second chance logic into mission control 2019-07-13 22:38:23 +02:00
notifications_test.go routing: add color to node update 2019-05-23 10:52:12 +02:00
notifications.go routing: add color to node update 2019-05-23 10:52:12 +02:00
pathfind_test.go routing/test: allow arbitrary graph source nodes 2019-07-11 10:37:22 +02:00
pathfind.go routing+routerrpc: expose mission control parameters in lnd config 2019-06-04 13:22:50 +02:00
payment_lifecycle.go htlcswitch: use distinct error for unreadable failures 2019-07-11 19:49:45 +02:00
payment_session_source.go routing: move second chance logic into mission control 2019-07-13 22:38:23 +02:00
payment_session_test.go routing+routerrpc: isolate payment session source from mission control 2019-07-13 22:38:19 +02:00
payment_session.go routing: move second chance logic into mission control 2019-07-13 22:38:23 +02:00
README.md multi: fix formatting issues in packge README's 2017-03-27 16:25:25 -07:00
router_test.go routing+routerrpc: isolate payment session source from mission control 2019-07-13 22:38:19 +02:00
router.go routing: move second chance logic into mission control 2019-07-13 22:38:23 +02:00
stats.go routing/router: log aggregate graph processing stats 2019-06-13 18:18:30 -07:00
validation_barrier_test.go routing/validation_barrier_test: test semaphore and quit 2018-05-08 16:32:08 -07:00
validation_barrier.go multi: move Route to sub-pkg routing/route 2019-04-29 14:52:33 +02: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