From 86ca3fafd025649cc16dabe6e02228609cad7282 Mon Sep 17 00:00:00 2001 From: msutton Date: Sun, 17 Jul 2022 00:12:00 +0300 Subject: [PATCH 1/3] Set daemon message size limits to 100MB --- cmd/kaspawallet/daemon/client/client.go | 10 +++++++++- cmd/kaspawallet/daemon/server/server.go | 6 +++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/cmd/kaspawallet/daemon/client/client.go b/cmd/kaspawallet/daemon/client/client.go index 6cfd38a326..bea4e544c0 100644 --- a/cmd/kaspawallet/daemon/client/client.go +++ b/cmd/kaspawallet/daemon/client/client.go @@ -7,6 +7,7 @@ import ( "github.com/pkg/errors" "github.com/kaspanet/kaspad/cmd/kaspawallet/daemon/pb" + "github.com/kaspanet/kaspad/cmd/kaspawallet/daemon/server" "google.golang.org/grpc" ) @@ -16,7 +17,14 @@ func Connect(address string) (pb.KaspawalletdClient, func(), error) { ctx, cancel := context.WithTimeout(context.Background(), time.Second) defer cancel() - conn, err := grpc.DialContext(ctx, address, grpc.WithInsecure(), grpc.WithBlock()) + conn, err := grpc.DialContext( + ctx, address, + grpc.WithInsecure(), + grpc.WithBlock(), + grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(server.MaxDaemonMsgSize), + grpc.MaxCallSendMsgSize(server.MaxDaemonMsgSize))) + if err != nil { if errors.Is(err, context.DeadlineExceeded) { return nil, nil, errors.New("kaspawallet daemon is not running, start it with `kaspawallet start-daemon`") diff --git a/cmd/kaspawallet/daemon/server/server.go b/cmd/kaspawallet/daemon/server/server.go index d66ff8d65d..82344bf153 100644 --- a/cmd/kaspawallet/daemon/server/server.go +++ b/cmd/kaspawallet/daemon/server/server.go @@ -24,6 +24,8 @@ import ( "google.golang.org/grpc" ) +const MaxDaemonMsgSize = 100_000_000 + type server struct { pb.UnimplementedKaspawalletdServer @@ -96,7 +98,9 @@ func Start(params *dagconfig.Params, listen, rpcServer string, keysFilePath stri } }) - grpcServer := grpc.NewServer() + grpcServer := grpc.NewServer( + grpc.MaxRecvMsgSize(MaxDaemonMsgSize), + grpc.MaxSendMsgSize(MaxDaemonMsgSize)) pb.RegisterKaspawalletdServer(grpcServer, serverInstance) spawn("grpcServer.Serve", func() { From 41c0a6726cf7673e99fa67c21e9e6b893ba4703b Mon Sep 17 00:00:00 2001 From: msutton Date: Sun, 17 Jul 2022 00:44:29 +0300 Subject: [PATCH 2/3] Change daemon client timeout from 2 minutes to 5 minutes --- cmd/kaspawallet/common.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/kaspawallet/common.go b/cmd/kaspawallet/common.go index 5f3dcd508b..c63b15dcce 100644 --- a/cmd/kaspawallet/common.go +++ b/cmd/kaspawallet/common.go @@ -6,7 +6,7 @@ import ( "time" ) -const daemonTimeout = 2 * time.Minute +const daemonTimeout = 5 * time.Minute func printErrorAndExit(err error) { fmt.Fprintf(os.Stderr, "%s\n", err) From 351a9a7cff69badd4bbd54495e253b188d0099ef Mon Sep 17 00:00:00 2001 From: msutton Date: Sun, 17 Jul 2022 00:55:40 +0300 Subject: [PATCH 3/3] Public const requires a comment --- cmd/kaspawallet/daemon/server/server.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmd/kaspawallet/daemon/server/server.go b/cmd/kaspawallet/daemon/server/server.go index 82344bf153..167b3a2fde 100644 --- a/cmd/kaspawallet/daemon/server/server.go +++ b/cmd/kaspawallet/daemon/server/server.go @@ -24,6 +24,8 @@ import ( "google.golang.org/grpc" ) +// MaxDaemonMsgSize is the max send/receive message size used for the daemon client and server. +// Currently, set to 100MB const MaxDaemonMsgSize = 100_000_000 type server struct {