Skip to content

Commit 3d88eb8

Browse files
committed
Update fuzzing with new net graph module
1 parent 9aa51ea commit 3d88eb8

File tree

3 files changed

+21
-16
lines changed

3 files changed

+21
-16
lines changed

fuzz/src/chanmon_consistency.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ use lightning::chain::keysinterface::{KeysInterface, InMemoryChannelKeys};
2727
use lightning::ln::channelmonitor;
2828
use lightning::ln::channelmonitor::{ChannelMonitor, ChannelMonitorUpdateErr, HTLCUpdate};
2929
use lightning::ln::channelmanager::{ChannelManager, PaymentHash, PaymentPreimage, PaymentSecret, ChannelManagerReadArgs};
30-
use lightning::ln::router::{Route, RouteHop};
30+
use lightning::routing::router::{Route, RouteHop};
3131
use lightning::ln::features::{ChannelFeatures, InitFeatures, NodeFeatures};
3232
use lightning::ln::msgs::{CommitmentUpdate, ChannelMessageHandler, ErrorAction, UpdateAddHTLC, Init};
3333
use lightning::util::enforcing_trait_impls::EnforcingChannelKeys;

fuzz/src/full_stack.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ use lightning::chain::keysinterface::{InMemoryChannelKeys, KeysInterface};
2323
use lightning::ln::channelmonitor;
2424
use lightning::ln::channelmanager::{ChannelManager, PaymentHash, PaymentPreimage, PaymentSecret};
2525
use lightning::ln::peer_handler::{MessageHandler,PeerManager,SocketDescriptor};
26-
use lightning::ln::router::Router;
26+
use lightning::routing::router::get_route;
27+
use lightning::routing::network_graph::NetGraphMsgHandler;
2728
use lightning::util::events::{EventsProvider,Event};
2829
use lightning::util::enforcing_trait_impls::EnforcingChannelKeys;
2930
use lightning::util::logger::Logger;
@@ -332,12 +333,13 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
332333
config.channel_options.announced_channel = get_slice!(1)[0] != 0;
333334
config.peer_channel_config_limits.min_dust_limit_satoshis = 0;
334335
let channelmanager = Arc::new(ChannelManager::new(Network::Bitcoin, fee_est.clone(), monitor.clone(), broadcast.clone(), Arc::clone(&logger), keys_manager.clone(), config, 0).unwrap());
335-
let router = Arc::new(Router::new(PublicKey::from_secret_key(&Secp256k1::signing_only(), &keys_manager.get_node_secret()), watch.clone(), Arc::clone(&logger)));
336+
let our_id = PublicKey::from_secret_key(&Secp256k1::signing_only(), &keys_manager.get_node_secret());
337+
let net_graph_msg_handler = Arc::new(NetGraphMsgHandler::new(watch.clone(), Arc::clone(&logger)));
336338

337339
let peers = RefCell::new([false; 256]);
338340
let mut loss_detector = MoneyLossDetector::new(&peers, channelmanager.clone(), monitor.clone(), PeerManager::new(MessageHandler {
339341
chan_handler: channelmanager.clone(),
340-
route_handler: router.clone(),
342+
route_handler: net_graph_msg_handler.clone(),
341343
}, our_network_key, &[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0], Arc::clone(&logger)));
342344

