lnd.xprv/routing
Wilmer Paulino eb4413154d
routing: return err on validation failure of network update
This ensures the waiting receiving channel always receives an error to
prevent a deadlock when processing a network update that fails due to
the validation barrier.

On commit d5aedbcbd9db510c974c9f7be5ab177ad6546994:

1000 @ 0x43a285 0x44a38f 0xc42e86 0xc80fda 0xc8682d 0xc976c9 0x46fce1
github.com/lightningnetwork/lnd/routing.(*ChannelRouter).AddNode+0x245                      github.com/lightningnetwork/lnd/routing/router.go:2218
github.com/lightningnetwork/lnd/discovery.(*AuthenticatedGossiper).addNode+0x3b9            github.com/lightningnetwork/lnd/discovery/gossiper.go:1510
github.com/lightningnetwork/lnd/discovery.(*AuthenticatedGossiper).processNetworkAnnouncement+0x574c github.com/lightningnetwork/lnd/discovery/gossiper.go:1554
github.com/lightningnetwork/lnd/discovery.(*AuthenticatedGossiper).networkHandler.func1+0x24github.com/lightningnetwork/lnd/discovery/gossiper.go:1043
2021-04-29 15:52:24 -07:00
..
chainview routing: add block cache to CfFilteredChainView 2021-04-28 09:46:11 +02:00
localchans routing+lnrpc+lncli: allow setting min htlc policy 2019-12-11 00:17:08 +01:00
route channeldb: validate MPP options when registering attempts 2020-04-02 19:31:23 +02:00
shards routing/payment_lifecycle: use ShardTracker to track shards 2021-04-27 09:43:40 +02:00
testdata routing: fix max route length test 2019-12-20 11:00:03 +01:00
ann_validation.go routing: skip max htlc validation when capacity is 0 2019-04-18 21:57:38 -07:00
control_tower_test.go routing: use Identifier in place of PaymentHash 2021-04-27 09:47:23 +02:00
control_tower.go channeldb: return full payment for inflight payments 2021-04-27 08:27:32 +02:00
errors.go routing: remove unused code 2020-04-24 19:15:08 +02:00
graph.go multi: rename ReadTx to RTx 2020-05-26 18:20:37 -07:00
heap_test.go routing: optimize path finding structures 2019-10-24 21:38:07 -03:00
heap.go routing: limit routing info size during pathfinding 2019-12-20 11:00:05 +01:00
integrated_routing_context_test.go routing: use Identifier in place of PaymentHash 2021-04-27 09:47:23 +02:00
integrated_routing_test.go routing: if MaxShardAmt is set, then use that as a ceiling for our splits 2021-02-15 19:31:52 -08:00
log.go routing: define subsystem constant 2019-12-11 00:17:04 +01:00
missioncontrol_state_test.go routing: stricter mission control state failure updates 2020-03-28 07:49:23 +01:00
missioncontrol_state.go routing: add mission control import functionality 2021-03-18 10:46:45 +02:00
missioncontrol_store_test.go kvdb: add timeout options for bbolt (#4787) 2020-12-07 15:31:49 -08:00
missioncontrol_store.go multi: add reset closure to kvdb.Update 2020-11-05 17:57:12 +01:00
missioncontrol_test.go routing: extract probability estimator cfg and add validation 2021-01-19 10:57:13 +02:00
missioncontrol.go Merge pull request #5116 from joostjager/mc-deadlock 2021-04-05 20:02:57 -07:00
mock_graph_test.go routing/test: use fixed identifiers in test graph 2020-04-09 08:20:43 +02:00
mock_test.go channeldb: return full payment for inflight payments 2021-04-27 08:27:32 +02:00
nodepair.go routing: extended DirectedNodePair functionality 2019-08-13 18:45:06 +02:00
notifications_test.go routing: add missing GlobalFeatures to NetworkNodeUpdate 2020-12-07 15:47:09 +01:00
notifications.go routing: add missing GlobalFeatures to NetworkNodeUpdate 2020-12-07 15:47:09 +01:00
pathfind_test.go routing: add proportional attempt cost 2020-09-08 15:47:08 +02:00
pathfind.go routing/payment_lifecycle: use ShardTracker to track shards 2021-04-27 09:43:40 +02:00
payment_lifecycle_test.go routing: use Identifier in place of PaymentHash 2021-04-27 09:47:23 +02:00
payment_lifecycle.go routing: use Identifier in place of PaymentHash 2021-04-27 09:47:23 +02:00
payment_session_source.go routing: move payment session constructor 2020-04-16 16:25:24 +02:00
payment_session_test.go routing: use Identifier in place of PaymentHash 2021-04-27 09:47:23 +02:00
payment_session.go routing: use Identifier in place of PaymentHash 2021-04-27 09:47:23 +02:00
probability_estimator_test.go routing: extract probability estimator cfg and add validation 2021-01-19 10:57:13 +02:00
probability_estimator.go routing: extract probability estimator cfg and add validation 2021-01-19 10:57:13 +02:00
README.md multi: unify code blocks in READMEs 2021-01-22 09:14:11 +01:00
result_interpretation_test.go routing: continue trying after mpp timeout 2020-04-09 08:20:52 +02:00
result_interpretation.go routing: continue trying after mpp timeout 2020-04-09 08:20:52 +02:00
router_test.go routing: use Identifier in place of PaymentHash 2021-04-27 09:47:23 +02:00
router.go routing: return err on validation failure of network update 2021-04-29 15:52:24 -07: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+routerrpc: add multiple outgoing channel restriction 2020-05-12 07:17:24 +02:00
validation_barrier_test.go discovery+routing: cancel dependent jobs if parent validation fails 2021-03-23 11:56:51 -07:00
validation_barrier.go discovery+routing: cancel dependent jobs if parent validation fails 2021-03-23 11:56:51 -07: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