Skip to content

Releases: Layr-Labs/eigenda

v0.8.4

26 Sep 18:44
e30979a
Compare
Choose a tag to compare

Summary

This release is optional and contains minor fixes, updates to logging, and devops improvements.

  • Latency observability into encoding and retrieval endpoint
  • Reduce metrics cardinality
  • EigenDA client:
    • Logging update
    • Ability to initialize without configuring signer
  • Improvement in protobuf compilation & docker build pipeline

NOTE: The encoding optimization introduced in v0.8.0, which is not compatible with the previous versions, will be enabled on 10/13 11AM PDT. Please ensure that DA node is upgraded to v0.8.0+ by 10/11. This breaking change only affects DA nodes and does not affect rollups or any users posting blobs.

What's Changed

New Contributors

Full Changelog: v0.8.3...v0.8.4

[Holesky] v0.8.4-rc.0

24 Sep 03:49
68bf132
Compare
Choose a tag to compare
[Holesky] v0.8.4-rc.0 Pre-release
Pre-release

Summary

This pre-release is optional and contains minor fixes, updates to logging, and devops improvements.

  • Latency observability into encoding and retrieval endpoint
  • Reduce metrics cardinality
  • EigenDA client:
    • Logging update
    • Ability to initialize without configuring signer
  • Improvement in protobuf compilation & docker build pipeline

NOTE: The encoding optimization introduced in v0.8.0, which is not compatible with the previous versions, will be enabled on 10/13 11AM PDT. Please ensure that DA node is upgraded to v0.8.0+ by 10/11. This breaking change only affects DA nodes and does not affect rollups or any users posting blobs.

What's Changed

New Contributors

Full Changelog: v0.8.3...v0.8.4-rc.0

v0.8.3

13 Sep 00:26
53ab26d
Compare
Choose a tag to compare

Summary

This release is optional for users and operators to upgrade.

Notable changes

  • Performance improvement: Zero serialization of chunks after being encoded in the dispersal flow, eliminating 20s to minutes overhead on dispersal latency
  • Performance observability: Added metrics for blob age, blob encoding latency and system throughput
  • Robustness fixes:
    • Added blob state transition invariant checking to make sure blob state changes are correct
    • Added blob state recovery for handling failed blobs stuck in DISPERSING state

What's Changed

  • Downlevel more encoding streamer error log by @ian-shim in #689
  • Check if blobs are expired before returning by @mooselumph in #695
  • Add log for chunk encoding format by @jianoaix in #696
  • Add BlobMinibatchMapping in minibatch store by @ian-shim in #683
  • Create blob minibatch mappings by @ian-shim in #687
  • [BatchConfirmer] Apply state transitions for full batches by @ian-shim in #691
  • [1/N][zero serialization] Create data structure for passing encode chunks by @jianoaix in #690
  • Add an API to fetch blobs from a given batch header hash by @dmanc in #688
  • Update README.md by @Ocheretovich in #694
  • [node] AttestBatch endpoint by @ian-shim in #676
  • Split blob writer code out of larger PR. by @cody-littley in #685
  • [2/N][zero serialization] Make Batcher operate on chunks without ser/deser by @jianoaix in #700
  • use insecure credential by @bxue-l2 in #711
  • Simplify minibatch data model by @ian-shim in #707
  • [node] Refactor blob expiration key by @ian-shim in #693
  • Compress signatures in minibatch response by @ian-shim in #699
  • [node] Make GetBlobHeader compatible with minibatches by @ian-shim in #698
  • [1/N][GPU encoder] Add benchmarking code and refactor encoding module by @dmanc in #715
  • Add GetBulkBlobMetadata method in BlobMetadataStore by @ian-shim in #703
  • Perf observability: Add blob age at key stages in blob's lifecycle by @jianoaix in #719
  • Perf observability: Encoder data throughput and blob size breakdown by @jianoaix in #716
  • Perf observability: Add blob encoding latency at client side by @jianoaix in #722
  • Fix stringification of uint8 by @jianoaix in #723
  • [node] Make GetChunks compatible with minibatches by @ian-shim in #712
  • Send blob headers to all quorums on minibatch dispersal by @ian-shim in #717
  • [3/N][zero serialization] Make Encoder produce and pass chunks in desired format by @jianoaix in #735
  • [4/N][zero serialization] Add fallback to the encoder client when it cannot tell chunk encoding format by @jianoaix in #738
  • More fixes of quorum (uint8) stringification by @jianoaix in #731
  • Perf observability: Add attestation and encoding throughput by @jianoaix in #725
  • Created blob verifier worker. by @cody-littley in #708
  • Add dispersing transistion check by @bxue-l2 in #741
  • Recover failed blobs in encoding streamer by @ian-shim in #733
  • Fix: Append metadata when constructing batch by @ian-shim in #746
  • Minor updates to error logs by @ian-shim in #747
  • Created dockerized workflow for building protobufs. by @cody-littley in #734
  • chore(inabox): multiplex inabox logs to stdout to help debug easier by @samlaf in #752
  • Expose public ip service option on node plugin by @pschork in #756

