github Layr-Labs/eigenda v2.2.0
[Testnet] EigenDA v2.2.0

latest release: v2.2.1
pre-release15 days ago

This is an optional release, but make sure to read the summary details in the relevant section below.

Validator node

This release provides a reduction in the default memory usage by the validator software, primarily by adjusting database cache sizes. Several safety features were also added to limit maximum memory consumption during periods of bursty traffic. A variety of internal code changes that lay the foundation for incremental database snapshotting and backup (V2 database only) were added. They are not enabled in this release, but intended for full release in the near future.

Disperser

Adds an account index to our metadata store to support a user account feed on the Data API. Also sets a max connection age so that the relays and API servers can utilize newly available instances.

Fixes a bug in the encoding logic that causes the service to panic when precomputing an SRS table beyond the loaded points.

Payments

We are in the process of revamping how payments works and is accounted in the client, disperser, and validators. This work will be carried out by @litt3, so expect more PRs in future releases to complete this work. Reservations are switching from a fixed window algorithm to a leaky bucket algorithm. And on-demand improvements are a WIP.

  • docs: Simplify and improve payment header docs by @litt3 in #1820
  • feat(payments): Implement leaky bucket algorithm by @litt3 in #1853

DataAPI

Adds support for an account feed through the account index added to the disperser’s metadata store. Adds reservation expiration tracking on the DataAPI as a metric.

  • feat: Add reservations expiration tracking to DataAPI by @dmanc in #1733
  • feat: adds account index to blobmetadatastore-v2 by @pschork in #1791
  • fix: allow liveness checks on private IPs (ie preprod) by @pschork in #1803

Contracts

Small tooling improvements that will be slowly rolled out and added to most eigenda contracts: initializable, access control, semver.

Integrations (contracts, clients, proxy)

Many new features related to secure integration spec have been added in this release. Proxy now returns teapot status code on GET paths to communicate cert validation errors with rollup clients. Proxy also now exposes some client dispersal metrics.

Most importantly for secure integrations, we changed the meaning of an EncodedPayload to require that it is padded to a power of 2 field elements (see this spec update PR for more details). This has simplification benefits and also allows decoding to a payload to be performed inside a fpvm/zkvm so as to prove and discard invalidly encoded payloads. Proxy GET routes also expose a new query_param ?return_encoded_payload=true to return an EncodedPayload instead of a Payload to the rollup client.

On the contract side, EigenDACertVerifier now implements a semver() function which will allow crashing proxy if it ever is trying to deal with a cert verifier version that it doesn’t support, and force operators to update to a newer release. The EigenDACertVerifierRouter also now supports being initialized with multiple CertVerifiers, allowing for rollup teams to deploy their own and migrate the state of the EigenDA deployed Router to their own, without affecting the validity of previous certs.

  • fix(proxy)!: MaxBlobSizeBytes processing by @ethenotethan in #1762
  • feat(proxy): implement new teapot statuscode scheme by @samlaf in #1736
  • chore(proxy): crash on startup if certverifier != v3 by @samlaf in #1802
  • chore(proxy): consolidate dotenv examples files into single one by @samlaf in #1800
  • feat(proxy): new GET query param to return EncodedPayload by @samlaf in #1813
  • docs: add OP Optimistic Fault Proof with Cannon by @bxue-l2 in #1825
  • test: add payload-to-blob conversion test_example by @samlaf in #1833
  • feat: introduce IEigenDASemVer + use it in EigenDACertVerifier by @pakim249CAL in #1816
  • feat: flexible router init by @pakim249CAL in #1787
  • refactor!: encoded payload meaning by @samlaf in #1841
  • feat(proxy): expose payload disperser metrics probe to proxy by @iquidus in #1863

AI/Tooling

  • docs: Create repo style guide by @litt3 in #1740
  • feat: Improve claude log preprocessing command by @litt3 in #1786
  • feat(tools): new eigenda contract addresses reading cli by @samlaf in #1804
  • feat: Enable additional linter rules just for new changes by @litt3 in #1817
  • feat(tooling): Create a /nitpick command by @litt3 in #1814
  • fix: create claude-security-reviewer.yaml which uses claude to do some basic security tests. by @anupsv in #1845

Full Changelog

https://github.com/Layr-Labs/eigenda/compare/574b7dea5f0d504f67af5d6eac5411f27702dd5e...v2.2.0

Don't miss a new eigenda release

NewReleases is sending notifications on new releases.