@@ -423,89 +423,89 @@ impl Node {
423423 }
424424 } ) ;
425425
426- // Regularly broadcast node announcements.
427- let bcast_cm = Arc :: clone ( & self . channel_manager ) ;
428- let bcast_pm = Arc :: clone ( & self . peer_manager ) ;
429- let bcast_config = Arc :: clone ( & self . config ) ;
430- let bcast_store = Arc :: clone ( & self . kv_store ) ;
431- let bcast_logger = Arc :: clone ( & self . logger ) ;
432- let bcast_node_metrics = Arc :: clone ( & self . node_metrics ) ;
433- let mut stop_bcast = self . stop_sender . subscribe ( ) ;
434- let node_alias = self . config . node_alias . clone ( ) ;
435- if may_announce_channel ( & self . config ) . is_ok ( ) {
436- self . runtime . spawn_cancellable_background_task ( async move {
437- // We check every 30 secs whether our last broadcast is NODE_ANN_BCAST_INTERVAL away.
438- #[ cfg( not( test) ) ]
439- let mut interval = tokio:: time:: interval ( Duration :: from_secs ( 30 ) ) ;
440- #[ cfg( test) ]
441- let mut interval = tokio:: time:: interval ( Duration :: from_secs ( 5 ) ) ;
442- loop {
443- tokio:: select! {
444- _ = stop_bcast. changed( ) => {
445- log_debug!(
446- bcast_logger,
447- "Stopping broadcasting node announcements." ,
448- ) ;
449- return ;
450- }
451- _ = interval. tick( ) => {
452- let skip_broadcast = match bcast_node_metrics. read( ) . unwrap( ) . latest_node_announcement_broadcast_timestamp {
453- Some ( latest_bcast_time_secs) => {
454- // Skip if the time hasn't elapsed yet.
455- let next_bcast_unix_time = SystemTime :: UNIX_EPOCH + Duration :: from_secs( latest_bcast_time_secs) + NODE_ANN_BCAST_INTERVAL ;
456- next_bcast_unix_time. elapsed( ) . is_err( )
457- }
458- None => {
459- // Don't skip if we haven't broadcasted before.
460- false
461- }
462- } ;
463-
464- if skip_broadcast {
465- continue ;
466- }
467-
468- if !bcast_cm. list_channels( ) . iter( ) . any( |chan| chan. is_announced && chan. is_channel_ready) {
469- // Skip if we don't have any public channels that are ready.
470- continue ;
471- }
472-
473- if bcast_pm. list_peers( ) . is_empty( ) {
474- // Skip if we don't have any connected peers to gossip to.
475- continue ;
476- }
477-
478- let addresses = if let Some ( announcement_addresses) = bcast_config. announcement_addresses. clone( ) {
479- announcement_addresses
480- } else if let Some ( listening_addresses) = bcast_config. listening_addresses. clone( ) {
481- listening_addresses
482- } else {
483- debug_assert!( false , "We checked whether the node may announce, so listening addresses should always be set" ) ;
484- continue ;
485- } ;
486-
487- if let Some ( node_alias) = node_alias. as_ref( ) {
488- bcast_pm. broadcast_node_announcement( [ 0 ; 3 ] , node_alias. 0 , addresses) ;
489-
490- let unix_time_secs_opt =
491- SystemTime :: now( ) . duration_since( UNIX_EPOCH ) . ok( ) . map( |d| d. as_secs( ) ) ;
492- {
493- let mut locked_node_metrics = bcast_node_metrics. write( ) . unwrap( ) ;
494- locked_node_metrics. latest_node_announcement_broadcast_timestamp = unix_time_secs_opt;
495- write_node_metrics( & * locked_node_metrics, Arc :: clone( & bcast_store) , Arc :: clone( & bcast_logger) )
496- . unwrap_or_else( |e| {
497- log_error!( bcast_logger, "Persistence failed: {}" , e) ;
498- } ) ;
499- }
500- } else {
501- debug_assert!( false , "We checked whether the node may announce, so node alias should always be set" ) ;
502- continue
503- }
504- }
505- }
506- }
507- } ) ;
508- }
426+ //// Regularly broadcast node announcements.
427+ // let bcast_cm = Arc::clone(&self.channel_manager);
428+ // let bcast_pm = Arc::clone(&self.peer_manager);
429+ // let bcast_config = Arc::clone(&self.config);
430+ // let bcast_store = Arc::clone(&self.kv_store);
431+ // let bcast_logger = Arc::clone(&self.logger);
432+ // let bcast_node_metrics = Arc::clone(&self.node_metrics);
433+ // let mut stop_bcast = self.stop_sender.subscribe();
434+ // let node_alias = self.config.node_alias.clone();
435+ // if may_announce_channel(&self.config).is_ok() {
436+ // self.runtime.spawn_cancellable_background_task(async move {
437+ // // We check every 30 secs whether our last broadcast is NODE_ANN_BCAST_INTERVAL away.
438+ // #[cfg(not(test))]
439+ // let mut interval = tokio::time::interval(Duration::from_secs(30));
440+ // #[cfg(test)]
441+ // let mut interval = tokio::time::interval(Duration::from_secs(5));
442+ // loop {
443+ // tokio::select! {
444+ // _ = stop_bcast.changed() => {
445+ // log_debug!(
446+ // bcast_logger,
447+ // "Stopping broadcasting node announcements.",
448+ // );
449+ // return;
450+ // }
451+ // _ = interval.tick() => {
452+ // let skip_broadcast = match bcast_node_metrics.read().unwrap().latest_node_announcement_broadcast_timestamp {
453+ // Some(latest_bcast_time_secs) => {
454+ // // Skip if the time hasn't elapsed yet.
455+ // let next_bcast_unix_time = SystemTime::UNIX_EPOCH + Duration::from_secs(latest_bcast_time_secs) + NODE_ANN_BCAST_INTERVAL;
456+ // next_bcast_unix_time.elapsed().is_err()
457+ // }
458+ // None => {
459+ // // Don't skip if we haven't broadcasted before.
460+ // false
461+ // }
462+ // };
463+
464+ // if skip_broadcast {
465+ // continue;
466+ // }
467+
468+ // if !bcast_cm.list_channels().iter().any(|chan| chan.is_announced && chan.is_channel_ready) {
469+ // // Skip if we don't have any public channels that are ready.
470+ // continue;
471+ // }
472+
473+ // if bcast_pm.list_peers().is_empty() {
474+ // // Skip if we don't have any connected peers to gossip to.
475+ // continue;
476+ // }
477+
478+ // let addresses = if let Some(announcement_addresses) = bcast_config.announcement_addresses.clone() {
479+ // announcement_addresses
480+ // } else if let Some(listening_addresses) = bcast_config.listening_addresses.clone() {
481+ // listening_addresses
482+ // } else {
483+ // debug_assert!(false, "We checked whether the node may announce, so listening addresses should always be set");
484+ // continue;
485+ // };
486+
487+ // // if let Some(node_alias) = node_alias.as_ref() {
488+ // // bcast_pm.broadcast_node_announcement([0; 3], node_alias.0, addresses);
489+
490+ // // let unix_time_secs_opt =
491+ // // SystemTime::now().duration_since(UNIX_EPOCH).ok().map(|d| d.as_secs());
492+ // // {
493+ // // let mut locked_node_metrics = bcast_node_metrics.write().unwrap();
494+ // // locked_node_metrics.latest_node_announcement_broadcast_timestamp = unix_time_secs_opt;
495+ // // write_node_metrics(&*locked_node_metrics, Arc::clone(&bcast_store), Arc::clone(&bcast_logger))
496+ // // .unwrap_or_else(|e| {
497+ // // log_error!(bcast_logger, "Persistence failed: {}", e);
498+ // // });
499+ // // }
500+ // // } else {
501+ // // debug_assert!(false, "We checked whether the node may announce, so node alias should always be set");
502+ // // continue
503+ // // }
504+ // }
505+ // }
506+ // }
507+ // });
508+ // }
509509
510510 let stop_tx_bcast = self . stop_sender . subscribe ( ) ;
511511 let chain_source = Arc :: clone ( & self . chain_source ) ;
0 commit comments