Summary
This release includes a major update with few breaking changes for operator nodes and rollup users.
- Smart contracts upgrades: Since EigenDA v0.1.0, there have been significant changes to EigenLayer middleware contracts as well as EigenDA contracts. With this release, all EigenDA offchain components will point to the new set of contracts.
- SRS points: Structured Reference String (SRS) points are used to generate and validate proofs. We have replaced the existing points to a larger set of MPC generated points. This means that the generated proofs are more secure and EigenDA can support bigger blobs (~2 MiB).
- API Enhancements (breaking change): We received feedback from rollups (participating in the EigenDA testnet) on how commitments are represented in the API. Rather than encoding them in a format not universally supported across languages, each commitment member is now expressed in raw byte representation. Refer to the latest APIs for disperser and node.
Here is a summary of downstream effects operators and rollup users can experience:
- Operators - New SRS points: When operators opt in after upgrading the node software, it will download a ~8GB file consisting of the new SRS points. This file is downloaded once at the very first time they opt in.
- Operators - Stake update: With the latest smart contracts, operator stakes will be updated periodically (at most once a week) instead of in real time in order to reduce gas costs for operators. Consequently, any updates to the operators’ stake following their initial opt in (any additional delegations or deposits) can take up to 1 week to be reflected in the system.
- Rollups - Previous blobs: Blobs that have been dispersed prior to this upgrade won’t be accessible.
- Rollups - API breaking changes: Please find the updated gRPC APIs here: disperser & operator nodes.
What's Changed
- Update response for nonsigners endpoint by @dmanc in #219
- [inabox] Update stake distribution for quorum 1 by @ian-shim in #216
- Validate the time intervals and fix the mix uses of timestamp units by @jianoaix in #209
- Add blob store failure monitoring by @jianoaix in #211
- Use logfmt instead of terminal format by @dmanc in #226
- Check if txn is mined before speedup by @ian-shim in #210
- Fix: Check total stake before calculating chunk length by @ian-shim in #225
- Pin foundry version by @ian-shim in #233
- m2-mainnet Contracts Update by @0x0aa0 in #158
- [subgraphs] Update preprod contract addresses by @ian-shim in #236
- add correct semvar for new release by @shrimalmadhur in #239
- Adapt low degree proof on G2 for compatibility with perpetual power of tau by @bxue-l2 in #222
- Warn log if cannot connect to operator by @dmanc in #232
- Use raw bytes for SRS points to save half storage by @jianoaix in #238
- Add partial point loading by @bxue-l2 in #240
- [disperser] Return commitment as a struct by @ian-shim in #223
- Cap the max quorumID to 254 by @jianoaix in #242
- API cleanup by @jianoaix in #243
- name parameter 'expeced' to 'expected' in function 'TestHeaderService… by @keienWang in #230
- Allocate reader buffer more precisely by @jianoaix in #245
- Update the API documentation by @jianoaix in #244
- Load only 28 g2point for opr node by @bxue-l2 in #246
- rm wrong validationa and expose log by @bxue-l2 in #250
- Remove logging from G1 partial load by @ian-shim in #248
- remove g2 point section logs by @shrimalmadhur in #251
- [Subgraph] Update Goerli Contract Address by @siddimore in #252
- [DataApi][Stage1] Deregistered operators endpt for LameDuck Operators by @siddimore in #152
- Sync with latest contracts by @ian-shim in #253
New Contributors
- @keienWang made their first contribution in #230
Full Changelog: v0.2.3...v0.3.0