X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain.rs;h=31fb84eeebeb8e79f19602b41b12fec47558bc1f;hb=4901136cfe2e50e66b3e999c1fbcec5e618ba4b5;hp=f51528b7b57832b3caf279b2f7fd856b6377de87;hpb=8c621ea7609c9cc785b93862e4afed93b43218b5;p=ldk-sample diff --git a/src/main.rs b/src/main.rs index f51528b..31fb84e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -577,6 +577,26 @@ async fn start_ldk() { Err(e) => println!("ERROR: errored reading channel peer info from disk: {:?}", e), } + // Regularly broadcast our node_announcement. This is only required (or possible) if we have + // some public channels, and is only useful if we have public listen address(es) to announce. + // In a production environment, this should occur only after the announcement of new channels + // to avoid churn in the global network graph. + let chan_manager = Arc::clone(&channel_manager); + let network = args.network; + if args.ldk_announced_listen_addr.is_some() { + tokio::spawn(async move { + let mut interval = tokio::time::interval(Duration::from_secs(60)); + loop { + interval.tick().await; + chan_manager.broadcast_node_announcement( + [0; 3], + args.ldk_announced_node_name, + vec![args.ldk_announced_listen_addr.as_ref().unwrap().clone()], + ); + } + }); + } + // Start the CLI. cli::poll_for_user_input( peer_manager.clone(), @@ -588,7 +608,7 @@ async fn start_ldk() { event_ntfn_sender, ldk_data_dir.clone(), logger.clone(), - args.network, + network, ) .await; }