@@ -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
@@ -529,11 +517,31 @@ func (m *p2pModule) getMultiaddr() (multiaddr.Multiaddr, error) {
529517}
530518
531519func (m * p2pModule ) getStakedPeerstore () (typesP2P.Peerstore , error ) {
532- return m .pstoreProvider .GetStakedPeerstoreAtHeight (
533- m .currentHeightProvider .CurrentHeight (),
520+ pstoreProvider , err := m .getPeerstoreProvider ()
521+ if err != nil {
522+ return nil , err
523+ }
524+
525+ return pstoreProvider .GetStakedPeerstoreAtHeight (
526+ m .GetBus ().GetCurrentHeightProvider ().CurrentHeight (),
534527 )
535528}
536529
530+ // TECHDEBT(#810, #811): replace with `bus.GetPeerstoreProvider()` once available.
531+ func (m * p2pModule ) getPeerstoreProvider () (peerstore_provider.PeerstoreProvider , error ) {
532+ pstoreProviderModule , err := m .GetBus ().
533+ GetModulesRegistry ().
534+ GetModule (peerstore_provider .PeerstoreProviderSubmoduleName )
535+ if err != nil {
536+ return nil , err
537+ }
538+ pstoreProvider , ok := pstoreProviderModule .(peerstore_provider.PeerstoreProvider )
539+ if ! ok {
540+ return nil , fmt .Errorf ("peerstore provider not available" )
541+ }
542+ return pstoreProvider , nil
543+ }
544+
537545// isStakedActor returns whether the current node is a staked actor at the current height.
538546// Return an error if a peerstore can't be provided.
539547func (m * p2pModule ) isStakedActor () (bool , error ) {
0 commit comments