Skip to content

[Mainnet] EigenDA v2.1.0

Compare
Choose a tag to compare
@dmanc dmanc released this 24 Jul 00:11
· 159 commits to master since this release
6c1deb5

This release is optional but highly recommended for operators because it resolves a goroutine leak. It is optional for rollups and other proxy users.

This release follows the Blazar release (0.9.2), colloquially referred to as "v2", for all monorepo services, and proxy release 1.8.2. The eigenda-proxy repo is now archived and its codebase has moved under api/proxy. Monorepo releases will include proxy code moving forward.

We opted to bump the semver to 2.1.0 to match the v2 name and remove some confusion we have observed both internally and externally.

In order to keep our releases simpler for now, we opt to release all services of the monorepo together, following a single semver. We cannot for this reason commit to strictly following semver practices, and reserve the right to push breaking changes to auxiliary services such as the dataapi.

Monorepo-wide changes

One important change is that we deployed an EigenDADirectory contract to all chains, which should be used as the main contract address locator. See our docs network pages for more information.

Validator Node

Fixes a goroutine leak that leads to CPU starvation over long time periods.

This release also adds a new flag NODE_EIGENDA_DIRECTORY which takes advantaged of the newly deployed contract directory. In a future release we will be deprecating the NODE_BLS_OPERATOR_STATE_RETRIVER and NODE_EIGENDA_SERVICE_MANAGER in favor of NODE_EIGENDA_DIRECTORY.

Disperser

Mainly adding more observability, an audit fix regarding payments, and fixes a performance issue with validator connections.

Dataapi

Adds a payment subgraph that will be used for tracking reservation information in a followup release. Rest of changes are minor fixes / additions.

  • feat: dataapi add stake amount to operator stake response by @pschork in #1677
  • feat: Payments subgraph #1709 by @dmanc #1709
  • fix(dataapi): fix time query_param serialization/formatting bugs by @samlaf in #1672
  • fix: update dataapi v2 nodeInfo to call v2 validator API by @pschork in #1708

Contracts

The EigenDADirectory contract was added and deployed to all networks, and should going forward be used as the single source of truth for all EigenDA contract addresses.

Integrations (contracts, clients, proxy)

This release introduces the CertVerifierV3 as well as the CertVerifierRouter which allows for secure upgrades to verification logic. See our custom security docs for more information. Take a look at our updated secure integration spec page for our latest thinking.

Note that the --eigenda.v2.cert-verifier-addr flag has been changed to --eigenda.v2.cert-verifier-router-or-immutable-verifier-addr since it now supports being passed either a CertVerifierRouter or CertVerifierV3 address.
image
Release 1.8.2 was only compatible with CertVerifierV2, wherreas 2.1.0 proxy is only compatible with CertVerifierV3, so do make sure to pass in a router or CertVerifierV3 address. Most importantly, V2 certs are still verifiable by the CertVerifierV3 contract because they only differ with V3 certs in the order of their fields. The CertVerifierV3 and up contracts however have a new checkDACert function interface that is future compatible. That function now requires the cert to be abi encoded, so do not use a CertVerifierV3 contract with previous releases of the proxy.

We added a .env.exampleV2.mainnet example env file for mainnet.
The --eigenda.v2.network flag now also supports mainnet. Note that this is purely a convenience and doesn't do anything special other than populating other flag values (disperser-url, cert-verifier-address, etc.) with the default values (that can be found in our docs or the new EigenDADirectory contract).

We reverted the NTP clock in the client, as we felt its implementation was not ideal, and we also believe clock control should be left to the controlling environment. Please make sure that the computer you are running proxy and/or clients on has a synchronized clock.

Full Changelog: v0.9.2...9b2520b