Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Integrate WeaveVM as a secondary backend in EigenDA proxy #198

Open
wants to merge 50 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
9343f0b
blueprint
allnil Aug 29, 2024
fc8a5eb
feat: add code to communicate with wvm rpc
allnil Aug 30, 2024
153107c
chore: last changes, clean logs
allnil Sep 2, 2024
c4c7acb
feat: new endpoints to get wvm tx hash and blob from wvm
allnil Sep 4, 2024
3ee927c
fix: fix decompression
allnil Sep 4, 2024
605a3c7
chore: clean the code, update README
allnil Sep 5, 2024
f155de2
chore: add some logs
allnil Sep 5, 2024
b42d34c
Merge pull request #1 from weaveVM/feat/send-blob-to-eigen-store-on-wvm
allnil Sep 5, 2024
a6a304b
docs: update README
charmful0x Sep 5, 2024
f730fdf
Merge pull request #2 from weaveVM/docs
charmful0x Sep 5, 2024
815a00a
docs: add workflow diagram
charmful0x Sep 5, 2024
c725446
docs: update put-workflow
charmful0x Sep 5, 2024
15b5b3d
docs: add GET blob workflow
charmful0x Sep 5, 2024
ac70008
Merge pull request #3 from weaveVM/docs
charmful0x Sep 5, 2024
4813df6
docs: add archive pool info
charmful0x Sep 5, 2024
079da61
Merge pull request #4 from weaveVM/docs
charmful0x Sep 5, 2024
de49931
merge with upstream
allnil Oct 31, 2024
5644414
Merge pull request #6 from weaveVM/merge-upstream-v2
allnil Oct 31, 2024
bee623c
feat: add weavevm integration as a secondary backend, add env vars, c…
allnil Nov 15, 2024
1bb6c45
chore: remove server binary from git
allnil Nov 15, 2024
0c61e3f
chore: change naming from wvm to weave
allnil Nov 20, 2024
5c5d826
chore: rename
allnil Nov 20, 2024
1951f66
chore: pass weavevm priv key hex
allnil Nov 20, 2024
58cd1f6
chore: fix env var to pass weave vm priv key
allnil Nov 20, 2024
2e80c95
chore: change env var description
allnil Nov 20, 2024
a04dc93
chore: add config checks
allnil Nov 20, 2024
4a14010
chore: global renaming, fix urls, run tests
allnil Nov 20, 2024
a30a578
Merge branch 'main' of https://github.com/Layr-Labs/eigenda-proxy int…
allnil Nov 21, 2024
3fc0019
chore: refactor readmes
allnil Nov 22, 2024
8b2cb87
chore: add versioning to url
allnil Nov 22, 2024
831a9cf
chore: work on readme continues
allnil Nov 22, 2024
1b0164d
chore: remove parts of readme, continue fixes
allnil Nov 22, 2024
a640517
chore: fix typo in wvm e2e test comment
allnil Nov 22, 2024
d600261
chore: fix typo in wvm e2e test setup comment
allnil Nov 22, 2024
5a55327
chore: notes and comments
allnil Nov 22, 2024
5517256
docs: update WeaveVM section & add LICENSE ref
charmful0x Nov 22, 2024
36250aa
chore: add checks on max blob size using weavevm
allnil Nov 25, 2024
c1ba3ca
Merge branch 'main' of https://github.com/Layr-Labs/eigenda-proxy int…
allnil Nov 25, 2024
35eca7d
chore: clean readme and cli flags naming
allnil Nov 25, 2024
2e811ba
chore: add description of env vars and flags
allnil Nov 25, 2024
b3ccf6b
chore: fix naming of weavevm client
allnil Nov 26, 2024
34fb623
chore: change MB to MiB to be explicit
allnil Nov 26, 2024
2d77572
chore: rename package, move some info logs to debug level
allnil Nov 26, 2024
5d695bd
chore: add config validation on private key signer and web3signer pro…
allnil Nov 26, 2024
f10fea7
chore: test command and update readme
allnil Nov 26, 2024
09df602
chore: fix cli command in readme
allnil Nov 26, 2024
e4a41e5
chore: merge
allnil Dec 18, 2024
434f78b
merge
allnil Dec 18, 2024
139dd4d
merge
allnil Dec 18, 2024
f5bfefa
fix test
allnil Dec 18, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 29 additions & 2 deletions .env.example.holesky
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,36 @@ EIGENDA_PROXY_EIGENDA_SERVICE_MANAGER_ADDR=0xD4A7E1Bd8015057293f0D0A557088c28694

