lnd/routing
Elle Mouton 8c0df98439
multi: add abstraction for Router and SessionSource graph access
In this commit, we completely remove the Router's dependence on a Graph
source that requires a `kvdb.RTx`. In so doing, we are more prepared for
a future where the Graph source is backed by different DB structure such
as pure SQL.

The two areas affected here are: the ChannelRouter's graph access that
it uses for pathfinding. And the SessionSource's graph access that it
uses for payments.

The ChannelRouter gets given a Graph and the SessionSource is given a
GraphSessionFactory which it can use to create a new session. Behind the
scenes, this will acquire a kvdb.RTx that will be used for calls to the
Graph's `ForEachNodeChannel` method.
2024-07-15 15:13:57 +02:00
..
chainview lnwallet+routing: use chainntnfs.NewBitcoindBackend 2024-03-18 16:13:40 +01: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
testdata
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
ann_validation.go multi: fix fmt.Errorf error wrapping 2024-02-27 11:13:40 +00:00
bandwidth_test.go
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
errors.go
graph.go multi: add abstraction for Router and SessionSource graph access 2024-07-15 15:13:57 +02:00
heap_test.go
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
missioncontrol_state_test.go
missioncontrol_state.go
missioncontrol_store_test.go missioncontrolstore: add additional tests and benchmarks 2024-06-19 07:33:14 -03:00
missioncontrol_store.go missioncontrolstore: remove duplication of in-memory data 2024-06-19 07:34:35 -03:00
missioncontrol_test.go
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
notifications_test.go feat: add inbound fees to channel notifications 2024-05-07 18:58:25 +02:00
notifications.go feat: add inbound fees to channel notifications 2024-05-07 18:58:25 +02:00
pathfind_test.go multi: add abstraction for Router and SessionSource graph access 2024-07-15 15:13:57 +02:00
pathfind.go routing: rename and export routingGraph 2024-07-15 13:10:24 +02:00
payment_lifecycle_test.go routing+routerrpc: cancelable context in SendPaymentV2 2024-06-17 09:32:26 +02:00
payment_lifecycle.go routing+routerrpc: cancelable context in SendPaymentV2 2024-06-17 09:32:26 +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: add abstraction for Router and SessionSource graph access 2024-07-15 15:13:57 +02:00
probability_apriori_test.go
probability_apriori.go
probability_bimodal_test.go
probability_bimodal.go
probability_estimator_test.go
probability_estimator.go
README.md
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 multi: add abstraction for Router and SessionSource graph access 2024-07-15 15:13:57 +02:00
router.go multi: add abstraction for Router and SessionSource graph access 2024-07-15 15:13:57 +02:00
setup_test.go
stats.go
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
validation_barrier_test.go
validation_barrier.go multi: move DB schemas to channeldb/models 2023-11-08 14:50:35 +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