chore: add artificial delay

This commit is contained in:
Richard Ramos 2023-07-06 09:32:41 -04:00
parent 6ccb42fc4c
commit 39c5eb13e4
No known key found for this signature in database
GPG Key ID: 1CE87DB518195760

45
main.go
View File

@ -9,6 +9,7 @@ import (
"os/signal" "os/signal"
"strings" "strings"
"syscall" "syscall"
"time"
"github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/p2p/enode" "github.com/ethereum/go-ethereum/p2p/enode"
@ -81,12 +82,50 @@ func main() {
panic(err) panic(err)
} }
peerDelay := 100 * time.Millisecond
bucketSize := 15
go func() { go func() {
iterator := listener.RandomNodes() iterator := listener.RandomNodes()
seen := make(map[enode.ID]struct{}) // seen := make(map[enode.ID]struct{})
peerCnt := 0
for iterator.Next() { for iterator.Next() {
start := time.Now()
hasNext := iterator.Next()
if !hasNext {
break
}
elapsed := time.Since(start)
if elapsed < peerDelay {
t := time.NewTimer(peerDelay - elapsed)
select {
case <-ctx.Done():
return
case <-t.C:
t.Stop()
}
}
// Delay every 15 peers being returned
peerCnt++
if peerCnt == bucketSize {
peerCnt = 0
t := time.NewTimer(5 * time.Second)
fmt.Println("Waiting 5 secs...")
select {
case <-ctx.Done():
return
case <-t.C:
t.Stop()
}
}
node := iterator.Node() node := iterator.Node()
_, ok := seen[node.ID()] _ = node
fmt.Println("Found node...")
/*_, ok := seen[node.ID()]
if ok { if ok {
continue continue
} }
@ -98,7 +137,7 @@ func main() {
case <-ctx.Done(): case <-ctx.Done():
return return
default: default:
} }*/
} }
iterator.Close() iterator.Close()