Add artificial block delay

This commit is contained in:
Ori Newman 2022-09-01 14:14:15 +03:00
parent 953838e0d8
commit 7ec7634610

View File

@ -2,8 +2,12 @@ package grpcserver
import ( import (
"github.com/davecgh/go-spew/spew" "github.com/davecgh/go-spew/spew"
"github.com/kaspanet/kaspad/app/appmessage"
"github.com/kaspanet/kaspad/infrastructure/logger" "github.com/kaspanet/kaspad/infrastructure/logger"
"io" "io"
"os"
"strconv"
"sync"
"time" "time"
routerpkg "github.com/kaspanet/kaspad/infrastructure/network/netadapter/router" routerpkg "github.com/kaspanet/kaspad/infrastructure/network/netadapter/router"
@ -25,6 +29,9 @@ func (c *gRPCConnection) connectionLoops() error {
return err return err
} }
var blockDelayOnce sync.Once
var blockDelay = 0
func (c *gRPCConnection) sendLoop() error { func (c *gRPCConnection) sendLoop() error {
outgoingRoute := c.router.OutgoingRoute() outgoingRoute := c.router.OutgoingRoute()
for c.IsConnected() { for c.IsConnected() {
@ -36,6 +43,20 @@ func (c *gRPCConnection) sendLoop() error {
return err return err
} }
blockDelayOnce.Do(func() {
experimentalDelayEnv := os.Getenv("KASPA_EXPERIMENTAL_DELAY")
if experimentalDelayEnv != "" {
blockDelay, err = strconv.Atoi(experimentalDelayEnv)
if err != nil {
panic(err)
}
}
})
if blockDelay != 0 && message.Command() == appmessage.CmdBlock {
time.Sleep(time.Duration(blockDelay) * time.Second)
}
log.Debugf("outgoing '%s' message to %s", message.Command(), c) log.Debugf("outgoing '%s' message to %s", message.Command(), c)
log.Tracef("outgoing '%s' message to %s: %s", message.Command(), c, logger.NewLogClosure(func() string { log.Tracef("outgoing '%s' message to %s: %s", message.Command(), c, logger.NewLogClosure(func() string {
return spew.Sdump(message) return spew.Sdump(message)