# access key secret for S3 storage
# EIGENDA_PROXY_S3_ACCESS_KEY_SECRET=

# bucket name for S3 storage
# EIGENDA_PROXY_S3_BUCKET=

# endpoint for S3 storage
# EIGENDA_PROXY_S3_ENDPOINT

# WVM secondary storage related environment variables

# Set to true to enable WVM chain as a secondary storage
# EIGENDA_PROXY_WVM_ENABLED=

# WVM rpc endpoint
# EIGENDA_PROXY_WVM_ENDPOINT=https://testnet-rpc.wvm.dev/

# WVM chain id
# EIGENDA_PROXY_WVM_CHAIN_ID=9496

# WVM operations timeout
# EIGENDA_PROXY_WVM_TIMEOUT=5s

# WVM web3signer endpoint
# EIGENDA_PROXY_WVM_WEB3_SIGNER_ENDPOINT=

# WVM private key in case you don't use web3signer, not recommended
# WVM_PRIV_KEY=

# WVM paths to TLS related files in case you use web3signer with TLS enabled
# EIGENDA_PROXY_WVM_WEB3_SIGNER_TLS_CERT_FILE=

# EIGENDA_PROXY_WVM_WEB3_SIGNER_TLS_KEY_FILE=

# EIGENDA_PROXY_WVM_WEB3_SIGNER_TLS_CERT_FILE=
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ Features:
* Performs DA certificate verification during retrieval to ensure that data represented by bad DA certificates do not become part of the canonical chain.
* Compatibility with Optimism's alt-da commitment type with eigenda backend.
* Compatibility with Optimism's keccak-256 commitment type with S3 storage.
* Blobs permanent backup storage option via [WeaveVM](./store/precomputed_key/wvm).