New Contributors

Full Changelog: v0.8.2...v0.8.3

[Holesky] v0.8.3-rc.0

05 Sep 22:23
2c75d5d
Compare
Choose a tag to compare
[Holesky] v0.8.3-rc.0 Pre-release
Pre-release

Summary

This pre-release is optional for users and operators to upgrade.

Notable changes

  • Performance improvement: Zero serialization of chunks after being encoded in the dispersal flow, eliminating 20s to minutes overhead on dispersal latency
  • Performance observability: Added metrics for blob age, blob encoding latency and system throughput
  • Robustness fixes:
    • Added blob state transition invariant checking to make sure blob state changes are correct
    • Added blob state recovery for handling failed blobs stuck in DISPERSING state

What's Changed

  • Downlevel more encoding streamer error log by @ian-shim in #689
  • Check if blobs are expired before returning by @mooselumph in #695
  • Add log for chunk encoding format by @jianoaix in #696
  • Add BlobMinibatchMapping in minibatch store by @ian-shim in #683
  • Create blob minibatch mappings by @ian-shim in #687
  • [BatchConfirmer] Apply state transitions for full batches by @ian-shim in #691
  • [1/N][zero serialization] Create data structure for passing encode chunks by @jianoaix in #690
  • Add an API to fetch blobs from a given batch header hash by @dmanc in #688
  • Update README.md by @Ocheretovich in #694
  • [node] AttestBatch endpoint by @ian-shim in #676
  • Split blob writer code out of larger PR. by @cody-littley in #685
  • [2/N][zero serialization] Make Batcher operate on chunks without ser/deser by @jianoaix in #700
  • use insecure credential by @bxue-l2 in #711
  • Simplify minibatch data model by @ian-shim in #707
  • [node] Refactor blob expiration key by @ian-shim in #693
  • Compress signatures in minibatch response by @ian-shim in #699
  • [node] Make GetBlobHeader compatible with minibatches by @ian-shim in #698
  • [1/N][GPU encoder] Add benchmarking code and refactor encoding module by @dmanc in #715
  • Add GetBulkBlobMetadata method in BlobMetadataStore by @ian-shim in #703
  • Perf observability: Add blob age at key stages in blob's lifecycle by @jianoaix in #719
  • Perf observability: Encoder data throughput and blob size breakdown by @jianoaix in #716
  • Perf observability: Add blob encoding latency at client side by @jianoaix in #722
  • Fix stringification of uint8 by @jianoaix in #723
  • [node] Make GetChunks compatible with minibatches by @ian-shim in #712
  • Send blob headers to all quorums on minibatch dispersal by @ian-shim in #717
  • [3/N][zero serialization] Make Encoder produce and pass chunks in desired format by @jianoaix in #735
  • [4/N][zero serialization] Add fallback to the encoder client when it cannot tell chunk encoding format by @jianoaix in #738
  • More fixes of quorum (uint8) stringification by @jianoaix in #731
  • Perf observability: Add attestation and encoding throughput by @jianoaix in #725
  • Created blob verifier worker. by @cody-littley in #708
  • Add dispersing transistion check by @bxue-l2 in #741
  • Recover failed blobs in encoding streamer by @ian-shim in #733
  • Fix: Append metadata when constructing batch by @ian-shim in #746
  • Minor updates to error logs by @ian-shim in #747
  • Created dockerized workflow for building protobufs. by @cody-littley in #734

New Contributors

Full Changelog: v0.8.2...v0.8.3-rc.0

v0.8.2

04 Sep 23:04
Compare
Choose a tag to compare

Summary

