From 87ae816022548cafdd30a53103619b3a8289f2e6 Mon Sep 17 00:00:00 2001 From: Ethen Pociask Date: Fri, 24 May 2024 20:58:23 -0700 Subject: [PATCH] chore: Fix mem store bug && rename to proxy --- Makefile | 2 +- cmd/{daserver => server}/entrypoint.go | 14 +++++++------- cmd/{daserver => server}/flags.go | 4 ++-- cmd/{daserver => server}/main.go | 0 eigenda/cert_test.go | 2 +- go.mod | 2 +- server.go | 4 ++-- store/eigenda.go | 4 ++-- store/memory.go | 24 ++++++++++++++++-------- store/memory_test.go | 5 ++++- test/e2e_test.go | 12 ++++++------ verify/verifier.go | 2 +- verify/verify_test.go | 2 +- 13 files changed, 44 insertions(+), 33 deletions(-) rename cmd/{daserver => server}/entrypoint.go (86%) rename cmd/{daserver => server}/flags.go (95%) rename cmd/{daserver => server}/main.go (100%) diff --git a/Makefile b/Makefile index 5b0e017..c038889 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ LDFLAGS := -ldflags "$(LDFLAGSSTRING)" .PHONY: eigenda-proxy eigenda-proxy: - env GO111MODULE=on GOOS=$(TARGETOS) GOARCH=$(TARGETARCH) go build -v $(LDFLAGS) -o ./bin/eigenda-proxy ./cmd/daserver + env GO111MODULE=on GOOS=$(TARGETOS) GOARCH=$(TARGETARCH) go build -v $(LDFLAGS) -o ./bin/eigenda-proxy ./cmd/server .PHONY: docker-build docker-build: diff --git a/cmd/daserver/entrypoint.go b/cmd/server/entrypoint.go similarity index 86% rename from cmd/daserver/entrypoint.go rename to cmd/server/entrypoint.go index bf2dee6..f32b6fd 100644 --- a/cmd/daserver/entrypoint.go +++ b/cmd/server/entrypoint.go @@ -4,14 +4,14 @@ import ( "context" "fmt" - "github.com/Layr-Labs/op-plasma-eigenda/eigenda" - "github.com/Layr-Labs/op-plasma-eigenda/metrics" - "github.com/Layr-Labs/op-plasma-eigenda/store" - "github.com/Layr-Labs/op-plasma-eigenda/verify" + "github.com/Layr-Labs/eigenda-proxy/eigenda" + "github.com/Layr-Labs/eigenda-proxy/metrics" + "github.com/Layr-Labs/eigenda-proxy/store" + "github.com/Layr-Labs/eigenda-proxy/verify" "github.com/ethereum/go-ethereum/log" "github.com/urfave/cli/v2" - proxy "github.com/Layr-Labs/op-plasma-eigenda" + proxy "github.com/Layr-Labs/eigenda-proxy" oplog "github.com/ethereum-optimism/optimism/op-service/log" "github.com/ethereum-optimism/optimism/op-service/opio" ) @@ -19,7 +19,7 @@ import ( func LoadStore(cfg CLIConfig, ctx context.Context, log log.Logger) (proxy.Store, error) { if cfg.MemStoreCfg.Enabled { log.Info("Using memstore backend") - return store.NewMemStore(ctx, &cfg.MemStoreCfg) + return store.NewMemStore(ctx, &cfg.MemStoreCfg, log) } log.Info("Using eigenda backend") @@ -56,7 +56,7 @@ func StartProxySvr(cliCtx *cli.Context) error { log := oplog.NewLogger(oplog.AppOut(cliCtx), oplog.ReadCLIConfig(cliCtx)).New("role", "eigenda_proxy") oplog.SetGlobalLogHandler(log.Handler()) - log.Info("Initializing EigenDA Plasma DA server...") + log.Info("Initializing EigenDA proxy server...") da, err := LoadStore(cfg, ctx, log) if err != nil { diff --git a/cmd/daserver/flags.go b/cmd/server/flags.go similarity index 95% rename from cmd/daserver/flags.go rename to cmd/server/flags.go index 74e6272..66e0a82 100644 --- a/cmd/daserver/flags.go +++ b/cmd/server/flags.go @@ -5,8 +5,8 @@ import ( "github.com/urfave/cli/v2" - "github.com/Layr-Labs/op-plasma-eigenda/eigenda" - "github.com/Layr-Labs/op-plasma-eigenda/store" + "github.com/Layr-Labs/eigenda-proxy/eigenda" + "github.com/Layr-Labs/eigenda-proxy/store" opservice "github.com/ethereum-optimism/optimism/op-service" oplog "github.com/ethereum-optimism/optimism/op-service/log" opmetrics "github.com/ethereum-optimism/optimism/op-service/metrics" diff --git a/cmd/daserver/main.go b/cmd/server/main.go similarity index 100% rename from cmd/daserver/main.go rename to cmd/server/main.go diff --git a/eigenda/cert_test.go b/eigenda/cert_test.go index 299e436..9cee3e9 100644 --- a/eigenda/cert_test.go +++ b/eigenda/cert_test.go @@ -3,8 +3,8 @@ package eigenda import ( "testing" + "github.com/Layr-Labs/eigenda-proxy/common" eigen_da_common "github.com/Layr-Labs/eigenda/api/grpc/common" - "github.com/Layr-Labs/op-plasma-eigenda/common" "github.com/ethereum/go-ethereum/rlp" "github.com/stretchr/testify/assert" ) diff --git a/go.mod b/go.mod index e27bb2f..e57a832 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/Layr-Labs/op-plasma-eigenda +module github.com/Layr-Labs/eigenda-proxy go 1.21 diff --git a/server.go b/server.go index 8747c38..e452a0b 100644 --- a/server.go +++ b/server.go @@ -11,8 +11,8 @@ import ( "strconv" "time" - "github.com/Layr-Labs/op-plasma-eigenda/eigenda" - "github.com/Layr-Labs/op-plasma-eigenda/metrics" + "github.com/Layr-Labs/eigenda-proxy/eigenda" + "github.com/Layr-Labs/eigenda-proxy/metrics" "github.com/ethereum-optimism/optimism/op-service/rpc" "github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/log" diff --git a/store/eigenda.go b/store/eigenda.go index 0888f0a..af8ca3a 100644 --- a/store/eigenda.go +++ b/store/eigenda.go @@ -4,8 +4,8 @@ import ( "context" "fmt" - "github.com/Layr-Labs/op-plasma-eigenda/eigenda" - "github.com/Layr-Labs/op-plasma-eigenda/verify" + "github.com/Layr-Labs/eigenda-proxy/eigenda" + "github.com/Layr-Labs/eigenda-proxy/verify" "github.com/ethereum/go-ethereum/rlp" ) diff --git a/store/memory.go b/store/memory.go index beb1419..48f4082 100644 --- a/store/memory.go +++ b/store/memory.go @@ -7,6 +7,8 @@ import ( "sync" "time" + "github.com/ethereum/go-ethereum/log" + "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/crypto" "github.com/urfave/cli/v2" @@ -31,19 +33,22 @@ type MemStore struct { sync.RWMutex cfg *MemStoreConfig + l log.Logger keyStarts map[string]time.Time store map[string][]byte } // NewMemStore ... constructor -func NewMemStore(ctx context.Context, cfg *MemStoreConfig) (*MemStore, error) { +func NewMemStore(ctx context.Context, cfg *MemStoreConfig, l log.Logger) (*MemStore, error) { store := &MemStore{ cfg: cfg, + l: l, keyStarts: make(map[string]time.Time), store: make(map[string][]byte), } if cfg.BlobExpiration != 0 { + l.Info("memstore expiration enabled", "time", cfg.BlobExpiration) go store.EventLoop(ctx) } @@ -51,17 +56,18 @@ func NewMemStore(ctx context.Context, cfg *MemStoreConfig) (*MemStore, error) { } func (e *MemStore) EventLoop(ctx context.Context) { - timer := time.NewTicker(DefaultPruneInterval) - select { - case <-ctx.Done(): - return + for { + select { + case <-ctx.Done(): + return - case <-timer.C: - e.pruneExpired() + case <-timer.C: + e.l.Debug("pruning expired blobs") + e.pruneExpired() + } } - } func (e *MemStore) pruneExpired() { @@ -72,6 +78,8 @@ func (e *MemStore) pruneExpired() { if time.Since(dur) >= e.cfg.BlobExpiration { delete(e.keyStarts, commit) delete(e.store, commit) + + e.l.Info("blob pruned", "commit", commit) } } diff --git a/store/memory_test.go b/store/memory_test.go index 65b7c6f..824345f 100644 --- a/store/memory_test.go +++ b/store/memory_test.go @@ -5,6 +5,7 @@ import ( "testing" "time" + "github.com/ethereum/go-ethereum/log" "github.com/stretchr/testify/assert" ) @@ -22,6 +23,7 @@ func TestGetSet(t *testing.T) { Enabled: true, BlobExpiration: time.Hour * 1000, }, + log.New(), ) assert.NoError(t, err) @@ -46,6 +48,7 @@ func TestExpiration(t *testing.T) { Enabled: true, BlobExpiration: time.Millisecond * 10, }, + log.New(), ) assert.NoError(t, err) @@ -54,7 +57,7 @@ func TestExpiration(t *testing.T) { key, err := ms.Put(ctx, preimage) assert.NoError(t, err) - // sleep 1ms and verify that older entries are removed + // sleep 1 second and verify that older blob entries are removed time.Sleep(time.Second * 1) _, err = ms.Get(ctx, key) diff --git a/test/e2e_test.go b/test/e2e_test.go index 70460c4..0641723 100644 --- a/test/e2e_test.go +++ b/test/e2e_test.go @@ -8,13 +8,13 @@ import ( "testing" "time" + plasma "github.com/Layr-Labs/eigenda-proxy" + proxy "github.com/Layr-Labs/eigenda-proxy" + "github.com/Layr-Labs/eigenda-proxy/eigenda" + "github.com/Layr-Labs/eigenda-proxy/metrics" + "github.com/Layr-Labs/eigenda-proxy/store" + "github.com/Layr-Labs/eigenda-proxy/verify" "github.com/Layr-Labs/eigenda/encoding/kzg" - plasma "github.com/Layr-Labs/op-plasma-eigenda" - proxy "github.com/Layr-Labs/op-plasma-eigenda" - "github.com/Layr-Labs/op-plasma-eigenda/eigenda" - "github.com/Layr-Labs/op-plasma-eigenda/metrics" - "github.com/Layr-Labs/op-plasma-eigenda/store" - "github.com/Layr-Labs/op-plasma-eigenda/verify" op_plasma "github.com/ethereum-optimism/optimism/op-plasma" oplog "github.com/ethereum-optimism/optimism/op-service/log" diff --git a/verify/verifier.go b/verify/verifier.go index a7fbb13..433a4c8 100644 --- a/verify/verifier.go +++ b/verify/verifier.go @@ -5,10 +5,10 @@ import ( "github.com/Layr-Labs/eigenda/encoding" + "github.com/Layr-Labs/eigenda-proxy/eigenda" "github.com/Layr-Labs/eigenda/encoding/kzg" "github.com/Layr-Labs/eigenda/encoding/kzg/prover" "github.com/Layr-Labs/eigenda/encoding/rs" - "github.com/Layr-Labs/op-plasma-eigenda/eigenda" ) type Verifier struct { diff --git a/verify/verify_test.go b/verify/verify_test.go index a6e0a8c..cb33ab3 100644 --- a/verify/verify_test.go +++ b/verify/verify_test.go @@ -5,9 +5,9 @@ import ( "runtime" "testing" + "github.com/Layr-Labs/eigenda-proxy/eigenda" "github.com/Layr-Labs/eigenda/api/grpc/common" "github.com/Layr-Labs/eigenda/encoding/kzg" - "github.com/Layr-Labs/op-plasma-eigenda/eigenda" "github.com/stretchr/testify/assert" )