diff --git a/catchup/catchpointService.go b/catchup/catchpointService.go index 801901048b..7ad45305ff 100644 --- a/catchup/catchpointService.go +++ b/catchup/catchpointService.go @@ -290,7 +290,7 @@ func (cs *CatchpointCatchupService) processStageLedgerDownload() (err error) { } // download balances file. - peerSelector := makePeerSelector(cs.net, []peerClass{{initialRank: peerRankInitialFirstPriority, peerClass: network.PeersPhonebookRelays}}) + peerSelector := cs.makeCatchpointPeerSelector() ledgerFetcher := makeLedgerFetcher(cs.net, cs.ledgerAccessor, cs.log, cs, cs.config) attemptsCount := 0 @@ -796,15 +796,19 @@ func (cs *CatchpointCatchupService) updateBlockRetrievalStatistics(acquiredBlock } func (cs *CatchpointCatchupService) initDownloadPeerSelector() { + cs.blocksDownloadPeerSelector = cs.makeCatchpointPeerSelector() +} + +func (cs *CatchpointCatchupService) makeCatchpointPeerSelector() *peerSelector { if cs.config.EnableCatchupFromArchiveServers { - cs.blocksDownloadPeerSelector = makePeerSelector( + return makePeerSelector( cs.net, []peerClass{ {initialRank: peerRankInitialFirstPriority, peerClass: network.PeersPhonebookArchivers}, {initialRank: peerRankInitialSecondPriority, peerClass: network.PeersPhonebookRelays}, }) } else { - cs.blocksDownloadPeerSelector = makePeerSelector( + return makePeerSelector( cs.net, []peerClass{ {initialRank: peerRankInitialFirstPriority, peerClass: network.PeersPhonebookRelays}, @@ -820,7 +824,7 @@ func (cs *CatchpointCatchupService) checkLedgerDownload() error { if err != nil { return fmt.Errorf("failed to parse catchpoint label : %v", err) } - peerSelector := makePeerSelector(cs.net, []peerClass{{initialRank: peerRankInitialFirstPriority, peerClass: network.PeersPhonebookRelays}}) + peerSelector := cs.makeCatchpointPeerSelector() ledgerFetcher := makeLedgerFetcher(cs.net, cs.ledgerAccessor, cs.log, cs, cs.config) for i := 0; i < cs.config.CatchupLedgerDownloadRetryAttempts; i++ { psp, peerError := peerSelector.getNextPeer()