This is a patch release to fix a bug related to the blob state transition (#741). Without this fix, the blob may have wrong state transition from Confirmed back to Dispersing, which should never happen.

Users/rollups: No action needed. This is a system internal fix and should just work for users.

Operators: Not affected. No action needed.

Full Changelog: v0.8.1...v0.8.2

v0.8.1

22 Aug 00:13
Compare
Choose a tag to compare

Summary

This is a patch release to fix a bug related to gRPC dial option (#711) in dispersal client library in v0.8.0, so users can retrieve the 4MiB blobs correctly.

Users/rollups: if you are using dispersal client to retrieve 4MiB blobs, please upgrade to v0.8.1. No impact otherwise.

Operators: no impact, and no action is needed.

Full Changelog: v0.8.0...v0.8.1

v0.8.0

19 Aug 19:52
448800d
Compare
Choose a tag to compare

Summary

This release is optional for now, but strongly recommended.

In particular, it’ll become required for operators to upgrade to v0.8.0 or higher before 2024/09/20 on Mainnet.

Two changes are needed to complete the upgrade:

  • Upgrade image to v0.8.0 or higher
  • Set the node environment variable “NODE_SRS_LOAD=8388608”

Both are included in operator setup repo: https://github.com/Layr-Labs/eigenda-operator-setup/releases/tag/v0.8.0

Notable features

  • EigenDA users - Max Blob size raised from 2MiB to 4MiB
    • Not enabled for custom quorums with less than 8 operators
  • Operators - Gnark chunk encoding to reduce data size by about 30%
    • Not enabled for now
    • Scheduled to enable after operators upgrade to v0.8.0 or later version
  • NodeInfo API at Node: Operators will start making the Node software version information available to the Disperser
  • Churn approval expiration reduced from 60 mins to 15 mins: Churner can approve a churn request every 15 mins now

Other notable changes

  • Fixed a bug in blob state transition in Batcher (reset DISPERSING blobs back to PROCESSING at Batcher start)
  • Improved performance logging

Extra details for blob size limit and chunk encoding

Increasing max blob size is a notable feature enabled in the release. This feature allows EigenDA users to send blobs of 4MiB, previously 2MiB. For operators, they will need to update the NODE_SRS_LOAD to support larger blobs. The resource utilization on the node is expected to be almost identical under the same level of traffic.

This release also contains chunk encoding changes that are not enabled for now, but are scheduled to enable at some future release, to give operators ample time to upgrade. When enabled after the release post 2024/09/20, the nodes with versions before v0.8.0 will not be able to parse the chunks from Disperser.

We will make an announcement in that future release when the changes are enabled.

What's Changed

New Contributors

Full Changelog: v0.7.4...v0.8.0

[Holesky] v0.8.0-rc.1

13 Aug 01:22
448800d
Compare
Choose a tag to compare
[Holesky] v0.8.0-rc.1 Pre-release
Pre-release

Summary

This pre-release is optional for now, but strongly recommended.

In particular, it’ll become required for operators to upgrade to v0.8.0 or higher before 2024/09/15 on testnet.

Two changes are needed to complete the upgrade:

  • Upgrade image to v0.8.0 or higher
  • Set the node environment variable “NODE_SRS_LOAD=8388608”

Both are included in release https://github.com/Layr-Labs/eigenda-operator-setup/releases/tag/v0.8.0-rc.1

Notable features

  • EigenDA users - Max Blob size raised from 2MiB to 4MiB
    • Not enabled for custom quorums with less than 8 operators
  • Operators - Gnark chunk encoding to reduce data size by about 30%
    • Not enabled for now
    • Scheduled to enable after operators upgrade to v0.8.0 or later version
  • NodeInfo API at Node: Operators will start making the Node software version information available to the Disperser
  • Churn approval expiration reduced from 60 mins to 15 mins: Churner can approve a churn request every 15 mins now

Other notable changes

  • Fixed a bug in blob state transition in Batcher (reset DISPERSING blobs back to PROCESSING at Batcher start)
  • Improved performance logging

Extra details for blob size limit and chunk encoding

Increasing max blob size is a notable feature enabled in the release. This feature allows EigenDA users to send blobs of 4MiB, previously 2MiB. For operators, they will need to update the NODE_SRS_LOAD to support larger blobs. The resource utilization on the node is expected to be almost identical under the same level of traffic.

This pre-release also contains chunk encoding changes that are not enabled for now, but are scheduled to enable at some future release, to give operators ample time to upgrade. When enabled after the release post 2024/09/15, the nodes with versions before v0.8.0 will not be able to parse the chunks from Disperser.

We will make an announcement in that future release when the changes are enabled.

What's Changed

New Contributors

Full Changelog: v0.7.4...v0.8.0-rc.1

hot fix disperser grpc recv buffer

01 Aug 23:22
Compare
Choose a tag to compare
Pre-release
v0.7.4-4

fix

v0.7.4

25 Jun 18:03
2ade913
Compare
Choose a tag to compare

Summary

This release is optional and contains performance improvements as well as bug fixes.

Notable features that directly affect users are:

  • Operators - ARM support: We now publish ARM docker images for the operator node.

  • Operators - Improvements to storage: Added performance improvements on the node DB side resulting in 4x performance increase.

Other changes:

  • Traffic generator now supports authenticated dispersals
  • Fixes to the retriever service
  • Improved logging on the operator node
  • Preparing rewards integrations at the smart contract layer

What's Changed

  • Add decode flag for GetBlob() by reworking codec layer by @teddyknox in #592
  • Add nonsigning rate threshold control to ejector by @jianoaix in #601
  • Few fixes to retriever server by @ian-shim in #599
  • Auth traffic gen by @mooselumph in #566
  • Adds support for multi-platform linux/amd64 & linux/arm64 docker images by @pschork in #603
  • Add log for request data size breakdown by @jianoaix in #604
  • Use accountKey as AccountID by @dmanc in #602
  • Fix GitVersion regex to properly identify versioned tags when building in detached HEAD mode by @pschork in #605
  • [finalizer] Update confirmation block number in finalizer by @ian-shim in #600
  • Optimize the bytes encoding at node by @jianoaix in #606
  • Rewards Integration by @0x0aa0 in #588

Full Changelog: v0.7.3...v0.7.4