Skip to content

Conversation

samlaf
Copy link
Collaborator

@samlaf samlaf commented May 28, 2025

Closes DAINT-537
Closes DAINT-586

Note: We should merge this PR as a normal merge (not squash merge) to keep proxy history.
One nice consequence of this that I just realized is that we keep the git blame history:
image

Why are these changes needed?

About time we merge proxy into monorepo. This will greatly help with testing, releases, maintainability.
Pulled in ("vendoring merge") the proxy history using

git subtree add --prefix=api/proxy https://github.com/Layr-Labs/eigenda-proxy.git main

so that now the proxy codebase sits under api/proxy in the monorepo.
We can merge the last few open PRs in proxy and still pull them in using git subtree pull --prefix=api/proxy https://github.com/Layr-Labs/eigenda-proxy.git main feature, but after that we should sunset the proxy repo and migrate everything here.

Note: could have used --squash option to squash the proxy's history... but decided to keep the history. Not sure what we want here. Both will affect our next release differently, in ways that I'm not super clear on.

Note to reviewers

This PR contains 150+ files changed, but most of them are just pulled from proxy. I doubt I got everything right, so there might be a bit of "please trust me, and let's fix issues as the come after merging this", but would suggest reviewers to:

  1. look at the diff between api/proxy and eigenda-proxy repo: git diff refs/remotes/eigenda-proxy/main chore--add-proxy-to-monorepo:api/proxy (not as small as I would have liked because lots of deleted stuff and package name changes etc... :)
  2. scrutinize every single file outside of api/proxy (there's only ~10 of them). Please nitpick the hell out of them, to make sure I haven't broken anything: makefile, ci, tests, etc.

The changes TLDR are:

  1. moved proxy's github workflows to the root workflows dir. Kept proxy CI separate for now to keep diff of this PR small, but eventually would want to merge all CI together
  2. got rid of proxy's Dockerfile, and instead added proxy as a target to the shared Dockerfile used to build every other service in the monorepo (make docker-release-build now also builds the proxy).
  3. copied the linter configuration from proxy over to monorepo, which had a LOT more linters enabled than the default 4/5 that monorepo was using. Surprisingly not that many things required changes, but this explains the few golang files outside of api/proxy that are changed in this PR.

Ubuntu and others added 30 commits August 5, 2024 10:44
Signed-off-by: Cody Littley <[email protected]>
Signed-off-by: Cody Littley <[email protected]>
Co-authored-by: Ethen <[email protected]>
* replace g1.point with larger g1.point that supports 32MiB

* change flag related part to blob size

---------

Co-authored-by: Ubuntu <[email protected]>
The ending "fi" for the if-statement was accidentally omitted.
@dmanc
Copy link
Contributor

dmanc commented Jun 25, 2025

Something that's a bit awkward is this but not sure we can fix it. (references eigenda repo rather than old proxy repo)
image

.dockerignore Outdated
node_modules
testdata
data
bin
./contracts/out
./contracts/cache
**/*.md
.dockerignore
**/Dockerfile
Copy link
Contributor

Choose a reason for hiding this comment

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

I noticed there's some pngs and pdfs introduced, should we add that to dockerignore?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

92da33a

Eventually we prob want a reverse ignore pattern? Like ignore everything and then un-ignore only the stuff we want (go files... and that's it?)

@@ -29,7 +29,7 @@ var _ Api = (*prometheusApi)(nil)
func NewApi(config Config) (*prometheusApi, error) {
var err error
clientOnce.Do(func() {
roundTripper := promconfig.NewBasicAuthRoundTripper(config.Username, promconfig.Secret(config.Secret), "", "", api.DefaultRoundTripper)
roundTripper := promconfig.NewBasicAuthRoundTripper(promconfig.NewInlineSecret(config.Username), promconfig.NewInlineSecret(config.Secret), api.DefaultRoundTripper)
Copy link
Contributor

Choose a reason for hiding this comment

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

What does this do?

Copy link
Collaborator Author

@samlaf samlaf Jun 25, 2025

Choose a reason for hiding this comment

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

I'm actually not 100% sure why it happened (maybe some new dependency from proxy?) but the prometheus module was bumped to a more recent version, and the method NewBasicAuthRoundTripper was different. Now their usernames are kept as secrets.
I'm like 95% sure this doesn't change the underlying semantics, and is just a syntax change.

@bxue-l2
Copy link
Contributor

bxue-l2 commented Jun 26, 2025

Why it Is under api/

@samlaf
Copy link
Collaborator Author

samlaf commented Jun 26, 2025

Why it Is under api/

Because it's another API to interact with eigenda, so thought it made sense to have it there, next to the clients that it uses.

samlaf and others added 10 commits June 26, 2025 18:23
clients was retrying in a loop and it was very hard to debug without these.
)

* chore: Verify that network id from eth rpc matches eigenda network

* chore: Verify that network id from eth rpc matches eigenda network - fix lll lint

* chore: Verify that network id from eth rpc matches eigenda network - fix build bug

* lll fix

* fix: address pr feedback

* chore: log chain ID

---------

Co-authored-by: Ethen Pociask <[email protected]>
* docs: mark EigenDANetwork config as optional

The flag is already marked as optional, but not the config field.

* fix: chainid network check bug

It had testnet hardcoded on chainid 17000, so wasn't possible to start proxy on preprod (which is also on 17000).

Changed to alow multiple eigneda networks per chainid

* Update common/client_config_v2.go

Co-authored-by: ethenotethan <[email protected]>

---------

Co-authored-by: ethenotethan <[email protected]>
@samlaf samlaf added this pull request to the merge queue Jul 2, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to no response for status checks Jul 2, 2025
@samlaf samlaf added this pull request to the merge queue Jul 2, 2025
@samlaf samlaf removed this pull request from the merge queue due to a manual request Jul 2, 2025
@samlaf samlaf added this pull request to the merge queue Jul 2, 2025
@samlaf samlaf merged commit 1503665 into master Jul 2, 2025
28 checks passed
@samlaf samlaf deleted the chore--add-proxy-to-monorepo branch July 2, 2025 18:12
dmanc added a commit that referenced this pull request Jul 17, 2025
* chore: add proxy to monorepo (#1611)

* remove ext data type

* fix: Oversized blob test

* fix: Oversized blob test - use smaller blob

* remove prover with verifier

* remove prover with verifier

* chore: Update G1 default value

* fix: Resolve commitment decoding bug

* Added badge for current actions.

Signed-off-by: Cody Littley <[email protected]>

* Split actions into smaller workflows.

Signed-off-by: Cody Littley <[email protected]>

* Remove omnibus actions workflow.

Signed-off-by: Cody Littley <[email protected]>

* Fixed holesky test name

Signed-off-by: Cody Littley <[email protected]>

* Updated readme with more badges.

Signed-off-by: Cody Littley <[email protected]>

* Rename some things.

Signed-off-by: Cody Littley <[email protected]>

* feat: Optimism v1.9 support

* backup

* Update README.md

Co-authored-by: Ethen <[email protected]>

* Update store/router.go

Co-authored-by: Ethen <[email protected]>

* PR review

* read from eigenda first, failover to s3

* docs(README.md): fix typo

* chore: lagniappe v1.4 updates

* chore: lagniappe v1.4 updates - fix readme

* chore: lagniappe v1.4 updates - update README.md

* replace g1.point with larger g1.point that supports 32MiB (#87)

* replace g1.point with larger g1.point that supports 32MiB

* change flag related part to blob size

---------

Co-authored-by: Ubuntu <[email protected]>

* Fix syntax in op-devnet-allocs.sh

The ending "fi" for the if-statement was accidentally omitted.

* chore: go fmt

* fix: rpc server metric label shortened to commitment header

* chore: EigenDA V8 dep bump

* chore: EigenDA V8 dep bump - update large blob test

* chore: EigenDA V8 dep bump - bump eigenda to incorporate tls disperser read client fix && add linting

* chore: EigenDA V8 dep bump - consolidate linting actions

* chore: EigenDA V8 dep bump - bump lint version

* chore: EigenDA V8 dep bump - update to latest versoin

* chore: Update runners

* chore: Update lint install

* chore: Update lint install

* chore: Update lint install

* chore: rm gosec from lint cfg

* Update lint.yml

* chore: Update commitment schemas in README

* chore: Update commitment schemas in README - update env ingestion

* chore: less verbose PR template

* chore: Update eigenda dep to v0.8.1 && update tests for 16MB blobs (#100)

* chore: Update eigenda dep to v0.8.1 && update tests for 16MB blobs

* chore: Update eigenda dep to v0.8.1 && update tests for 16MB blobs - fix lint

* refactor(metrics): remove dependency on optimism metrics (#94)

* refactor(metrics): remove dependency on optimism metrics
Also add status code label to http_requests_total metric

* doc: added TODO comment for updating commitmentHeader in metric middleware

* fix: lint accomodate -> accommodate

* fix: lint

* docs: fix file misnaming (#103)

* change disperseBlob response timeout to 60sec (#105)

* change disperseBlob response timeout to 60sec

* fix README

---------

Co-authored-by: Ubuntu <[email protected]>

* feat: Support explict modes for read fallbacks and caching (#104)

* feat: Support explict modes for read fallback and caching

* feat: Support explict modes for read fallback and caching - updated docs and fixed bugs

* feat: Support explict modes for read fallback and caching - updated docs and fixed bugs

* feat: Support explict modes for read fallback and caching - updated E2E test

* feat: Support explict modes for read fallback and caching - updated E2E test

* feat: Support explict modes for read fallback and caching - updated cfg validation tests

* feat: Support explict modes for read fallback and caching - incorporate PR feedback

* feat: Support explict modes for read fallback and caching - update query timeout

* chore: Update large blob test to use 16mb (#108)

* chore: Update large blob test to use 16mb

* chore: Update large blob test to use 16mb - fix cache retrieval bug

* chore: Update large blob test to use 16mb - update docs

* fix: Commitment decoding bug && server handler tests (#112)

* fix: Commitment decoding bug && svr handler tests

* fix: Commitment decoding bug && svr handler tests - lint fix

* fix: Commitment decoding bug && svr handler tests - mv gosec to golangci lint

* fix: Commitment decoding bug && svr handler tests - rm false positives

* Feat memstore artificial latency (#114)

* chore: make server flags with default value optional

* chore: fix run-server command (renamed to run-memstore-server)

* feat: put/get artificial latency for memstore backend

* doc: add memstore put/get latency flags into README options table

* chore: clean flags

* refactor: use config for memstore

* fix: memstore tests

* refactor: add default verifier config creation function for memstore tests

* fix(lint): remove unused var

* chore: rename memstore eventLoop -> pruningLoop (#117)

* BREAKING suggestion: change dockerfile to use entrypoint instead of cmd (#116)

breaking: change dockerfile to use entrypoint instead of cmd

* Chore give docker image fullname (#119)

* chore: docker-build uses full ghcr image name

* chore: clean dockerignore file

* feat: Redis backend target (#111)

* feat: Redis backend target

* feat: Redis backend target - update holesky test make target

* feat: Redis backend target - address PR feedback

* feat: Redis backend target - rebase to new main

* Update Makefile: add disperse-test-blob (#115)

* Update Makefile: add disperse-test-blob

This'll make it easier to test that the da-proxy is working manually. eg:
```
make run-memstore-server
make disperse-test-blob
```

* Update Makefile

* chore(breaking): add EIGENDA_PROXY prefix to memstore flags (#121)

* chore: add EIGENDA_PROXY prefix to memstore flags
needed for consistency with all other flags

* fix: add EIGENDA_PROXY prefix in the .env example files

* fix: wrap crit entrypoint error for easier debugging (#122)

* fix: negative confDepth bug in verifier (#131)

* fix: negative confDepth bug in verifier

* fix: lint

* fix: request record label with commitment mode and version (#109)

* fix: request record label with commitment mode and version

* fix: lint

* refactor: combine request metrics and write bad requests

* feat: added docker compose services and provisioning

* fix: commitment version type

* refactor: commitment mode and version meta struct

* chore: passing gosec with nosec directives

* ci: add tests on expected commitment mode and cert version

* fix: comments and labels

* chore: bunch of small refactors for improved devex (#124)

* fix: Dockerfile syntax warning (as -> AS)

* fix: injected ldflags

* chore: tag make build-docker image with :dev

* chore: better error logging

* fix: lint

* refactor: single var block declaration

* fix: server_tests

* Fix s3 panic from keccak commitment put requests (#129)

* refactor: e2e server_test to separate testsuite config creation from testsuite creation
this will give flexibility to change the exact config being used to start the testsuite server

* test: add e2e test for keccak commitment to expect error from s3 backend not set

* fix: panic on nil ptr dereference when s3 backend not set

* fix: lint

* fix: e2e tests

* dep: update eigenda to latest version for latest eigenda-client logging behavior (#132)

* Fix metric middleware panic (#133)

* test: add server_test middleware test

* fix: revert to old put/get handler behavior, and fix tests

* fix: metric panic

* fix: lint

* fix: HandlePut uses hardcoded default version (#135)

* chore: remove unused tls logic (#139)

* Eigenda client subsystem logger (#136)

* format: middleware function signatures for better readability

* chore: wrap an error for easier debugging

* chore: give eigenda-client its own logger with subsystem label

* initial set of edge cases (#110)

* initial set of edge cases

* commenting out test checking for nil

* fixing for ci lint

* ci fix

* removing unwanted assert

* more fixes to tests

* removing commented code

* separating tests for integration only

* changing test name and adding OP issue link

* Update e2e/server_test.go

Co-authored-by: Samuel Laferriere <[email protected]>

* changed test name and fn name

* test config changes

* making the linter happy

* adding comments

---------

Co-authored-by: anupsv <[email protected]>
Co-authored-by: Samuel Laferriere <[email protected]>

* fix: custom error wrapped around error and commitment meta (#134)

* fix: custom error wrapped around error and commitment meta

* refactor: minor improvement for custom errors

* fix: lint

* refactor: clean up useless handlerError

* fix: Return 400 when blobs exceed max limit (#140)

* Fix config checker logic (#138)

* remove -v from make test

* refactor: config checker
one rule was broken due to new semantics of confDepth flag, which can't be negative anymore

* fix: config tests

* fix: lint

* feat: add new eigenda-cert-verification-enabled flag

* fix: config tests

* docs: update readme with new cert-verification-enabled flag info

* show response commitment (#144)

Co-authored-by: Ubuntu <[email protected]>

* rename commitment mode (#151)

* rename

* restore go.mod and go.sum

---------

Co-authored-by: Ubuntu <[email protected]>

* ci: give holesky-test workflow access to secrets via pull_request_target (#153)

* Update Optimism dependency to OP-Stack 1.9.2 (#150)

Updates:
* optimism v1.9.0 -> v1.9.2
* op-geth to the commit 110c433a2469 which is used by optimism v1.9.2
* removed unnecessary version replacements
    * go-kzg-4844 now uses v1.0.0
    * pebble now uses v1.1.2

Necessary code changes:
* opio is now ctxinterrupt
* plasma is now alt-da

* refactor: clean up flags and configs (#146)

* refactor: move flags from config.go -> flags.go

* refactor: move flags+config to new cli package

* refactor: stores into subdirs (precomputed_key and generated_key)

* fix: memstore test

* refactor: move config back to server package + rename cli->flags

* refactor: move redis flags+config into redis package cli.go

* refactor: move s3 flags to their own package cli.go

* refactor: move eigenda_client flags to their own (temporary) package

* refactor: move verifier flags/config into its own package cli.go

* fix: lint
Also added WaitForFinalization eigenda flag

* refactor: move memstore flags to their own package cli.go

* fix: e2e holesky-test

* fix: e2e tests

* fix: e2e tests (attempt 2)

* refactor: rename KeyGeneratedStore -> GeneratedKeyStore

* style(flags): remove unneeded explicit "" values

* style: add category to all s3 flags (forgot in previous commit)

* style: lint

* feat: update eigenda latest release v0.8.4 (#158)

* fix: verifier srs flags paths (#159)

* fix: verifier srs flags paths

* style: lint

* fix: import and expose the verifier flags (#161)

* fix: import and expose the verifier flags

* fix: maxBlobLength flag action was not being run

* style: print config on startup

* fix: don't allow to configure fallback or cache with nil Redis|S3 ins… (#155)

fix: don't allow to configure fallback or cache with nil Redis|S3 instances

* Added --s3.enable-tls flag (#148)

* Added --s3.enable-tls flag

* Update S3 env vars

* chore: Don't return commitment for OP Keccak256 mode on PUT requests (#147)

* chore: Only return commitment on PUT for OP Generic and Simple commitment modes

* chore: Only return commitment on PUT for OP Generic and Simple commitment modes - update tests

* chore: Only return commitment on PUT for OP Generic and Simple commitment modes

* chore: Only return commitment on PUT for OP Generic and Simple commitment modes- rm error file

* chore: add deprecated flags to force early crash when used (#165)

* chore: add deprecated flags to force early crash when used

* flags: update memstore flags category description

* flags: add verifier deprecated flags + fix some other small things

* flags: add deprecation warnings to old memstore flag env-vars

* lint: fix lint warning

* flags: remove wait_for_finalization from deprecated flags

didn't exist before, so shouldnt be deprecated - its a new flag

* flags: cleaner deprecated warning (env var appears without surrounding [])

* flags: change withEnvPrefix to return single string for better deprecated error msgs

* fix: lint caught bug

* opsec: prevent private key from being logged

* update readme and template (#170)

Co-authored-by: Ubuntu <[email protected]>

* hide eth rpc, format hidden string (#171)

Co-authored-by: Ubuntu <[email protected]>

* docs: better usage docs for signer-private-key flag (#174)

* Disable chunk encoding for `put` requests to Google Cloud Storage (#167)

* Set DisableContentSha256=true for Put() requests to Google

* Move putObjectOptions to s3 Store struct

* fix env variable in docker compose (#180)

Co-authored-by: Ubuntu <[email protected]>

* Allow Google storage endpoints without http/s (#179)

Fix Google URL check

* fix: change put route put/ -> put (#168)

* fix: change put route put/ -> put

* chore: update dependencies optimism1.9.2->1.9.3 and go1.21->1.22

* fix: readd the op-geth replace directive

* style: lint

* fix: change client to use new put route instead of put/

* dependency: update op to commit that has put route fix

* fix(routes): still need /put/ route

* fix(ci): update go1.21->1.22 everywhere (#183)

We updated go.mod to use go1.22 recently, but forgot to update the ci workflows.

* Improve local test setup (#177)

* tests: add vscode settings to run tests from vscode

* tests: run minio and redis as testcontainers instead of starting from makefile

* style: fix lint

* test: pin minio version to RELEASE.2024-10-02T17-50-41Z

* docs(main_test.go): more accurate comment

* docs: add docstring above startRedisContainer function

* style: startMinio -> startMinIO

* docs: add comment with TODO for refactoring global init() starting test containers

* refactor: cleaner routing using gorilla mux regexps (#185)

* refactor: GET routes to use gorilla mux regexp patterns

* refactor: server into files routing/handlers/middleware

* style: fix lint

* refactor: use gorilla mux for POST routes

* routing: fix incorrect error msgs for simple commitments

* cleanup: old unused function

* tests: fix e2e tests

* docs: add docstrings to handlers

* style: use vars for the gorilla mux routing variables instead of hardcoded strings

* logging: better logging msgs in op handlers

* metrics: use "unknown" instead of "noCommitment" in metrics middleware when missing meta info

* logging(handlers): simplify by moving "processing request" logs to shared handlers only

* fix: fetch quorum parameters from edasm at RBN instead of latest block (#190)

* fix: fetch quorum parameters from edasm at RBN instead of latest block

* docs: fix getQuorumAdversaryThreshold comment

* feat: Optional async decoupling for secondary writes and reworked E2E metric assertions (#182)

* chore: Better abstract secondary storage

* chore: Better abstract secondary storage - add channel stream for secondary insertions

* chore: Better abstract secondary storage - add channel stream for secondary insertions

* chore: Better abstract secondary storage - observe secondary storage via metrics

* chore: Better abstract secondary storage - observe secondary storage via metrics - cleanups

* chore: Better abstract secondary storage - observe secondary storage via metrics - refactors and lints

* chore: Better abstract secondary storage - observe secondary storage via metrics - refactors and lints

* chore: Better abstract secondary storage - observe secondary storage via metrics - refactors and lints

* chore: Better abstract secondary storage - observe secondary storage via metrics - ensure thread safety for secondary stores

* chore: Better abstract secondary storage - observe secondary storage via metrics - use in memory metrics

* chore: Better abstract secondary storage - observe secondary storage via metrics - add concurrency flag

* chore: Better abstract secondary storage - observe secondary storage via metrics - fmt

* chore: Better abstract secondary storage - address PR feedback, add benchmarks, code comments

* chore: Better abstract secondary storage - refactor tests

* chore: Better abstract secondary storage - more test clean ups

* Merge branch 'main' of github.com:Layr-Labs/op-plasma-eigenda into epociask--chore-reabstract-router

* chore: Better abstract secondary storage - update go mock ref

* chore: Better abstract secondary storage - address PR feedback

* refactor: use batch confirmation that was upstreamed to eigenda client (#192)

* refactor: verifier confirmation logic to use upstreamed blob confirmation depth guarantee

flags: add new eigenda-client flags for blob confirmation depth

also pass those flags to verifier (until we also upstream verification to the eda client)

comment: was pointing to wrong eigenda-client repo in TODO comment

fix: go.mod to point to PR commit instead of using local replace directive

chore: go mod tidy to generate go.sum

chore: use proto Getter functions instead of fields (that are potentially nil)

ci: upgrade golangci-lint version 1.60->1.61

fix: verifySecurityParams func arguments after rebase

chore: make more robust verifyBatchConfirmedOnchain logic

Added retry logic and better comments

style: Onchain -> OnChain

docs: better comment describing eth_getBlockByNumber call args

style: better error msg when memstore enabled but cert verification is not

fix: verifier.WaitForFinalization was not set

fix(flags): deleted deprecated flags that had same name as new ones in other package, causing panic

style(flags): merged WaitForFinalizationFlagName into ConfirmationDepth flag

It now accepts uint conf depth or 'finalized' string now

chore: remove unused utils.EqualBytes function (same as stdlib exp function anyways)

chore: remove log line added for debugging

* fix: missing contexts in a few places (after rebase)

* fix: lint issues

* deps: update eigenda to commit 5fe3e910a22d after merging upstream PR

* docs(verifier): expand explanation for reorg edge case

* docs(verifier): make more precise explanation for why we need to retry checking batch confirmation depth

* style: fix lint

* fix(e2e tests): missing new eigenda-client required config fields (#196)

* fix(e2e tests): missing new eigenda-client required config fields - ethrpc and svcmanageraddr

* Revert "ci: give holesky-test workflow access to secrets via pull_request_target (#153)"

This reverts commit 15b10fd0feaa324ae49c143cb642d1b3e39ffc26.
The commit was doing things very wrong. I hadn't understood how pull_request_target works.
Was causing the workflow to run against main branch head commit instead of PR commit.
We will need to find another solution to the problem of letting external contributors run this workflow.

* ide: update vscode settings.json with env vars to run holesky testnet e2e tests

* docs: shorten svcManagerAddr holesky testnet comment

* tests: add panic when both INTEGRATION and TESTNET env vars are set

This forces test runner to be fully aware of which test suite he is running (otherwise it implicitly runs the TESTNET suite)

* style: make handleGetShared returned error print hex encoded commitment

Previously it was printing as byte array, which is unreadable and clutters logs

* docs: better comments in metrics middleware

* deps: upgrade eigenda dep to regression fix commit

TODO: will need to update this after that PR is merged

* deps: update eigenda dependency to master head

Just merged https://github.com/Layr-Labs/eigenda/pull/849 which will fix our ci bug

* fix(#191): Routing namespace --> Storage (#195)

* feat(failover): return 503 to batcher when eigenda is down (#193)

* feat(failover): return 503 to batcher when eigenda is down

chore: go mod tidy to generate go.mod

feat: dealing with new eigenda-client grpc errors + ErrorFailover convention

comment: fix typo

feat(handlers): postShared returns 429 when disperser rate limited client

flag(eigenda): rename RetriesBeforeFailover -> PutRetries

reviewer correctly pointed out that retrying was more general than only for failovers

lint: nolint exhaustive switch check for Put case

* flag(eigenda-client): add cli flag for new config ConfirmationTimeout

* tests(handlers): rename servers_test.go -> handlers_test.go + some small refactors

* tests(handlers): add PUT failure tests for all modes

* test(handlers): remove unneeded expectedError in TestHandlerPut

* dep: update eigenda to master head (contains ErrorFailover fix)

* tests(handlers): add tests for error types (including failover)

* fix: errors after rebase

* flags: clearer usage string for eigenda-client ResponseTimeoutFlag

* style: define is503 function to follow isABC pattern

* style: make lint

* fix: Hide other sensitive cfg values (#194)

* fix: Hide other sensitive cfg values

* fix: prettyPrintConfig hide values before marshalling

* docs: add comment for why we are hiding password when marshalling

* fix(makefile): run-memstore-server command missing new mandatory flags

* fix: prettyPrintConfig was hiding wrong field. Change RPC->EthRpcUrl

* refactor: way redis/s3 hides config details (use custom marshalling function)

---------

Co-authored-by: Samuel Laferriere <[email protected]>

* refactor: rename client -> SimpleCommitmentClient and add comments (#201)

* refactor: rename client -> SimpleCommitmentClient and add comments

* style: rename client/client.go -> client/simple.go

* fix(middleware): proper handling of handler status codes in log/metrics middlewares (#200)

* fix(middleware): proper handling of handler status codes in log/metrics middlewares

* style: remove trailing whitespace (fix lint)

* fix(middleware) cert version byte handling

* style: make format

* chore(simple_client): Add explicit ServiceUnavailable error type (#207)

* chore(simple_client): Add explicit ServiceUnavailable error type

* chore(simple_client): Add explicit ServiceUnavailable error type - bring back constructor

* chore(simple_client): Add explicit ServiceUnavailable error type - fix lint

* chore: update op dependency to v1.9.5 (#203)

* chore: update op dependency to v1.10.0

* chore: downgrade to v1.9.5 + fix optimism tests

* docs: update README with failover info (#204)

* docs: update README with failover info

* docs(README): add link to arb failover spec

* docs(README): add "Service Unavailable" description for 503 status code

* fix: Disable `SERVICE_MANAGER_ADDR` & `ETH_RPC` as mandatory (#205)

* fix: Disable svc manager address & eth rpc as mandatory

* fix: Disable svc manager address & eth rpc as mandatory - add eigenda client override when memstore enabled

* chore(simple_client): Add explicit ServiceUnavailable error type - address PR comment and add unit test

* chore(simple_client): Add explicit ServiceUnavailable error type - address PR comment

* chore: Add mockable http client to simple client (#209)

* feat: separate simple client into its own module (#208)

* feat: separate simple client into its own module

This will make it easier to import it into other projects without importing all of the other dependencies of our root go.mod.
We will first merge this PR with a replace directive in the main go.mod, then release v0.1.0 of the new client module, and then
make a new PR to use that version in the main go.mod file.

* chore: SimpleClient -> Standard Client (#210)

---------

Co-authored-by: Ethen <[email protected]>

* fix: copy `client/go.mod` to `builder` in Dockerfile (#211)

fix: copy client/go.mod to builder

* fix(CI): Add docker build and curl check (#214)

* Create dependabot.yml (#216)

* Create dependabot.yml

* Update dependabot.yml

* Update dependabot.yml

* Update .github/dependabot.yml

* Add fuzz tests (#137)

* Fix single node tree verification bug (#219)

* Fix single node tree bug

* Clarify method doc

Signed-off-by: litt3 <[email protected]>

* Add link to on chain method

Signed-off-by: litt3 <[email protected]>

---------

Signed-off-by: litt3 <[email protected]>

* fix: memstore returns data_length in number of symbols instead of bytes (#223)

* make memstore return data_lenght in number of symbols

* fix lint

* lint

* docs: fix readme test docs, and add test comments to makefile (#225)

* docs: fix readme test documentation, and add comments describing tests to makefile

Signed-off-by: litt3 <[email protected]>

* Add missed period

Signed-off-by: litt3 <[email protected]>

* Add additional explanation of e2e tests

Signed-off-by: litt3 <[email protected]>

---------

Signed-off-by: litt3 <[email protected]>

* fix(sigmap-EDAP-04): Add IO parsing size constraint on incoming request bodies (#227)

* fix(sigmap-EDAP-04): Add IO parsing size constraint on incoming request bodies

* fix(sigmap-EDAP-04): Add IO parsing size constraint on incoming request bodies - address PR feedback

* fix(sigmap-EDAP-04): Miscellaneous General Comments (#228)

* fix(sigmap-EDAP-04): Miscellaneous General Comments

* fix(sigmap-EDAP-04): Miscellaneous General Comments - address PR feedback

* fix(sigmap-EDAP-01): Missing nil Checks On Parameters Of Incoming Requests (#231)

* fix(sigmap-EDAP-01): Missing nil Checks On Parameters Of Incoming Requests

* fix(sigmap-EDAP-01): Missing nil Checks On Parameters Of Incoming Requests - check all nil fields and use proto accessors for referencing cert fields

* fix(sigmap-EDAP-06): Missing IsOnCurve & IsInSubgroup Checks For Elli… (#229)

* fix(sigmap-EDAP-06): Missing IsOnCurve & IsInSubgroup Checks For Elliptic Curve Point

* fix(sigmap-EDAP-06): Missing IsOnCurve & IsInSubgroup Checks For Elliptic Curve Point - remove unnecessary function

* fix(sigmap-EDAP-06): Missing IsOnCurve & IsInSubgroup Checks For Elliptic Curve Point - address PR feedback

* fix(sigmap-EDAP-06): Missing IsOnCurve & IsInSubgroup Checks For Elliptic Curve Point - address PR feedback

* chore: Add security audit (#234)

* fix: Field element casting to affine representation (#240)

* adding audit report (#244)

* adding audit report

* Create SECURITY.md

* removing from root

* fixing repo name

---------

Co-authored-by: anupsv <[email protected]>

* docs: update readme shields to point to actual workflows (#248)

* fix(#251): better error logging for RPC lookup errors against service manager (#254)

* chore: modify verifier to not require eth archive node (#241)

* chore: force verifier's EthConfirmationDepth to be <64

We panic in the flag's action, as well as in the verifier's constructor when this condition is not respected.

This will make sure that an archival node is not required.

* chore: modify verifier to load quorum parameters only once at initialization

This removes the need for running with an eth archive node.

* style: fix minor lint issue

* docs: update README to mention that archival node is no longer needed

* docs: clean-up README archival node requirement explanation

* docs: fix verify/cert.go comment typo

Co-authored-by: Ethen <[email protected]>

* docs: for eg -> e.g.

* style(cert): remove unecessary bound checks from inside loop

* style: create consts package with EthHappyPathFinalizationDepthBlocks = 64

* style: change panic into error return

* docs: change op reference for eth reference

* docs: make flag comment simpler

* Update verify/cert.go

Co-authored-by: EthenNotEthan <[email protected]>

---------

Co-authored-by: Ethen <[email protected]>

* docs: pimp out readme with blob lifecycle diagrams (#233)

* chore: move pull_request_template.md under .github/ dir

* docs: reorder README sections to feel more natural (move flags to bottom)

* docs (wip): add blob lifecycle diagrams to README

* docs: remove Sidecar from README title (proxy is not necessarily a side)

* docs: add blob lifecycle section to README

* docs: add TOC to README

* style(routing): rename raw_commitment -> payload

We changed the name in README so should be consistent in the code

* docs: update README sections to use Payload instead of Blob

Posting Blobs -> Posting Payloads
Retrieving Blobs -> Retrieving Payloads

* docs: remove "obviously" word

* Required quorums glitch (#255)

* Avoid quorum 1 check on range of Holesky blocks

* Improve SVC address check

* Update verify/verifier.go

Co-authored-by: Samuel Laferriere <[email protected]>

* Update verify/verifier.go

Co-authored-by: Samuel Laferriere <[email protected]>

* Avoid unnecessary cast

* Rename constant

* Fix lint

---------

Co-authored-by: Samuel Laferriere <[email protected]>

* docs: update README posting payload image (#256)

* fix: remove last eth_call that required archive node (#259)

Forgot this one in https://github.com/Layr-Labs/eigenda-proxy/pull/241

* docs: update SECURITY.md with audit commit + fix small typos (#263)

* docs: update SECURITY.md

* docs: update SECURITY.md with audited release number + release where findings were addressed

* chore: Update compose with secondary store setup && minor refactors (#270)

* chore: Update compose with secondary store setup && minor refactors

* chore: Minor code comment

* chore: Update logging to use `layr-labs/eigensdk-go` (#264)

* chore: Update logging to use eigengo-sdk

* chore: Update logging to use eigengo-sdk - fmt

* chore: Update logging to use eigengo-sdk - incorporate latest eigenda changes, deprecate flags, and update docs / code comments

* chore: Update logging to use eigengo-sdk - fix test

* chore: Update logging to use eigengo-sdk - svc_binding -> edsm_binding

* chore: Update logging to use eigengo-sdk - move logging to own packag e and copy entire dependency package vs hyrbid

* chore: Update logging to use eigengo-sdk - rm todo in metrics && fix lint errs

* chore: Update logging to use eigengo-sdk - refactor flag construction patterns across subpackages to adhere to uniform abstraction

* chore: Update logging to use eigengo-sdk - refactor flag construction patterns across subpackages to adhere to uniform abstraction

* chore: Update logging to use eigengo-sdk - update metric

* chore: Update logging to use eigengo-sdk - go gfmt

* chore: Update logging to use eigengo-sdk - apppease white space linting

* chore: Update logging to use eigengo-sdk - white space lint

* chore: Update logging to use eigengo-sdk - white space lint

* docs: add srs requirements section to readme (#276)

* docs: add srs requirements section to readme

* docs: fix readme typo

* feat: public s3 config option (#277)

* Create codeql-scanning.yml (#279)

* Create codeql-scanning.yml

* adding versions

* chore: fix miscellaneous typos in comments (#287)

* ci: add test to make sure env vars in .env.example.holesky are valid (#286)

* ci: add test to make sure env vars in .env.example.holesky are valid

* ci: add a ping to proxy's health endpoint in test-proxy-startup-with-env-vars script

* chore: bump default confirmation-depth 0->8 blocks (#285)

* chore: change default confirmation-depth to 5 blocks (from 0 blocks)

This is a very important change. Reorgs of 1 block are quite common and can cause a da cert to be submitted to the rollup inbox with a wrong confirmationBlock! It's important to wait a few blocks for the confirmBatch to have landed onchain before submitting the dacert to the batcher inbox.

* docs: add troubleshooting guide with first section on the batch-hash-mismatch error

* chore: bump default confirmationDepth 5->8

* feat: add memstore config to return failover errors on puts (#289)

* chore: add comments to release-drafter.yml files to explain what they are

* chore: add memstore config to return failover errors on puts

This is useful for testing failover in batcher.

Right now a new proxy would need to be spun up with this config turned on. We should consider adding an admin rpc rpi to turn these on/off dynamically.

* chore: remove unecessary "(FOR TESTING") prefix in some memstore flags

* ci: cleanup into a single per-pr.yml gha

* Revert "ci: cleanup into a single per-pr.yml gha"

This reverts commit adfdfb80b3dcec0c55e7e13ffc27f758fa0a5385.

* ci: add trailofbits/go-queries to codeql-scanning.yml (#288)

* Update codeql-scanning.yml

* Update codeql-scanning.yml

* feat: add http routes and handlers to get/patch the memstore config (#293)

* feat: add http routes and handlers to get/patch the memstore config

* test(memstore_handlers): fix GET tests

* style: make format

* style(memconfig): remove unneeded tags from struct in MarshalJSON

* chore: add marshalJSON function to memstore safeconfig (it wasnt getting logged on startup)

* style(verifier): better startup logs

* chore: fix golangci.yml errors/warnings

Not sure why the ci error started appearing just now...

* chore(makefile): clean up irrelevant run-memstore-server flags

* test: fix fuzz test (CreateTestSuite was not registering the route after the refactor)

* Update store/generated_key/memstore/README.md

Co-authored-by: ethenotethan <[email protected]>

* docs(memstore): add command to print memstore flags

---------

Co-authored-by: ethenotethan <[email protected]>

* ci: cleanup into a single per-pr.yml gha (#295)

* ci: cleanup into a single per-pr.yml gha

* chore: fix golangci.yml issues

* ci: rename gchr -> push-ghcr.yml

* ci: rename per-pr workflow to CI (readme badge looks better)

* docs: update README with new ci badges

* feat: Memconfig client (#301)

* feat: Memconfig client

* feat: Memconfig client - demarcate clients into seperate packages && rename module to

* feat: Memconfig client - update Dockerfile to use new clients package instead of /client

* feat: Memconfig client - update docs

* feat: Memconfig client - update Dockerfile

* feat: Memconfig client - update Dockerfile

* feat: Memconfig client - rm client dependency from go.mod

* feat: Memconfig client - update Dockerfile/dockerignore

* feat: Memconfig client - add usability comment

* chore(memstore): hash entire cert + remove cert verification (#308)

* chore(memstore): use hash of cert for key

* chore(memstore): use hash of cert for key

* chore(memstore): Compute batch header hash before persisting (#311)

* chore(memstore): Compute batch header hash before persisting

* chore(memstore): Compute batch header hash before persisting - lint

* chore(memstore): Compute batch header hash before persisting - use encoded value

* chore: fix readme with correct cast cmd (#314)

Co-authored-by: Samuel Laferriere <[email protected]>

* fix: E2E holesky tests (#299)

* fix: E2E holesky tests

* fix: E2E holesky tests - lint && update oversize checks

* fix: E2E holesky tests - reduce holesky times

---------

Co-authored-by: Samuel Laferriere <[email protected]>

* test: fix failing e2e-local safety check (#323)

e2e tests were turned off by mistake for a while. https://github.com/Layr-Labs/eigenda-proxy/pull/299 just turned them back on. Not sure why the test was only caught by CI after merging. But this commit fixes the failing test.

* ci: separate holesky-test into its own job (#325)

* ci: separate holesky-test into its own test

Also lower its timeout to 30mins
Holesky is broken so this test is flaky. Makes sense to sepraate it into its own job so that we can rerun only this test when it fails.

* ci: remove 30 min timeout on workflow in favor of that in makefile

wasnt seeing logs because ci job was getting cancelled before test failed, and didn't have -v flag enabled.
So enabled the flag and removed the timeout from ci in case

* feat!: add eigenda v2 support (#321)

* feat: Initial V2 scaffolds

* feat: Initial V2 scaffolds - add boilerplate dependency injection and feature flag

* feat: Initial V2 scaffolds - go fmt

* feat: Initial V2 scaffolds - wire up disperser and retriever clients

* feat: EigenDAV2 commitment processing and generation (#265)

* fix(#251): better error logging for RPC lookup errors against service manager (#254)

* chore: modify verifier to not require eth archive node (#241)

* chore: force verifier's EthConfirmationDepth to be <64

We panic in the flag's action, as well as in the verifier's constructor when this condition is not respected.

This will make sure that an archival node is not required.

* chore: modify verifier to load quorum parameters only once at initialization

This removes the need for running with an eth archive node.

* style: fix minor lint issue

* docs: update README to mention that archival node is no longer needed

* docs: clean-up README archival node requirement explanation

* docs: fix verify/cert.go comment typo

Co-authored-by: Ethen <[email protected]>

* docs: for eg -> e.g.

* style(cert): remove unecessary bound checks from inside loop

* style: create consts package with EthHappyPathFinalizationDepthBlocks = 64

* style: change panic into error return

* docs: change op reference for eth reference

* docs: make flag comment simpler

* Update verify/cert.go

Co-authored-by: EthenNotEthan <[email protected]>

---------

Co-authored-by: Ethen <[email protected]>

* docs: pimp out readme with blob lifecycle diagrams (#233)

* chore: move pull_request_template.md under .github/ dir

* docs: reorder README sections to feel more natural (move flags to bottom)

* docs (wip): add blob lifecycle diagrams to README

* docs: remove Sidecar from README title (proxy is not necessarily a side)

* docs: add blob lifecycle section to README

* docs: add TOC to README

* style(routing): rename raw_commitment -> payload

We changed the name in README so should be consistent in the code

* docs: update README sections to use Payload instead of Blob

Posting Blobs -> Posting Payloads
Retrieving Blobs -> Retrieving Payloads

* docs: remove "obviously" word

* Required quorums glitch (#255)

* Avoid quorum 1 check on range of Holesky blocks

* Improve SVC address check

* Update verify/verifier.go

Co-authored-by: Samuel Laferriere <[email protected]>

* Update verify/verifier.go

Co-authored-by: Samuel Laferriere <[email protected]>

* Avoid unnecessary cast

* Rename constant

* Fix lint

---------

Co-authored-by: Samuel Laferriere <[email protected]>

* docs: update README posting payload image (#256)

* fix: remove last eth_call that required archive node (#259)

Forgot this one in https://github.com/Layr-Labs/eigenda-proxy/pull/241

* docs: update SECURITY.md with audit commit + fix small typos (#263)

* docs: update SECURITY.md

* docs: update SECURITY.md with audited release number + release where findings were addressed

* feat: EigenDAV2 commitment processing and generation

* feat: EigenDAV2 commitment processing and generation - add note describing follow up todo

---------

Co-authored-by: Samuel Laferriere <[email protected]>
Co-authored-by: Gaston Ponti <[email protected]>

* feat: Initial V2 scaffolds - dependency injection working, current bug with G2 point ingestion

* feat: Initial V2 scaffolds - E2E proof of concept sort've

* feat: Initial V2 scaffolds - bump EigenDA

* feat: Initial V2 scaffolds - update dependency injection

* feat: Initial V2 scaffolds - hardcode quorums

* feat: Initial V2 scaffolds - working mvp

* feat: Initial V2 scaffolds - working lint and tests

* feat: Initial V2 scaffolds - add todo around G2 ingestion

* feat: Initial V2 scaffolds - change all usage of directory path to just path

* feat: Initial V2 scaffolds - refactor manager

* feat: Initial V2 scaffolds - refactor commitments

* chore(V2): Refactor dependency injection && config mgmt (#296)

* chore(V2): Refactor dependency injection && config mgmt

* chore(V2): Refactor dependency injection && config mgmt - address config.go feedback

* chore(V2): Refactor dependency injection && config mgmt - update polynomial form flag

* chore(V2): Refactor dependency injection && config mgmt - loader --> builder

* feat: Initial V2 scaffolds - add verification && more verbose logging

* feat: Initial V2 scaffolds - update e2e setup to use memconfig

* chore(V2): update config checks and fix custom quorum injection (#298)

* feat: Initial V2 scaffolds - update e2e setup to use memconfig

* chore(V2): update config checks and fix custom quorum injection

* chore(V2): update config checks and fix custom quorum injection - update flag descriptions && add  flag

* chore(V2): update config checks and fix custom quorum injectiom - address PR feedback

* chore(V2): update config checks and fix custom quorum injectiom - update tls flag description

* chore(V2): update config checks and fix custom quorum injectiom - pc --> proxyCfg

* chore(V2): update config checks and fix custom quorum injectiom - private builder fields and comment

* feat(v2): memstore (#305)

* feat(V2): memstore

* feat(V2): memstore - code comments, fix v2 wiring bugs, update monorepo dep

* feat(V2): memstore - E2E tests

* feat(V2): memstore - minor updates

* feat(V2): memstore - address PR feedback

* feat(V2): memstore - add CLI comment

* feat(V2): memstore -address pr comments

* feat: Initial V2 scaffolds - lint fixes and minor refactors

* Update EigenDA version, and fix linter issues (#315)

Signed-off-by: litt3 <[email protected]>

* V2: fix e2e tests (#316)

fix(E2E): Update oversized cert test to assert lookup error instead

* Rework v2 initialization (#317)

* Rework v2 initialization

Signed-off-by: litt3 <[email protected]>

* Use snake case for imports

Signed-off-by: litt3 <[email protected]>

* Adopt latest eigenDA changes

Signed-off-by: litt3 <[email protected]>

* Fix error messages

Signed-off-by: litt3 <[email protected]>

* Tweak import

Signed-off-by: litt3 <[email protected]>

* Check signer account balance

Signed-off-by: litt3 <[email protected]>

---------

Signed-off-by: litt3 <[email protected]>

* Rename EigenDACommit to EigenDACommitmentType

Signed-off-by: litt3 <[email protected]>

* Strive for naming consistency

Signed-off-by: litt3 <[email protected]>

* Do general cleanup

Signed-off-by: litt3 <[email protected]>

* Fix bug found by copilot

Signed-off-by: litt3 <[email protected]>

* Further separate out secrets

Signed-off-by: litt3 <[email protected]>

* Reduce diff size

Signed-off-by: litt3 <[email protected]>

* Return error instead of panicking

Signed-off-by: litt3 <[email protected]>

* Fix log

Signed-off-by: litt3 <[email protected]>

* Only read v2 config if enabled

Signed-off-by: litt3 <[email protected]>

* Put back check for redis password

Signed-off-by: litt3 <[email protected]>

* Make configs not use pointers

Signed-off-by: litt3 <[email protected]>

* Remove reference to arbitrum

Signed-off-by: litt3 <[email protected]>

* Clean up Builder

Signed-off-by: litt3 <[email protected]>

* Do more cleanup on StorageManagerBuilder

Signed-off-by: litt3 <[email protected]>

* Move CertVerifierAddress into config struct

Signed-off-by: litt3 <[email protected]>

* Return struct instead of interface

Signed-off-by: litt3 <[email protected]>

* Convert len to symbols

Signed-off-by: litt3 <[email protected]>

* Add TODO

Signed-off-by: litt3 <[email protected]>

* Describe future improvements

Signed-off-by: litt3 <[email protected]>

* Add additional config check

Signed-off-by: litt3 <[email protected]>

---------

Signed-off-by: litt3 <[email protected]>
Co-authored-by: Ethen Pociask <[email protected]>
Co-authored-by: Samuel Laferriere <[email protected]>
Co-authored-by: Gaston Ponti <[email protected]>

* chore: better errors and docs for batch-hash-mismatch error (#322)

* chore: create structured error for batch-hash-mismatch error

This permits handling it. Realized while implementing this that there is currently no good way to deal with the error however... but decided to still commit it for better documentation of why this is not possible.

* docs(troubleshooting_v1.md): expand on batch-hash-mismatch error documentation

Explain that this is only possible on op-stack.

* docs(troubleshooting_v1): add explanation that batch-hash-mismatch also affects nitro l3s

* docs(batch-hash-mismatch): remove TODO since this error is not solvable

Added explanation for why not.

* docs(batch-hash-mismatch): update old incorrect documentation for BatchMetadataHashMismatchError

Not actually possible to handle this error. Update the explanation, and point to new protobuf docs

* docs: fix typo

* fix: move errors.go to verify/v1 (it was left alone and breaking build after merge master)

* docs: add readme link to v2 integration spec (#329)

* chore: add linter to enforce max line lengths of 100 (#331)

* chore: add golines to format line lengths to 100

This is enforced by the lll linter that we add to the golangci-lint config

* chore: change golines formatter to use 120 max line len

* style: make format

* chore(golangci): allow certain patterns to have long lines in linter config

* chore: break up all long lines or add `//nolint: lll` directive

* docs: cleanup readme by separating users from contributors (#330)

* docs: cleanup readme by separating users from contributors

first time contributors were lost and didn't understand how to setup proxy and interact with it.

Added a user guide to the readme which gives a quick start example of spinning up proxy in memstore mode, dispersing and retrieving a payload.

Also refactored a bunch of the sections and TOC to make the whole readme easier to parse.

* docs(README): rephrase GET route documentation

* docs(README): break up long lines

* docs: add godoc testable examples for the standard client (#336)

Also added some godocs for eigenda-proxy itself and some other packages.

* chore: Update to latest core version, to include cert verifier address provider (#333)

Update to latest core version

Signed-off-by: litt3 <[email protected]>

* fix: Enforce V1 cert field sizes (#338)

* Do integration test cleanup (#337)

* Do some test cleanup

Signed-off-by: litt3 <[email protected]>

* Tweak more configurations

Signed-off-by: litt3 <[email protected]>

* Tweak log levels

Signed-off-by: litt3 <[email protected]>

* Add makefile doc

Signed-off-by: litt3 <[email protected]>

* Use better flag name

Signed-off-by: litt3 <[email protected]>

* Fix test type

Signed-off-by: litt3 <[email protected]>

* Add test matrix

Signed-off-by: litt3 <[email protected]>

* Tweak per pr yaml

Signed-off-by: litt3 <[email protected]>

* Remove irrelevant vars from settings.json

Signed-off-by: litt3 <[email protected]>

* Fix fuzz description

Signed-off-by: litt3 <[email protected]>

* Remove coverage from CI

Signed-off-by: litt3 <[email protected]>

* Fix test timeout

Signed-off-by: litt3 <[email protected]>

* Don't bother excluding fuzz tests from unit tests

Signed-off-by: litt3 <[email protected]>

* Decrease boilerplate

Signed-off-by: litt3 <[email protected]>

* Rename Environment to Backend

Signed-off-by: litt3 <[email protected]>

* Remove test matrix util

Signed-off-by: litt3 <[email protected]>

* Split benchmark test

Signed-off-by: litt3 <[email protected]>

* Try alternate test config strategy

Signed-off-by: litt3 <[email protected]>

* Fix failing tests

Signed-off-by: litt3 <[email protected]>

* test(fuzz): fix fuzz tests (#339)

Cleaned up the fuzz tests to actually do something
Reduced seed corpus to 3 meaningful inputs
Removed cluttering log outputs so we can actually see the fuzzer output as its finding new interesting cases

* Modify comment

Signed-off-by: litt3 <[email protected]>

* Use constant

Signed-off-by: litt3 <[email protected]>

---------

Signed-off-by: litt3 <[email protected]>
Co-authored-by: Samuel Laferriere <[email protected]>

* fix: Standard output check (#346)

* fix: Standard output check

* fix: Standard output check - make

* fix: Standard output check - ignore version

* fix: Standard output check - update sed cmd for ubuntu compatibility

* fix: Standard output check - update sed cmd for ubuntu compatibility

* Config only (#344)

* Do some test cleanup

Signed-off-by: litt3 <[email protected]>

* Tweak more configurations

Signed-off-by: litt3 <[email protected]>

* Tweak log levels

Signed-off-by: litt3 <[email protected]>

* Add makefile doc

Signed-off-by: litt3 <[email protected]>

* Use better flag name

Signed-off-by: litt3 <[email protected]>

* Fix test type

Signed-off-by: litt3 <[email protected]>

* Add test matrix

Signed-off-by: litt3 <[email protected]>

* Tweak per pr yaml

Signed-off-by: litt3 <[email protected]>

* Remove irrelevant vars from settings.json

Signed-off-by: litt3 <[email protected]>

* Fix fuzz description

Signed-off-by: litt3 <[email protected]>

* Remove coverage from CI

Signed-off-by: litt3 <[email protected]>

* Fix test timeout

Signed-off-by: litt3 <[email protected]>

* Don't bother excluding fuzz tests from unit tests

Signed-off-by: litt3 <[email protected]>

* Decrease boilerplate

Signed-off-by: litt3 <[email protected]>

* Rename Environment to Backend

Signed-off-by: litt3 <[email protected]>

* Remove test matrix util

Signed-off-by: litt3 <[email protected]>

* Split benchmark test

Signed-off-by: litt3 <[email protected]>

* Try alternate test config strategy

Signed-off-by: litt3 <[email protected]>

* Fix failing tests

Signed-off-by: litt3 <[email protected]>

* test(fuzz): fix fuzz tests (#339)

Cleaned up the fuzz tests to actually do something
Reduced seed corpus to 3 meaningful inputs
Removed cluttering log outputs so we can actually see the fuzzer output as its finding new interesting cases

* Draft config cleanup

Signed-off-by: litt3 <[email protected]>

* Clean up

Signed-off-by: litt3 <[email protected]>

* Configure secrets correctly

Signed-off-by: litt3 <[email protected]>

* Iterate

Signed-off-by: litt3 <[email protected]>

* Iterate again

Signed-off-by: litt3 <[email protected]>

* Get relay registry address correctly

Signed-off-by: litt3 <[email protected]>

* Share code pathways between tests and production

Signed-off-by: litt3 <[email protected]>

* Clean up

Signed-off-by: litt3 <[email protected]>

* Fix docker

Signed-off-by: litt3 <[email protected]>

* Redact additional sensitive fields

Signed-off-by: litt3 <[email protected]>

* Disable verification for memstore mode

Signed-off-by: litt3 <[email protected]>

* Further simplify test configuration

Signed-off-by: litt3 <[email protected]>

* Fix test path

Signed-off-by: litt3 <[email protected]>

* Reenable test

Signed-off-by: litt3 <[email protected]>

* Fix more test paths

Signed-off-by: litt3 <[email protected]>

* Fix config tests

Signed-off-by: litt3 <[email protected]>

* Increase holesky e2e timeout

Signed-off-by: litt3 <[email protected]>

* Support preprod tests

Signed-off-by: litt3 <[email protected]>

* Fix yml

Signed-off-by: litt3 <[email protected]>

* Clean up

Signed-off-by: litt3 <[email protected]>

* Properly configure g2

Signed-off-by: litt3 <[email protected]>

* Checkout with lfs

Signed-off-by: litt3 <[email protected]>

* Try to get SRS Order right

Signed-off-by: litt3 <[email protected]>

* Revert SRS changes

Signed-off-by: litt3 <[email protected]>

* Temporarily disable dispersal verification

Signed-off-by: litt3 <[email protected]>

* Try to fix fuzz test

Signed-off-by: litt3 <[email protected]>

* Revert unnecessary changes

Signed-off-by: litt3 <[email protected]>

* Use experimental g2 point loading

Signed-off-by: litt3 <[email protected]>

* Revert change to G1

Signed-off-by: litt3 <[email protected]>

* Remove power of 2 g2 points

Signed-off-by: litt3 <[email protected]>

* Add deprecated flag

Signed-off-by: litt3 <[email protected]>

* Track deprecated flags

Signed-off-by: litt3 <[email protected]>

* Remove unnecessary edge case

Signed-off-by: litt3 <[email protected]>

* Fix broken V2 verify

Signed-off-by: litt3 <[email protected]>

* Reenable client side proving

Signed-off-by: litt3 <[email protected]>

* Declutter make tests

Signed-off-by: litt3 <[email protected]>

* Fix the test filter regex

Signed-off-by: litt3 <[email protected]>

* Update core version

Signed-off-by: litt3 <[email protected]>

* Try again to get the correct make command

Signed-off-by: litt3 <[email protected]>

* Prevent grep from buffering

Signed-off-by: litt3 <[email protected]>

* Use pipefail

Signed-off-by: litt3 <[email protected]>

* Give up on filtering

Signed-off-by: litt3 <[email protected]>

* Fix error message

Signed-off-by: litt3 <[email protected]>

* Add clarifying comment to v2 config struct

Signed-off-by: litt3 <[email protected]>

* Rename to MetricsConfig

Signed-off-by: litt3 <[email protected]>

* Fix terrible misnaming

Signed-off-by: litt3 <[email protected]>

* Simplify steps for overriding test flag configs

Signed-off-by: litt3 <[email protected]>

* Remove unused member var

Signed-off-by: litt3 <[email protected]>

* Fix small typos

Signed-off-by: litt3 <[email protected]>

* Make backend error message better

Signed-off-by: litt3 <[email protected]>

* Improve explanation of kzg behavior

Signed-off-by: litt3 <[email protected]>

* Improve v2 terminology and consistency

Signed-off-by: litt3 <[email protected]>

* Improve config ordering

Signed-off-by: litt3 <[email protected]>

* Revert name change

Signed-off-by: litt3 <[email protected]>

* Improve const names

Signed-off-by: litt3 <[email protected]>

* Change flag deprecation strategy

Signed-off-by: litt3 <[email protected]>

* First pass

Signed-off-by: litt3 <[email protected]>

* Move utility method

Signed-off-by: litt3 <[email protected]>

* Revert formatting changes

Signed-off-by: litt3 <[email protected]>

* Add Enabled to memstore config marshal

Signed-off-by: litt3 <[email protected]>

* Revert benchmark changes

Signed-off-by: litt3 <[email protected]>

* More reversions

Signed-off-by: litt3 <[email protected]>

* Move method in Setup

Signed-off-by: litt3 <[email protected]>

* Revert flags changes

Signed-off-by: litt3 <[email protected]>

* Newline change

Signed-off-by: litt3 <[email protected]>

* Revert formatting changes

Signed-off-by: litt3 <[email protected]>

* Revert secondary source changes

Signed-off-by: litt3 <[email protected]>

* Revert newline

Signed-off-by: litt3 <[email protected]>

* Fix tests

Signed-off-by: litt3 <[email protected]>

* Fix kzg config init

Signed-off-by: litt3 <[email protected]>

* Revert grep addition

Signed-off-by: litt3 <[email protected]>

* Fix test

Signed-off-by: litt3 <[email protected]>

* Remove accidental grep

Signed-off-by: litt3 <[email protected]>

* Try to get flags right again

Signed-off-by: litt3 <[email protected]>

* Split out test suite

Signed-off-by: litt3 <[email protected]>

* Split out verifier and kzg flags

Signed-off-by: litt3 <[email protected]>

* Shuffle around enable flag

Signed-off-by: litt3 <[email protected]>

* Update help_out

Signed-off-by: litt3 <[email protected]>

* Remove version

Signed-off-by: litt3 <[email protected]>

* Add missed config value

Signed-off-by: litt3 <[email protected]>

* Fix lint

Signed-off-by: litt3 <[email protected]>

* Update flag categories

Signed-off-by: litt3 <[email protected]>

* Lengthen e2e local timeout

Signed-off-by: litt3 <[email protected]>

---------

Signed-off-by: litt3 <[email protected]>
Co-authored-by: Samuel Laferriere <[email protected]>

* chore(clients): retract v1.0.1 (#350)

We published a `clients/v1.0.1` tag by mistake, which got picked up by pkg.go.dev, and now the latest version of the docs (pointed to in our README) leads to https://pkg.go.dev/github.com/Layr-Labs/eigenda-proxy/[email protected]/standard_client.
This directive retracts that version, such that the docs (and go commands) no longer point to this version (at this point v0.2.0 is the latest).
Once we reach semver v1.0.1, we can possibly remove this retract directive (??), or just skip this number and go to v1.0.2.

* docs(readme): document 1account/proxy (#353)

* docs(readme): document 1account/proxy

* docs(readme): clarify single key per rollup statement

* docs(readme): add repo+release info (#352)

* Fix e2e tests (#351)

* Fix tests

Signed-off-by: litt3 <[email protected]>

* Apply fix to fallback

Signed-off-by: litt3 <[email protected]>

* Try increasing timeout

Signed-off-by: litt3 <[email protected]>

* Increase test parallelism

Signed-off-by: litt3 <[email protected]>

* Increase timeout even more, hopefully enough

Signed-off-by: litt3 <[email protected]>

---------

Signed-off-by: litt3 <[email protected]>

* Create migration tests (#348)

* Create migration tests

Signed-off-by: litt3 <[email protected]>

* Fix unit tests

Signed-off-by: litt3 <[email protected]>

* Clean up

Signed-off-by: litt3 <[email protected]>

* Fix naming

Signed-off-by: litt3 <[email protected]>

* More naming fixes

Signed-off-by: litt3 <[email protected]>

* Hopefully final naming fixes

Signed-off-by: litt3 <[email protected]>

* More clean up

Signed-off-by: litt3 <[email protected]>

* Update core commit

Signed-off-by: litt3 <[email protected]>

* Move require out of utility method

Signed-off-by: litt3 <[email protected]>

* Add better comments describing switching dispersal

Signed-off-by: litt3 <[email protected]>

* Move where atomic version is constructed

Signed-off-by: litt3 <[email protected]>

* Modify backend init strategy

Signed-off-by: litt3 <[email protected]>

* Add additional require

Signed-off-by: litt3 <[email protected]>

* Implement new config enum for backends

Signed-off-by: litt3 <[email protected]>

* Fix unit test

Signed-off-by: litt3 <[email protected]>

* Update help_out

Signed-off-by: litt3 <[email protected]>

* Improve test assertions

Signed-off-by: litt3 <[email protected]>

* Add test util

Signed-off-by: litt3 <[email protected]>

* Reorganize v2 enablement flags

Signed-off-by: litt3 <[email protected]>

* Update help_out

Signed-off-by: litt3 <[email protected]>

* Check backends len

Signed-off-by: litt3 <[email protected]>

* Try increasing memstore e2e timeout. Unsure why it's not completing

Signed-off-by: litt3 <[email protected]>

* Revert "Try increasing memstore e2e timeout. Unsure why it's not completing"

This reverts commit 5a72f6ff6bfac18f2e9a61943b5f45affc07089b.

* Make it possible to enable v2 backend with v1 backend

Signed-off-by: litt3 <[email protected]>

* Use variadic param

Signed-off-by: litt3 <[email protected]>

---------

Signed-off-by: litt3 <[email protected]>

* Create env var test (#349)

* Create env var test

Signed-off-by: litt3 <[email protected]>

* Update core commit

Signed-off-by: litt3 <[email protected]>

* Fix script

Signed-off-by: litt3 <[email protected]>

* Try bogus signing key

Signed-off-by: litt3 <[email protected]>

* Increase wait time

Signed-off-by: litt3 <[email protected]>

* Increase wait time even more

Signed-off-by: litt3 <[email protected]>

* Increase wait time to 75

Signed-off-by: litt3 <[email protected]>

* Try matrix strategy

Signed-off-by: litt3 <[email protected]>

* Fix test name

Signed-off-by: litt3 <[email protected]>

* Add check to make sure env path is specified

Signed-off-by: litt3 <[email protected]>

* Create separate env var tests for v1, v2, and both

Signed-off-by: litt3 <[email protected]>

* Update .env file in .envrc

Signed-off-by: litt3 <[email protected]>

---------

Signed-off-by: litt3 <[email protected]>

* chore(make): rename build command (#359)

* chore(make): rename build command

Used to be "eigenda-proxy". Renamed for consistency with `docker-build` command. Also most people are used to just typing `make build`, which doesn't require knowing the binary name.

* chore(make): fix gen-static-help-output

was still pointing to prev `eigenda-proxy` target instead of new `build` target

* Improve CI speed and clarity (#358)

* Get preprod CI passing

Signed-off-by: litt3 <[email protected]>

* Speed things up

Signed-off-by: litt3 <102…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.