343345
let mut should_forward = false;
@@ -389,7 +391,7 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
389391
},
390392
4 => {
391393
let value = slice_to_be24(get_slice!(3)) as u64;
392-
let route = match router.get_route(&get_pubkey!(), None, &Vec::new(), value, 42) {
394+
let route = match get_route(&our_id, &net_graph_msg_handler, &get_pubkey!(), None, &Vec::new(), value, 42, Arc::clone(&logger)) {
393395
Ok(route) => route,
394396
Err(_) => return,
395397
};
@@ -406,7 +408,7 @@ pub fn do_test(data: &[u8], logger: &Arc<dyn Logger>) {
406408
},
407409
15 => {
408410
let value = slice_to_be24(get_slice!(3)) as u64;
409-
let mut route = match router.get_route(&get_pubkey!(), None, &Vec::new(), value, 42) {
411+
let mut route = match get_route(&our_id, &net_graph_msg_handler, &get_pubkey!(), None, &Vec::new(), value, 42, Arc::clone(&logger)) {
410412
Ok(route) => route,
411413
Err(_) => return,
412414
};

fuzz/src/router.rs

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,10 @@ use lightning::ln::channelmanager::ChannelDetails;
88
use lightning::ln::features::InitFeatures;
99
use lightning::ln::msgs;
1010
use lightning::ln::msgs::RoutingMessageHandler;
11-
use lightning::ln::router::{Router, RouteHint};
11+
use lightning::routing::router::{get_route, RouteHint};
1212
use lightning::util::logger::Logger;
1313
use lightning::util::ser::Readable;
14+
use lightning::routing::network_graph::{NetGraphMsgHandler, RoutingFees};
1415

1516
use bitcoin::secp256k1::key::PublicKey;
1617

@@ -156,7 +157,7 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
156157
});
157158

158159
let our_pubkey = get_pubkey!();
159-
let router = Router::new(our_pubkey.clone(), chain_monitor, Arc::clone(&logger));
160+
let net_graph_msg_handler = NetGraphMsgHandler::new(chain_monitor, Arc::clone(&logger));
160161

161162
loop {
162163
match get_slice!(1)[0] {
@@ -166,22 +167,22 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
166167
if addr_len > (37+1)*4 {
167168
return;
168169
}
169-
let _ = router.handle_node_announcement(&decode_msg_with_len16!(msgs::NodeAnnouncement, 64, 288));
170+
let _ = net_graph_msg_handler.handle_node_announcement(&decode_msg_with_len16!(msgs::NodeAnnouncement, 64, 288));
170171
},
171172
1 => {
172-
let _ = router.handle_channel_announcement(&decode_msg_with_len16!(msgs::ChannelAnnouncement, 64*4, 32+8+33*4));
173+
let _ = net_graph_msg_handler.handle_channel_announcement(&decode_msg_with_len16!(msgs::ChannelAnnouncement, 64*4, 32+8+33*4));
173174
},
174175
2 => {
175-
let _ = router.handle_channel_update(&decode_msg!(msgs::ChannelUpdate, 128));
176+
let _ = net_graph_msg_handler.handle_channel_update(&decode_msg!(msgs::ChannelUpdate, 128));
176177
},
177178
3 => {
178179
match get_slice!(1)[0] {
179180
0 => {
180-
router.handle_htlc_fail_channel_update(&msgs::HTLCFailChannelUpdate::ChannelUpdateMessage {msg: decode_msg!(msgs::ChannelUpdate, 128)});
181+
net_graph_msg_handler.handle_htlc_fail_channel_update(&msgs::HTLCFailChannelUpdate::ChannelUpdateMessage {msg: decode_msg!(msgs::ChannelUpdate, 128)});
181182
},
182183
1 => {
183184
let short_channel_id = slice_to_be64(get_slice!(8));
184-
router.handle_htlc_fail_channel_update(&msgs::HTLCFailChannelUpdate::ChannelClosed {short_channel_id, is_permanent: false});
185+
net_graph_msg_handler.handle_htlc_fail_channel_update(&msgs::HTLCFailChannelUpdate::ChannelClosed {short_channel_id, is_permanent: false});
185186
},
186187
_ => return,
187188
}
@@ -217,15 +218,17 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
217218
last_hops_vec.push(RouteHint {
218219
src_node_id: get_pubkey!(),
219220
short_channel_id: slice_to_be64(get_slice!(8)),
220-
fee_base_msat: slice_to_be32(get_slice!(4)),
221-
fee_proportional_millionths: slice_to_be32(get_slice!(4)),
221+
fees: RoutingFees {
222+
base_msat: slice_to_be32(get_slice!(4)),
223+
proportional_millionths: slice_to_be32(get_slice!(4)),
224+
},
222225
cltv_expiry_delta: slice_to_be16(get_slice!(2)),
223226
htlc_minimum_msat: slice_to_be64(get_slice!(8)),
224227
});
225228
}
226229
&last_hops_vec[..]
227230
};
228-
let _ = router.get_route(&target, first_hops, last_hops, slice_to_be64(get_slice!(8)), slice_to_be32(get_slice!(4)));
231+
let _ = get_route(&our_pubkey, &net_graph_msg_handler, &target, first_hops, last_hops, slice_to_be64(get_slice!(8)), slice_to_be32(get_slice!(4)), Arc::clone(&logger));
229232
},
230233
_ => return,
231234
}

0 commit comments

Comments
 (0)