1- use std:: fs:: OpenOptions ;
2- use std:: io:: { BufWriter , Write } ;
31use std:: ops:: Deref ;
42use std:: sync:: Arc ;
53use std:: time:: { Duration , Instant } ;
64use lightning:: log_info;
7- use lightning:: routing:: gossip:: NetworkGraph ;
85use lightning:: util:: logger:: Logger ;
96use lightning:: util:: ser:: Writeable ;
107use tokio:: runtime:: Runtime ;
@@ -18,13 +15,12 @@ const INSERT_PARALELLISM: usize = 16;
1815
1916pub ( crate ) struct GossipPersister < L : Deref > where L :: Target : Logger {
2017 gossip_persistence_receiver : mpsc:: Receiver < GossipMessage > ,
21- network_graph : Arc < NetworkGraph < L > > ,
2218 tokio_runtime : Runtime ,
2319 logger : L
2420}
2521
2622impl < L : Deref + Clone + Send + Sync + ' static > GossipPersister < L > where L :: Target : Logger {
27- pub async fn new ( network_graph : Arc < NetworkGraph < L > > , logger : L ) -> ( Self , mpsc:: Sender < GossipMessage > ) {
23+ pub async fn new ( logger : L ) -> ( Self , mpsc:: Sender < GossipMessage > ) {
2824 { // initialize the database
2925 // this client instance is only used once
3026 let mut client = crate :: connect_to_db ( ) . await ;
@@ -86,7 +82,6 @@ impl<L: Deref + Clone + Send + Sync + 'static> GossipPersister<L> where L::Targe
8682 let runtime = Runtime :: new ( ) . unwrap ( ) ;
8783 ( GossipPersister {
8884 gossip_persistence_receiver,
89- network_graph,
9085 tokio_runtime : runtime,
9186 logger
9287 } , gossip_persistence_sender)
@@ -96,7 +91,6 @@ impl<L: Deref + Clone + Send + Sync + 'static> GossipPersister<L> where L::Targe
9691 // print log statement every minute
9792 let mut latest_persistence_log = Instant :: now ( ) - Duration :: from_secs ( 60 ) ;
9893 let mut i = 0u32 ;
99- let mut latest_graph_cache_time = Instant :: now ( ) ;
10094 let insert_limiter = Arc :: new ( Semaphore :: new ( INSERT_PARALELLISM ) ) ;
10195 let connections_cache = Arc :: new ( Mutex :: new ( Vec :: with_capacity ( INSERT_PARALELLISM ) ) ) ;
10296 #[ cfg( test) ]
@@ -112,11 +106,6 @@ impl<L: Deref + Clone + Send + Sync + 'static> GossipPersister<L> where L::Targe
112106 latest_persistence_log = Instant :: now ( ) ;
113107 }
114108
115- // has it been ten minutes? Just cache it
116- if latest_graph_cache_time. elapsed ( ) . as_secs ( ) >= 600 {
117- self . persist_network_graph ( ) ;
118- latest_graph_cache_time = Instant :: now ( ) ;
119- }
120109 insert_limiter. acquire ( ) . await . unwrap ( ) . forget ( ) ;
121110
122111 let limiter_ref = Arc :: clone ( & insert_limiter) ;
@@ -309,20 +298,4 @@ impl<L: Deref + Clone + Send + Sync + 'static> GossipPersister<L> where L::Targe
309298 task. await . unwrap ( ) ;
310299 }
311300 }
312-
313- fn persist_network_graph ( & self ) {
314- log_info ! ( self . logger, "Caching network graph…" ) ;
315- let cache_path = config:: network_graph_cache_path ( ) ;
316- let file = OpenOptions :: new ( )
317- . create ( true )
318- . write ( true )
319- . truncate ( true )
320- . open ( & cache_path)
321- . unwrap ( ) ;
322- self . network_graph . remove_stale_channels_and_tracking ( ) ;
323- let mut writer = BufWriter :: new ( file) ;
324- self . network_graph . write ( & mut writer) . unwrap ( ) ;
325- writer. flush ( ) . unwrap ( ) ;
326- log_info ! ( self . logger, "Cached network graph!" ) ;
327- }
328301}
0 commit comments