Skip to content

Commit 3710910

Browse files
committed
Filter out bitswap providers before picking random provider
1 parent 31019d0 commit 3710910

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

lib/spark.js

+17-4
Original file line numberDiff line numberDiff line change
@@ -249,11 +249,24 @@ export default class Spark {
249249
return
250250
}
251251

252-
const randomProvider = pickRandomProvider(alternativeProviders, randomness)
253-
if (!randomProvider) {
252+
const validAlternativeProviders = alternativeProviders.filter(
253+
(p) => p.protocol !== 'bitswap',
254+
)
255+
256+
if (!validAlternativeProviders.length) {
254257
console.warn(
255258
'No providers serving the content via HTTP or Graphsync found. Skipping network-wide retrieval check.',
256259
)
260+
}
261+
262+
const randomProvider = pickRandomProvider(
263+
validAlternativeProviders,
264+
randomness,
265+
)
266+
if (!randomProvider) {
267+
console.warn(
268+
'Failed to pick a random provider. Skipping network-wide retrieval check.',
269+
)
257270
return
258271
}
259272

@@ -507,8 +520,8 @@ export function pickRandomProvider(providers, randomness) {
507520
return items[Math.floor(rng.next() * items.length)]
508521
}
509522

510-
const providersWithPieceInfoContextID = providers.filter(
511-
(p) => p.contextId.startsWith('ghsA') && p.protocol !== 'bitswap',
523+
const providersWithPieceInfoContextID = providers.filter((p) =>
524+
p.contextId.startsWith('ghsA'),
512525
)
513526

514527
// Priority 1: HTTP providers with ContextID containing PieceCID

0 commit comments

Comments
 (0)