sdk: BatchSizePerNumberOfQueries()

This commit is contained in:
fiatjaf 2025-01-05 14:19:03 -03:00
parent 36ddf1eb36
commit 7be4b02236

View File

@ -1,6 +1,7 @@
package sdk
import (
"math"
"strings"
"sync"
"time"
@ -26,3 +27,17 @@ func IsVirtualRelay(url string) bool {
return false
}
// BatchSizePerNumberOfQueries tries to make an educated guess for the batch size given the total filter limit and
// the number of abstract queries we'll be conducting at the same time
func BatchSizePerNumberOfQueries(totalFilterLimit int, numberOfQueries int) int {
if numberOfQueries == 1 || totalFilterLimit*numberOfQueries < 50 {
return totalFilterLimit
}
return int(
math.Ceil(
math.Pow(float64(totalFilterLimit), 0.80) / math.Pow(float64(numberOfQueries), 0.71),
),
)
}