lnd.xprv/routing
Conner Fromknecht cfa3fe2921
routing/pathfind: fix TLV fallback for unadvertised hops
In this commit, we fix a bug that prevents us from sending custom
records to nodes that aren't in the graph. Previously we would simply
fail if we were unable to retrieve the node's features.

To remedy, we add the option of supplying the destination's feature bits
into path finding. If present, we will use them directly without
consulting the graph, resolving the original issue. Instead, we will
only consult the graph as a fallback, which will still fail if the node
doesn't exist since the TLV features won't be populated in the empty
feature vector.

Furthermore, this also permits us to provide "virtual features" into the
pathfinding logic, where we make assumptions about what the receiver
supports even if the feature vector isn't actually taken from an
invoice. This can useful in cases like keysend, where we don't have an
invoice, but we can still attempt the payment if we assume the receiver
supports TLV.
2019-12-18 23:53:51 -08:00
..
chainview routing/chainview: check GetCFilter error 2019-10-15 10:31:25 +02:00
localchans routing+lnrpc+lncli: allow setting min htlc policy 2019-12-11 00:17:08 +01:00
route routing: move zero hops check 2019-12-16 14:53:47 +01: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+routing: expose HTLCs in payment subscriptions 2019-11-19 20:43:38 -08:00
control_tower.go channeldb+routing: expose HTLCs in payment subscriptions 2019-11-19 20:43:38 -08:00
errors.go routing: use simple errors for path finding 2019-11-27 15:21:08 +01: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: optimize path finding structures 2019-10-24 21:38:07 -03:00
heap.go routing: improve equal cost route comparison 2019-12-02 14:23:57 +01:00
log.go routing: define subsystem constant 2019-12-11 00:17:04 +01:00
missioncontrol_store_test.go lnwire+htlcswitch: report height for invalid payment details failure 2019-09-16 10:10:20 +02:00
missioncontrol_store.go routing: persist mission control data 2019-07-31 08:44:00 +02:00
missioncontrol_test.go routing: track amt ranges in mc 2019-11-22 11:17:28 +01:00
missioncontrol.go routing: track amt ranges in mc 2019-11-22 11:17:28 +01:00
mock_test.go routing: process successes in mission control 2019-08-23 09:15:41 +02:00
nodepair.go routing: extended DirectedNodePair functionality 2019-08-13 18:45:06 +02:00
notifications_test.go multi: remove LocalFeatures and GlobalFeatures 2019-11-08 05:32:00 -08:00
notifications.go routing: add color to node update 2019-05-23 10:52:12 +02:00
pathfind_test.go routing/pathfind: fix TLV fallback for unadvertised hops 2019-12-18 23:53:51 -08:00
pathfind.go routing/pathfind: fix TLV fallback for unadvertised hops 2019-12-18 23:53:51 -08:00
payment_lifecycle.go routing: check for invalid routes 2019-12-16 14:53:45 +01:00
payment_session_source.go routing: query bandwidth hints before each payment attempt 2019-08-17 10:24:07 +02:00
payment_session_test.go routing+routerrpc: take max cltv limit into account within path finding 2019-10-11 18:04:49 -04:00
payment_session.go routing: require tlv capability for custom record payments 2019-12-12 00:15:02 +01:00
probability_estimator_test.go routing: track amt ranges in mc 2019-11-22 11:17:28 +01:00
probability_estimator.go routing: track amt ranges in mc 2019-11-22 11:17:28 +01:00
README.md multi: fix formatting issues in packge README's 2017-03-27 16:25:25 -07:00
result_interpretation_test.go routing+routerrpc: also expose amt for success results in mc 2019-11-22 11:17:26 +01:00
result_interpretation.go routing+routerrpc: also expose amt for success results in mc 2019-11-22 11:17:26 +01:00
router_test.go routing: check for invalid routes 2019-12-16 14:53:45 +01:00
router.go routing: move zero hops check 2019-12-16 14:53:47 +01:00
stats.go routing/router: log aggregate graph processing stats 2019-06-13 18:18:30 -07:00
unified_policies_test.go routing: use unified policy for path finding 2019-10-25 11:22:28 +02:00
unified_policies.go routing: use unified policy for build route 2019-10-29 19:17:58 +01: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