Skip to content

Releases: Layr-Labs/eigenda-proxy

v1.6.0

26 Nov 11:13
aeeb503
Compare
Choose a tag to compare

Summary

This release is MANDATORY if upgrading your op-stack to 1.9.4 where op-batcher sends with new /put route) instead of the old /put/ route. This release supports both routes.

Added

  • [New Feature] Failover signaling via 503 status code when EigenDA is down (implementing our proposed spec). This can be used by rollup batchers to temporarily failover to other DA destinations (e.g, 4844).
  • Optional async writes to secondary storage. This allows for minimized latency during dispersals to provide better confirmation throughput to the rollup.

Fixed

  • Support for /put as well as the old /put/.
  • GCP compatibility bug where GCS would unintentionally wrap blob contents with chunk signature encoding metadata.
  • HTTP routes are now strict and only accept for each resource the HTTP method specified in the altda spec.
  • Properly handle http status codes in log/metrics middlewares.

Security

  • All secret values in the config now log as ***** at startup.

What's Changed

  • Allow Google storage endpoints without http/s by @jcortejoso in #179
  • fix: change put route put/ -> put by @samlaf in #168
  • fix(ci): update go1.21->1.22 everywhere by @samlaf in #183
  • Improve local test setup by @samlaf in #177
  • refactor: cleaner routing using gorilla mux regexps by @samlaf in #185
  • fix: fetch quorum parameters from edasm at RBN instead of latest block by @samlaf in #190
  • feat: Optional async decoupling for secondary writes and reworked E2E metric assertions by @epociask in #182
  • refactor: use batch confirmation that was upstreamed to eigenda client by @samlaf in #192
  • fix(e2e tests): missing new eigenda-client required config fields by @samlaf in #196
  • fix(#191): Routing namespace --> Storage by @epociask in #195
  • feat(failover): return 503 to batcher when eigenda is down by @samlaf in #193
  • fix: Hide other sensitive cfg values by @epociask in #194
  • refactor: rename client -> SimpleCommitmentClient and add comments by @samlaf in #201
  • fix(middleware): proper handling of handler status codes in log/metrics middlewares by @samlaf in #200

Full Changelog: v1.5.0...v1.6.0-rc

v1.5.0

09 Oct 22:26
735b2ca
Compare
Choose a tag to compare

Summary

This release is optional but recommended.

The release also contains breaking changes on the ENVs and flag initialization when starting the binary, please refer to the table at the end for the mapping from the old to the new flags and ENV. This release also affects the existing way to run a docker container, please see the section at the end for instruction.

Notable changes

Revamp Flags

  • Flags now are categorized and ENVs comply with standard prefixes

  • Using old flags will prompt with an error message pointing out the new ENV name

  • Making DA cert verification enabled by default

Container initialization

  • Update command line to run eigenda-proxy with docker

Feature

  • Add Redis backend option for both S3 cache or fallback
  • Add metrics to EigenDA proxy for GET and PUT

Bug fixes

  • Fix issues with Google Cloud Storage
  • Simplify logics for waiting for batch finalization

Instruction to run docker container

Before the 1.5.0 release docker run eigenda-proxy:latest ./eigenda-proxy
After the 1.5.0 release docker run eigenda-proxy:latest

Flags and ENV mapping

If any old flag is supplied, the binary will break loudly and print the updated ENV name, for example,
lvl=crit msg="Application failed" message="env var MEMSTORE_EXPIRATION is deprecated for flag memstore.expiration, use EIGENDA_PROXY_MEMSTORE_EXPIRATION instead"

Old flag (1.4.1) old env new flag new env
--eigenda-cache-path EIGENDA_PROXY_TARGET_CACHE_PATH --eigenda.cache-path EIGENDA_PROXY_EIGENDA_TARGET_CACHE_PATH
--eigenda-custom-quorum-ids EIGENDA_PROXY_CUSTOM_QUORUM_IDS --eigenda.custom-quorum-ids EIGENDA_PROXY_EIGENDA_CUSTOM_QUORUM_IDS
--eigenda-disable-point-verification-mode EIGENDA_PROXY_DISABLE_POINT_VERIFICATION_MODE --eigenda.disable-point-verification-mode EIGENDA_PROXY_EIGENDA_DISABLE_POINT_VERIFICATION_MODE
--eigenda-disable-tls EIGENDA_PROXY_GRPC_DISABLE_TLS --eigenda.disable-tls EIGENDA_PROXY_EIGENDA_GRPC_DISABLE_TLS
--eigenda-disperser-rpc EIGENDA_PROXY_EIGENDA_DISPERSER_RPC --eigenda.disperser-rpc EIGENDA_PROXY_EIGENDA_DISPERSER_RPC
--eigenda-put-blob-encoding-version EIGENDA_PROXY_PUT_BLOB_ENCODING_VERSION --eigenda.put-blob-encoding-version EIGENDA_PROXY_EIGENDA_PUT_BLOB_ENCODING_VERSION
--eigenda-response-timeout EIGENDA_PROXY_RESPONSE_TIMEOUT --eigenda.response-timeout EIGENDA_PROXY_EIGENDA_RESPONSE_TIMEOUT
--eigenda-signer-private-key-hex EIGENDA_PROXY_SIGNER_PRIVATE_KEY_HEX --eigenda.signer-private-key-hex EIGENDA_PROXY_EIGENDA_SIGNER_PRIVATE_KEY_HEX
--eigenda-status-query-retry-interval EIGENDA_PROXY_STATUS_QUERY_INTERVAL --eigenda.status-query-retry-interval EIGENDA_PROXY_EIGENDA_STATUS_QUERY_INTERVAL
--eigenda-status-query-timeout EIGENDA_PROXY_STATUS_QUERY_TIMEOUT --eigenda.status-query-timeout EIGENDA_PROXY_EIGENDA_STATUS_QUERY_TIMEOUT
--eigenda-eth-confirmation-depth EIGENDA_PROXY_ETH_CONFIRMATION_DEPTH --eigenda.eth-confirmation-depth EIGENDA_PROXY_EIGENDA_ETH_CONFIRMATION_DEPTH
--eigenda-eth-rpc EIGENDA_PROXY_ETH_RPC --eigenda.eth-rpc EIGENDA_PROXY_EIGENDA_ETH_RPC
--eigenda-g1-path EIGENDA_PROXY_TARGET_KZG_G1_PATH --eigenda.g1-path EIGENDA_PROXY_EIGENDA_TARGET_KZG_G1_PATH
--eigenda-g2-tau-path EIGENDA_PROXY_TARGET_G2_TAU_PATH --eigenda.g2-power-of-2-path EIGENDA_PROXY_EIGENDA_TARGET_KZG_G2_POWER_OF_2_PATH
--eigenda-max-blob-length EIGENDA_PROXY_MAX_BLOB_LENGTH --eigenda.max-blob-length EIGENDA_PROXY_EIGENDA_MAX_BLOB_LENGTH
--eigenda-svc-manager-addr EIGENDA_PROXY_SERVICE_MANAGER_ADDR --eigenda.svc-manager-addr EIGENDA_PROXY_EIGENDA_SERVICE_MANAGER_ADDR
--memstore.enabled MEMSTORE_ENABLED --memstore.enabled EIGENDA_PROXY_MEMSTORE_ENABLED
--memstore.expiration MEMSTORE_EXPIRATION --memstore.expiration EIGENDA_PROXY_MEMSTORE_EXPIRATION

What's Changed

  • Feat memstore artificial latency by @samlaf in #114
  • chore: rename memstore eventLoop -> pruningLoop by @samlaf in #117
  • BREAKING suggestion: change dockerfile to use entrypoint instead of cmd by @samlaf in #116
  • Chore give docker image fullname by @samlaf in #119
  • feat: Redis backend target by @epociask in #111
  • Update Makefile: add disperse-test-blob by @samlaf in #115
  • chore(breaking): add EIGENDA_PROXY prefix to memstore flags by @samlaf in #121
  • fix: wrap crit entrypoint error for easier debugging by @samlaf in #122
  • fix: negative confDepth bug in verifier by @samlaf in #131
  • fix: request record label with commitment mode and version by @hopeyen in #109
  • chore: bunch of small refactors for improved devex by @samlaf in #124
  • Fix s3 panic from keccak commitment put requests by @samlaf in #129
  • dep: update eigenda to latest version for latest eigenda-client logging behavior by @samlaf in #132
  • Fix metric middleware panic by @samlaf in #133
  • fix: HandlePut uses hardcoded default version by @hopeyen in #135
  • chore: remove unused tls logic by @samlaf in #139
  • Eigenda client subsystem logger by @samlaf in #136
  • initial set of edge cases by @anupsv in #110
  • fix: custom error wrapped around error and commitment meta by @hopeyen in #134
  • fix: Return 400 when blobs exceed max limit by @epociask in #140
  • Fix config checker logic by @samlaf in #138
  • show response commitment by @bxue-l2 in #144
  • rename commitment mode by @bxue-l2 in #151
  • ci: give holesky-test workflow access to secrets via pull_request_target by @samlaf in #153
  • Update Optimism dependency to OP-Stack 1.9.2 by @karlb in #150
  • refactor: clean up flags and configs by @samlaf in #146
  • feat: update eigenda latest release v0.8.4 by @samlaf in #158
  • fix: verifier srs flags paths by @samlaf in #159
  • fix: import and expose the verifier flags by @samlaf in #161
  • fix: don't allow to configure fallback or cache with nil Redis|S3 ins… by @mcortesi in #155
  • Added --s3.enable-tls flag by @jcortejoso in #148
  • chore: Don't return commitment for OP Keccak256 mode on PUT requests by @epociask in #147
  • chore: add deprecated flags to force early crash when used by @samlaf in #165
  • update readme and template by @bxue-l2 in #170
  • hide eth rpc, format hidden string by @bxue-l2 in #171
  • docs: better usage docs for signer-private-key flag by @samlaf in #174
  • Disable chunk encoding for put requests to Google Cloud Storage by @jcortejoso in #167
  • fix env variable in docker compose by @bxue-l2 in #180

New Contributors

Read more

v1.4.1: 16MiB blob support & configurable secondary storage

05 Sep 18:33
7959e8a
Compare
Choose a tag to compare

What's Changed

  • 16 MiB blob support
  • Explicit support for read fallback and cache targeting using secondary storage provides (currently just supports S3). This allows users to differentiate between a cache target vs. a read fallback.
  • Minor bug fixes

PRs

  • refactor(metrics): remove dependency on optimism metrics by @samlaf in #94
  • docs: fix file misnaming by @charmful0x in #103
  • change disperseBlob response timeout to 60sec by @bxue-l2 in #105
  • feat: Support explict modes for read fallbacks and caching by @epociask in #104
  • chore: Update large blob test to use 16mb by @epociask in #108
  • fix: Commitment decoding bug && server handler tests by @epociask in #112

New Contributors

Full Changelog: v1.4.0...v1.4.1

v1.4.0: Support for OP `v1.9.0`, larger blobs, and bug fixes

22 Aug 06:29
4cdda99
Compare
Choose a tag to compare

Summary

This release is optional but highly recommended. It supports higher max blob size, improves performance and fixes memory utilization bug.

Notable Feature

  • Larger blobs support: eigenda-proxy now supports larger blobs size. The corresponding release on EigenDA (v0.8.1) allows maximal 16MiB blob on testnet and 4MiB blob on mainnet. To disperse a 16MiB blob in eigenda-proxy, set the env variable EIGENDA_PROXY_MAX_BLOB_LENGTH=16MiB
  • Improvement on KZG verification: eigenda-proxy now spends less resources on KZG verification after receiving the DA certificate for a blob
  • Support for Optimism v1.9.0
  • S3 fallback mode where dispersed blobs are persisted to a S3 bucket and read in the event of eigenda read failures

What's Changed

New Contributors

Full Changelog: v1.3.2...v1.4.0

change default grpc option

02 Aug 00:17
Compare
Choose a tag to compare
Pre-release
v1.3.3-2

pin grpc option

HotFix to support max blob size

01 Aug 23:54
Compare
Choose a tag to compare
Pre-release

This release is a hotfix to support larger blob size on the disperser RetrieveBlob grpc receiver size.

v1.3.1

21 Jul 04:50
Compare
Choose a tag to compare

What's Changed

  • fix: resolve srs ingestion bug, cfg verification, & return error messages in response body by @epociask in #64

Full Changelog: v1.3.0...v1.3.1

v1.3.0

19 Jul 03:27
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.2.0...v1.3.0

v1.2.0

27 Jun 03:30
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.1.1...v1.2.0

eigenda-proxy v1.1.1

21 Jun 18:51
ceff6e8
Compare
Choose a tag to compare

Compatibility with OP Plasma spec for Optimism v1.7.6