Releases: Layr-Labs/eigenda
v0.7.1
Summary
This production release is optional and contains performance improvements as well as bug fixes.
Notable features that directly affect users are:
- Operators - Blob Storage Performance Optimization: latency and CPU utilization are improved near 2x for batch storage operation. This will improve signing performance for nodes that often fail to return a signature within the timeout window.
- Operators - Reachability Check: node software now periodically checks if the node is reachable from the disperser IP. It will emit error logs if the check fails.
Other changes:
- Additional logging to monitor dispersed batch header hash
- TLS connection issue in the disperser client has been fixed
What's Changed
- [DataApi] Add Registered Operators endpt by @siddimore in #508
- Add secure conn in disperser client for GetBlobStatus by @ian-shim in #540
- Optimize the node store writing perf by @jianoaix in #547
- Instrument the store batch by @jianoaix in #546
- Add logging for batch header hash for batcher-node by @jianoaix in #545
- Periodically reload allowlist from file by @ian-shim in #510
- [SynthTest] Move RetrieveClient Step before blob confirmation by @siddimore in #544
- EigenDASM Payments Upgrade script by @8sunyuan in #548
- Optimize the batch operatorId to address lookup by @jianoaix in #533
- Removed unused parameters for improved code readability. by @ChengenH in #521
- EjectionManager mainnet deploy by @0x0aa0 in #552
- Log batch header hash hex by @ian-shim in #549
- Name the ejection token to follow custom header format by @jianoaix in #553
- Use fireblock wallet for ejector by @jianoaix in #554
- [dataapi] Initialize geth client with address by @ian-shim in #555
- [batcher] Replace Fireblocks wallet with KMS wallet by @ian-shim in #550
- Misc node log fixes by @jianoaix in #515
- Declutter the log/metric in batch processing by @jianoaix in #560
- Add reachability check loop to expose reachability failures in node logs by @pschork in #556
- [dataapi] Use ctx with timeout for txn receipt retrieval by @ian-shim in #564
New Contributors
Full Changelog: v0.7.0...v0.7.1
[Holesky] v0.7.1-rc.0
Pre-release intended for Holesky testnet only
Summary
This pre-release is optional and contains performance improvements as well as bug fixes.
Notable features that directly affect users are:
- Operators - Blob Storage Performance Optimization: latency and CPU utilization are improved near 2x for batch storage operation. This will improve signing performance for nodes that often fail to return a signature within the timeout window.
- Operators - Reachability Check: node software now periodically checks if the node is reachable from the disperser IP. It will emit error logs if the check fails.
Other changes:
- Additional logging to monitor dispersed batch header hash
- TLS connection issue in the disperser client has been fixed
What's Changed
- [DataApi] Add Registered Operators endpt by @siddimore in #508
- Add secure conn in disperser client for GetBlobStatus by @ian-shim in #540
- Optimize the node store writing perf by @jianoaix in #547
- Instrument the store batch by @jianoaix in #546
- Add logging for batch header hash for batcher-node by @jianoaix in #545
- Periodically reload allowlist from file by @ian-shim in #510
- [SynthTest] Move RetrieveClient Step before blob confirmation by @siddimore in #544
- EigenDASM Payments Upgrade script by @8sunyuan in #548
- Optimize the batch operatorId to address lookup by @jianoaix in #533
- Removed unused parameters for improved code readability. by @ChengenH in #521
- EjectionManager mainnet deploy by @0x0aa0 in #552
- Log batch header hash hex by @ian-shim in #549
- Name the ejection token to follow custom header format by @jianoaix in #553
- Use fireblock wallet for ejector by @jianoaix in #554
- [dataapi] Initialize geth client with address by @ian-shim in #555
- [batcher] Replace Fireblocks wallet with KMS wallet by @ian-shim in #550
- Misc node log fixes by @jianoaix in #515
- Declutter the log/metric in batch processing by @jianoaix in #560
- Add reachability check loop to expose reachability failures in node logs by @pschork in #556
- [dataapi] Use ctx with timeout for txn receipt retrieval by @ian-shim in #564
New Contributors
Full Changelog: v0.7.0...v0.7.1-rc.0
v0.7.0
Summary
This production release is optional and contains minor feature improvements for operators and rollups.
Notable features that directly affect users:
- Onchain re-registration delay enforcement.
- If a node is ejected, a 1 day (testnet) or 7 day (mainnet) re-registration delay is enforced.
- Operators:
- Improved operator metrics
- Node GRPC health check endpoints
- “Dispersing” blob status
- Node operator ID validation at start up
- Rollups:
- Automatic ejection API
- Backend Reachability API
What's Changed
- increase churner expiry by @bxue-l2 in #481
- Import EjectionManager from eigenlayer-middleware by @0x0aa0 in #483
- Backward compatibility with using entire g2 by @bxue-l2 in #482
- ejector update by @0x0aa0 in #484
- nit: ejector return by @0x0aa0 in #487
- refactor the hex to OperatorID by @jianoaix in #480
- Add fireblocks API timeout by @ian-shim in #489
- Add
Confirming
state for blobs by @ian-shim in #466 - [Synthetic-Test] Fix verifier by @siddimore in #488
- Isolate transaction broadcasting latency from regas logic by @ian-shim in #465
- Set cache control for the dataapi responses by @jianoaix in #499
- [Node] Add GRPC HealthCheck by @siddimore in #497
- Optimize the quorum bitmap lookup when there is just one operator by @jianoaix in #501
- Add operator registration metric at node by @jianoaix in #502
- Fix the stringification of quorumID by @jianoaix in #503
- Read disperser allowlist from json file by @ian-shim in #505
- EjectionManager deploy script by @0x0aa0 in #490
- Add a param to return only live nonsigners by @jianoaix in #494
- Addressing feedback in the operator registration/quorum metrics by @jianoaix in #504
- Upgrade eigensdk to add ability to cancel Fireblocks transaction by @ian-shim in #498
- Add context on error log in node onchain operator state fetch by @ian-shim in #512
- chore: remove repetitive words by @findmyhappy in #509
- [Dataapi] Fix gql error by @siddimore in #514
- [Node] Add ldlflag to build by @siddimore in #519
- [Node] fix package path by @siddimore in #520
- Validate onchain operator ID against local operator ID by @ian-shim in #516
- clean up metrics based on prom docs by @shrimalmadhur in #523
- Ejector by @jianoaix in #493
- Replace
Confirming
blob status withDispersing
status by @ian-shim in #517 - set all metrics to 0 for unregistered quorums by @shrimalmadhur in #524
- Add ejection api docs by @jianoaix in #526
- add open commitment utils by @bxue-l2 in #446
- chore: fix some typos in comments by @vitalmotif in #528
- Integrate fireblocks wallet into ejector by @ian-shim in #527
- Use POST instead of GET for ejection requests by @jianoaix in #530
- add caller func name in rpc error log by @bxue-l2 in #529
- Operator node reachability scanner by @pschork in #506
- Update ejection api doc by @jianoaix in #532
- middleware updates by @0x0aa0 in #531
- Move fireblocks API timeout to
FireblocksConfig
by @ian-shim in #534 - Handle empty strings in flag name concatenation by @ian-shim in #535
- Clean up the fireblock flag by @jianoaix in #536
- Common helper method for parsing fireblocks config by @ian-shim in #539
New Contributors
- @findmyhappy made their first contribution in #509
- @vitalmotif made their first contribution in #528
Full Changelog: v0.6.2...v0.7.0
[Holesky] v0.7.0-rc.1
Pre-release intended for holesky testnet only
This pre-release is optional and contains minor feature improvements for operators and rollups.
All testnet users are recommended to upgrade.
Notable features that directly affect users:
- Onchain re-registration delay enforcement.
- If a node is ejected, a 1 day (testnet) or 7 day (mainnet) re-registration delay is enforced.
- Operators:
- Improved operator metrics
- Node GRPC health check endpoints
- “Dispersing” blob status
- Node operator ID validation at start up
- Rollups:
- Automatic ejection API
- Backend Reachability API
What's Changed
- increase churner expiry by @bxue-l2 in #481
- Import EjectionManager from eigenlayer-middleware by @0x0aa0 in #483
- Backward compatibility with using entire g2 by @bxue-l2 in #482
- ejector update by @0x0aa0 in #484
- nit: ejector return by @0x0aa0 in #487
- refactor the hex to OperatorID by @jianoaix in #480
- Add fireblocks API timeout by @ian-shim in #489
- Add
Confirming
state for blobs by @ian-shim in #466 - [Synthetic-Test] Fix verifier by @siddimore in #488
- Isolate transaction broadcasting latency from regas logic by @ian-shim in #465
- Set cache control for the dataapi responses by @jianoaix in #499
- [Node] Add GRPC HealthCheck by @siddimore in #497
- Optimize the quorum bitmap lookup when there is just one operator by @jianoaix in #501
- Add operator registration metric at node by @jianoaix in #502
- Fix the stringification of quorumID by @jianoaix in #503
- Read disperser allowlist from json file by @ian-shim in #505
- EjectionManager deploy script by @0x0aa0 in #490
- Add a param to return only live nonsigners by @jianoaix in #494
- Addressing feedback in the operator registration/quorum metrics by @jianoaix in #504
- Upgrade eigensdk to add ability to cancel Fireblocks transaction by @ian-shim in #498
- Add context on error log in node onchain operator state fetch by @ian-shim in #512
- chore: remove repetitive words by @findmyhappy in #509
- [Dataapi] Fix gql error by @siddimore in #514
- [Node] Add ldlflag to build by @siddimore in #519
- [Node] fix package path by @siddimore in #520
- Validate onchain operator ID against local operator ID by @ian-shim in #516
- clean up metrics based on prom docs by @shrimalmadhur in #523
- Ejector by @jianoaix in #493
- Replace
Confirming
blob status withDispersing
status by @ian-shim in #517 - set all metrics to 0 for unregistered quorums by @shrimalmadhur in #524
- Add ejection api docs by @jianoaix in #526
- add open commitment utils by @bxue-l2 in #446
- chore: fix some typos in comments by @vitalmotif in #528
- Integrate fireblocks wallet into ejector by @ian-shim in #527
- Use POST instead of GET for ejection requests by @jianoaix in #530
- add caller func name in rpc error log by @bxue-l2 in #529
- Operator node reachability scanner by @pschork in #506
- Update ejection api doc by @jianoaix in #532
- middleware updates by @0x0aa0 in #531
- Move fireblocks API timeout to
FireblocksConfig
by @ian-shim in #534 - Handle empty strings in flag name concatenation by @ian-shim in #535
- Clean up the fireblock flag by @jianoaix in #536
- Common helper method for parsing fireblocks config by @ian-shim in #539
New Contributors
- @findmyhappy made their first contribution in #509
- @vitalmotif made their first contribution in #528
Full Changelog: v0.6.2...v0.7.0-rc.1
v0.6.2
Summary
This upgrade is optional and contains minor patches for operators and rollups. Both mainnet and testnet users are recommended to upgrade.
Notable features that directly affect users:
-
Rollups: KzgPad - an utility library which facilitates users to experiment to disperse and retrieve by automatically make conversion between a string of bytes and EigenDA compatible byte format
-
Operators: Churner response with longer expiration time - the churner response contains payload which is valid only within 90 seconds after response is produced. The expiry is increased to 3600 seconds.
-
Operators: Support “update-socket” operation from node plugin
Others Changes:
- Removed misleading ChainID log error #463
- Improve Batcher availability with fireblock timeout
- Improve Batcher availability with subgraph vendor by retrying
- Add logics to account stakes with percentage of non-signing in DataApi
- Fix multi-RPC error handler for JSON error
What's Changed
- Detect Fireblocks http timeout error by @ian-shim in #448
- Add kzgpad util for using grpcurl to test eigenda by @teddyknox in #459
- Add mainnet avs/eigenda uri by @jianoaix in #463
- Update signature aggregation test by @ian-shim in #322
- [Dataapi] GRPC Dial with timeout by @siddimore in #462
- Record the percent of stake held me each nonsigner by @mooselumph in #454
- Query non-signers between start and stop times. by @mooselumph in #464
- fix: inconsistent 'retriever' by @rguichard in #468
- Minor logging update by @ian-shim in #461
- Support
update-socket
operation from node plugin by @ian-shim in #469 - mandate to read power of 2 file at the beginning by @bxue-l2 in #472
- Detect wrapped url error timeout by @ian-shim in #473
- Revert "fix: inconsistent 'retriever' (#468)" by @jianoaix in #479
- [DataApi] Remove GetServiceAvailability API by @siddimore in #470
- Update graph-ts to 0.32.0 by @anupsv in #451
- Add retry for graph node by @mooselumph in #471
- fix log and change rpc in response to json rpc error by @bxue-l2 in #474
New Contributors
- @rguichard made their first contribution in #468
- @anupsv made their first contribution in #451
Full Changelog: v0.6.1...v0.6.2
EigenDA v0.6.2-rc.0 intended for holesky testnet
Summary
This upgrade is optional and contains minor patches for operators and rollups. It is intended for holesky testnet only
Notable features that directly affect users:
-
Rollups: KzgPad - an utility library which facilitates users to experiment to disperse and retrieve by automatically make conversion between a string of bytes and EigenDA compatible byte format
-
Operators: Churner response with longer expiration time - the churner response contains payload which is valid only within 90 seconds after response is produced. The expiry is increased to 3600 seconds.
-
Operators: Support “update-socket” operation from node plugin
Others Changes:
- Removed misleading ChainID log error #463
- Improve Batcher availability with fireblock timeout
- Improve Batcher availability with subgraph vendor by retrying
- Add logics to account stakes with percentage of non-signing in DataApi
- Fix multi-RPC error handler for JSON error
What's Changed
- Detect Fireblocks http timeout error by @ian-shim in #448
- Add kzgpad util for using grpcurl to test eigenda by @teddyknox in #459
- Add mainnet avs/eigenda uri by @jianoaix in #463
- Update signature aggregation test by @ian-shim in #322
- [Dataapi] GRPC Dial with timeout by @siddimore in #462
- Record the percent of stake held me each nonsigner by @mooselumph in #454
- Query non-signers between start and stop times. by @mooselumph in #464
- fix: inconsistent 'retriever' by @rguichard in #468
- Minor logging update by @ian-shim in #461
- Support
update-socket
operation from node plugin by @ian-shim in #469 - mandate to read power of 2 file at the beginning by @bxue-l2 in #472
- Detect wrapped url error timeout by @ian-shim in #473
- Revert "fix: inconsistent 'retriever' (#468)" by @jianoaix in #479
- [DataApi] Remove GetServiceAvailability API by @siddimore in #470
- Update graph-ts to 0.32.0 by @anupsv in #451
- Add retry for graph node by @mooselumph in #471
- fix log and change rpc in response to json rpc error by @bxue-l2 in #474
- increase churner expiry by @bxue-l2 in #481
- Import EjectionManager from eigenlayer-middleware by @0x0aa0 in #483
- Backward compatibility with using entire g2 by @bxue-l2 in #482
- ejector update by @0x0aa0 in #484
New Contributors
- @rguichard made their first contribution in #468
- @anupsv made their first contribution in #451
Full Changelog: v0.6.1...v0.6.2-rc.0
EigenDA v0.6.1
Summary
This minor upgrade includes a few patches for operators and rollups.
Notable features that directly affect users are:
- Rollups - Blob Verification Library: We patched
EigenDARollupUtils
library, which rollups use to verify dispersed blobs. We updated the data type forblobIndex
so that it can represent bigger values. - Operators - Optional ECDSA Key: ECDSA keys are now optional for node software. If an operator is using the node operator setup CLI to register their node, an ECDSA key does not have to be configured on the node software.
What's Changed
- [SyntheticTest] Fix Interval by @siddimore in #440
- fix memory leak by @bxue-l2 in #443
- [DataApi] Add Batcher availability by @siddimore in #436
- [dataapi] Represent total stakes with bigint by @ian-shim in #444
- Add mainnet contracts to networks.json by @dmanc in #445
- Update networks.json name by @dmanc in #447
- feat(node): support execution without ecdsa key by @jeffhubCB in #438
- fix blob size displayed at sendchunks by @bxue-l2 in #452
- Update contract address for networks.json by @dmanc in #453
- Optimize the bitmap lookup by @jianoaix in #455
- mainnet deploy by @0x0aa0 in #435
- update blob index size by @0x0aa0 in #457
- Bump v0.6.1 by @ian-shim in #458
New Contributors
- @jeffhubCB made their first contribution in #438
Full Changelog: v0.6.0...v0.6.1
EigenDA v0.6.0
Summary
This upgrade is mandatory for operators that need to interact with churner (to opt into new quorums). This upgrade is highly recommended for all operators otherwise.
This release includes a major change to the way the input blob data is interpreted. It also includes several new features and security improvements noted below.
Notable features that directly affect users are:
- Rollups - 32 byte symbol size: The dispersal interface is updated to be compatible with opening points on the smart contract, in the same way as 4844 on Ethereum. The new interface requires every 32 bytes of the data be smaller than a big integer less than the field element of bn254 curve. Please refer to the rollup guide on the EigenDA document page for more details.
- Operators: New cli command
list-quorums
is available. Use this command to list the quorums the node is opted in.
Other changes:
- Updates on serialization methods for G1/G2 points: Use gnark format for serialization and deserialization of elliptic curve point for communication between the disperser and operators, and between the churner and operators
- Several security related fixes
- Updates and fixes to logging/metrics
- Adds contract addresses for mainnet deployment, supports one quorum only
- An utility codec to convert any bytes to an array of bytes satisfying the new interface
What's Changed
- Account the invalid requests in disperser metrics by @jianoaix in #411
- don't count metadata not found as internal error by @mooselumph in #418
- add tools by @bxue-l2 in #352
- Fix: index of bounds panics by @jianoaix in #417
- Add invalid arg metrics by @mooselumph in #419
- Add child logger & remove method names from log messages by @ian-shim in #412
- Update accounting logic for total encoded blob size by @ian-shim in #421
- Measure attestation latency by @ian-shim in #424
- [DataAPI] Implement metric for Disperser and Churner Service Availability by @siddimore in #405
- RPC requests accounting by @jianoaix in #426
- [Batcher] Reset Timer instead of stopping function by @siddimore in #429
- Additional protobuf nil checks by @mooselumph in #427
- Mark blobs as insufficient signatures if batch aborted due to no sign… by @mooselumph in #431
- Distinguish between system and account ratelimit in metrics by @mooselumph in #430
- Update metrics not to double count blob failures by @ian-shim in #434
- Use histogram for dispersal e2e latency by @jianoaix in #433
- add checks on curve, and serialize using gnark by @bxue-l2 in #422
- Retry SendTransaction on context deadline exceeded error by @ian-shim in #432
- eigenda only accepts 32 bytes less than field modulo by @bxue-l2 in #428
- [fix] remove space from op type by @shrimalmadhur in #439
- [Encoder][Node] Add nil checks by @siddimore in #425
- Update semver 0.6.0 by @ian-shim in #441
Full Changelog: v0.5.2...v0.6.0
EigenDA v0.5.2
Summary
This release includes a patch that fixes an issue which prevents some operators in a particular quorum from receiving large batches.
Other updates:
- Improvements to metrics reported on DA nodes
- Few security related fixes
What's Changed
- Enable dual quorum by default in code by @jianoaix in #404
- Add blob quorum metrics at node by @jianoaix in #406
- Bump
eigensdk
version and patch Fireblocks wallet by @ian-shim in #408 - Add checks for g1 and g2 point deserialization by @mooselumph in #407
- Add list-quorums command to CLI by @jianoaix in #403
- Report number of signers/nonsigners by quorum by @ian-shim in #409
- Increase grpc message size limit by @ian-shim in #414
- Release v0.5.2 by @ian-shim in #415
- Fix most critical integer casting issues by @mooselumph in #413
- Upgrade eigensdk version by @ian-shim in #416
Full Changelog: v0.5.1...v0.5.2
EigenDA v0.5.1
Summary
This release includes a critical patch that fixes an issue which prevents some operators in a particular quorum from validating batches.
What's Changed
- fix: fix null pointer reference by @jianoaix in #397
- Pass in gas price caps explicitly for Fireblocks transactions by @ian-shim in #390
- Fix operator address format and add address to response by @jianoaix in #398
- Index operator state by quorum id not quorum index by @mooselumph in #399
- Upgrade version 0.6.0 by @ian-shim in #400
- Make release v0.5.1 by @ian-shim in #401
- Revert eigensdk version by @ian-shim in #402
Full Changelog: v0.5.0...v0.5.1