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

update to eigenda v1.6.3 #4

Merged
merged 46 commits into from
Feb 12, 2025
Merged

update to eigenda v1.6.3 #4

merged 46 commits into from
Feb 12, 2025

Conversation

adam-xu-mantle
Copy link

Fixes Issue

Fixes #

Changes proposed

Screenshots (Optional)

Note to reviewers

jcortejoso and others added 30 commits October 10, 2024 09:30
* 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
We updated go.mod to use go1.22 recently, but forgot to update the ci workflows.
* 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: 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
Layr-Labs#190)

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

* docs: fix getQuorumAdversaryThreshold comment
… metric assertions (Layr-Labs#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
Layr-Labs#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
…yr-Labs#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 (Layr-Labs#153)"

This reverts commit 15b10fd.
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 Layr-Labs/eigenda#849 which will fix our ci bug
…#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

* 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]>
…ayr-Labs#201)

* refactor: rename client -> SimpleCommitmentClient and add comments

* style: rename client/client.go -> client/simple.go
…cs middlewares (Layr-Labs#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
…r-Labs#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.10.0

* chore: downgrade to v1.9.5 + fix optimism tests
* docs: update README with failover info

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

* docs(README): add "Service Unavailable" description for 503 status code
…bs#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
* 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 (Layr-Labs#210)

---------

Co-authored-by: Ethen <[email protected]>
* Create dependabot.yml

* Update dependabot.yml

* Update dependabot.yml

* Update .github/dependabot.yml
* 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]>
…es (Layr-Labs#223)

* make memstore return data_lenght in number of symbols

* fix lint

* lint
…abs#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]>
…st bodies (Layr-Labs#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

* fix(sigmap-EDAP-04): Miscellaneous General Comments - address PR feedback
…uests (Layr-Labs#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
ethenotethan and others added 13 commits January 10, 2025 04:40
Layr-Labs#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
* adding audit report

* Create SECURITY.md

* removing from root

* fixing repo name

---------

Co-authored-by: anupsv <[email protected]>
* 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]>
* 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
* 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]>
@adam-xu-mantle adam-xu-mantle changed the title Release/v1.6.3 update to eigenda tag v1.6.3 Feb 8, 2025
@adam-xu-mantle adam-xu-mantle changed the title update to eigenda tag v1.6.3 update to eigenda v1.6.3 Feb 8, 2025
@adam-xu-mantle adam-xu-mantle merged commit b013264 into mantle Feb 12, 2025
1 check passed
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.