Releases: Layr-Labs/eigenda
[Holesky] Blazar (v0.9.0-rc.0)
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. -
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
- Add latency metric for dispersal/retrieval with blob size breakdown by @jianoaix in #939
- [v2][node] Construct relay client from relay address from chain by @ian-shim in #931
- [v2] disperser server payments api by @hopeyen in #902
- GPU accelerated encoder by @dmanc in #895
- Remove duplicate flags from relay by @ian-shim in #944
- Add controller to Dockerfile by @yujiezhu0 in #952
- fix: skip socket registry in contract bindings by @hopeyen in #951
- Remove the unnecessary module by @jianoaix in #956
- Adds grpcurl/reflection support for v1 apis via disperser-v2 reflection service by @pschork in #954
- Add a new dataapi server by @jianoaix in #955
- Add controller to docker bake by @yujiezhu0 in #959
- fix: no local flags for skipping socket registry, only warn by @hopeyen in #964
- Automatically generate protobuf documentation by @cody-littley in #946
- Update
RelayKey
type touint32
by @ian-shim in #963 - Add timeout to download chunks from node by @ian-shim in #941
- Add relay to docker build by @pschork in #957
- Relay metrics by @cody-littley in #938
- [v2] disperser client payments api by @hopeyen in #928
- v2 Retrieval Client by @ian-shim in #953
- Added metrics for the encoding manager. by @cody-littley in #967
- Add metrics to the dispatcher by @cody-littley in #968
- Revert changes to churner metrics. by @cody-littley in #970
- Support blob and batch fetch APIs by @jianoaix in #966
- [payment] transactor ping payment vault contract by @hopeyen in #827
- [ci] Disable graph indexer integration test by @ian-shim in #978
- [v2] Remove
InsufficientSignatures
blob state by @ian-shim in #936 - Register dispatcher metrics. by @cody-littley in #971
- Remove wrapper from relay by @cody-littley in #975
- Add metrics to v2 api server. by @cody-littley in #969
- [node] Don't store certs in store v2 by @ian-shim in #977
- V2 Blob Verification by @0x0aa0 in #781
- [v2] Offchain integrations with v2 contracts by @ian-shim in #960
- Write TestRandom util by @litt3 in #976
- payment struct and names ReservationPeriod and Salt by @hopeyen in #965
- [v2] Inabox test by @ian-shim in #958
- Pull out the operator handling logic that's shareable by @jianoaix in #981
- Payments storage packing by @0x0aa0 in #942
- fix: cumulative payment dynamo db unit conversion by @hopeyen in #979
- [v2] Update blob header hasher by @ian-shim in #962
- fix: typos in documentation files by @leopardracer in #989
- Update proto docs by @ian-shim in #993
- payments - global reservation uses interval config by @hopeyen in #980
- update blob verifier by @0x0aa0 in #992
- reservation timestamp check by @hopeyen in #990
- Update docker-bake.hcl by @yujiezhu0 in #996
- Support operator APIs by @jianoaix in #987
- fix: V2 merkle check by @0x0aa0 in #998
- chore: change from pk to random bytes by @shrimalmadhur in #1001
- Node metrics by @cody-littley in #948
- Separate out client v2 package by @ian-shim in #986
- [v2] inabox test retrieval from DA nodes by @ian-shim in #988
- Use hex representation of operator ID in dispatcher logs by @dmanc in #1002
- Create codeQL-scanning.yaml by @anupsv in #997
- [v2] integrate with new payments contract by @hopeyen in #995
- chore: move kzgpad main.go: kzgpad/cmd/main.go -> kzgpad/main.go by @samlaf in #1004
- Fix docker build for controller by @dmanc in #1009
- bump middleware to rewardsV2 by @0x0aa0 in #1008
- fix: make the api path naming plural by @jianoaix in #1013
- Handle nil operator ID in GetChunks() by @cody-littley in #1006
- Fix: return attestation err result to dispatcher by @ian-shim in #1011
- Disperser Registry by @0x0aa0 in #1019
- update contract bindings by @hopeyen in #1010
- refactor: refreshOnchainPaymentState arg by @hopeyen in #1012
- Assign relay proto its own package by @ian-shim in #1025
- fix: properly set fields without onchain correspondance by @hopeyen in #1014
- Nil checks in disperser v2 server constructor by @ian-shim in #1024
- Remove hardcoded localhost auth from relay authenticator by @ian-shim in #1007
- Add
AlreadyExists
error from disperser by @ian-shim in #1026 - Improvements to the test random library. by @cody-littley in #1029
- Regenerate bindings by @cody-littley in #1030
- init once accountant by @hopeyen in #1015
- [v2] Add quorum results to attestation by @ian-shim in #1018
- Sign get chunks by @cody-littley in #1022
- fix: global symbols per period and interval by @hopeyen in #1033
- Update dependabot.yml by @anupsv in #1027
- Refactor the metrics computing at dataapi by @jianoaix in #1039
- Fail v2 blobs for no attestations by @ian-shim in #1043
- Handle signature aggregation failure in dispatcher by @ian-shim in #1045
- symbols charged and payment metadata check by @hopeyen in #1034
- [v2] payments inabox by @ho...
v0.8.6
Summary
This is an optional but recommended release for all Holeksy operators.
- Remote BLS signer support for operator nodes
- Example signing service https://github.com/Layr-Labs/cerberus
- Disperser blob retrieval latency reduced by ~7x
- Improved error handling when new on-chain SocketRegsitry contract is not available
What's Changed
- Revert "Revert "S3 relay interface"" by @cody-littley in #853
- [payments] disperser client local metering by @hopeyen in #793
- [v2] Encoding manager by @ian-shim in #846
- Chunk store by @cody-littley in #848
- Use keys that do not collide when data is stored in a single bucket. by @cody-littley in #865
- Add cache wrapper that handles parallel access. by @cody-littley in #861
- [v2] Interface update for batching by @ian-shim in #864
- [v2] Node Client
StoreChunks
method by @ian-shim in #852 - [v2] metadata store dispersal operations by @ian-shim in #867
- [v2] Attestation Interface & Metadata Store by @ian-shim in #868
- Fix conversion between integer types by @pschork in #872
- [v2] Refactor object serialization by @ian-shim in #870
- [v2] Encoder server with EncodeBlob method by @dmanc in #866
- Update protos for relay implementation. by @cody-littley in #876
- Remove PadToPowerOf2 function by @dmanc in #877
- style: remove unneeded lint checkbox in pull_request_template.md by @samlaf in #859
- Downgrade disperser error logs by @ian-shim in #881
- v2
BlobMetadataStore
operations forBlobVerificationInfo
s by @ian-shim in #878 - Clean up unused node methods by @ian-shim in #874
- Fix test flake. by @cody-littley in #886
- [relay] Return raw bundle bytes from relay by @ian-shim in #884
- Relay Client by @ian-shim in #875
- [v2] Dispatcher Implementation by @ian-shim in #871
- More minibatch clean up by @ian-shim in #883
- [v2] Controller Entrypoint by @ian-shim in #873
- [disperser] Return non-internal error for context errors by @ian-shim in #887
- [v2] Node
DownloadBatch
method by @ian-shim in #880 - Integrate the grpc native instrumentation by @jianoaix in #891
- [v2] Node v2 storage implementation by @ian-shim in #885
- [v2] Make
ChunkWriter
requests idempotent by @ian-shim in #879 - Rename
non_signer_stakes_and_signature
toattestation
in v2 protobuf by @ian-shim in #898 - Implement core relay functionality by @cody-littley in #869
- [v2] Disperser
GetBlobStatus
endpoint by @ian-shim in #889 - Set up v2
EncodingClient
inEncodingManager
by @ian-shim in #897 - Node v2
StoreChunks
andGetChunks
endpoints by @ian-shim in #893 - Disperser Client v2 by @ian-shim in #900
- Relay main by @cody-littley in #892
- payments vault by @0x0aa0 in #800
- [v2] Disperser server
GetBlobCommitment
endpoint by @ian-shim in #899 - feat: bls remote signer by @shrimalmadhur in #745
- Concurrency limiting cache by @cody-littley in #903
- [relay] Replace viper to common cli parsing framework by @ian-shim in #904
- [v2] Variety of fixes in disperser by @ian-shim in #907
- verifyBlobs util by @0x0aa0 in #862
- Relay rate limits by @cody-littley in #906
- Add encoder queueing stats for autoscaling by @jianoaix in #910
- Track bucket instead of sizes by @jianoaix in #913
- [v2] node/relay bug fixes by @ian-shim in #908
- Use power of 2 for blob length by @mooselumph in #912
- Fix Subgraph README.md typo by @gwenall in #890
- [v2] Remove rate limiter from disperser by @ian-shim in #909
- V2 interfaces by @0x0aa0 in #920
- Relay authentication by @cody-littley in #911
- [v2] Disperser request validation by @ian-shim in #915
- [v2] Paginate metadata records in controller by @ian-shim in #914
- [v2] Offchain integration with v2 onchain interfaces by @ian-shim in #921
- docs: fix typo in encoding.md by @samlaf in #925
- Add additional queue metrics by @dmanc in #919
- [v2] Read blob version params from chain by @ian-shim in #922
- add pprof to disperser by @bxue-l2 in #927
- remove s.logger by @bxue-l2 in #929
- Optimize the Disperser perf by @jianoaix in #930
- Relay timeouts by @cody-littley in #918
- Pull out the pprof server by @jianoaix in #933
- Do not fail the object fetch when object size is unknown by @jianoaix in #932
- Metrics framework by @cody-littley in #926
- [SocketRegistry] get operator socket by @hopeyen in #863
- Integrate pprof to encoder and node by @jianoaix in #935
- Metrics framework churner by @cody-littley in #934
- Size aware cache by @cody-littley in #924
- Security.md creation by @anupsv in #905
- fix: no local flags for skipping socket registry, only warn by @hopeyen in #964
New Contributors
Full Changelog: v0.8.5...v0.8.6
v0.8.6-rc.1
Summary
This is an optional but recommended release for all Holeksy operators.
- Remote BLS signer support for operator nodes
- Example signing service https://github.com/Layr-Labs/cerberus
- Disperser blob retrieval latency reduced by ~7x
- Improved error handling when new on-chain SocketRegsitry contract is not available
What's Changed
- Revert "Revert "S3 relay interface"" by @cody-littley in #853
- [payments] disperser client local metering by @hopeyen in #793
- [v2] Encoding manager by @ian-shim in #846
- Chunk store by @cody-littley in #848
- Use keys that do not collide when data is stored in a single bucket. by @cody-littley in #865
- Add cache wrapper that handles parallel access. by @cody-littley in #861
- [v2] Interface update for batching by @ian-shim in #864
- [v2] Node Client
StoreChunks
method by @ian-shim in #852 - [v2] metadata store dispersal operations by @ian-shim in #867
- [v2] Attestation Interface & Metadata Store by @ian-shim in #868
- Fix conversion between integer types by @pschork in #872
- [v2] Refactor object serialization by @ian-shim in #870
- [v2] Encoder server with EncodeBlob method by @dmanc in #866
- Update protos for relay implementation. by @cody-littley in #876
- Remove PadToPowerOf2 function by @dmanc in #877
- style: remove unneeded lint checkbox in pull_request_template.md by @samlaf in #859
- Downgrade disperser error logs by @ian-shim in #881
- v2
BlobMetadataStore
operations forBlobVerificationInfo
s by @ian-shim in #878 - Clean up unused node methods by @ian-shim in #874
- Fix test flake. by @cody-littley in #886
- [relay] Return raw bundle bytes from relay by @ian-shim in #884
- Relay Client by @ian-shim in #875
- [v2] Dispatcher Implementation by @ian-shim in #871
- More minibatch clean up by @ian-shim in #883
- [v2] Controller Entrypoint by @ian-shim in #873
- [disperser] Return non-internal error for context errors by @ian-shim in #887
- [v2] Node
DownloadBatch
method by @ian-shim in #880 - Integrate the grpc native instrumentation by @jianoaix in #891
- [v2] Node v2 storage implementation by @ian-shim in #885
- [v2] Make
ChunkWriter
requests idempotent by @ian-shim in #879 - Rename
non_signer_stakes_and_signature
toattestation
in v2 protobuf by @ian-shim in #898 - Implement core relay functionality by @cody-littley in #869
- [v2] Disperser
GetBlobStatus
endpoint by @ian-shim in #889 - Set up v2
EncodingClient
inEncodingManager
by @ian-shim in #897 - Node v2
StoreChunks
andGetChunks
endpoints by @ian-shim in #893 - Disperser Client v2 by @ian-shim in #900
- Relay main by @cody-littley in #892
- payments vault by @0x0aa0 in #800
- [v2] Disperser server
GetBlobCommitment
endpoint by @ian-shim in #899 - feat: bls remote signer by @shrimalmadhur in #745
- Concurrency limiting cache by @cody-littley in #903
- [relay] Replace viper to common cli parsing framework by @ian-shim in #904
- [v2] Variety of fixes in disperser by @ian-shim in #907
- verifyBlobs util by @0x0aa0 in #862
- Relay rate limits by @cody-littley in #906
- Add encoder queueing stats for autoscaling by @jianoaix in #910
- Track bucket instead of sizes by @jianoaix in #913
- [v2] node/relay bug fixes by @ian-shim in #908
- Use power of 2 for blob length by @mooselumph in #912
- Fix Subgraph README.md typo by @gwenall in #890
- [v2] Remove rate limiter from disperser by @ian-shim in #909
- V2 interfaces by @0x0aa0 in #920
- Relay authentication by @cody-littley in #911
- [v2] Disperser request validation by @ian-shim in #915
- [v2] Paginate metadata records in controller by @ian-shim in #914
- [v2] Offchain integration with v2 onchain interfaces by @ian-shim in #921
- docs: fix typo in encoding.md by @samlaf in #925
- Add additional queue metrics by @dmanc in #919
- [v2] Read blob version params from chain by @ian-shim in #922
- add pprof to disperser by @bxue-l2 in #927
- remove s.logger by @bxue-l2 in #929
- Optimize the Disperser perf by @jianoaix in #930
- Relay timeouts by @cody-littley in #918
- Pull out the pprof server by @jianoaix in #933
- Do not fail the object fetch when object size is unknown by @jianoaix in #932
- Metrics framework by @cody-littley in #926
- [SocketRegistry] get operator socket by @hopeyen in #863
- Integrate pprof to encoder and node by @jianoaix in #935
- Metrics framework churner by @cody-littley in #934
- Size aware cache by @cody-littley in #924
- Security.md creation by @anupsv in #905
- fix: no local flags for skipping socket registry, only warn by @hopeyen in #964
New Contributors
Full Changelog: v0.8.5...v0.8.6-rc.1
v0.8.6-rc.0
Summary
This is an optional but recommended release for all Holeksy operators.
- Remote BLS signer support for operator nodes
- Example signing service https://github.com/Layr-Labs/cerberus
- Disperser blob retrieval latency reduced by ~7x
What's Changed
- Revert "Revert "S3 relay interface"" by @cody-littley in #853
- [payments] disperser client local metering by @hopeyen in #793
- [v2] Encoding manager by @ian-shim in #846
- Chunk store by @cody-littley in #848
- Use keys that do not collide when data is stored in a single bucket. by @cody-littley in #865
- Add cache wrapper that handles parallel access. by @cody-littley in #861
- [v2] Interface update for batching by @ian-shim in #864
- [v2] Node Client
StoreChunks
method by @ian-shim in #852 - [v2] metadata store dispersal operations by @ian-shim in #867
- [v2] Attestation Interface & Metadata Store by @ian-shim in #868
- Fix conversion between integer types by @pschork in #872
- [v2] Refactor object serialization by @ian-shim in #870
- [v2] Encoder server with EncodeBlob method by @dmanc in #866
- Update protos for relay implementation. by @cody-littley in #876
- Remove PadToPowerOf2 function by @dmanc in #877
- style: remove unneeded lint checkbox in pull_request_template.md by @samlaf in #859
- Downgrade disperser error logs by @ian-shim in #881
- v2
BlobMetadataStore
operations forBlobVerificationInfo
s by @ian-shim in #878 - Clean up unused node methods by @ian-shim in #874
- Fix test flake. by @cody-littley in #886
- [relay] Return raw bundle bytes from relay by @ian-shim in #884
- Relay Client by @ian-shim in #875
- [v2] Dispatcher Implementation by @ian-shim in #871
- More minibatch clean up by @ian-shim in #883
- [v2] Controller Entrypoint by @ian-shim in #873
- [disperser] Return non-internal error for context errors by @ian-shim in #887
- [v2] Node
DownloadBatch
method by @ian-shim in #880 - Integrate the grpc native instrumentation by @jianoaix in #891
- [v2] Node v2 storage implementation by @ian-shim in #885
- [v2] Make
ChunkWriter
requests idempotent by @ian-shim in #879 - Rename
non_signer_stakes_and_signature
toattestation
in v2 protobuf by @ian-shim in #898 - Implement core relay functionality by @cody-littley in #869
- [v2] Disperser
GetBlobStatus
endpoint by @ian-shim in #889 - Set up v2
EncodingClient
inEncodingManager
by @ian-shim in #897 - Node v2
StoreChunks
andGetChunks
endpoints by @ian-shim in #893 - Disperser Client v2 by @ian-shim in #900
- Relay main by @cody-littley in #892
- payments vault by @0x0aa0 in #800
- [v2] Disperser server
GetBlobCommitment
endpoint by @ian-shim in #899 - feat: bls remote signer by @shrimalmadhur in #745
- Concurrency limiting cache by @cody-littley in #903
- [relay] Replace viper to common cli parsing framework by @ian-shim in #904
- [v2] Variety of fixes in disperser by @ian-shim in #907
- verifyBlobs util by @0x0aa0 in #862
- Relay rate limits by @cody-littley in #906
- Add encoder queueing stats for autoscaling by @jianoaix in #910
- Track bucket instead of sizes by @jianoaix in #913
- [v2] node/relay bug fixes by @ian-shim in #908
- Use power of 2 for blob length by @mooselumph in #912
- Fix Subgraph README.md typo by @gwenall in #890
- [v2] Remove rate limiter from disperser by @ian-shim in #909
- V2 interfaces by @0x0aa0 in #920
- Relay authentication by @cody-littley in #911
- [v2] Disperser request validation by @ian-shim in #915
- [v2] Paginate metadata records in controller by @ian-shim in #914
- [v2] Offchain integration with v2 onchain interfaces by @ian-shim in #921
- docs: fix typo in encoding.md by @samlaf in #925
- Add additional queue metrics by @dmanc in #919
- [v2] Read blob version params from chain by @ian-shim in #922
- add pprof to disperser by @bxue-l2 in #927
- remove s.logger by @bxue-l2 in #929
- Optimize the Disperser perf by @jianoaix in #930
- Relay timeouts by @cody-littley in #918
- Pull out the pprof server by @jianoaix in #933
- Do not fail the object fetch when object size is unknown by @jianoaix in #932
- Metrics framework by @cody-littley in #926
- [SocketRegistry] get operator socket by @hopeyen in #863
- Integrate pprof to encoder and node by @jianoaix in #935
- Metrics framework churner by @cody-littley in #934
- Size aware cache by @cody-littley in #924
- Security.md creation by @anupsv in #905
New Contributors
Full Changelog: v0.8.5...v0.8.6-rc.0
v0.8.5
Summary
This release is optional and contains minor fixes, updates to logging, and devops improvements.
- DataApi: Add endpoint on dataapi for ejection events
- EigenDAClient
- Simplify confirmation depth and finalization logics for putting a blob
- Refine error handling logics and error message if dispersal went wrong
- Reuse a single underlying connection for all grpc methods
- Bug fix: Global rate limit mistrigger
What's Changed
- Fix printf lint warning by @estensen in #742
- bug: fix slice init length by @jingchanglu in #767
- Operator network scanning tool by @pschork in #705
- readme: Delete obsolete subdirectories by @cosmoknightt in #769
- style: remove redundant logs by returning msg in errors by @samlaf in #776
- Fix grpc size comments by @jianoaix in #751
- [blobstore] Filter out expired blobs from query by @ian-shim in #692
- Define separate fallback RPC argument to work around URL escaping issues by @pschork in #777
- Reader fragment by @cody-littley in #749
- Fix docker bake tagging by @pschork in #782
- 771 read traffic generator by @cody-littley in #666
- Remove minibatcher by @ian-shim in #783
- [v2] Disperser and Node service protobuf by @ian-shim in #784
- chore: fix two small typos by @cosmoknightt in #795
- fix: ExpresseionValues -> ExpressionValues typo by @hopeyen in #796
- [payments] numeric incremental updates, query with ordering and lim by @hopeyen in #788
- [v2] Node v2 gRPC Entrypoint by @ian-shim in #797
- adds subgraph indexing of ejection manager events by @pschork in #798
- Validate protos workflow by @cody-littley in #799
- Table store by @cody-littley in #774
- Add observability for operator stake distributions by @jianoaix in #808
- Perf: cache the operator state by @jianoaix in #809
- Add feature that can disable traffic generator metrics. by @cody-littley in #807
- Adds operator ejections dataapi endpoint by @pschork in #810
- [payments] meterer structs and helpers by @hopeyen in #789
- [v2] Disperser API Server Entrypoint by @ian-shim in #785
- Break out chainio and crypto by @mooselumph in #805
- Fix race condition when rebuilding proto files. by @cody-littley in #813
- Style: improve api clients comments by @samlaf in #780
- Added README files in v2 proto directories. by @cody-littley in #812
- Update v2 disperser protos by @ian-shim in #816
- Add
.vscode
in gitignore by @ian-shim in #825 - [payments] meterer core logic by @hopeyen in #790
- Add traffic generator 2 docker file. by @cody-littley in #817
- Update docker-publish-release to not trigger on pull requests by @pschork in #822
- Core/v2 by @mooselumph in #824
- ci: add eigenda-client testnet-integration test to integration-tests.yml workflow by @samlaf in #820
- Remove shadow write from disperser by @ian-shim in #830
- refactor: make disperser client reuse same grpc connection by @samlaf in #826
- refactor: api error functions naming convention by @samlaf in #831
- Replace
math/rand
withcrypto/rand
for generating challenge by @ian-shim in #829 - Update api error convention by @ian-shim in #834
- Refactor Transactor into Reader/Writer by @mooselumph in #832
- [payments] placeholder paid blob dispersal api by @hopeyen in #791
- Protobufs for the relay by @cody-littley in #803
- [v2] Blob Metadata Store by @ian-shim in #818
- [v2] Blob Header Authentication by @ian-shim in #836
- Add stake percentage + operator address to ejection reporting (dataapi + cli) by @pschork in #815
- Fixes for traffic generator docker file by @cody-littley in #840
- feat!: eigenda client confirmation depth by @samlaf in #821
- Fix pointer issue by @mooselumph in #839
- Normalize allowlist lookups to use lowercase non-checksummed authenticated address by @pschork in #838
- [v2] s3 Blob Store by @ian-shim in #841
- [payments] disperser server metering by @hopeyen in #792
- [v2]
BlobMetadataStore
: Blob Certificate Operations by @ian-shim in #844 - TTL + table store by @cody-littley in #811
- S3 relay interface by @cody-littley in #833
- feat: eigenda client returns 503 errors (for failover purpose) by @samlaf in #828
- Revert "S3 relay interface" by @cody-littley in #850
- Use serialized bytes for commitments proto by @ian-shim in #851
- fix(disperser-client): RetrieveBlob grpc max size regression bug by @samlaf in #849
- Unexport payment signer by @ian-shim in #847
- quorum threshold update by @0x0aa0 in #729
- onchain socket by @0x0aa0 in #804
- [v2] Implement
DisperseBlob
method by @ian-shim in #842 - Log semver scan operator id as hex by @pschork in #802
- fix: make integration test use two quorums by @ian-shim in #855
- Add per quorum semever stake percentage metrics by @pschork in #856
- Fix docker build args and restore semver info on operator node by @pschork in #857
- fix(api): failover error bugs by @samlaf in #858
New Contributors
- @jingchanglu made their first contribution in #767
- @cosmoknightt made their first contribution in #769
Full Changelog: v0.8.4...v0.8.5
[Holesky] v0.8.5-rc.0
Summary
This pre-release is optional and contains minor fixes, updates to logging, and devops improvements.
- DataApi: Add endpoint on dataapi for ejection events
- EigenDAClient
- Simplify confirmation depth and finalization logics for putting a blob
- Refine error handling logics and error message if dispersal went wrong
- Reuse a single underlying connection for all grpc methods
- Bug fix: Global rate limit mistrigger
What's Changed
- Fix printf lint warning by @estensen in #742
- bug: fix slice init length by @jingchanglu in #767
- Operator network scanning tool by @pschork in #705
- readme: Delete obsolete subdirectories by @cosmoknightt in #769
- style: remove redundant logs by returning msg in errors by @samlaf in #776
- Fix grpc size comments by @jianoaix in #751
- [blobstore] Filter out expired blobs from query by @ian-shim in #692
- Define separate fallback RPC argument to work around URL escaping issues by @pschork in #777
- Reader fragment by @cody-littley in #749
- Fix docker bake tagging by @pschork in #782
- 771 read traffic generator by @cody-littley in #666
- Remove minibatcher by @ian-shim in #783
- [v2] Disperser and Node service protobuf by @ian-shim in #784
- chore: fix two small typos by @cosmoknightt in #795
- fix: ExpresseionValues -> ExpressionValues typo by @hopeyen in #796
- [payments] numeric incremental updates, query with ordering and lim by @hopeyen in #788
- [v2] Node v2 gRPC Entrypoint by @ian-shim in #797
- adds subgraph indexing of ejection manager events by @pschork in #798
- Validate protos workflow by @cody-littley in #799
- Table store by @cody-littley in #774
- Add observability for operator stake distributions by @jianoaix in #808
- Perf: cache the operator state by @jianoaix in #809
- Add feature that can disable traffic generator metrics. by @cody-littley in #807
- Adds operator ejections dataapi endpoint by @pschork in #810
- [payments] meterer structs and helpers by @hopeyen in #789
- [v2] Disperser API Server Entrypoint by @ian-shim in #785
- Break out chainio and crypto by @mooselumph in #805
- Fix race condition when rebuilding proto files. by @cody-littley in #813
- Style: improve api clients comments by @samlaf in #780
- Added README files in v2 proto directories. by @cody-littley in #812
- Update v2 disperser protos by @ian-shim in #816
- Add
.vscode
in gitignore by @ian-shim in #825 - [payments] meterer core logic by @hopeyen in #790
- Add traffic generator 2 docker file. by @cody-littley in #817
- Update docker-publish-release to not trigger on pull requests by @pschork in #822
- Core/v2 by @mooselumph in #824
- ci: add eigenda-client testnet-integration test to integration-tests.yml workflow by @samlaf in #820
- Remove shadow write from disperser by @ian-shim in #830
- refactor: make disperser client reuse same grpc connection by @samlaf in #826
- refactor: api error functions naming convention by @samlaf in #831
- Replace
math/rand
withcrypto/rand
for generating challenge by @ian-shim in #829 - Update api error convention by @ian-shim in #834
- Refactor Transactor into Reader/Writer by @mooselumph in #832
- [payments] placeholder paid blob dispersal api by @hopeyen in #791
- Protobufs for the relay by @cody-littley in #803
- [v2] Blob Metadata Store by @ian-shim in #818
- [v2] Blob Header Authentication by @ian-shim in #836
- Add stake percentage + operator address to ejection reporting (dataapi + cli) by @pschork in #815
- Fixes for traffic generator docker file by @cody-littley in #840
- feat!: eigenda client confirmation depth by @samlaf in #821
- Fix pointer issue by @mooselumph in #839
- Normalize allowlist lookups to use lowercase non-checksummed authenticated address by @pschork in #838
- [v2] s3 Blob Store by @ian-shim in #841
- [payments] disperser server metering by @hopeyen in #792
- [v2]
BlobMetadataStore
: Blob Certificate Operations by @ian-shim in #844 - TTL + table store by @cody-littley in #811
- S3 relay interface by @cody-littley in #833
- feat: eigenda client returns 503 errors (for failover purpose) by @samlaf in #828
- Revert "S3 relay interface" by @cody-littley in #850
- Use serialized bytes for commitments proto by @ian-shim in #851
- fix(disperser-client): RetrieveBlob grpc max size regression bug by @samlaf in #849
- Unexport payment signer by @ian-shim in #847
- quorum threshold update by @0x0aa0 in #729
- onchain socket by @0x0aa0 in #804
- [v2] Implement
DisperseBlob
method by @ian-shim in #842 - Log semver scan operator id as hex by @pschork in #802
- fix: make integration test use two quorums by @ian-shim in #855
- Add per quorum semever stake percentage metrics by @pschork in #856
- Fix docker build args and restore semver info on operator node by @pschork in #857
- fix(api): failover error bugs by @samlaf in #858
New Contributors
- @jingchanglu made their first contribution in #767
- @cosmoknightt made their first contribution in #769
- @hopeyen made their first contribution in #796
Full Changelog: v0.8.4...v0.8.5-rc.0
v0.8.4
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
- chore: refactor to single multistage dockerfile with bake file by @samlaf in #754
- feat: dockerfile for deploying contracts by @samlaf in #755
- Lightnode docker by @cody-littley in #726
- Bump
actions/upload-artifact
action by @ian-shim in #758 - [ci] Generate unit test coverage on PR by @ian-shim in #759
- Add registry and repository variables to docker bake for devops builds by @pschork in #760
- Fix docker-bake issues with devops builds by @pschork in #761
- doc: remove duplicate word by @xiaobei0715 in #753
- DAS protobuffs by @cody-littley in #710
- chore: cleaner eigenda_client logs by @samlaf in #764
- Make the latency accounting more accurate for encoder by @jianoaix in #766
- Lightnode kv store by @cody-littley in #721
- Add headers for routing on encoding streamer by @dmanc in #765
- 'make protoc' now utilizes docker workflow by default. by @cody-littley in #748
- Reduce the operator latency metric cardinality by @jianoaix in #768
- Instrument the retrieval latency stages by @jianoaix in #771
- rm sig check by @bxue-l2 in #770
- Fix docker-publish-release docker bake by @pschork in #772
New Contributors
- @xiaobei0715 made their first contribution in #753
Full Changelog: v0.8.3...v0.8.4
[Holesky] v0.8.4-rc.0
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
- chore: refactor to single multistage dockerfile with bake file by @samlaf in #754
- feat: dockerfile for deploying contracts by @samlaf in #755
- Lightnode docker by @cody-littley in #726
- Bump
actions/upload-artifact
action by @ian-shim in #758 - [ci] Generate unit test coverage on PR by @ian-shim in #759
- Add registry and repository variables to docker bake for devops builds by @pschork in #760
- Fix docker-bake issues with devops builds by @pschork in #761
- doc: remove duplicate word by @xiaobei0715 in #753
- DAS protobuffs by @cody-littley in #710
- chore: cleaner eigenda_client logs by @samlaf in #764
- Make the latency accounting more accurate for encoder by @jianoaix in #766
- Lightnode kv store by @cody-littley in #721
- Add headers for routing on encoding streamer by @dmanc in #765
- 'make protoc' now utilizes docker workflow by default. by @cody-littley in #748
- Reduce the operator latency metric cardinality by @jianoaix in #768
- Instrument the retrieval latency stages by @jianoaix in #771
- rm sig check by @bxue-l2 in #770
New Contributors
- @xiaobei0715 made their first contribution in #753
Full Changelog: v0.8.3...v0.8.4-rc.0
v0.8.3
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 inBlobMetadataStore
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
- @Ocheretovich made their first contribution in #694
Full Changelog: v0.8.2...v0.8.3
[Holesky] v0.8.3-rc.0
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 inBlobMetadataStore
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
- @Ocheretovich made their first contribution in #694
Full Changelog: v0.8.2...v0.8.3-rc.0