@@ -34,6 +34,8 @@ use lightning::routing::scoring::ProbabilisticScoringFeeParameters;
3434use lightning:: sign:: { EntropySource , InMemorySigner , KeysManager } ;
3535use lightning:: types:: payment:: { PaymentHash , PaymentPreimage , PaymentSecret } ;
3636use lightning:: util:: config:: UserConfig ;
37+ use lightning:: util:: hash_tables:: hash_map:: Entry ;
38+ use lightning:: util:: hash_tables:: HashMap ;
3739use lightning:: util:: persist:: {
3840 self , KVStore , MonitorUpdatingPersister , OUTPUT_SWEEPER_PERSISTENCE_KEY ,
3941 OUTPUT_SWEEPER_PERSISTENCE_PRIMARY_NAMESPACE , OUTPUT_SWEEPER_PERSISTENCE_SECONDARY_NAMESPACE ,
@@ -49,8 +51,7 @@ use lightning_block_sync::UnboundedCache;
4951use lightning_net_tokio:: SocketDescriptor ;
5052use lightning_persister:: fs_store:: FilesystemStore ;
5153use rand:: { thread_rng, Rng } ;
52- use std:: collections:: hash_map:: Entry ;
53- use std:: collections:: HashMap ;
54+ use std:: collections:: HashMap as StdHashMap ;
5455use std:: convert:: TryInto ;
5556use std:: fmt;
5657use std:: fs;
@@ -158,7 +159,7 @@ pub(crate) type PeerManager = SimpleArcPeerManager<
158159 ChainMonitor ,
159160 BitcoindClient ,
160161 BitcoindClient ,
161- GossipVerifier ,
162+ Arc < GossipVerifier > ,
162163 FilesystemLogger ,
163164> ;
164165
@@ -219,7 +220,7 @@ async fn handle_ldk_events(
219220 )
220221 . expect ( "Lightning funding tx should always be to a SegWit output" )
221222 . to_address ( ) ;
222- let mut outputs = vec ! [ HashMap :: with_capacity ( 1 ) ] ;
223+ let mut outputs = vec ! [ StdHashMap :: new ( ) ] ;
223224 outputs[ 0 ] . insert ( addr, channel_value_satoshis as f64 / 100_000_000.0 ) ;
224225 let raw_tx = bitcoind_client. create_raw_transaction ( outputs) . await ;
225226
@@ -246,17 +247,7 @@ async fn handle_ldk_events(
246247 Event :: FundingTxBroadcastSafe { .. } => {
247248 // We don't use the manual broadcasting feature, so this event should never be seen.
248249 } ,
249- Event :: PaymentClaimable {
250- payment_hash,
251- purpose,
252- amount_msat,
253- receiver_node_id : _,
254- via_channel_id : _,
255- via_user_channel_id : _,
256- claim_deadline : _,
257- onion_fields : _,
258- counterparty_skimmed_fee_msat : _,
259- } => {
250+ Event :: PaymentClaimable { payment_hash, purpose, amount_msat, .. } => {
260251 println ! (
261252 "\n EVENT: received payment from payment hash {} of {} millisatoshis" ,
262253 payment_hash, amount_msat,
@@ -402,9 +393,7 @@ async fn handle_ldk_events(
402393 total_fee_earned_msat,
403394 claim_from_onchain_tx,
404395 outbound_amount_forwarded_msat,
405- skimmed_fee_msat : _,
406- prev_user_channel_id : _,
407- next_user_channel_id : _,
396+ ..
408397 } => {
409398 let read_only_network_graph = network_graph. read_only ( ) ;
410399 let nodes = read_only_network_graph. nodes ( ) ;
@@ -497,14 +486,7 @@ async fn handle_ldk_events(
497486 print ! ( "> " ) ;
498487 std:: io:: stdout ( ) . flush ( ) . unwrap ( ) ;
499488 } ,
500- Event :: ChannelClosed {
501- channel_id,
502- reason,
503- user_channel_id : _,
504- counterparty_node_id,
505- channel_capacity_sats : _,
506- channel_funding_txo : _,
507- } => {
489+ Event :: ChannelClosed { channel_id, reason, counterparty_node_id, .. } => {
508490 println ! (
509491 "\n EVENT: Channel {} with counterparty {} closed due to: {:?}" ,
510492 channel_id,
@@ -688,7 +670,7 @@ async fn start_ldk() {
688670 Arc :: clone ( & logger) ,
689671 ) ) ) ;
690672
691- // Step 10: Create Router
673+ // Step 10: Create Routers
692674 let scoring_fee_params = ProbabilisticScoringFeeParameters :: default ( ) ;
693675 let router = Arc :: new ( DefaultRouter :: new (
694676 network_graph. clone ( ) ,
@@ -698,6 +680,9 @@ async fn start_ldk() {
698680 scoring_fee_params,
699681 ) ) ;
700682
683+ let message_router =
684+ Arc :: new ( DefaultMessageRouter :: new ( Arc :: clone ( & network_graph) , Arc :: clone ( & keys_manager) ) ) ;
685+
701686 // Step 11: Initialize the ChannelManager
702687 let mut user_config = UserConfig :: default ( ) ;
703688 user_config. channel_handshake_limits . force_announced_channel_preference = false ;
@@ -706,9 +691,9 @@ async fn start_ldk() {
706691 let mut restarting_node = true ;
707692 let ( channel_manager_blockhash, channel_manager) = {
708693 if let Ok ( f) = fs:: File :: open ( format ! ( "{}/manager" , ldk_data_dir. clone( ) ) ) {
709- let mut channel_monitor_mut_references = Vec :: new ( ) ;
710- for ( _, channel_monitor) in channelmonitors. iter_mut ( ) {
711- channel_monitor_mut_references . push ( channel_monitor) ;
694+ let mut channel_monitor_references = Vec :: new ( ) ;
695+ for ( _, channel_monitor) in channelmonitors. iter ( ) {
696+ channel_monitor_references . push ( channel_monitor) ;
712697 }
713698 let read_args = ChannelManagerReadArgs :: new (
714699 keys_manager. clone ( ) ,
@@ -718,9 +703,10 @@ async fn start_ldk() {
718703 chain_monitor. clone ( ) ,
719704 broadcaster. clone ( ) ,
720705 router,
706+ Arc :: clone ( & message_router) ,
721707 logger. clone ( ) ,
722708 user_config,
723- channel_monitor_mut_references ,
709+ channel_monitor_references ,
724710 ) ;
725711 <( BlockHash , ChannelManager ) >:: read ( & mut BufReader :: new ( f) , read_args) . unwrap ( )
726712 } else {
@@ -736,6 +722,7 @@ async fn start_ldk() {
736722 chain_monitor. clone ( ) ,
737723 broadcaster. clone ( ) ,
738724 router,
725+ Arc :: clone ( & message_router) ,
739726 logger. clone ( ) ,
740727 keys_manager. clone ( ) ,
741728 keys_manager. clone ( ) ,
@@ -842,7 +829,8 @@ async fn start_ldk() {
842829 Arc :: clone ( & keys_manager) ,
843830 Arc :: clone ( & logger) ,
844831 Arc :: clone ( & channel_manager) ,
845- Arc :: new ( DefaultMessageRouter :: new ( Arc :: clone ( & network_graph) , Arc :: clone ( & keys_manager) ) ) ,
832+ Arc :: clone ( & message_router) ,
833+ Arc :: clone ( & channel_manager) ,
846834 Arc :: clone ( & channel_manager) ,
847835 Arc :: clone ( & channel_manager) ,
848836 IgnoringMessageHandler { } ,
@@ -871,7 +859,7 @@ async fn start_ldk() {
871859 Arc :: clone ( & gossip_sync) ,
872860 Arc :: clone ( & peer_manager) ,
873861 ) ;
874- gossip_sync. add_utxo_lookup ( Some ( utxo_lookup) ) ;
862+ gossip_sync. add_utxo_lookup ( Some ( Arc :: new ( utxo_lookup) ) ) ;
875863
876864 // ## Running LDK
877865 // Step 17: Initialize networking
0 commit comments