In order to disperse to the EigenDA network in production, or at high throughput on testnet, please register your authentication ethereum address through [this form](https://forms.gle/3QRNTYhSMacVFNcU8). Your EigenDA authentication keypair address should not be associated with any funds anywhere.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you please update the table to also reflect the WeaveVM cfg params?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done


Expand Down
10 changes: 7 additions & 3 deletions common/store.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@ const (
RedisBackendType

UnknownBackendType
)

var (
ErrProxyOversizedBlob = fmt.Errorf("encoded blob is larger than max blob size")
WVMBackendType
)

var ErrProxyOversizedBlob = fmt.Errorf("encoded blob is larger than max blob size")

func (b BackendType) String() string {
switch b {
case EigenDABackendType:
Expand All @@ -32,6 +32,8 @@ func (b BackendType) String() string {
return "S3"
case RedisBackendType:
return "Redis"
case WVMBackendType:
return "WVM"
case UnknownBackendType:
fallthrough
default:
Expand All @@ -51,6 +53,8 @@ func StringToBackendType(s string) BackendType {
return S3BackendType
case "redis":
return RedisBackendType
case "wvm":
return WVMBackendType
case "unknown":
fallthrough
default:
Expand Down
56 changes: 51 additions & 5 deletions e2e/server_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package e2e_test

import (
"os"
"testing"
"time"

Expand Down Expand Up @@ -37,7 +38,6 @@ this test asserts that the data can be posted/read to EigenDA
with a concurrent S3 backend configured
*/
func TestOptimismClientWithGenericCommitment(t *testing.T) {

if !runIntegrationTests && !runTestnetIntegrationTests {
t.Skip("Skipping test as INTEGRATION or TESTNET env var not set")
}
Expand Down Expand Up @@ -124,11 +124,10 @@ func TestProxyCachingWithRedis(t *testing.T) {
}

/*
Ensure that fallback location is read from when EigenDA blob is not available.
This is done by setting the memstore expiration time to 1ms and waiting for the blob to expire
before attempting to read it.
Ensure that fallback location is read from when EigenDA blob is not available.
This is done by setting the memstore expiration time to 1ms and waiting for the blob to expire
before attempting to read it.
*/

func TestProxyReadFallback(t *testing.T) {
// test can't be ran against holesky since read failure case can't be manually triggered
if !runIntegrationTests || runTestnetIntegrationTests {
Expand Down Expand Up @@ -166,3 +165,50 @@ func TestProxyReadFallback(t *testing.T) {
requireWriteReadSecondary(t, ts.Metrics.SecondaryRequestsTotal, common.S3BackendType)
requireDispersalRetrievalEigenDA(t, ts.Metrics.HTTPServerRequestsTotal, commitments.SimpleCommitmentMode)
}

/*
Tests fallback when wvm secondary backend is used.
Works only when WVM_PRIV_KEY is set
*/
func TestProxyReadFallbackOnWvm(t *testing.T) {
privateKey := os.Getenv("WVM_PRIV_KEY")
if privateKey == "" {
t.Skip("Skipping test as WVM_PRIV_KEY has not been set")
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how is this private key channeled to the server config?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yep..I didn't supply it through cli package
I'll add it

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done


// test can't be ran against holesky since read failure case can't be manually triggered
if !runIntegrationTests || runTestnetIntegrationTests {
t.Skip("Skipping test as INTEGRATION env var not set")
}

t.Parallel()

// setup server with S3 as a fallback option
testCfg := e2e.TestConfig(useMemory())
testCfg.UseWVMFallback = true
// ensure that blob memstore eviction times result in near immediate activation
testCfg.Expiration = time.Millisecond * 1

tsConfig := e2e.TestSuiteConfig(testCfg)
ts, kill := e2e.CreateTestSuite(tsConfig)
defer kill()

cfg := &client.Config{
URL: ts.Address(),
}
daClient := client.New(cfg)
expectedBlob := e2e.RandBytes(1_000_000)
t.Log("Setting input data on proxy server...")
blobInfo, err := daClient.SetData(ts.Ctx, expectedBlob)
require.NoError(t, err)

time.Sleep(1 * time.Second)
t.Log("Getting input data from proxy server...")
actualBlob, err := daClient.GetData(ts.Ctx, blobInfo)
require.NoError(t, err)
require.Equal(t, expectedBlob, actualBlob)

requireSimpleClientSetGet(t, ts, e2e.RandBytes(1_000_000))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

iiuc you're doing the same assertion logic twice

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmmm
frankly speaking I took test which was made for S3 and prepared weave vm config+backend type
so the core logic of the test suit is the same as it was

requireWriteReadSecondary(t, ts.Metrics.SecondaryRequestsTotal, common.WVMBackendType)
requireDispersalRetrievalEigenDA(t, ts.Metrics.HTTPServerRequestsTotal, commitments.SimpleCommitmentMode)
}
23 changes: 21 additions & 2 deletions e2e/setup.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
"github.com/Layr-Labs/eigenda-proxy/store/generated_key/memstore"
"github.com/Layr-Labs/eigenda-proxy/store/precomputed_key/redis"
"github.com/Layr-Labs/eigenda-proxy/store/precomputed_key/s3"
wvm "github.com/Layr-Labs/eigenda-proxy/store/precomputed_key/wvm/types"
"github.com/Layr-Labs/eigenda-proxy/verify"
"github.com/Layr-Labs/eigenda/api/clients"
"github.com/Layr-Labs/eigenda/encoding/kzg"
Expand Down Expand Up @@ -113,6 +114,7 @@ type Cfg struct {
UseS3Caching bool
UseRedisCaching bool
UseS3Fallback bool
UseWVMFallback bool
}

func TestConfig(useMemory bool) *Cfg {
Expand All @@ -123,6 +125,7 @@ func TestConfig(useMemory bool) *Cfg {
UseS3Caching: false,
UseRedisCaching: false,
UseS3Fallback: false,
UseWVMFallback: false,
WriteThreadCount: 0,
}
}
Expand Down Expand Up @@ -159,6 +162,19 @@ func createS3Config(eigendaCfg server.Config) server.CLIConfig {
}
}

func createWVMConfig(eigendaCfg server.Config) server.CLIConfig {
eigendaCfg.StorageConfig.WVMConfig = wvm.Config{
Enabled: true,
Endpoint: "https://testnet-rpc.wvm.dev/",
ChainID: 9496,
// set higher than 5s in e2e tests
Timeout: 10 * time.Second,
}
return server.CLIConfig{
EigenDAConfig: eigendaCfg,
}
}

func TestSuiteConfig(testCfg *Cfg) server.CLIConfig {
// load signer key from environment
pk := os.Getenv(privateKey)
Expand Down Expand Up @@ -237,6 +253,10 @@ func TestSuiteConfig(testCfg *Cfg) server.CLIConfig {
eigendaCfg.StorageConfig.FallbackTargets = []string{"S3"}
cfg = createS3Config(eigendaCfg)

case testCfg.UseWVMFallback:
eigendaCfg.StorageConfig.FallbackTargets = []string{"wvm"}
cfg = createWVMConfig(eigendaCfg)

case testCfg.UseRedisCaching:
eigendaCfg.StorageConfig.CacheTargets = []string{"redis"}
cfg = createRedisConfig(eigendaCfg)
Expand Down Expand Up @@ -273,7 +293,6 @@ func CreateTestSuite(testSuiteCfg server.CLIConfig) (TestSuite, func()) {
log,
m,
)

if err != nil {
panic(err)
}
Expand Down Expand Up @@ -340,7 +359,7 @@ func createS3Bucket(bucketName string) {
}

func RandStr(n int) string {
var letterRunes = []rune("abcdefghijklmnopqrstuvwxyz")
letterRunes := []rune("abcdefghijklmnopqrstuvwxyz")
b := make([]rune, n)
for i := range b {
b[i] = letterRunes[rand.Intn(len(letterRunes))]
Expand Down
3 changes: 3 additions & 0 deletions flags/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"github.com/Layr-Labs/eigenda-proxy/store/generated_key/memstore"
"github.com/Layr-Labs/eigenda-proxy/store/precomputed_key/redis"
"github.com/Layr-Labs/eigenda-proxy/store/precomputed_key/s3"
"github.com/Layr-Labs/eigenda-proxy/store/precomputed_key/wvm"
"github.com/Layr-Labs/eigenda-proxy/verify"
"github.com/urfave/cli/v2"

Expand All @@ -24,6 +25,7 @@ const (
S3Category = "S3 Cache/Fallback"
VerifierCategory = "KZG and Cert Verifier"
VerifierDeprecatedCategory = "DEPRECATED VERIFIER FLAGS -- THESE WILL BE REMOVED IN V2.0.0"
WVMCategory = "WVM Fallback/Perm Storage option"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we explicitly prefix "weave"? most users won't know the term wvm

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

)

const (
Expand Down Expand Up @@ -73,4 +75,5 @@ func init() {
Flags = append(Flags, memstore.CLIFlags(EnvVarPrefix, MemstoreFlagsCategory)...)
Flags = append(Flags, verify.CLIFlags(EnvVarPrefix, VerifierCategory)...)
Flags = append(Flags, verify.DeprecatedCLIFlags(EnvVarPrefix, VerifierDeprecatedCategory)...)
Flags = append(Flags, wvm.CLIFlags(EnvVarPrefix, WVMCategory)...)
}
1 change: 1 addition & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,7 @@ require (
github.com/opencontainers/image-spec v1.1.0 // indirect
github.com/opencontainers/runtime-spec v1.2.0 // indirect
github.com/opentracing/opentracing-go v1.2.0 // indirect
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice only one new dependency

github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect
github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7 // indirect
github.com/pingcap/errors v0.11.4 // indirect
Expand Down
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -703,6 +703,8 @@ github.com/ory/dockertest/v3 v3.10.0 h1:4K3z2VMe8Woe++invjaTB7VRyQXQy5UY+loujO4a
github.com/ory/dockertest/v3 v3.10.0/go.mod h1:nr57ZbRWMqfsdGdFNLHz5jjNdDb7VVFnzAeW1n5N1Lg=
github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY=
github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0=
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y=
github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7 h1:oYW+YCJ1pachXTQmzR3rNLYGGz4g/UgFcjb28p/viDM=
Expand Down
26 changes: 22 additions & 4 deletions server/load_store.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"github.com/Layr-Labs/eigenda-proxy/store/generated_key/memstore"
"github.com/Layr-Labs/eigenda-proxy/store/precomputed_key/redis"
"github.com/Layr-Labs/eigenda-proxy/store/precomputed_key/s3"
"github.com/Layr-Labs/eigenda-proxy/store/precomputed_key/wvm"
"github.com/Layr-Labs/eigenda-proxy/verify"
"github.com/Layr-Labs/eigenda/api/clients"
"github.com/ethereum/go-ethereum/log"
Expand All @@ -19,7 +20,7 @@ import (
// TODO - create structured abstraction for dependency injection vs. overloading stateless functions

// populateTargets ... creates a list of storage backends based on the provided target strings
func populateTargets(targets []string, s3 common.PrecomputedKeyStore, redis *redis.Store) []common.PrecomputedKeyStore {
func populateTargets(targets []string, s3 common.PrecomputedKeyStore, redis *redis.Store, wvm common.PrecomputedKeyStore) []common.PrecomputedKeyStore {
stores := make([]common.PrecomputedKeyStore, len(targets))

for i, f := range targets {
Expand All @@ -38,6 +39,12 @@ func populateTargets(targets []string, s3 common.PrecomputedKeyStore, redis *red
}
stores[i] = s3

case common.WVMBackendType:
if wvm == nil {
panic(fmt.Sprintf("WVM backend is not configured but specified in targets: %s", f))
}
stores[i] = wvm

case common.EigenDABackendType, common.MemoryBackendType:
panic(fmt.Sprintf("Invalid target for fallback: %s", f))

Expand All @@ -58,6 +65,7 @@ func LoadStoreManager(ctx context.Context, cfg CLIConfig, log log.Logger, m metr
var err error
var s3Store *s3.Store
var redisStore *redis.Store
var wvmStore *wvm.Store

if cfg.EigenDAConfig.StorageConfig.S3Config.Bucket != "" && cfg.EigenDAConfig.StorageConfig.S3Config.Endpoint != "" {
log.Info("Using S3 backend")
Expand All @@ -67,6 +75,16 @@ func LoadStoreManager(ctx context.Context, cfg CLIConfig, log log.Logger, m metr
}
}

if cfg.EigenDAConfig.StorageConfig.WVMConfig.Enabled {
if cfg.EigenDAConfig.StorageConfig.WVMConfig.Endpoint != "" {
log.Info("Using WVM backend")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are there any invariants that we need to enforce on parameter ordering to identify misconfiguration at app initialization? if so please put them here

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add checks on privatekey/signers and endpoint/chainid

wvmStore, err = wvm.NewStore(&cfg.EigenDAConfig.StorageConfig.WVMConfig, log)
if err != nil {
return nil, fmt.Errorf("failed to create WVM store: %w", err)
}
}
}

if cfg.EigenDAConfig.StorageConfig.RedisConfig.Endpoint != "" {
log.Info("Using Redis backend")
// create Redis backend store
Expand Down Expand Up @@ -122,8 +140,8 @@ func LoadStoreManager(ctx context.Context, cfg CLIConfig, log log.Logger, m metr
}

// create secondary storage router
fallbacks := populateTargets(cfg.EigenDAConfig.StorageConfig.FallbackTargets, s3Store, redisStore)
caches := populateTargets(cfg.EigenDAConfig.StorageConfig.CacheTargets, s3Store, redisStore)
fallbacks := populateTargets(cfg.EigenDAConfig.StorageConfig.FallbackTargets, s3Store, redisStore, wvmStore)
caches := populateTargets(cfg.EigenDAConfig.StorageConfig.CacheTargets, s3Store, redisStore, wvmStore)
secondary := store.NewSecondaryManager(log, m, caches, fallbacks)

if secondary.Enabled() { // only spin-up go routines if secondary storage is enabled
Expand All @@ -135,6 +153,6 @@ func LoadStoreManager(ctx context.Context, cfg CLIConfig, log log.Logger, m metr
}
}

log.Info("Creating storage router", "eigenda backend type", eigenDA != nil, "s3 backend type", s3Store != nil)
log.Info("Creating storage router", "eigenda backend type", eigenDA != nil, "s3 backend type", s3Store != nil, "wvm backend type", wvmStore != nil)
return store.NewManager(eigenDA, s3Store, log, secondary)
}
2 changes: 2 additions & 0 deletions store/cli.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package store
import (
"github.com/Layr-Labs/eigenda-proxy/store/precomputed_key/redis"
"github.com/Layr-Labs/eigenda-proxy/store/precomputed_key/s3"
"github.com/Layr-Labs/eigenda-proxy/store/precomputed_key/wvm"
"github.com/urfave/cli/v2"
)

Expand Down Expand Up @@ -55,5 +56,6 @@ func ReadConfig(ctx *cli.Context) Config {
CacheTargets: ctx.StringSlice(CacheTargetsFlagName),
RedisConfig: redis.ReadConfig(ctx),
S3Config: s3.ReadConfig(ctx),
WVMConfig: wvm.ReadConfig(ctx),
}
}
2 changes: 0 additions & 2 deletions store/generated_key/memstore/memstore_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,6 @@ func TestExpiration(t *testing.T) {

_, err = ms.Get(ctx, key)
require.Error(t, err)

}

func TestLatency(t *testing.T) {
Expand Down Expand Up @@ -125,5 +124,4 @@ func TestLatency(t *testing.T) {
_, err = ms.Get(ctx, key)
require.NoError(t, err)
require.GreaterOrEqual(t, time.Since(timeBeforeGet), getLatency)

}
Loading
Loading