X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning-rapid-gossip-sync%2Fsrc%2Flib.rs;h=6e9280f86a3f85909c8c25e49fc254bcc3a06819;hb=79b55f081557f7df7fc27f6c39574904bdbd1737;hp=e2e7807e398b48b327b63f6b5fec49a5724464df;hpb=312f765bd74fb355a20de2d5749579bb421185fa;p=rust-lightning diff --git a/lightning-rapid-gossip-sync/src/lib.rs b/lightning-rapid-gossip-sync/src/lib.rs index e2e7807e..6e9280f8 100644 --- a/lightning-rapid-gossip-sync/src/lib.rs +++ b/lightning-rapid-gossip-sync/src/lib.rs @@ -29,11 +29,18 @@ //! ``` //! use bitcoin::blockdata::constants::genesis_block; //! use bitcoin::Network; -//! use lightning::routing::network_graph::NetworkGraph; +//! use lightning::routing::gossip::NetworkGraph; //! use lightning_rapid_gossip_sync::RapidGossipSync; //! +//! # use lightning::util::logger::{Logger, Record}; +//! # struct FakeLogger {} +//! # impl Logger for FakeLogger { +//! # fn log(&self, record: &Record) { unimplemented!() } +//! # } +//! # let logger = FakeLogger {}; +//! //! let block_hash = genesis_block(Network::Bitcoin).header.block_hash(); -//! let network_graph = NetworkGraph::new(block_hash); +//! let network_graph = NetworkGraph::new(block_hash, &logger); //! let rapid_sync = RapidGossipSync::new(&network_graph); //! let new_last_sync_timestamp_result = rapid_sync.sync_network_graph_with_file_path("./rapid_sync.lngossip"); //! ``` @@ -62,7 +69,8 @@ use std::fs::File; use std::ops::Deref; use std::sync::atomic::{AtomicBool, Ordering}; -use lightning::routing::network_graph::NetworkGraph; +use lightning::routing::gossip::NetworkGraph; +use lightning::util::logger::Logger; use crate::error::GraphSyncError; @@ -76,12 +84,13 @@ pub mod processing; /// See [crate-level documentation] for usage. /// /// [crate-level documentation]: crate -pub struct RapidGossipSync> { +pub struct RapidGossipSync>, L: Deref> +where L::Target: Logger { network_graph: NG, is_initial_sync_complete: AtomicBool } -impl> RapidGossipSync { +impl>, L: Deref> RapidGossipSync where L::Target: Logger { /// Instantiate a new [`RapidGossipSync`] instance pub fn new(network_graph: NG) -> Self { Self { @@ -127,7 +136,8 @@ mod tests { use bitcoin::Network; use lightning::ln::msgs::DecodeError; - use lightning::routing::network_graph::NetworkGraph; + use lightning::routing::gossip::NetworkGraph; + use lightning::util::test_utils::TestLogger; use crate::RapidGossipSync; #[test] @@ -187,7 +197,8 @@ mod tests { let graph_sync_test_file = sync_test.get_test_file_path(); let block_hash = genesis_block(Network::Bitcoin).block_hash(); - let network_graph = NetworkGraph::new(block_hash); + let logger = TestLogger::new(); + let network_graph = NetworkGraph::new(block_hash, &logger); assert_eq!(network_graph.read_only().channels().len(), 0); @@ -219,7 +230,8 @@ mod tests { #[test] fn measure_native_read_from_file() { let block_hash = genesis_block(Network::Bitcoin).block_hash(); - let network_graph = NetworkGraph::new(block_hash); + let logger = TestLogger::new(); + let network_graph = NetworkGraph::new(block_hash, &logger); assert_eq!(network_graph.read_only().channels().len(), 0); @@ -228,7 +240,7 @@ mod tests { let sync_result = rapid_sync .sync_network_graph_with_file_path("./res/full_graph.lngossip"); if let Err(crate::error::GraphSyncError::DecodeError(DecodeError::Io(io_error))) = &sync_result { - let error_string = format!("Input file lightning-rapid-gossip-sync/res/full_graph.lngossip is missing! Download it from https://bitcoin.ninja/ldk-compressed_graph-bc08df7542-2022-05-05.bin\n\n{:?}", io_error); + let error_string = format!("Input file lightning-rapid-gossip-sync/res/full_graph.lngossip is missing! Download it from https://bitcoin.ninja/ldk-compressed_graph-285cb27df79-2022-07-21.bin\n\n{:?}", io_error); #[cfg(not(require_route_graph_test))] { println!("{}", error_string); @@ -253,15 +265,17 @@ pub mod bench { use bitcoin::Network; use lightning::ln::msgs::DecodeError; - use lightning::routing::network_graph::NetworkGraph; + use lightning::routing::gossip::NetworkGraph; + use lightning::util::test_utils::TestLogger; use crate::RapidGossipSync; #[bench] fn bench_reading_full_graph_from_file(b: &mut Bencher) { let block_hash = genesis_block(Network::Bitcoin).block_hash(); + let logger = TestLogger::new(); b.iter(|| { - let network_graph = NetworkGraph::new(block_hash); + let network_graph = NetworkGraph::new(block_hash, &logger); let rapid_sync = RapidGossipSync::new(&network_graph); let sync_result = rapid_sync.sync_network_graph_with_file_path("./res/full_graph.lngossip"); if let Err(crate::error::GraphSyncError::DecodeError(DecodeError::Io(io_error))) = &sync_result { @@ -271,6 +285,7 @@ pub mod bench { println!("{}", error_string); return; } + #[cfg(require_route_graph_test)] panic!("{}", error_string); } assert!(sync_result.is_ok())