From e393b68ab78fe82982bdeba454e3bdd1c10112dc Mon Sep 17 00:00:00 2001 From: Richard Ramos Date: Thu, 20 Oct 2022 09:19:23 -0400 Subject: [PATCH] fix: lint --- Makefile | 2 +- waku/v2/rpc/private.go | 15 +++++++++++---- waku/v2/rpc/private_test.go | 2 +- waku/v2/rpc/waku_rpc.go | 2 +- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 77b8143c..c3954171 100644 --- a/Makefile +++ b/Makefile @@ -61,7 +61,7 @@ vendor: lint-install: curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | \ - bash -s -- -b $(shell ${GOBIN} env GOPATH)/bin v1.46.2 + bash -s -- -b $(shell ${GOBIN} env GOPATH)/bin v1.50.0 lint: @echo "lint" diff --git a/waku/v2/rpc/private.go b/waku/v2/rpc/private.go index 33b689d2..c38a3aab 100644 --- a/waku/v2/rpc/private.go +++ b/waku/v2/rpc/private.go @@ -23,6 +23,7 @@ type PrivateService struct { log *zap.Logger messages map[string][]*pb.WakuMessage + cacheCapacity int messagesMutex sync.RWMutex runner *runnerService @@ -57,11 +58,12 @@ type AsymmetricMessagesArgs struct { PrivateKey string `json:"privateKey"` } -func NewPrivateService(node *node.WakuNode, log *zap.Logger) *PrivateService { +func NewPrivateService(node *node.WakuNode, cacheCapacity int, log *zap.Logger) *PrivateService { p := &PrivateService{ - node: node, - messages: make(map[string][]*pb.WakuMessage), - log: log.Named("private"), + node: node, + cacheCapacity: cacheCapacity, + messages: make(map[string][]*pb.WakuMessage), + log: log.Named("private"), } p.runner = newRunnerService(node.Broadcaster(), p.addEnvelope) @@ -75,6 +77,11 @@ func (p *PrivateService) addEnvelope(envelope *protocol.Envelope) { p.messages[envelope.PubsubTopic()] = make([]*pb.WakuMessage, 0) } + // Keep a specific max number of messages per topic + if len(p.messages[envelope.PubsubTopic()]) >= p.cacheCapacity { + p.messages[envelope.PubsubTopic()] = p.messages[envelope.PubsubTopic()][1:] + } + p.messages[envelope.PubsubTopic()] = append(p.messages[envelope.PubsubTopic()], envelope.Message()) } diff --git a/waku/v2/rpc/private_test.go b/waku/v2/rpc/private_test.go index 4f8b995d..60daa72d 100644 --- a/waku/v2/rpc/private_test.go +++ b/waku/v2/rpc/private_test.go @@ -18,7 +18,7 @@ func makePrivateService(t *testing.T) *PrivateService { err = n.Start() require.NoError(t, err) - return NewPrivateService(n, utils.Logger()) + return NewPrivateService(n, 30, utils.Logger()) } func TestGetV1SymmetricKey(t *testing.T) { diff --git a/waku/v2/rpc/waku_rpc.go b/waku/v2/rpc/waku_rpc.go index 4c432f8e..c25e79f6 100644 --- a/waku/v2/rpc/waku_rpc.go +++ b/waku/v2/rpc/waku_rpc.go @@ -72,7 +72,7 @@ func NewWakuRpc(node *node.WakuNode, address string, port int, enableAdmin bool, } if enablePrivate { - privateService := NewPrivateService(node, log) + privateService := NewPrivateService(node, cacheCapacity, log) err = s.RegisterService(privateService, "Private") if err != nil { wrpc.log.Error("registering private service", zap.Error(err))