lnd/routing
bitromortac b0f0715813
routing: fix fee limit condition
When iterating edges, pathfinding checks early whether using an edge
would violate the requested total fee limit for a route. This check is
done on the net amount (an amount the inbound fee is calculated with).
However, a possible next hop's fee discount leads to a reduction in fees
and as such using the net amount leads to assuming a higher cumulative
fee than the route really has, excluding the path erroneously. We
perform the fee limit check on the amount to send, which includes both
inbound and outbound fees. This should be possible as the first hop's
outbound fee is zero and therefore doesn't have to be checked in the
end.
2024-07-30 08:53:09 +02:00
..
blindedpath blindedpath: smarter dummy hop policy selection 2024-07-26 13:03:07 +02:00
chainview multi: make sure missionControlStore catches done signal 2024-07-23 21:30:08 +08:00
localchans multi: Inbound fees are retained when not provided 2024-05-22 20:48:42 +02:00
route routing: assume TLV onion during path finding 2024-06-24 10:01:21 -07:00
shards multi: Fix typos [skip ci] 2022-01-24 12:19:02 +02:00
testdata routing: add private key attribute in router test 2021-06-23 18:13:02 +08:00
additional_edge_test.go routing+refactor: let BlindedEdge carry BlindedPayment 2024-07-10 09:12:39 +02:00
additional_edge.go routing: add BlindedPayment() method to AdditionalEdges 2024-07-10 09:12:39 +02:00
bandwidth_test.go multi: use btcd's btcec/v2 and btcutil modules 2022-03-09 19:02:37 +01:00
bandwidth.go routing: rename and export routingGraph 2024-07-15 13:10:24 +02:00
blinding_test.go routing+refactor: let BlindedEdge carry BlindedPayment 2024-07-10 09:12:39 +02:00
blinding.go routing+refactor: let BlindedEdge carry BlindedPayment 2024-07-10 09:12:39 +02:00
control_tower_test.go routing: make sure StatusInitiated is notified when creating payments 2023-11-15 20:18:21 +08:00
control_tower.go routing: make sure StatusInitiated is notified when creating payments 2023-11-15 20:18:21 +08:00
graph.go multi: add abstraction for Router and SessionSource graph access 2024-07-15 15:13:57 +02:00
heap_test.go routing: optimize path finding structures 2019-10-24 21:38:07 -03:00
heap.go routing: add inbound fee support to pathfinding 2024-03-31 18:12:28 +02:00
integrated_routing_context_test.go multi: add abstraction for Router and SessionSource graph access 2024-07-15 15:13:57 +02:00
integrated_routing_test.go multi: make tlv onion compulsory 2024-01-11 09:43:31 -08:00
log.go multi: add NewLogClosure in lnutils to avoid repetition 2024-07-25 21:25:23 +08:00
missioncontrol_state_test.go multi: formatting and comment fixes 2022-02-10 11:02:02 +01:00
missioncontrol_state.go multi: Fix typos [skip ci] 2022-01-24 12:19:02 +02:00
missioncontrol_store_test.go missioncontrolstore: add additional tests and benchmarks 2024-06-19 07:33:14 -03:00
missioncontrol_store.go multi: make sure missionControlStore catches done signal 2024-07-23 21:30:08 +08:00
missioncontrol_test.go routing+lnrpc: make capacity factor configurable 2023-02-24 15:28:55 +01:00
missioncontrol.go multi: fee estimation timeout parameters 2024-03-05 09:24:27 +01:00
mock_graph_test.go routing+refactor: remove the need to give CachedGraph source node access 2024-07-15 13:10:24 +02:00
mock_test.go routing: update mockers in unit test 2023-11-13 16:09:12 +08:00
nodepair.go routing: extended DirectedNodePair functionality 2019-08-13 18:45:06 +02:00
pathfind_test.go routing: find blinded paths to a destination node 2024-07-26 09:54:17 +02:00
pathfind.go routing: fix fee limit condition 2024-07-30 08:53:09 +02:00
payment_lifecycle_test.go routing+routerrpc: cancelable context in SendPaymentV2 2024-06-17 09:32:26 +02:00
payment_lifecycle.go refactor: move various duties from ChannelRouter to graph.Builder 2024-07-15 15:56:33 +02:00
payment_session_source.go multi: add abstraction for Router and SessionSource graph access 2024-07-15 15:13:57 +02:00
payment_session_test.go multi: add abstraction for Router and SessionSource graph access 2024-07-15 15:13:57 +02:00
payment_session.go multi: send MPP payment to blinded path 2024-07-26 09:54:38 +02:00
probability_apriori_test.go trivial: Fix spelling errors 2023-09-21 22:35:33 -04:00
probability_apriori.go trivial: Fix spelling errors 2023-09-21 22:35:33 -04:00
probability_bimodal_test.go routing: stronger use of direct bimodal probability 2023-03-23 11:12:10 +01:00
probability_bimodal.go routing: stronger use of direct bimodal probability 2023-03-23 11:12:10 +01:00
probability_estimator_test.go routing: add probability benchmarks 2023-02-14 13:34:25 +01:00
probability_estimator.go routing: add probability estimator interface 2023-02-10 09:58:40 +01:00
README.md scripted-diff: replace ⛰ emoji with $ [skip ci] 2022-10-28 12:06:49 -04:00
result_interpretation_test.go routing: add handling for blinded errors from final node 2023-12-18 12:07:56 -05:00
result_interpretation.go routing: add handling for blinded errors from final node 2023-12-18 12:07:56 -05:00
router_test.go routing: use mission control to select blinded paths 2024-07-26 09:54:17 +02:00
router.go multi: send to a blinded path in an invoice 2024-07-26 09:54:37 +02:00
setup_test.go channeldb/test: test with postgres 2021-10-29 10:54:44 +02:00
unified_edges_test.go routing: add BlindedPayment to unifiedEdge 2024-07-10 09:12:39 +02:00
unified_edges.go routing: rename and export routingGraph 2024-07-15 13:10:24 +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