From 7ec76346103065ae7271819bd58cb75e7b330bc0 Mon Sep 17 00:00:00 2001 From: Ori Newman Date: Thu, 1 Sep 2022 14:14:15 +0300 Subject: [PATCH] Add artificial block delay --- .../server/grpcserver/connection_loops.go | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/infrastructure/network/netadapter/server/grpcserver/connection_loops.go b/infrastructure/network/netadapter/server/grpcserver/connection_loops.go index 63df69ffc..0f5c6359e 100644 --- a/infrastructure/network/netadapter/server/grpcserver/connection_loops.go +++ b/infrastructure/network/netadapter/server/grpcserver/connection_loops.go @@ -2,8 +2,12 @@ package grpcserver import ( "github.com/davecgh/go-spew/spew" + "github.com/kaspanet/kaspad/app/appmessage" "github.com/kaspanet/kaspad/infrastructure/logger" "io" + "os" + "strconv" + "sync" "time" routerpkg "github.com/kaspanet/kaspad/infrastructure/network/netadapter/router" @@ -25,6 +29,9 @@ func (c *gRPCConnection) connectionLoops() error { return err } +var blockDelayOnce sync.Once +var blockDelay = 0 + func (c *gRPCConnection) sendLoop() error { outgoingRoute := c.router.OutgoingRoute() for c.IsConnected() { @@ -36,6 +43,20 @@ func (c *gRPCConnection) sendLoop() error { 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.Tracef("outgoing '%s' message to %s: %s", message.Command(), c, logger.NewLogClosure(func() string { return spew.Sdump(message)