Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
8b2979b
provider: adding provide and reprovide queue
guillaumemichel Jul 24, 2025
4049cfd
Merge branch 'provider' into provider-queues
guillaumemichel Jul 24, 2025
fac928e
provider: network operations
guillaumemichel Jul 24, 2025
87c3d14
add some tests
guillaumemichel Jul 24, 2025
7b681e5
schedule prefix len computations
guillaumemichel Jul 24, 2025
a191032
provider schedule
guillaumemichel Jul 24, 2025
41fcb41
provider: handleProvide
guillaumemichel Jul 24, 2025
4081f02
addressed review
guillaumemichel Aug 5, 2025
83e6f59
Merge branch 'provider' into provider-queues
guillaumemichel Aug 5, 2025
db73ea4
use go-test/random
guillaumemichel Aug 5, 2025
e0ece0a
satisfy linter
guillaumemichel Aug 5, 2025
039e0a4
Merge branch 'provider-queues' into provider-network-ops
guillaumemichel Aug 5, 2025
47f82bf
Merge branch 'provider' into provider-network-ops
guillaumemichel Aug 5, 2025
c707b63
Merge branch 'provider-network-ops' into provider-prefixlen
guillaumemichel Aug 5, 2025
fd95218
log errors during initial prefix len measurement
guillaumemichel Aug 5, 2025
b117913
Merge branch 'provider' into provider-prefixlen
guillaumemichel Aug 5, 2025
c8c4bc3
Merge branch 'provider-prefixlen' into provider-schedule
guillaumemichel Aug 5, 2025
fbe5f8a
address review
guillaumemichel Aug 5, 2025
e1ddf61
satisfy linter
guillaumemichel Aug 5, 2025
634601e
Merge branch 'provider-schedule' into provider-handleProvide
guillaumemichel Aug 5, 2025
834802b
address review
guillaumemichel Aug 5, 2025
5fa93f1
provider: explore swarm
guillaumemichel Aug 6, 2025
2889495
provider: batch provide
guillaumemichel Aug 6, 2025
47f65cb
provider: batch reprovide
guillaumemichel Aug 6, 2025
facff54
provider: catchup pending work
guillaumemichel Aug 6, 2025
b9f9004
fix panic when adding key to trie if superstring already exists
guillaumemichel Aug 7, 2025
17335b6
address review
guillaumemichel Aug 8, 2025
31a1797
decrease minimal region size from replicationFactor+1 to replicationF…
guillaumemichel Aug 8, 2025
b64abe5
simplify unscheduleSubsumedPrefixesNoClock
guillaumemichel Aug 8, 2025
486a39c
Merge branch 'provider' into provider-prefixlen
guillaumemichel Aug 8, 2025
59c9e9a
Merge branch 'provider-prefixlen' into provider-schedule
guillaumemichel Aug 8, 2025
48a0033
Merge branch 'provider-schedule' into provider-handleProvide
guillaumemichel Aug 8, 2025
425565a
address review
guillaumemichel Aug 8, 2025
6900ec9
Merge branch 'provider-handleProvide' into provider-exploreSwarm
guillaumemichel Aug 8, 2025
1299170
Merge branch 'provider-exploreSwarm' into provider-batchProvide
guillaumemichel Aug 8, 2025
4111c0c
Merge branch 'provider-batchProvide' into provider-batchReprovide
guillaumemichel Aug 8, 2025
d318fae
fix test to match region size (now: replicationFactor, before: replic…
guillaumemichel Aug 8, 2025
79e38d9
Merge branch 'provider-exploreSwarm' into provider-batchProvide
guillaumemichel Aug 8, 2025
bbfba3d
Merge branch 'provider-batchProvide' into provider-batchReprovide
guillaumemichel Aug 8, 2025
ca41e17
dequeue outside of go routine
guillaumemichel Aug 8, 2025
52712c5
Merge branch 'provider-batchReprovide' into provider-catchupPendingWork
guillaumemichel Aug 8, 2025
c7f77e1
refactor and test groupAndScheduleKeysByPrefix
guillaumemichel Aug 8, 2025
1c13df6
Merge branch 'provider' into provider-schedule
guillaumemichel Aug 13, 2025
0e05081
moved maxPrefixSize const to top
guillaumemichel Aug 13, 2025
d0f030a
Merge branch 'provider-schedule' into provider-handleProvide
guillaumemichel Aug 13, 2025
b1f376e
Merge branch 'provider-handleProvide' into provider-exploreSwarm
guillaumemichel Aug 13, 2025
ab7b9e6
Merge branch 'provider-exploreSwarm' into provider-batchProvide
guillaumemichel Aug 13, 2025
933aace
Merge branch 'provider-schedule' into provider-handleProvide
guillaumemichel Aug 13, 2025
d09b224
Merge branch 'provider-handleProvide' into provider-exploreSwarm
guillaumemichel Aug 13, 2025
a69033a
Merge branch 'provider-exploreSwarm' into provider-batchProvide
guillaumemichel Aug 13, 2025
5919066
Merge branch 'provider' into provider-handleProvide
guillaumemichel Aug 13, 2025
553a92e
Merge branch 'provider-handleProvide' into provider-exploreSwarm
guillaumemichel Aug 13, 2025
f4d5789
Merge branch 'provider-exploreSwarm' into provider-batchProvide
guillaumemichel Aug 13, 2025
6e1c0c8
Merge branch 'provider' into provider-exploreSwarm
guillaumemichel Aug 13, 2025
1f91ac2
Merge branch 'provider-exploreSwarm' into provider-batchProvide
guillaumemichel Aug 13, 2025
71cb716
address review
guillaumemichel Aug 13, 2025
1b086a7
Merge branch 'provider' into provider-batchProvide
guillaumemichel Aug 13, 2025
056104c
Merge branch 'provider-batchProvide' into provider-batchReprovide
guillaumemichel Aug 13, 2025
8a3d816
Merge branch 'provider' into provider-batchReprovide
guillaumemichel Aug 13, 2025
90ceb0f
address review
guillaumemichel Aug 13, 2025
b3edc8c
address review
guillaumemichel Aug 13, 2025
e7b8454
Merge branch 'provider-batchReprovide' into provider-catchupPendingWork
guillaumemichel Aug 13, 2025
0af8a73
Merge branch 'provider' into provider-catchupPendingWork
guillaumemichel Aug 13, 2025
257419c
Merge branch 'master' into provider
guillaumemichel Aug 13, 2025
91b99ac
Merge branch 'provider' into provider-catchupPendingWork
guillaumemichel Aug 13, 2025
bd95e2a
Merge branch 'provider' into provider-catchupPendingWork
guillaumemichel Aug 13, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
address review
  • Loading branch information
guillaumemichel committed Aug 8, 2025
commit 17335b6024fe99939426a92dfae24bdd4a807032
16 changes: 12 additions & 4 deletions provider/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -426,15 +426,23 @@ func (s *SweepingProvider) exploreSwarm(prefix bitstr.Key) (regions []keyspace.R
return regions, coveredPrefix, nil
}

const maxPrefixSearches = 128
// maxPrefixSearches is the maximum number of GetClosestPeers operations that
// are allowed to explore a prefix, preventing an infinite loop, since the exit
// condition depends on the network topology.
//
// A lower bound estimate on the number of fresh peers returned by GCP is
// replicationFactor/2. Hence, 64 GCP are expected to return at least
// 32*replicatonFactor peers, which should be more than enough, even if the
// supplied prefix is too short.
const maxPrefixSearches = 64

// closestPeersToPrefix returns at least s.replicationFactor+1 peers
// corresponding to the branch of the network peers trie matching the provided
// prefix. In the case there aren't enough peers matching the provided prefix,
// it will find and return the closest peers to the prefix, even if they don't
// exactly match it.
func (s *SweepingProvider) closestPeersToPrefix(prefix bitstr.Key) ([]peer.ID, error) {
allClosestPeers := make(map[peer.ID]struct{}, 2*s.replicationFactor)
allClosestPeers := make(map[peer.ID]struct{})

nextPrefix := prefix
startTime := time.Now()
Expand All @@ -459,7 +467,7 @@ exploration:
return nil, err
}
if len(closestPeers) == 0 {
return nil, errors.New("dht lookup didn't return any peers")
return nil, errors.New("dht lookup did not return any peers")
}
coveredPrefix, coveredPeers := keyspace.ShortestCoveredPrefix(fullKey, closestPeers)
for _, p := range coveredPeers {
Expand All @@ -470,7 +478,7 @@ exploration:
if i == 1 {
if coveredPrefixLen <= len(prefix) && coveredPrefix == prefix[:coveredPrefixLen] && len(allClosestPeers) > s.replicationFactor {
// Exit early if the prefix is fully covered at the first request and
// we have enough peers.
// we have enough (at least replicationFactor+1) peers.
break exploration
}
} else {
Expand Down
Loading