@@ -61,6 +61,7 @@ use util::ser::{Readable, ReadableArgs, Writeable, Writer};
61
61
use util:: logger:: Logger ;
62
62
63
63
use prelude:: * ;
64
+ use core:: fmt;
64
65
use core:: cell:: { RefCell , RefMut } ;
65
66
use core:: ops:: { Deref , DerefMut } ;
66
67
use core:: time:: Duration ;
@@ -790,22 +791,29 @@ impl<L: Deref<Target = u64>, T: Time, U: Deref<Target = T>> DirectedChannelLiqui
790
791
791
792
impl < L : DerefMut < Target = u64 > , T : Time , U : DerefMut < Target = T > > DirectedChannelLiquidity < L , T , U > {
792
793
/// Adjusts the channel liquidity balance bounds when failing to route `amount_msat`.
793
- fn failed_at_channel ( & mut self , amount_msat : u64 ) {
794
+ fn failed_at_channel < Log : Deref > ( & mut self , amount_msat : u64 , chan_descr : fmt :: Arguments , logger : & Log ) where Log :: Target : Logger {
794
795
if amount_msat < self . max_liquidity_msat ( ) {
796
+ log_debug ! ( logger, "Setting max liquidity of {} to {}" , chan_descr, amount_msat) ;
795
797
self . set_max_liquidity_msat ( amount_msat) ;
798
+ } else {
799
+ log_trace ! ( logger, "Max liquidity of {} already more than {}" , chan_descr, amount_msat) ;
796
800
}
797
801
}
798
802
799
803
/// Adjusts the channel liquidity balance bounds when failing to route `amount_msat` downstream.
800
- fn failed_downstream ( & mut self , amount_msat : u64 ) {
804
+ fn failed_downstream < Log : Deref > ( & mut self , amount_msat : u64 , chan_descr : fmt :: Arguments , logger : & Log ) where Log :: Target : Logger {
801
805
if amount_msat > self . min_liquidity_msat ( ) {
806
+ log_debug ! ( logger, "Setting min liquidity of {} to {}" , chan_descr, amount_msat) ;
802
807
self . set_min_liquidity_msat ( amount_msat) ;
808
+ } else {
809
+ log_trace ! ( logger, "Min liquidity of {} already less than {}" , chan_descr, amount_msat) ;
803
810
}
804
811
}
805
812
806
813
/// Adjusts the channel liquidity balance bounds when successfully routing `amount_msat`.
807
- fn successful ( & mut self , amount_msat : u64 ) {
814
+ fn successful < Log : Deref > ( & mut self , amount_msat : u64 , chan_descr : fmt :: Arguments , logger : & Log ) where Log :: Target : Logger {
808
815
let max_liquidity_msat = self . max_liquidity_msat ( ) . checked_sub ( amount_msat) . unwrap_or ( 0 ) ;
816
+ log_debug ! ( logger, "Subtracting {} from max liquidity of {} (setting it to {})" , amount_msat, chan_descr, max_liquidity_msat) ;
809
817
self . set_max_liquidity_msat ( max_liquidity_msat) ;
810
818
}
811
819
@@ -848,6 +856,7 @@ impl<G: Deref<Target = NetworkGraph>, L: Deref, T: Time> Score for Probabilistic
848
856
fn payment_path_failed ( & mut self , path : & [ & RouteHop ] , short_channel_id : u64 ) {
849
857
let amount_msat = path. split_last ( ) . map ( |( hop, _) | hop. fee_msat ) . unwrap_or ( 0 ) ;
850
858
let liquidity_offset_half_life = self . params . liquidity_offset_half_life ;
859
+ log_trace ! ( self . logger, "Scoring path through to SCID {} as having failed at {} msat" , short_channel_id, amount_msat) ;
851
860
let network_graph = self . network_graph . read_only ( ) ;
852
861
for hop in path {
853
862
let target = NodeId :: from_pubkey ( & hop. pubkey ) ;
@@ -863,22 +872,27 @@ impl<G: Deref<Target = NetworkGraph>, L: Deref, T: Time> Score for Probabilistic
863
872
. entry ( hop. short_channel_id )
864
873
. or_insert_with ( ChannelLiquidity :: new)
865
874
. as_directed_mut ( source, & target, capacity_msat, liquidity_offset_half_life)
866
- . failed_at_channel ( amount_msat) ;
875
+ . failed_at_channel ( amount_msat, format_args ! ( "SCID {}, towards {:?}" , hop . short_channel_id , target ) , & self . logger ) ;
867
876
break ;
868
877
}
869
878
870
879
self . channel_liquidities
871
880
. entry ( hop. short_channel_id )
872
881
. or_insert_with ( ChannelLiquidity :: new)
873
882
. as_directed_mut ( source, & target, capacity_msat, liquidity_offset_half_life)
874
- . failed_downstream ( amount_msat) ;
883
+ . failed_downstream ( amount_msat, format_args ! ( "SCID {}, towards {:?}" , hop. short_channel_id, target) , & self . logger ) ;
884
+ } else {
885
+ log_debug ! ( self . logger, "Not able to penalize channel with SCID {} as we do not have graph info for it (likely a route-hint last-hop)." ,
886
+ hop. short_channel_id) ;
875
887
}
876
888
}
877
889
}
878
890
879
891
fn payment_path_successful ( & mut self , path : & [ & RouteHop ] ) {
880
892
let amount_msat = path. split_last ( ) . map ( |( hop, _) | hop. fee_msat ) . unwrap_or ( 0 ) ;
881
893
let liquidity_offset_half_life = self . params . liquidity_offset_half_life ;
894
+ log_trace ! ( self . logger, "Scoring path through SCID {} as having succeeded at {} msat." ,
895
+ path. split_last( ) . map( |( hop, _) | hop. short_channel_id) . unwrap_or( 0 ) , amount_msat) ;
882
896
let network_graph = self . network_graph . read_only ( ) ;
883
897
for hop in path {
884
898
let target = NodeId :: from_pubkey ( & hop. pubkey ) ;
@@ -893,7 +907,10 @@ impl<G: Deref<Target = NetworkGraph>, L: Deref, T: Time> Score for Probabilistic
893
907
. entry ( hop. short_channel_id )
894
908
. or_insert_with ( ChannelLiquidity :: new)
895
909
. as_directed_mut ( source, & target, capacity_msat, liquidity_offset_half_life)
896
- . successful ( amount_msat) ;
910
+ . successful ( amount_msat, format_args ! ( "SCID {}, towards {:?}" , hop. short_channel_id, target) , & self . logger ) ;
911
+ } else {
912
+ log_debug ! ( self . logger, "Not able to learn for channel with SCID {} as we do not have graph info for it (likely a route-hint last-hop)." ,
913
+ hop. short_channel_id) ;
897
914
}
898
915
}
899
916
}
0 commit comments