lnd/routing
Elle Mouton 0b1a1e3dc5
graph/db: version ForEachNodeDirectedChannel and cacheable traversal
Add a gossip version parameter to ForEachNodeDirectedChannel on the
Store interface and both DB implementations (KVStore, SQLStore). The
NodeTraverser and routing.Graph interfaces remain unversioned since
pathfinding operates on the merged cross-version cache view.

The cache population in populateCache is updated in the same commit
because it is logically atomic with the versioning changes: the graph
cache is the unversioned, merged view used by pathfinding, so it must
be populated with data from all gossip versions. Without this change,
only v1 data would be loaded into the cache, making v2 nodes and
channels invisible to pathfinding.
2026-02-20 08:50:46 +02:00
..
blindedpath multi: update sphinx lib to latest version 2025-06-13 08:47:31 +02:00
chainview multi: update walletdb package 2025-04-09 18:47:53 +02:00
localchans graph/db: add v2 fields to ChannelEdgePolicy model 2026-02-13 07:21:24 +02:00
route multi: rename experimental endorsement signal to accountable 2026-01-06 09:12:31 -05: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.go multi+refactor: move models package to graph/db 2024-11-28 13:34:33 +02:00
additional_edge_test.go routing+refactor: let BlindedEdge carry BlindedPayment 2024-07-10 09:12:39 +02:00
bandwidth.go multi: skip range check in pathfinder and switch for custom htlc payments 2025-08-06 09:37:08 +02:00
bandwidth_test.go htlcswitch+routing: PaymentBandwidth accepts channel peer pubkey argument 2025-07-02 12:09:24 +02:00
blinding.go routing: improve lasthoppaylaod size calculation 2024-12-10 19:05:49 +01:00
blinding_test.go routing: Use NUMS point for blinded paths 2024-12-10 19:05:49 +01:00
control_tower.go routing: add more comments to the ControlTower interface 2025-08-20 09:08:19 +02:00
control_tower_test.go multi: rename KVPaymentDB to KVStore 2025-08-20 09:07:53 +02:00
graph.go multi: reset for ForEachNodeDirectedChannel 2025-07-15 11:25:10 +02:00
heap.go routing: add inbound fee support to pathfinding 2024-03-31 18:12:28 +02:00
heap_test.go routing: optimize path finding structures 2019-10-24 21:38:07 -03:00
integrated_routing_context_test.go multi: skip range check in pathfinder and switch for custom htlc payments 2025-08-06 09:37:08 +02:00
integrated_routing_test.go multi: remove the need for the graphsession package 2025-02-18 10:15:41 -03:00
log.go multi: start updating various loggers to use the new v2 type 2024-10-22 17:03:55 +02:00
missioncontrol.go multi: move FailureReason to payment package 2025-08-14 19:53:18 +02:00
missioncontrol_state.go routing: separate MissionControl from MissionControlManager 2024-10-01 14:06:50 +02:00
missioncontrol_state_test.go multi: formatting and comment fixes 2022-02-10 11:02:02 +01:00
missioncontrol_store.go routing: allow misson control manager to startup despite errors 2025-12-02 20:38:55 +01:00
missioncontrol_store_test.go routing: allow misson control manager to startup despite errors 2025-12-02 20:38:55 +01:00
missioncontrol_test.go multi: update walletdb package 2025-04-09 18:47:53 +02:00
mock_graph_test.go multi: reset for ForEachNodeDirectedChannel 2025-07-15 11:25:10 +02:00
mock_test.go multi: move DBMPPayment to paymentsdb package 2025-08-20 09:08:19 +02:00
nodepair.go routing: extended DirectedNodePair functionality 2019-08-13 18:45:06 +02:00
pathfind.go graph/db: version ForEachNodeDirectedChannel and cacheable traversal 2026-02-20 08:50:46 +02:00
pathfind_test.go graph/db: add v2 fields to ChannelEdgePolicy model 2026-02-13 07:21:24 +02:00
payment_lifecycle.go routing+htlcswitch+discovery+peer+netann: optimize debug logging with lazy evaluation 2025-09-05 18:20:51 -07:00
payment_lifecycle_test.go multi: context.Background() -> t.Context() 2025-08-30 14:13:44 -03:00
payment_session.go multi: move FailureReason to payment package 2025-08-14 19:53:18 +02:00
payment_session_source.go models: simplify models.Node 2025-11-12 22:54:04 +08:00
payment_session_test.go multi: add models.Node V1 constructor 2025-11-12 22:54:05 +08:00
probability_apriori.go trivial: Fix spelling errors 2023-09-21 22:35:33 -04:00
probability_apriori_test.go trivial: Fix spelling errors 2023-09-21 22:35:33 -04:00
probability_bimodal.go multi: use the "errors" package everywhere 2025-06-30 09:46:55 +02:00
probability_bimodal_test.go routing: refine amount scaling 2025-05-02 10:30:28 +02:00
probability_estimator.go routing: add probability estimator interface 2023-02-10 09:58:40 +01:00
probability_estimator_test.go routing: add probability benchmarks 2023-02-14 13:34:25 +01:00
README.md scripted-diff: replace ⛰ emoji with $ [skip ci] 2022-10-28 12:06:49 -04:00
result_interpretation.go multi: move FailureReason to payment package 2025-08-14 19:53:18 +02:00
result_interpretation_test.go routing: remove paymentFailure pointer 2025-04-30 17:43:58 +02:00
router.go routing: increase MinCLTVDelta from 18 to 24 blocks 2026-01-15 16:22:26 -08:00
router_test.go multi: add ChanEdgePolicyFromWire constructor for ChannelEdgePolicy 2026-02-13 07:21:24 +02:00
setup_test.go channeldb/test: test with postgres 2021-10-29 10:54:44 +02:00
unified_edges.go graph/db: refactor CachedEdgePolicy to use explicit boolean fields 2026-02-13 07:21:24 +02:00
unified_edges_test.go graph/db: refactor CachedEdgePolicy to use explicit boolean fields 2026-02-13 07:21: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