lnd/routing
ziggie 2d477d699d
routing: allow misson control manager to startup despite errors
We now allow the mission control manager to skip over deserializable
errors. We cannot repair this these results but we just skip over
it so we can startup properly.

When fetchAll() encounters entries that fail to deserialize, in
addition to skipping them, now also:

- Delete the corrupted entries from the database
- Remove them from the in-memory keysMap and keys tracking structures

This prevents corrupted entries from:
- Being counted toward maxRecords, which would cause valid entries
  to be pruned prematurely
- Persisting in the database indefinitely
- Causing inaccurate entry counts in startup logs
2025-12-02 20:47:50 +01: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 multi: context.Background() -> t.Context() 2025-08-30 14:13:44 -03:00
route routing: add logging for routes discarded due to low success probability 2025-05-13 19:42:36 -03: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:47:50 +01:00
missioncontrol_store_test.go routing: allow misson control manager to startup despite errors 2025-12-02 20:47:50 +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 multi: reset for ForEachNodeDirectedChannel 2025-07-15 11:25:10 +02:00
pathfind_test.go multi: rename AddLightningNode methods 2025-09-03 10:14:35 +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 multi: rename models.LightningNode to models.Node 2025-09-03 10:14:35 +02:00
payment_session_test.go multi: rename models.LightningNode to models.Node 2025-09-03 10:14:35 +02: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+htlcswitch+discovery+peer+netann: optimize debug logging with lazy evaluation 2025-09-05 18:20:51 -07:00
router_test.go graph: rename HasLightningNode 2025-09-03 10:14:35 +02:00
setup_test.go channeldb/test: test with postgres 2021-10-29 10:54:44 +02:00
unified_edges.go multi: skip range check in pathfinder and switch for custom htlc payments 2025-08-06 09:37:08 +02:00
unified_edges_test.go multi+refactor: move models package to graph/db 2024-11-28 13:34: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