Summary
This major upgrade includes several new features, security improvements, and an API breaking change that simplifies the blob dispersal endpoint.
Notable features that directly affect users are:
- Rollups - Disperser API breaking change: The API for DisperseBlob request has been simplified, and
security_params
field is no longer supported. Default quorums are enforced by the protocol and additional quorums can be specified incustom_quorum_numbers
field. - Rollups - Disperser API error codes: The disperser API returns structured error codes along with the error messages.
- Rollups - Retrieval rate limits: We’ve added rate limits for RetrieveBlob endpoint.
- Operators - Operator CLI is revamped:
update-quorums
command is no longer supported, andopt-out
command takes specific quorums to be opted out (instead of opting out of all quorums)
Other improvements:
- This upgrade spans changes in contracts, disperser, and DA nodes to enable blob dispersals across multiple quorums
- Revamped logic for operator nonsigning accounting across multiple quorums
- Fireblocks MPC wallet support for disperser
- Automatic failover among multiple RPC endpoints
- More robust selection of reference block
- Other security patches and bug fixes
What's Changed
- [DataApi] Add Service Availability Handler by @siddimore in #276
- Upgrade
eigensdk-go
andgo-ethereum
by @ian-shim in #323 - Add missing methods in EthClient interface by @ian-shim in #332
- Create a json/text logger based on specified flag by @ian-shim in #331
- [DockerBuild] Update docker job to build for Pull Request by @siddimore in #329
- [Finalizer] Add check before processing ConfirmationInfo by @siddimore in #341
- [5/N][multi quorum ejection] Compute num batches per quorum and block range by @jianoaix in #327
- Fix doc typos in spec overview by @igorline in #334
- Fix: division by zero panic in assignment by @ian-shim in #340
- [dataapi] Return total stakes by quorum by @ian-shim in #330
- [6/N][multi quorum ejection] Create handler and put them all together by @jianoaix in #328
- [7/N][multi quorum ejection] Cleanup by @jianoaix in #351
- Add preprod-holesky to networks.json by @dmanc in #355
- Blob verification changes by @0x0aa0 in #321
- Minor fixes by @ian-shim in #358
- Check unexpected error and return when decoding chunks by @ian-shim in #359
- Holesky testnet deployment by @0x0aa0 in #360
- Revamp metrics to account the status code by @jianoaix in #320
- Validate gRPC requests earlier by @ian-shim in #356
- Update quorumConfirmationThresholdPercentages by @0x0aa0 in #364
- Handle uint8 overflow by @ian-shim in #363
- Upgrade lock for delete encoding request by @ian-shim in #357
- Multiple quorums support for traffic generator by @ian-shim in #339
- [Subgraph] Updates for Holesky by @siddimore in #367
- Fix: Construct a new map for security params by @ian-shim in #366
- Remove traffic generator threshold flags by @pschork in #368
- Make sure the operator quorum events are all fetched by @jianoaix in #361
- Remove the update-quorums command support by @jianoaix in #362
- Integrate EigenSDK wallet in batcher by @ian-shim in #348
- Use finalized reference block by @mooselumph in #350
- Crypto audix fix by @bxue-l2 in #371
- Return transact opts for non-pk EthClient by @ian-shim in #373
- Sort quorum IDs before aggregation by @ian-shim in #375
- Timeout disperser grpc streams by @mooselumph in #376
- Add store chunks validation at node by @jianoaix in #378
- failover that retries rpc by @bxue-l2 in #346
- Fix: make operators able to join all specified quorums by @ian-shim in #268
- Misc node code fixes by @jianoaix in #369
- Use latest available block for getting indexedOperatorState by @mooselumph in #365
- fix defer with closure by @bxue-l2 in #382
- Misc remove duplicate assignment in subgraph batch handle by @bxue-l2 in #384
- Atomically pass or fail rate limit check by @mooselumph in #374
- [Node] update DA UI map by @siddimore in #385
- Handle txn failure when retrieving txn receipt by @ian-shim in #383
- optimize encoder interpolation latency by @bxue-l2 in #309
- Update eigensdk version by @ian-shim in #387
- Fireblock with aws secret manager by @bxue-l2 in #377
- Revamp the operator CLI for opt-out by @jianoaix in #381
- refactor: make the security param validation a shared function by @jianoaix in #388
- Handle bitmap lookup for nonexistent operators by @jianoaix in #370
- Remove flaky targetNumChunks lower bound check by @mooselumph in #391
- Clarify error message when a required quorum is specified as a custom quorum by @ian-shim in #386
- Update semver for new release by @ian-shim in #393
- Add retrieval ratelimit by @mooselumph in #380
- Add context on few error logs + early return on encoding streamer by @ian-shim in #372
- Flag guard the dual quorum in disperser by @jianoaix in #389
- Fix the quorumID diffing for registartion from node start by @jianoaix in #395
- Update API documentation by @jianoaix in #396
New Contributors
Full Changelog: v0.4.0...v0.5.0