Skip to content

Commit a551a62

Browse files
authored
Merge pull request #1517 from jkczyz/2022-06-gossip-sync-enum
Support only one `GossipSync` in `BackgroundProcessor`
2 parents 8e5cf75 + c032e28 commit a551a62

File tree

16 files changed

+387
-297
lines changed

16 files changed

+387
-297
lines changed

fuzz/src/full_stack.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ type ChannelMan = ChannelManager<
163163
EnforcingSigner,
164164
Arc<chainmonitor::ChainMonitor<EnforcingSigner, Arc<dyn chain::Filter>, Arc<TestBroadcaster>, Arc<FuzzEstimator>, Arc<dyn Logger>, Arc<TestPersister>>>,
165165
Arc<TestBroadcaster>, Arc<KeyProvider>, Arc<FuzzEstimator>, Arc<dyn Logger>>;
166-
type PeerMan<'a> = PeerManager<Peer<'a>, Arc<ChannelMan>, Arc<P2PGossipSync<Arc<NetworkGraph>, Arc<dyn chain::Access>, Arc<dyn Logger>>>, Arc<dyn Logger>, IgnoringMessageHandler>;
166+
type PeerMan<'a> = PeerManager<Peer<'a>, Arc<ChannelMan>, Arc<P2PGossipSync<Arc<NetworkGraph<Arc<dyn Logger>>>, Arc<dyn chain::Access>, Arc<dyn Logger>>>, Arc<dyn Logger>, IgnoringMessageHandler>;
167167

168168
struct MoneyLossDetector<'a> {
169169
manager: Arc<ChannelMan>,
@@ -395,7 +395,7 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
395395
// it's easier to just increment the counter here so the keys don't change.
396396
keys_manager.counter.fetch_sub(1, Ordering::AcqRel);
397397
let our_id = PublicKey::from_secret_key(&Secp256k1::signing_only(), &keys_manager.get_node_secret(Recipient::Node).unwrap());
398-
let network_graph = Arc::new(NetworkGraph::new(genesis_block(network).block_hash()));
398+
let network_graph = Arc::new(NetworkGraph::new(genesis_block(network).block_hash(), Arc::clone(&logger)));
399399
let gossip_sync = Arc::new(P2PGossipSync::new(Arc::clone(&network_graph), None, Arc::clone(&logger)));
400400
let scorer = FixedPenaltyScorer::with_penalty(0);
401401

@@ -460,7 +460,7 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
460460
final_cltv_expiry_delta: 42,
461461
};
462462
let random_seed_bytes: [u8; 32] = keys_manager.get_secure_random_bytes();
463-
let route = match find_route(&our_id, &params, &network_graph, None, Arc::clone(&logger), &scorer, &random_seed_bytes) {
463+
let route = match find_route(&our_id, &params, &network_graph.read_only(), None, Arc::clone(&logger), &scorer, &random_seed_bytes) {
464464
Ok(route) => route,
465465
Err(_) => return,
466466
};
@@ -484,7 +484,7 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
484484
final_cltv_expiry_delta: 42,
485485
};
486486
let random_seed_bytes: [u8; 32] = keys_manager.get_secure_random_bytes();
487-
let mut route = match find_route(&our_id, &params, &network_graph, None, Arc::clone(&logger), &scorer, &random_seed_bytes) {
487+
let mut route = match find_route(&our_id, &params, &network_graph.read_only(), None, Arc::clone(&logger), &scorer, &random_seed_bytes) {
488488
Ok(route) => route,
489489
Err(_) => return,
490490
};

fuzz/src/process_network_graph.rs

+10-5
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,27 @@
11
// Imports that need to be added manually
2+
use lightning::util::logger::Logger;
23
use lightning_rapid_gossip_sync::RapidGossipSync;
4+
35
use utils::test_logger;
46

7+
use std::sync::Arc;
8+
59
/// Actual fuzz test, method signature and name are fixed
6-
fn do_test(data: &[u8]) {
10+
fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
711
let block_hash = bitcoin::BlockHash::default();
8-
let network_graph = lightning::routing::gossip::NetworkGraph::new(block_hash);
12+
let logger: Arc<dyn Logger> = Arc::new(test_logger::TestLogger::new("".to_owned(), out));
13+
let network_graph = lightning::routing::gossip::NetworkGraph::new(block_hash, logger);
914
let rapid_sync = RapidGossipSync::new(&network_graph);
1015
let _ = rapid_sync.update_network_graph(data);
1116
}
1217

1318
/// Method that needs to be added manually, {name}_test
14-
pub fn process_network_graph_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
15-
do_test(data);
19+
pub fn process_network_graph_test<Out: test_logger::Output>(data: &[u8], out: Out) {
20+
do_test(data, out);
1621
}
1722

1823
/// Method that needs to be added manually, {name}_run
1924
#[no_mangle]
2025
pub extern "C" fn process_network_graph_run(data: *const u8, datalen: usize) {
21-
do_test(unsafe { std::slice::from_raw_parts(data, datalen) });
26+
do_test(unsafe { std::slice::from_raw_parts(data, datalen) }, test_logger::DevNull {});
2227
}

fuzz/src/router.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
162162
let logger: Arc<dyn Logger> = Arc::new(test_logger::TestLogger::new("".to_owned(), out));
163163

164164
let our_pubkey = get_pubkey!();
165-
let net_graph = NetworkGraph::new(genesis_block(Network::Bitcoin).header.block_hash());
165+
let net_graph = NetworkGraph::new(genesis_block(Network::Bitcoin).header.block_hash(), Arc::clone(&logger));
166166

167167
let mut node_pks = HashSet::new();
168168
let mut scid = 42;
@@ -267,7 +267,7 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
267267
final_value_msat: slice_to_be64(get_slice!(8)),
268268
final_cltv_expiry_delta: slice_to_be32(get_slice!(4)),
269269
};
270-
let _ = find_route(&our_pubkey, &route_params, &net_graph,
270+
let _ = find_route(&our_pubkey, &route_params, &net_graph.read_only(),
271271
first_hops.map(|c| c.iter().collect::<Vec<_>>()).as_ref().map(|a| a.as_slice()),
272272
Arc::clone(&logger), &scorer, &random_seed_bytes);
273273
}

0 commit comments

Comments
 (0)