Summary
This release is required for users and operators to upgrade.
We are excited to release EigenDA v0.9.0, code name "Blazar" (aka. EigenDA V2), a major protocol and architecture upgrade for the entire system.
Key Features and Enhancements
-
Control Plane & Data Plane Separation
Separates the flow of blob data from its metadata/control as they move through disperser, encoders and validators. This improves end-to-end data movement efficiency and boosts validator node performance and robustness by increasing network utilization through concurrent download connections.
-
High-Performance Storage with LittDB
Introduces LittDB, a highly performant key/value store specifically tailored for EigenDA’s needs. LittDB replaces LevelDB as the storage engine on validator nodes, significantly improving disk-related operations by two orders of magnitude. Designed from the ground up, LittDB ensures high capacity, high throughput, low latency, and low memory/CPU utilization.
-
Payments Support
EigenDA now supports on-demand payments and reservations, enabling applications to access the network permissionlessly with flexible payment options.
-
Faster and Cheaper Dispersal with DA Certificate
Reduces end-to-end dispersal latency and cost by eliminating on-chain confirmation and returning a DA certificate representing DA nodes' attestations.
-
New Chunk Allocation Model
Introduces a fixed-chunk model, making encoding a stateless operation and reducing system complexity.
-
Revamped Blob State Management
Enhances robustness by enforcing immutable records and introducing constraints into the data model.
-
Improved Blob Addressing
Introduces Blobkey, a universally unique string identifier for each blob, replacing the previous composite key (batch header hash + blob index). This simplifies interactions and improves UX when working with blobs.
Further Details
What's Changed
Changes between the previous release candidate and the current release candidate.
Breaking Changes
- feat!: LittDB multi-drive support by @cody-littley in #1564
- feat!: implement deterministic assignment by @mooselumph in #1587
Features
- feat: only do debug computations if equivalence check fails by @litt3 in #1563
- feat: validator node authenticate and validate blob headers by @hopeyen in #1529
- feat: reserved-only disperser apiserver by @hopeyen in #1536
- feat: configurable traffic generator pool by @cody-littley in #1569
- feat: cert verifier v3 + router by @pakim249CAL in #1518
- feat: Create interface for offchain metering store by @dmanc in #1581
Fixes
- fix: replaces hard coded quorum IDs on dataapi handlers by @pschork in #1566
- fix: littDB consistent keyfiles by @cody-littley in #1573
- fix: flaky validator client test by @cody-littley in #1582
- fix(contracts): Update V2 cert verifier deploy script to use latest verifier by @ethenotethan in #1585
- fix: Make LittDBStoragePathsFlag not required by @dmanc in #1596
- fix: properly set LittDB sharding factor for validators by @cody-littley in #1616
Misc
- chore: delete unused code by @cody-littley in #1558
- chore: Remove MockRollup and test usage in favor of
EigenDACertVerifierV1
by @ethenotethan in #1565 - refactor: ntp init logs but not panic by @hopeyen in #1568
- docs(mdbook): recency window check should use <= not < by @samlaf in #1567
- chore: one second batches by @cody-littley in #1583
- docs: paymentHeader update by @hopeyen in #1570
- docs: update op secure integration overview by @bxue-l2 in #1592
- ci: add env and update readme to include the correct mdBook by @bxue-l2 in #1595
Full Changelog: v0.9.0-rc.3...v0.9.0-rc.4