@@ -500,9 +500,16 @@ use core::task;
500500/// For example, in order to process background events in a [Tokio](https://tokio.rs/) task, you
501501/// could setup `process_events_async` like this:
502502/// ```
503- /// # struct MyPersister {}
504- /// # impl lightning::util::persist::KVStorePersister for MyPersister {
505- /// # fn persist<W: lightning::util::ser::Writeable>(&self, key: &str, object: &W) -> lightning::io::Result<()> { Ok(()) }
503+ /// # use lightning::io;
504+ /// # use std::sync::{Arc, Mutex};
505+ /// # use std::sync::atomic::{AtomicBool, Ordering};
506+ /// # use lightning_background_processor::{process_events_async, GossipSync};
507+ /// # struct MyStore {}
508+ /// # impl lightning::util::persist::KVStore for MyStore {
509+ /// # fn read(&self, namespace: &str, sub_namespace: &str, key: &str) -> io::Result<Vec<u8>> { Ok(Vec::new()) }
510+ /// # fn write(&self, namespace: &str, sub_namespace: &str, key: &str, buf: &[u8]) -> io::Result<()> { Ok(()) }
511+ /// # fn remove(&self, namespace: &str, sub_namespace: &str, key: &str, lazy: bool) -> io::Result<()> { Ok(()) }
512+ /// # fn list(&self, namespace: &str, sub_namespace: &str) -> io::Result<Vec<String>> { Ok(Vec::new()) }
506513/// # }
507514/// # struct MyEventHandler {}
508515/// # impl MyEventHandler {
@@ -514,23 +521,20 @@ use core::task;
514521/// # fn send_data(&mut self, _data: &[u8], _resume_read: bool) -> usize { 0 }
515522/// # fn disconnect_socket(&mut self) {}
516523/// # }
517- /// # use std::sync::{Arc, Mutex};
518- /// # use std::sync::atomic::{AtomicBool, Ordering};
519- /// # use lightning_background_processor::{process_events_async, GossipSync};
520524/// # type MyBroadcaster = dyn lightning::chain::chaininterface::BroadcasterInterface + Send + Sync;
521525/// # type MyFeeEstimator = dyn lightning::chain::chaininterface::FeeEstimator + Send + Sync;
522526/// # type MyNodeSigner = dyn lightning::sign::NodeSigner + Send + Sync;
523527/// # type MyUtxoLookup = dyn lightning::routing::utxo::UtxoLookup + Send + Sync;
524528/// # type MyFilter = dyn lightning::chain::Filter + Send + Sync;
525529/// # type MyLogger = dyn lightning::util::logger::Logger + Send + Sync;
526- /// # type MyChainMonitor = lightning::chain::chainmonitor::ChainMonitor<lightning::sign::InMemorySigner, Arc<MyFilter>, Arc<MyBroadcaster>, Arc<MyFeeEstimator>, Arc<MyLogger>, Arc<MyPersister >>;
530+ /// # type MyChainMonitor = lightning::chain::chainmonitor::ChainMonitor<lightning::sign::InMemorySigner, Arc<MyFilter>, Arc<MyBroadcaster>, Arc<MyFeeEstimator>, Arc<MyLogger>, Arc<MyStore >>;
527531/// # type MyPeerManager = lightning::ln::peer_handler::SimpleArcPeerManager<MySocketDescriptor, MyChainMonitor, MyBroadcaster, MyFeeEstimator, MyUtxoLookup, MyLogger>;
528532/// # type MyNetworkGraph = lightning::routing::gossip::NetworkGraph<Arc<MyLogger>>;
529533/// # type MyGossipSync = lightning::routing::gossip::P2PGossipSync<Arc<MyNetworkGraph>, Arc<MyUtxoLookup>, Arc<MyLogger>>;
530534/// # type MyChannelManager = lightning::ln::channelmanager::SimpleArcChannelManager<MyChainMonitor, MyBroadcaster, MyFeeEstimator, MyLogger>;
531535/// # type MyScorer = Mutex<lightning::routing::scoring::ProbabilisticScorer<Arc<MyNetworkGraph>, Arc<MyLogger>>>;
532536///
533- /// # async fn setup_background_processing(my_persister: Arc<MyPersister >, my_event_handler: Arc<MyEventHandler>, my_chain_monitor: Arc<MyChainMonitor>, my_channel_manager: Arc<MyChannelManager>, my_gossip_sync: Arc<MyGossipSync>, my_logger: Arc<MyLogger>, my_scorer: Arc<MyScorer>, my_peer_manager: Arc<MyPeerManager>) {
537+ /// # async fn setup_background_processing(my_persister: Arc<MyStore >, my_event_handler: Arc<MyEventHandler>, my_chain_monitor: Arc<MyChainMonitor>, my_channel_manager: Arc<MyChannelManager>, my_gossip_sync: Arc<MyGossipSync>, my_logger: Arc<MyLogger>, my_scorer: Arc<MyScorer>, my_peer_manager: Arc<MyPeerManager>) {
534538/// let background_persister = Arc::clone(&my_persister);
535539/// let background_event_handler = Arc::clone(&my_event_handler);
536540/// let background_chain_mon = Arc::clone(&my_chain_monitor);
@@ -866,8 +870,8 @@ mod tests {
866870 use lightning:: util:: config:: UserConfig ;
867871 use lightning:: util:: ser:: Writeable ;
868872 use lightning:: util:: test_utils;
869- use lightning:: util:: persist:: KVStorePersister ;
870- use lightning_persister:: FilesystemPersister ;
873+ use lightning:: util:: persist:: { KVStore , CHANNEL_MANAGER_PERSISTENCE_NAMESPACE , CHANNEL_MANAGER_PERSISTENCE_SUB_NAMESPACE , CHANNEL_MANAGER_PERSISTENCE_KEY , NETWORK_GRAPH_PERSISTENCE_NAMESPACE , NETWORK_GRAPH_PERSISTENCE_SUB_NAMESPACE , NETWORK_GRAPH_PERSISTENCE_KEY , SCORER_PERSISTENCE_NAMESPACE , SCORER_PERSISTENCE_SUB_NAMESPACE , SCORER_PERSISTENCE_KEY } ;
874+ use lightning_persister:: fs_store :: FilesystemStore ;
871875 use std:: collections:: VecDeque ;
872876 use std:: { fs, env} ;
873877 use std:: path:: PathBuf ;
@@ -906,7 +910,7 @@ mod tests {
906910 > ,
907911 Arc < test_utils:: TestLogger > > ;
908912
909- type ChainMonitor = chainmonitor:: ChainMonitor < InMemorySigner , Arc < test_utils:: TestChainSource > , Arc < test_utils:: TestBroadcaster > , Arc < test_utils:: TestFeeEstimator > , Arc < test_utils:: TestLogger > , Arc < FilesystemPersister > > ;
913+ type ChainMonitor = chainmonitor:: ChainMonitor < InMemorySigner , Arc < test_utils:: TestChainSource > , Arc < test_utils:: TestBroadcaster > , Arc < test_utils:: TestFeeEstimator > , Arc < test_utils:: TestLogger > , Arc < FilesystemStore > > ;
910914
911915 type PGS = Arc < P2PGossipSync < Arc < NetworkGraph < Arc < test_utils:: TestLogger > > > , Arc < test_utils:: TestChainSource > , Arc < test_utils:: TestLogger > > > ;
912916 type RGS = Arc < RapidGossipSync < Arc < NetworkGraph < Arc < test_utils:: TestLogger > > > , Arc < test_utils:: TestLogger > > > ;
@@ -917,7 +921,7 @@ mod tests {
917921 rapid_gossip_sync : RGS ,
918922 peer_manager : Arc < PeerManager < TestDescriptor , Arc < test_utils:: TestChannelMessageHandler > , Arc < test_utils:: TestRoutingMessageHandler > , IgnoringMessageHandler , Arc < test_utils:: TestLogger > , IgnoringMessageHandler , Arc < KeysManager > > > ,
919923 chain_monitor : Arc < ChainMonitor > ,
920- persister : Arc < FilesystemPersister > ,
924+ kv_store : Arc < FilesystemStore > ,
921925 tx_broadcaster : Arc < test_utils:: TestBroadcaster > ,
922926 network_graph : Arc < NetworkGraph < Arc < test_utils:: TestLogger > > > ,
923927 logger : Arc < test_utils:: TestLogger > ,
@@ -941,9 +945,9 @@ mod tests {
941945
942946 impl Drop for Node {
943947 fn drop ( & mut self ) {
944- let data_dir = self . persister . get_data_dir ( ) ;
948+ let data_dir = self . kv_store . get_data_dir ( ) ;
945949 match fs:: remove_dir_all ( data_dir. clone ( ) ) {
946- Err ( e) => println ! ( "Failed to remove test persister directory {}: {}" , data_dir, e) ,
950+ Err ( e) => println ! ( "Failed to remove test store directory {}: {}" , data_dir. display ( ) , e) ,
947951 _ => { }
948952 }
949953 }
@@ -954,13 +958,13 @@ mod tests {
954958 graph_persistence_notifier : Option < SyncSender < ( ) > > ,
955959 manager_error : Option < ( std:: io:: ErrorKind , & ' static str ) > ,
956960 scorer_error : Option < ( std:: io:: ErrorKind , & ' static str ) > ,
957- filesystem_persister : FilesystemPersister ,
961+ kv_store : FilesystemStore ,
958962 }
959963
960964 impl Persister {
961- fn new ( data_dir : String ) -> Self {
962- let filesystem_persister = FilesystemPersister :: new ( data_dir) ;
963- Self { graph_error : None , graph_persistence_notifier : None , manager_error : None , scorer_error : None , filesystem_persister }
965+ fn new ( data_dir : PathBuf ) -> Self {
966+ let kv_store = FilesystemStore :: new ( data_dir) ;
967+ Self { graph_error : None , graph_persistence_notifier : None , manager_error : None , scorer_error : None , kv_store }
964968 }
965969
966970 fn with_graph_error ( self , error : std:: io:: ErrorKind , message : & ' static str ) -> Self {
@@ -980,15 +984,25 @@ mod tests {
980984 }
981985 }
982986
983- impl KVStorePersister for Persister {
984- fn persist < W : Writeable > ( & self , key : & str , object : & W ) -> std:: io:: Result < ( ) > {
985- if key == "manager" {
987+ impl KVStore for Persister {
988+ fn read ( & self , namespace : & str , sub_namespace : & str , key : & str ) -> lightning:: io:: Result < Vec < u8 > > {
989+ self . kv_store . read ( namespace, sub_namespace, key)
990+ }
991+
992+ fn write ( & self , namespace : & str , sub_namespace : & str , key : & str , buf : & [ u8 ] ) -> lightning:: io:: Result < ( ) > {
993+ if namespace == CHANNEL_MANAGER_PERSISTENCE_NAMESPACE &&
994+ sub_namespace == CHANNEL_MANAGER_PERSISTENCE_SUB_NAMESPACE &&
995+ key == CHANNEL_MANAGER_PERSISTENCE_KEY
996+ {
986997 if let Some ( ( error, message) ) = self . manager_error {
987998 return Err ( std:: io:: Error :: new ( error, message) )
988999 }
9891000 }
9901001
991- if key == "network_graph" {
1002+ if namespace == NETWORK_GRAPH_PERSISTENCE_NAMESPACE &&
1003+ sub_namespace == NETWORK_GRAPH_PERSISTENCE_SUB_NAMESPACE &&
1004+ key == NETWORK_GRAPH_PERSISTENCE_KEY
1005+ {
9921006 if let Some ( sender) = & self . graph_persistence_notifier {
9931007 match sender. send ( ( ) ) {
9941008 Ok ( ( ) ) => { } ,
@@ -1001,13 +1015,24 @@ mod tests {
10011015 }
10021016 }
10031017
1004- if key == "scorer" {
1018+ if namespace == SCORER_PERSISTENCE_NAMESPACE &&
1019+ sub_namespace == SCORER_PERSISTENCE_SUB_NAMESPACE &&
1020+ key == SCORER_PERSISTENCE_KEY
1021+ {
10051022 if let Some ( ( error, message) ) = self . scorer_error {
10061023 return Err ( std:: io:: Error :: new ( error, message) )
10071024 }
10081025 }
10091026
1010- self . filesystem_persister . persist ( key, object)
1027+ self . kv_store . write ( namespace, sub_namespace, key, buf)
1028+ }
1029+
1030+ fn remove ( & self , namespace : & str , sub_namespace : & str , key : & str , lazy : bool ) -> lightning:: io:: Result < ( ) > {
1031+ self . kv_store . remove ( namespace, sub_namespace, key, lazy)
1032+ }
1033+
1034+ fn list ( & self , namespace : & str , sub_namespace : & str ) -> lightning:: io:: Result < Vec < String > > {
1035+ self . kv_store . list ( namespace, sub_namespace)
10111036 }
10121037 }
10131038
@@ -1157,10 +1182,10 @@ mod tests {
11571182 let seed = [ i as u8 ; 32 ] ;
11581183 let router = Arc :: new ( DefaultRouter :: new ( network_graph. clone ( ) , logger. clone ( ) , seed, scorer. clone ( ) , ( ) ) ) ;
11591184 let chain_source = Arc :: new ( test_utils:: TestChainSource :: new ( Network :: Bitcoin ) ) ;
1160- let persister = Arc :: new ( FilesystemPersister :: new ( format ! ( "{}_persister_{}" , & persist_dir, i) ) ) ;
1185+ let kv_store = Arc :: new ( FilesystemStore :: new ( format ! ( "{}_persister_{}" , & persist_dir, i) . into ( ) ) ) ;
11611186 let now = Duration :: from_secs ( genesis_block. header . time as u64 ) ;
11621187 let keys_manager = Arc :: new ( KeysManager :: new ( & seed, now. as_secs ( ) , now. subsec_nanos ( ) ) ) ;
1163- let chain_monitor = Arc :: new ( chainmonitor:: ChainMonitor :: new ( Some ( chain_source. clone ( ) ) , tx_broadcaster. clone ( ) , logger. clone ( ) , fee_estimator. clone ( ) , persister . clone ( ) ) ) ;
1188+ let chain_monitor = Arc :: new ( chainmonitor:: ChainMonitor :: new ( Some ( chain_source. clone ( ) ) , tx_broadcaster. clone ( ) , logger. clone ( ) , fee_estimator. clone ( ) , kv_store . clone ( ) ) ) ;
11641189 let best_block = BestBlock :: from_network ( network) ;
11651190 let params = ChainParameters { network, best_block } ;
11661191 let manager = Arc :: new ( ChannelManager :: new ( fee_estimator. clone ( ) , chain_monitor. clone ( ) , tx_broadcaster. clone ( ) , router. clone ( ) , logger. clone ( ) , keys_manager. clone ( ) , keys_manager. clone ( ) , keys_manager. clone ( ) , UserConfig :: default ( ) , params, genesis_block. header . time ) ) ;
@@ -1172,7 +1197,7 @@ mod tests {
11721197 onion_message_handler : IgnoringMessageHandler { } , custom_message_handler : IgnoringMessageHandler { }
11731198 } ;
11741199 let peer_manager = Arc :: new ( PeerManager :: new ( msg_handler, 0 , & seed, logger. clone ( ) , keys_manager. clone ( ) ) ) ;
1175- let node = Node { node : manager, p2p_gossip_sync, rapid_gossip_sync, peer_manager, chain_monitor, persister , tx_broadcaster, network_graph, logger, best_block, scorer } ;
1200+ let node = Node { node : manager, p2p_gossip_sync, rapid_gossip_sync, peer_manager, chain_monitor, kv_store , tx_broadcaster, network_graph, logger, best_block, scorer } ;
11761201 nodes. push ( node) ;
11771202 }
11781203
@@ -1267,7 +1292,7 @@ mod tests {
12671292 let tx = open_channel ! ( nodes[ 0 ] , nodes[ 1 ] , 100000 ) ;
12681293
12691294 // Initiate the background processors to watch each node.
1270- let data_dir = nodes[ 0 ] . persister . get_data_dir ( ) ;
1295+ let data_dir = nodes[ 0 ] . kv_store . get_data_dir ( ) ;
12711296 let persister = Arc :: new ( Persister :: new ( data_dir) ) ;
12721297 let event_handler = |_: _ | { } ;
12731298 let bg_processor = BackgroundProcessor :: start ( persister, event_handler, nodes[ 0 ] . chain_monitor . clone ( ) , nodes[ 0 ] . node . clone ( ) , nodes[ 0 ] . p2p_gossip_sync ( ) , nodes[ 0 ] . peer_manager . clone ( ) , nodes[ 0 ] . logger . clone ( ) , Some ( nodes[ 0 ] . scorer . clone ( ) ) ) ;
@@ -1332,7 +1357,7 @@ mod tests {
13321357 // `ChainMonitor::rebroadcast_pending_claims` is called every `REBROADCAST_TIMER`, and
13331358 // `PeerManager::timer_tick_occurred` every `PING_TIMER`.
13341359 let ( _, nodes) = create_nodes ( 1 , "test_timer_tick_called" ) ;
1335- let data_dir = nodes[ 0 ] . persister . get_data_dir ( ) ;
1360+ let data_dir = nodes[ 0 ] . kv_store . get_data_dir ( ) ;
13361361 let persister = Arc :: new ( Persister :: new ( data_dir) ) ;
13371362 let event_handler = |_: _ | { } ;
13381363 let bg_processor = BackgroundProcessor :: start ( persister, event_handler, nodes[ 0 ] . chain_monitor . clone ( ) , nodes[ 0 ] . node . clone ( ) , nodes[ 0 ] . no_gossip_sync ( ) , nodes[ 0 ] . peer_manager . clone ( ) , nodes[ 0 ] . logger . clone ( ) , Some ( nodes[ 0 ] . scorer . clone ( ) ) ) ;
@@ -1359,7 +1384,7 @@ mod tests {
13591384 let ( _, nodes) = create_nodes ( 2 , "test_persist_error" ) ;
13601385 open_channel ! ( nodes[ 0 ] , nodes[ 1 ] , 100000 ) ;
13611386
1362- let data_dir = nodes[ 0 ] . persister . get_data_dir ( ) ;
1387+ let data_dir = nodes[ 0 ] . kv_store . get_data_dir ( ) ;
13631388 let persister = Arc :: new ( Persister :: new ( data_dir) . with_manager_error ( std:: io:: ErrorKind :: Other , "test" ) ) ;
13641389 let event_handler = |_: _ | { } ;
13651390 let bg_processor = BackgroundProcessor :: start ( persister, event_handler, nodes[ 0 ] . chain_monitor . clone ( ) , nodes[ 0 ] . node . clone ( ) , nodes[ 0 ] . no_gossip_sync ( ) , nodes[ 0 ] . peer_manager . clone ( ) , nodes[ 0 ] . logger . clone ( ) , Some ( nodes[ 0 ] . scorer . clone ( ) ) ) ;
@@ -1379,7 +1404,7 @@ mod tests {
13791404 let ( _, nodes) = create_nodes ( 2 , "test_persist_error_sync" ) ;
13801405 open_channel ! ( nodes[ 0 ] , nodes[ 1 ] , 100000 ) ;
13811406
1382- let data_dir = nodes[ 0 ] . persister . get_data_dir ( ) ;
1407+ let data_dir = nodes[ 0 ] . kv_store . get_data_dir ( ) ;
13831408 let persister = Arc :: new ( Persister :: new ( data_dir) . with_manager_error ( std:: io:: ErrorKind :: Other , "test" ) ) ;
13841409
13851410 let bp_future = super :: process_events_async (
@@ -1405,7 +1430,7 @@ mod tests {
14051430 fn test_network_graph_persist_error ( ) {
14061431 // Test that if we encounter an error during network graph persistence, an error gets returned.
14071432 let ( _, nodes) = create_nodes ( 2 , "test_persist_network_graph_error" ) ;
1408- let data_dir = nodes[ 0 ] . persister . get_data_dir ( ) ;
1433+ let data_dir = nodes[ 0 ] . kv_store . get_data_dir ( ) ;
14091434 let persister = Arc :: new ( Persister :: new ( data_dir) . with_graph_error ( std:: io:: ErrorKind :: Other , "test" ) ) ;
14101435 let event_handler = |_: _ | { } ;
14111436 let bg_processor = BackgroundProcessor :: start ( persister, event_handler, nodes[ 0 ] . chain_monitor . clone ( ) , nodes[ 0 ] . node . clone ( ) , nodes[ 0 ] . p2p_gossip_sync ( ) , nodes[ 0 ] . peer_manager . clone ( ) , nodes[ 0 ] . logger . clone ( ) , Some ( nodes[ 0 ] . scorer . clone ( ) ) ) ;
@@ -1423,7 +1448,7 @@ mod tests {
14231448 fn test_scorer_persist_error ( ) {
14241449 // Test that if we encounter an error during scorer persistence, an error gets returned.
14251450 let ( _, nodes) = create_nodes ( 2 , "test_persist_scorer_error" ) ;
1426- let data_dir = nodes[ 0 ] . persister . get_data_dir ( ) ;
1451+ let data_dir = nodes[ 0 ] . kv_store . get_data_dir ( ) ;
14271452 let persister = Arc :: new ( Persister :: new ( data_dir) . with_scorer_error ( std:: io:: ErrorKind :: Other , "test" ) ) ;
14281453 let event_handler = |_: _ | { } ;
14291454 let bg_processor = BackgroundProcessor :: start ( persister, event_handler, nodes[ 0 ] . chain_monitor . clone ( ) , nodes[ 0 ] . node . clone ( ) , nodes[ 0 ] . no_gossip_sync ( ) , nodes[ 0 ] . peer_manager . clone ( ) , nodes[ 0 ] . logger . clone ( ) , Some ( nodes[ 0 ] . scorer . clone ( ) ) ) ;
@@ -1441,7 +1466,7 @@ mod tests {
14411466 fn test_background_event_handling ( ) {
14421467 let ( _, mut nodes) = create_nodes ( 2 , "test_background_event_handling" ) ;
14431468 let channel_value = 100000 ;
1444- let data_dir = nodes[ 0 ] . persister . get_data_dir ( ) ;
1469+ let data_dir = nodes[ 0 ] . kv_store . get_data_dir ( ) ;
14451470 let persister = Arc :: new ( Persister :: new ( data_dir. clone ( ) ) ) ;
14461471
14471472 // Set up a background event handler for FundingGenerationReady events.
@@ -1514,7 +1539,7 @@ mod tests {
15141539 #[ test]
15151540 fn test_scorer_persistence ( ) {
15161541 let ( _, nodes) = create_nodes ( 2 , "test_scorer_persistence" ) ;
1517- let data_dir = nodes[ 0 ] . persister . get_data_dir ( ) ;
1542+ let data_dir = nodes[ 0 ] . kv_store . get_data_dir ( ) ;
15181543 let persister = Arc :: new ( Persister :: new ( data_dir) ) ;
15191544 let event_handler = |_: _ | { } ;
15201545 let bg_processor = BackgroundProcessor :: start ( persister, event_handler, nodes[ 0 ] . chain_monitor . clone ( ) , nodes[ 0 ] . node . clone ( ) , nodes[ 0 ] . no_gossip_sync ( ) , nodes[ 0 ] . peer_manager . clone ( ) , nodes[ 0 ] . logger . clone ( ) , Some ( nodes[ 0 ] . scorer . clone ( ) ) ) ;
@@ -1586,7 +1611,7 @@ mod tests {
15861611 let ( sender, receiver) = std:: sync:: mpsc:: sync_channel ( 1 ) ;
15871612
15881613 let ( _, nodes) = create_nodes ( 2 , "test_not_pruning_network_graph_until_graph_sync_completion" ) ;
1589- let data_dir = nodes[ 0 ] . persister . get_data_dir ( ) ;
1614+ let data_dir = nodes[ 0 ] . kv_store . get_data_dir ( ) ;
15901615 let persister = Arc :: new ( Persister :: new ( data_dir) . with_graph_persistence_notifier ( sender) ) ;
15911616
15921617 let event_handler = |_: _ | { } ;
@@ -1605,7 +1630,7 @@ mod tests {
16051630 let ( sender, receiver) = std:: sync:: mpsc:: sync_channel ( 1 ) ;
16061631
16071632 let ( _, nodes) = create_nodes ( 2 , "test_not_pruning_network_graph_until_graph_sync_completion_async" ) ;
1608- let data_dir = nodes[ 0 ] . persister . get_data_dir ( ) ;
1633+ let data_dir = nodes[ 0 ] . kv_store . get_data_dir ( ) ;
16091634 let persister = Arc :: new ( Persister :: new ( data_dir) . with_graph_persistence_notifier ( sender) ) ;
16101635
16111636 let ( exit_sender, exit_receiver) = tokio:: sync:: watch:: channel ( ( ) ) ;
@@ -1745,7 +1770,7 @@ mod tests {
17451770 } ;
17461771
17471772 let ( _, nodes) = create_nodes ( 1 , "test_payment_path_scoring" ) ;
1748- let data_dir = nodes[ 0 ] . persister . get_data_dir ( ) ;
1773+ let data_dir = nodes[ 0 ] . kv_store . get_data_dir ( ) ;
17491774 let persister = Arc :: new ( Persister :: new ( data_dir) ) ;
17501775 let bg_processor = BackgroundProcessor :: start ( persister, event_handler, nodes[ 0 ] . chain_monitor . clone ( ) , nodes[ 0 ] . node . clone ( ) , nodes[ 0 ] . no_gossip_sync ( ) , nodes[ 0 ] . peer_manager . clone ( ) , nodes[ 0 ] . logger . clone ( ) , Some ( nodes[ 0 ] . scorer . clone ( ) ) ) ;
17511776
@@ -1778,7 +1803,7 @@ mod tests {
17781803 } ;
17791804
17801805 let ( _, nodes) = create_nodes ( 1 , "test_payment_path_scoring_async" ) ;
1781- let data_dir = nodes[ 0 ] . persister . get_data_dir ( ) ;
1806+ let data_dir = nodes[ 0 ] . kv_store . get_data_dir ( ) ;
17821807 let persister = Arc :: new ( Persister :: new ( data_dir) ) ;
17831808
17841809 let ( exit_sender, exit_receiver) = tokio:: sync:: watch:: channel ( ( ) ) ;
0 commit comments