@@ -46,12 +46,8 @@ type p2pModule struct {
4646 identity libp2p.Option
4747 listenAddrs libp2p.Option
4848
49- // TECHDEBT(#810): register the providers to the module registry instead of
50- // holding a reference in the module struct and passing via router config.
51- //
5249 // Assigned during creation via `#setupDependencies()`.
53- pstoreProvider providers.PeerstoreProvider
54- nonceDeduper * mempool.GenericFIFOSet [uint64 , uint64 ]
50+ nonceDeduper * mempool.GenericFIFOSet [uint64 , uint64 ]
5551
5652 // TECHDEBT(#810): register the routers to the module registry instead of
5753 // holding a reference in the module struct. This will improve testability.
@@ -300,28 +296,20 @@ func (m *p2pModule) setupPeerstoreProvider() error {
300296 GetModulesRegistry ().
301297 GetModule (peerstore_provider .PeerstoreProviderSubmoduleName )
302298 if err != nil {
299+ // TECHDEBT: compare against `runtime.ErrModuleNotRegistered(...)`.
303300 m .logger .Debug ().Msg ("creating new persistence peerstore..." )
304- pstoreProvider , err := persPSP .Create (m .GetBus ())
301+ // Ensure a peerstore provider exists by creating a `persistencePeerstoreProvider`.
302+ _ , err := persPSP .Create (m .GetBus ())
305303 if err != nil {
306304 return err
307305 }
308-
309- // TECHDEBT(#810, #811): use `bus.GetPeerstoreProvider()` after peerstore provider
310- // is retrievable as a proper submodule
311- m .pstoreProvider = pstoreProvider
312306 return nil
313307 }
314308
315- m .logger .Debug ().Msg ("loaded persistence peerstore..." )
316- pstoreProvider , ok := pstoreProviderModule .(providers.PeerstoreProvider )
317- if ! ok {
309+ m .logger .Debug ().Msg ("loaded peerstore provider..." )
310+ if _ , ok := pstoreProviderModule .(providers.PeerstoreProvider ); ! ok {
318311 return fmt .Errorf ("unknown peerstore provider type: %T" , pstoreProviderModule )
319312 }
320-
321- // TECHDEBT(#810): register the provider to the module registry instead of
322- // holding a reference in the module struct and passing via router config.
323- m .pstoreProvider = pstoreProvider
324-
325313 return nil
326314}
327315
@@ -521,11 +509,31 @@ func (m *p2pModule) getMultiaddr() (multiaddr.Multiaddr, error) {
521509}
522510
523511func (m * p2pModule ) getStakedPeerstore () (typesP2P.Peerstore , error ) {
524- return m .pstoreProvider .GetStakedPeerstoreAtHeight (
525- m .currentHeightProvider .CurrentHeight (),
512+ pstoreProvider , err := m .getPeerstoreProvider ()
513+ if err != nil {
514+ return nil , err
515+ }
516+
517+ return pstoreProvider .GetStakedPeerstoreAtHeight (
518+ m .GetBus ().GetCurrentHeightProvider ().CurrentHeight (),
526519 )
527520}
528521
522+ // TECHDEBT(#810, #811): replace with `bus.GetPeerstoreProvider()` once available.
523+ func (m * p2pModule ) getPeerstoreProvider () (peerstore_provider.PeerstoreProvider , error ) {
524+ pstoreProviderModule , err := m .GetBus ().
525+ GetModulesRegistry ().
526+ GetModule (peerstore_provider .PeerstoreProviderSubmoduleName )
527+ if err != nil {
528+ return nil , err
529+ }
530+ pstoreProvider , ok := pstoreProviderModule .(peerstore_provider.PeerstoreProvider )
531+ if ! ok {
532+ return nil , fmt .Errorf ("peerstore provider not available" )
533+ }
534+ return pstoreProvider , nil
535+ }
536+
529537// isStakedActor returns whether the current node is a staked actor at the current height.
530538// Return an error if a peerstore can't be provided.
531539func (m * p2pModule ) isStakedActor () (bool , error ) {
0 commit comments