Skip to content

Commit 521ae09

Browse files
committed
Lock network graph once, and use ReadOnlyNetworkGraph
1 parent 9ff748c commit 521ae09

File tree

6 files changed

+94
-90
lines changed

6 files changed

+94
-90
lines changed

lightning/src/ln/functional_test_utils.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1090,7 +1090,7 @@ macro_rules! get_route_and_payment_hash {
10901090
let keys_manager = $crate::util::test_utils::TestKeysInterface::new(&[0u8; 32], bitcoin::network::constants::Network::Testnet);
10911091
let random_seed_bytes = keys_manager.get_secure_random_bytes();
10921092
let route = $crate::routing::router::get_route(
1093-
&$send_node.node.get_our_node_id(), &payment_params, $send_node.network_graph,
1093+
&$send_node.node.get_our_node_id(), &payment_params, &$send_node.network_graph.read_only(),
10941094
Some(&$send_node.node.list_usable_channels().iter().collect::<Vec<_>>()),
10951095
$recv_value, $cltv, $send_node.logger, &scorer, &random_seed_bytes
10961096
).unwrap();
@@ -1547,12 +1547,13 @@ pub const TEST_FINAL_CLTV: u32 = 70;
15471547
pub fn route_payment<'a, 'b, 'c>(origin_node: &Node<'a, 'b, 'c>, expected_route: &[&Node<'a, 'b, 'c>], recv_value: u64) -> (PaymentPreimage, PaymentHash, PaymentSecret) {
15481548
let payment_params = PaymentParameters::from_node_id(expected_route.last().unwrap().node.get_our_node_id())
15491549
.with_features(InvoiceFeatures::known());
1550+
let network_graph = origin_node.network_graph.read_only();
15501551
let scorer = test_utils::TestScorer::with_penalty(0);
15511552
let seed = [0u8; 32];
15521553
let keys_manager = test_utils::TestKeysInterface::new(&seed, Network::Testnet);
15531554
let random_seed_bytes = keys_manager.get_secure_random_bytes();
15541555
let route = get_route(
1555-
&origin_node.node.get_our_node_id(), &payment_params, &origin_node.network_graph,
1556+
&origin_node.node.get_our_node_id(), &payment_params, &network_graph,
15561557
Some(&origin_node.node.list_usable_channels().iter().collect::<Vec<_>>()),
15571558
recv_value, TEST_FINAL_CLTV, origin_node.logger, &scorer, &random_seed_bytes).unwrap();
15581559
assert_eq!(route.paths.len(), 1);
@@ -1568,12 +1569,13 @@ pub fn route_payment<'a, 'b, 'c>(origin_node: &Node<'a, 'b, 'c>, expected_route:
15681569
pub fn route_over_limit<'a, 'b, 'c>(origin_node: &Node<'a, 'b, 'c>, expected_route: &[&Node<'a, 'b, 'c>], recv_value: u64) {
15691570
let payment_params = PaymentParameters::from_node_id(expected_route.last().unwrap().node.get_our_node_id())
15701571
.with_features(InvoiceFeatures::known());
1572+
let network_graph = origin_node.network_graph.read_only();
15711573
let scorer = test_utils::TestScorer::with_penalty(0);
15721574
let seed = [0u8; 32];
15731575
let keys_manager = test_utils::TestKeysInterface::new(&seed, Network::Testnet);
15741576
let random_seed_bytes = keys_manager.get_secure_random_bytes();
15751577
let route = get_route(
1576-
&origin_node.node.get_our_node_id(), &payment_params, origin_node.network_graph,
1578+
&origin_node.node.get_our_node_id(), &payment_params, &network_graph,
15771579
None, recv_value, TEST_FINAL_CLTV, origin_node.logger, &scorer, &random_seed_bytes).unwrap();
15781580
assert_eq!(route.paths.len(), 1);
15791581
assert_eq!(route.paths[0].len(), expected_route.len());

lightning/src/ln/functional_tests.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7442,7 +7442,7 @@ fn test_check_htlc_underpaying() {
74427442
let scorer = test_utils::TestScorer::with_penalty(0);
74437443
let random_seed_bytes = chanmon_cfgs[1].keys_manager.get_secure_random_bytes();
74447444
let payment_params = PaymentParameters::from_node_id(nodes[1].node.get_our_node_id()).with_features(InvoiceFeatures::known());
7445-
let route = get_route(&nodes[0].node.get_our_node_id(), &payment_params, nodes[0].network_graph, None, 10_000, TEST_FINAL_CLTV, nodes[0].logger, &scorer, &random_seed_bytes).unwrap();
7445+
let route = get_route(&nodes[0].node.get_our_node_id(), &payment_params, &nodes[0].network_graph.read_only(), None, 10_000, TEST_FINAL_CLTV, nodes[0].logger, &scorer, &random_seed_bytes).unwrap();
74467446
let (_, our_payment_hash, _) = get_payment_preimage_hash!(nodes[0]);
74477447
let our_payment_secret = nodes[1].node.create_inbound_payment_for_hash(our_payment_hash, Some(100_000), 7200).unwrap();
74487448
nodes[0].node.send_payment(&route, our_payment_hash, &Some(our_payment_secret)).unwrap();
@@ -7845,11 +7845,11 @@ fn test_bump_penalty_txn_on_revoked_htlcs() {
78457845
let payment_params = PaymentParameters::from_node_id(nodes[1].node.get_our_node_id()).with_features(InvoiceFeatures::known());
78467846
let scorer = test_utils::TestScorer::with_penalty(0);
78477847
let random_seed_bytes = chanmon_cfgs[1].keys_manager.get_secure_random_bytes();
7848-
let route = get_route(&nodes[0].node.get_our_node_id(), &payment_params, &nodes[0].network_graph, None,
7848+
let route = get_route(&nodes[0].node.get_our_node_id(), &payment_params, &nodes[0].network_graph.read_only(), None,
78497849
3_000_000, 50, nodes[0].logger, &scorer, &random_seed_bytes).unwrap();
78507850
let payment_preimage = send_along_route(&nodes[0], route, &[&nodes[1]], 3_000_000).0;
78517851
let payment_params = PaymentParameters::from_node_id(nodes[0].node.get_our_node_id()).with_features(InvoiceFeatures::known());
7852-
let route = get_route(&nodes[1].node.get_our_node_id(), &payment_params, nodes[1].network_graph, None,
7852+
let route = get_route(&nodes[1].node.get_our_node_id(), &payment_params, &nodes[1].network_graph.read_only(), None,
78537853
3_000_000, 50, nodes[0].logger, &scorer, &random_seed_bytes).unwrap();
78547854
send_along_route(&nodes[1], route, &[&nodes[0]], 3_000_000);
78557855

@@ -9621,7 +9621,7 @@ fn test_dup_htlc_second_fail_panic() {
96219621
let scorer = test_utils::TestScorer::with_penalty(0);
96229622
let random_seed_bytes = chanmon_cfgs[1].keys_manager.get_secure_random_bytes();
96239623
let route = get_route(
9624-
&nodes[0].node.get_our_node_id(), &payment_params, &nodes[0].network_graph,
9624+
&nodes[0].node.get_our_node_id(), &payment_params, &nodes[0].network_graph.read_only(),
96259625
Some(&nodes[0].node.list_usable_channels().iter().collect::<Vec<_>>()),
96269626
10_000, TEST_FINAL_CLTV, nodes[0].logger, &scorer, &random_seed_bytes).unwrap();
96279627

lightning/src/ln/onion_route_tests.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -610,10 +610,11 @@ macro_rules! get_phantom_route {
610610
}
611611
])]);
612612
let scorer = test_utils::TestScorer::with_penalty(0);
613+
let network_graph = $nodes[0].network_graph.read_only();
613614
(get_route(
614-
&$nodes[0].node.get_our_node_id(), &payment_params, $nodes[0].network_graph,
615+
&$nodes[0].node.get_our_node_id(), &payment_params, &network_graph,
615616
Some(&$nodes[0].node.list_usable_channels().iter().collect::<Vec<_>>()),
616-
$amt, TEST_FINAL_CLTV, $nodes[0].logger, &scorer
617+
$amt, TEST_FINAL_CLTV, $nodes[0].logger, &scorer, &[0u8; 32]
617618
).unwrap(), phantom_route_hint.phantom_scid)
618619
}
619620
}}

lightning/src/ln/payment_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -729,7 +729,7 @@ fn get_ldk_payment_preimage() {
729729
let keys_manager = test_utils::TestKeysInterface::new(&[0u8; 32], Network::Testnet);
730730
let random_seed_bytes = keys_manager.get_secure_random_bytes();
731731
let route = get_route(
732-
&nodes[0].node.get_our_node_id(), &payment_params, &nodes[0].network_graph,
732+
&nodes[0].node.get_our_node_id(), &payment_params, &nodes[0].network_graph.read_only(),
733733
Some(&nodes[0].node.list_usable_channels().iter().collect::<Vec<_>>()),
734734
amt_msat, TEST_FINAL_CLTV, nodes[0].logger, &scorer, &random_seed_bytes).unwrap();
735735
let _payment_id = nodes[0].node.send_payment(&route, payment_hash, &Some(payment_secret)).unwrap();

lightning/src/ln/shutdown_tests.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,9 @@ fn updates_shutdown_wait() {
9595
let (_, payment_hash, payment_secret) = get_payment_preimage_hash!(nodes[0]);
9696

9797
let payment_params_1 = PaymentParameters::from_node_id(nodes[1].node.get_our_node_id()).with_features(InvoiceFeatures::known());
98-
let route_1 = get_route(&nodes[0].node.get_our_node_id(), &payment_params_1, nodes[0].network_graph, None, 100000, TEST_FINAL_CLTV, &logger, &scorer, &random_seed_bytes).unwrap();
98+
let route_1 = get_route(&nodes[0].node.get_our_node_id(), &payment_params_1, &nodes[0].network_graph.read_only(), None, 100000, TEST_FINAL_CLTV, &logger, &scorer, &random_seed_bytes).unwrap();
9999
let payment_params_2 = PaymentParameters::from_node_id(nodes[0].node.get_our_node_id()).with_features(InvoiceFeatures::known());
100-
let route_2 = get_route(&nodes[1].node.get_our_node_id(), &payment_params_2, nodes[1].network_graph, None, 100000, TEST_FINAL_CLTV, &logger, &scorer, &random_seed_bytes).unwrap();
100+
let route_2 = get_route(&nodes[1].node.get_our_node_id(), &payment_params_2, &nodes[1].network_graph.read_only(), None, 100000, TEST_FINAL_CLTV, &logger, &scorer, &random_seed_bytes).unwrap();
101101
unwrap_send_err!(nodes[0].node.send_payment(&route_1, payment_hash, &Some(payment_secret)), true, APIError::ChannelUnavailable {..}, {});
102102
unwrap_send_err!(nodes[1].node.send_payment(&route_2, payment_hash, &Some(payment_secret)), true, APIError::ChannelUnavailable {..}, {});
103103

0 commit comments

Comments
 (0)