EigenDA Blazar (v0.9.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.
System Requirements for Validators
https://docs.eigenda.xyz/operator-guides/requirements/system-requirements
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
Breaking Changes
- Type
accountID
as Address instead of string by @ian-shim in #1335 - reservation period index by @hopeyen in #1350
- Fix how relay/validators compute hashes. by @cody-littley in #1351
- Adds domain to hashing functions. by @cody-littley in #1358
- Replay protection by @cody-littley in #1365
- fix: ondemand scheme by @hopeyen in #1386
- [Breaking Changes] Add signature replay protection for AuthenticatePaymentStateRequest by @yujiezhu0 in #1411
- refactor!: version contract types by @pakim249CAL in #1516
- feat!: LittDB multi-drive support by @cody-littley in #1564
- feat!: implement deterministic assignment by @mooselumph in #1587
Performance Improvements
- GPU accelerated encoder by @dmanc in #895
- Compress relay auth signature by @ian-shim in #1068
- Comapct relay chunks by @cody-littley in #1197
- Reduce relay memory usage by @cody-littley in #1293
- Cache verifier callers by @litt3 in #1331
- Improve perf of blob retrieval within bucket by @jianoaix in #1329
- Introduce feed cache by @jianoaix in #1355
- Make feed cache update async by @jianoaix in #1363
- Integrate feed cache with batch feed and operators signinginfo by @jianoaix in #1364
- Disable seek compaction by @dmanc in #1342
- Feed cache: Use circular queue for zero-alloc of memory by @jianoaix in #1384
- perf: add KV cache for lookup requests in data apis by @jianoaix in #1425
- perf: apply query limit to the feed fetch by @jianoaix in #1431
- perf: make dispersal feed based on responses not requests by @jianoaix in #1486
- perf: support batch liveness check of validators by @jianoaix in #1488
Features
- 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
- 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 timeout to download chunks from node by @ian-shim in #941
- 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
- Support blob and batch fetch APIs by @jianoaix in #966
- [payment] transactor ping payment vault contract by @hopeyen in #827
- Add metrics to v2 api server. by @cody-littley in #969
- V2 Blob Verification by @0x0aa0 in #781
- [v2] Offchain integrations with v2 contracts by @ian-shim in #960
- payment struct and names ReservationPeriod and Salt by @hopeyen in #965
- Pull out the operator handling logic that's shareable by @jianoaix in #981
- Payments storage packing by @0x0aa0 in #942
- [v2] Update blob header hasher by @ian-shim in #962
- payments - global reservation uses interval config by @hopeyen in #980
- update blob verifier by @0x0aa0 in #992
- reservation timestamp check by @hopeyen in #990
- Support operator APIs by @jianoaix in #987
- Node metrics by @cody-littley in #948
- Separate out client v2 package by @ian-shim in #986
- [v2] integrate with new payments contract by @hopeyen in #995
- Disperser Registry by @0x0aa0 in #1019
- Add
AlreadyExists
error from disperser by @ian-shim in #1026 - 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
- Fail v2 blobs for no attestations by @ian-shim in #1043
- symbols charged and payment metadata check by @hopeyen in #1034
- Add support for metrics APIs by @jianoaix in #1044
- Add support for blob certification and verification info lookup APIs by @jianoaix in #1056
- [v2] Retriever server by @ian-shim in #1048
- feat: add basic logging in disperser meterer by @hopeyen in #1069
- Enable relay authentication for GetChunks() requests in inabox. by @cody-littley in #1072
- Add support for operator responses APIs by @jianoaix in #1075
- Disperser auth by @cody-littley in #984
- start on-chain refresh by @hopeyen in #1083
- Enable disperser-v2 prometheus metrics registry by @pschork in #1079
- Add metrics to encoder v2 by @dmanc in #1080
- Add a new relay metric to more accurately describe cache behavior. by @cody-littley in #1092
- Add e2e latency metrics in controller by @ian-shim in #1095
- Add throughput metrics to controller by @dmanc in #1094
- Add support for fetch all operators' responses for a batch by @jianoaix in #1078
- Create a blob verification utility by @litt3 in #1066
- KMS client from AWS config by @pschork in #1103
- Add support for range query on dyanmo for blob feed by @jianoaix in #1102
- Traffic generator V2 by @dmanc in #1055
- add bls signer abstraction from eigensdk by @shrimalmadhur in #985
- Improve blob feed cursor key and add unit test by @jianoaix in #1113
- Add utility function to call verifyBlobV2 by @litt3 in #1107
- Add suppport for blob feed API at dataapi by @jianoaix in #1116
- Add attestation metrics by @dmanc in #1122
- add api key bls remote signer by @shrimalmadhur in #1128
- Add service verification to reachability check by @pschork in #1127
- Add support for range query for batches/attestations feed on dynamo by @jianoaix in #1129
- Add suppport for batch feed API at dataapi by @jianoaix in #1138
- Update node socket registration format by @ian-shim in #1132
- Reachability check against v2 dispersal port by @pschork in #1135
- Implement v2 client GET functionality by @litt3 in #972
- Adopt CertVerifier naming scheme by @litt3 in #1157
- Add support for batch operator addresses to IDs translation by @jianoaix in #1160
- Return blobkey in the blob feed response by @jianoaix in #1166
- Check blob key from disperser against actual key by @litt3 in #1109
- Refactor the operator quorum interval computing by @jianoaix in #1165
- Extract blob key computation logic into static function by @litt3 in #1179
- Create payload disperser by @litt3 in #1159
- Extract a payload retriever interface by @litt3 in #1187
- V2 Retrieval Isolation by @supriya-premkumar in #1181
- Update v2 blob statuses by @ian-shim in #1185
- CertVerifier updates by @0x0aa0 in #1200
- Adds isolated v2 reachability check to operator node by @pschork in #1152
- Added check in API server for commitment length by @cody-littley in #1189
- Operator signing computing by @jianoaix in #1206
- Wait for internal eth client to reach block num by @litt3 in #1204
- Load generator by @cody-littley in #1218
- feat: metrics on meterer usage by @hopeyen in #1212
- Add BlobAttestaionInfo data type and fetch API support by @jianoaix in #1214
- Support blob attestation info API by @jianoaix in #1227
- Implement validator payload retrieval by @litt3 in #1194
- Add v2 dynamodb collector by @dmanc in #1226
- More granular node
StoreChunks
latency metric by @ian-shim in #1240 - A round of misc improvements to dataapi by @jianoaix in #1242
- Only override private BLS key in test mode if TestPrivateBlsFlag is defined by @pschork in #1244
- Second round of misc improvements to dataapi by @jianoaix in #1245
- feat(contracts): Refactor dependency routing to ensure seamless usability from importer contract repos by @ethenotethan in #1163
- Blob feed iteration with dynamo pagination by @jianoaix in #1252
- Report hashing error from v1 batcher dispatcher by @ian-shim in #1247
- Reset cursors and deduplicate blobs in controller by @ian-shim in #1261
- Provide signer and nonsigner operator IDs in blob attestation-info API by @jianoaix in #1266
- Provide operator addresses for signers/nonsigners by @jianoaix in #1276
- Disable auto IP discovery if not all ports are configured by @ian-shim in #1275
- Make operator stake API return operator address by @jianoaix in #1287
- Add pprof to relay server by @dmanc in #1285
- Add more logging in relay by @dmanc in #1288
- Create payload->blob type system by @litt3 in #1120
- Node API: make chunk encoding explicit by @jianoaix in #1278
- Support dynamic cert verifier address by @litt3 in #1289
- Support two-way traversal in blob feed API by @jianoaix in #1286
- CertVerifier updates by @0x0aa0 in #1207
- Query cert verifier for required quorums by @litt3 in #1301
- Allow bytes from relay to be of 0 length by @litt3 in #1295
- Support both backward and forward iteration at blob store by @jianoaix in #1306
- Add environment variable to hold eth RPC urls. by @cody-littley in #1311
- Implement required quorums cache by @litt3 in #1317
- Use payload and blob structs by @litt3 in #1305
- Enable pprof for traffic generator by @cody-littley in #1319
- Support backward iteration for blob feed by @jianoaix in #1314
- Implement relay url provider by @litt3 in #1328
- Simplify payload disperser config and construction by @litt3 in #1343
- Simplify blazar client config and construction by @litt3 in #1345
- Check chunk length before deserialization by @ian-shim in #1340
- Reset dispatcher cursor when all encoded blobs are enumerated by @ian-shim in #1352
- Add leveldb metrics by @dmanc in #1313
- Implement cert verifier address provider by @litt3 in #1368
- feat: check blob key exist before payments by @hopeyen in #1370
- Operator batch feed support at blobstore by @jianoaix in #1378
- Support two-way traversal in batch feed API by @jianoaix in #1366
- feat(contracts): v0.1.0 release by @ethenotethan in #1387
- Add getter for relay registry address by @litt3 in #1393
- Add metrics to feed cache by @jianoaix in #1394
- Verifiable Contract Deployment Script by @pakim249CAL in #1396
- add trailing option to read g2 file by @bxue-l2 in #1401
- Add API for per-operator batch feed by @jianoaix in #1392
- feat: distributed retrieval operator socket by @hopeyen in #1403
- feat: Verifiable Deployment Calldata script by @pakim249CAL in #1415
- feat: deploy contract toml config by @pakim249CAL in #1427
- feat: support range query for per-account blobs at metadata store by @jianoaix in #1438
- feat: add API for per-account blob feed by @jianoaix in #1449
- feat: add metrics to payload disperser by @cody-littley in #1441
- feat: provider signers and nonsigners in batch api by @jianoaix in #1451
- feat: new traffic generator metrics/settings by @cody-littley in #1470
- feat: global batch timeout by @cody-littley in #1460
- feat: littDB by @cody-littley in #1280
- feat: Use SRS resource files, and remove unnecessary logic to fetch by @litt3 in #1473
- feat: network signing rate by @jianoaix in #1475
- feat: Add payload client usage examples by @litt3 in #1454
- feat: Check signing thresholds when polling blob status by @litt3 in #1479
- feat: support batch->blobs at metadata store by @jianoaix in #1481
- feat: Add socket column and csv output to quorumscan by @dmanc in #1501
- feat: littDB validator integration by @cody-littley in #1429
- feat: add constituent blobs to the batch by @jianoaix in #1499
- feat: create a calculator for eigenda requirements by @cody-littley in #1504
- feat: periodically return attestation with updated signatures by @litt3 in #1497
- feat: configuration for the validator's littDB cache size by @cody-littley in #1519
- feat: Add debug messages to better understand equivalence check failures by @litt3 in #1531
- feat: validator/disperser clock synchrony by @hopeyen in #1509
- feat: better distributed retrieval by @cody-littley in #1485
- feat: batch metrics by @cody-littley in #1525
- feat: LittDB caching by @cody-littley in #1526
- feat: calculator improvements by @cody-littley in #1546
- feat: dynamic validator cache size by @cody-littley in #1553
- feat: controller immdeiately submits new attestation if critical threshold is crossed by @cody-littley in #1550
- feat: use siphash for littDB sharding by @cody-littley in #1506
- feat: auto-calculate validator cache size by @cody-littley in #1557
- 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
- Remove duplicate flags from relay by @ian-shim in #944
- fix: skip socket registry in contract bindings by @hopeyen in #951
- fix: no local flags for skipping socket registry, only warn by @hopeyen in #964
- Update
RelayKey
type touint32
by @ian-shim in #963 - Revert changes to churner metrics. by @cody-littley in #970
- [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
- [node] Don't store certs in store v2 by @ian-shim in #977
- fix: cumulative payment dynamo db unit conversion by @hopeyen in #979
- fix: V2 merkle check by @0x0aa0 in #998
- Use hex representation of operator ID in dispatcher logs by @dmanc in #1002
- 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
- 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
- fix: global symbols per period and interval by @hopeyen in #1033
- Refactor the metrics computing at dataapi by @jianoaix in #1039
- Handle signature aggregation failure in dispatcher by @ian-shim in #1045
- fix: v2 integration test flakiness by @ian-shim in #1041
- [v2] eth address as account id by @hopeyen in #1053
- Add missing objectives to SummaryVec in dispatcher by @dmanc in #1067
- fix: payment metadata invalid if both payment fields empty by @hopeyen in #1073
- dispersal dynamo db payment parsing fix by @hopeyen in #1074
- Fix: add blobkey in blob response by @jianoaix in #1087
- Make choosing relay IDs thread safe. by @cody-littley in #1091
- Gracefully shut down relay GRPC server. by @cody-littley in #1099
- [v2] fix: Ignore chunks outside operator quorums by @ian-shim in #1123
- Wrap errors in relay by @dmanc in #1130
- Fallback ip by @cody-littley in #1147
- Rename v2 structs by @ian-shim in #1136
- Refactor the nonsigner signing rate computing by @jianoaix in #1150
- Check type assertion for dynamo types by @ian-shim in #1146
- fix(clients/v2): Update blob verifier to not reference client interface via pointer by @ethenotethan in #1153
- Downgrade error logs by @ian-shim in #1151
- Add better error reporting for relay rate limits by @cody-littley in #1156
- [ejector] Don't create txn when there's no one to eject by @ian-shim in #1164
- fix blobs/batches path by @jianoaix in #1171
- fix(node): corev2 dup import with diff alias by @hopeyen in #1169
- Fix how chunk size is computed for throttling. by @cody-littley in #1158
- Disperser api audit by @jianoaix in #1170
- Allow relay protos to be larger. by @cody-littley in #1174
- fix: Add salt to blob header conversion util by @litt3 in #1177
- Fix CORs support in dataAPI by @pschork in #1180
- Fix relay cache sizes. by @cody-littley in #1182
- swap g2 A0, A1 for X and Y by @bxue-l2 in #1184
- fix(api/clients): Update v1 client to take in eigen-sdk logger by @ethenotethan in #1183
- Refactor the quorum batches computing by @jianoaix in #1191
- Make the signer constructor return an error if it fails by @litt3 in #1190
- Ignore socket parsing error from dispatcher by @ian-shim in #1198
- Disable auth cache by @cody-littley in #1195
- Disable v1 blobstore dynamo collector in v2 by @pschork in #1213
- Remove on chain cert verification from relay payload retriever by @litt3 in #1205
- Robustness fix for relay by @jianoaix in #1220
- Don't create V2 server instance in v1-only runtime mode by @pschork in #1222
- Fix max proto size for retrieval client by @cody-littley in #1231
- Handle unsorted quorum numbers by @ian-shim in #1234
- Encoder API robustness audit/fix by @jianoaix in #1236
- Do not panic when a quorum has zero stake. by @cody-littley in #1233
- Remove unused
NumConnectionsToNodesFlag
by @ian-shim in #1239 - Refactor the dataapi server v2 file into modular files by @jianoaix in #1255
- Onchain payment state refresh robustness fix by @ian-shim in #1250
- fix(api/clients/v2): Add
BlobStatus_GATHERING_SIGNATURES
to retry loop by @ethenotethan in #1264 - Add context to GetCurrentBlockNumber() by @dmanc in #1268
- Fix overflow on node block stale measure & store duration blocks override values when test-mode is enabled by @pschork in #1270
- Handle edge case with negative request size by @cody-littley in #1272
- refactor: api rm Salt, reservationPeriod->timestamp by @hopeyen in #1254
- Node api audit by @jianoaix in #1186
- fix: accountBlob reservation no flaky by @hopeyen in #1294
- Check that disperser uses correct blob length by @litt3 in #1290
- Update contract addresses, and fix disabled tests by @litt3 in #1310
- Recover state at controller initialization by @ian-shim in #1312
- fix: addOnDemandPayment after validatePayment by @hopeyen in #1320
- fix: strict exclusive end timestamp by @hopeyen in #1321
- fix: addition for bigInt by @hopeyen in #1322
- Do not panic if the wrong number of chunks are returned. by @cody-littley in #1325
- avoid unnecessary casting by @hopeyen in #1327
- fix: Use Protobuf Getters in Hasher by @ian-shim in #1339
- Make sure no operator can reply to same batch multiple times by @ian-shim in #1356
- Calculate Charge at the payment by @yujiezhu0 in #1346
- Make sure each relay
GetChunks
request is either by index or by range by @ian-shim in #1338 - Check multiplication overflow in
ValidateEncodingParams
by @ian-shim in #1341 - fix: log the file path upon error in nodeplugin by @jianoaix in #1379
- refactor: better check for existing payments by @hopeyen in #1377
- fix: use consistent query params across pages by @jianoaix in #1375
- refactor: use metadata store to check for blob existence by @hopeyen in #1380
- refactor: dispersal client 1 request at a time by @hopeyen in #1389
- Fix per-operator api's missing operator_id param by @jianoaix in #1410
- Protect against accidental nil dereference in EncodeBlob(). by @cody-littley in #1404
- Don't block forever in EncodeBlob() if the context is cancelled. by @cody-littley in #1405
- Fix eda2-22 by @cody-littley in #1406
- Properly round up blob size to next power of 2 when checking length by @cody-littley in #1407
- enable sync writes for levelDB by @cody-littley in #1413
- Fix deadlock in the encoder. by @cody-littley in #1418
- Remove failed blobs from blobset in dispatcher by @ian-shim in #1402
- Refactor the data APIs by @jianoaix in #1417
- fix: separate the interference of Dispersal Response to Request index by @jianoaix in #1423
- refactor: more precise log for dynamo conditional put by @hopeyen in #1424
- fix: update retriever address for preprod by @cody-littley in #1430
- Enhance the metrics summary by @jianoaix in #1398
- fix: update foundry version to unbreak codeql by @jianoaix in #1447
- fix: add per-account api path by @jianoaix in #1450
- fix: testnet contract address by @cody-littley in #1455
- fix: set the right cache control ttl for v2 APIs by @jianoaix in #1463
- fix: Make local copy of loop variable by @litt3 in #1465
- fix: test metrics by @cody-littley in #1469
- fix: controller state recovery - consider all pending blobs by @ian-shim in #1466
- fix: store failed dispersal response by @jianoaix in #1476
- fix: a nil pointer bug with test metrics by @cody-littley in #1474
- refactor: cert verifier v2 error handling by @pakim249CAL in #1491
- fix: littDB metrics by @cody-littley in #1503
- fix: change implementation of unsafe string. by @cody-littley in #1507
- refactor: move data api types into its own file by @jianoaix in #1510
- fix: reuse random number generator in load generator by @cody-littley in #1508
- refactor: separate v1 v2 cert contracts by @pakim249CAL in #1492
- refactor: unnecessary cert checks by @pakim249CAL in #1493
- fix: use time series to derive avg throughput and total bytes by @jianoaix in #1517
- refactor: decouple api types from internal types by @jianoaix in #1513
- refactor: node version code by @jianoaix in #1521
- fix: Quorum threshold checking by @litt3 in #1530
- fix: audit finding 3 by @cody-littley in #1535
- fix: validator client metrics by @cody-littley in #1547
- fix: default validator cache size by @cody-littley in #1548
- fix: auditor finding 5 by @cody-littley in #1543
- fix: auditor finding 6 by @cody-littley in #1545
- fix: auditor finding 7 by @cody-littley in #1544
- fix: properly call .End() on validator client probe by @cody-littley in #1551
- fix: Use small default cache sizes by @dmanc in #1555
- fix: reduce controller health check info noise by @yujiezhu0 in #1556
- fix: littdb read metrics by @cody-littley in #1562
- fix: Update node handling of new dataapi liveness check format for v2 by @dmanc in #1561
- refactor: ntp init logs but not panic by @hopeyen in #1568
- 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 #1618
Misc
- Add controller to Dockerfile by @yujiezhu0 in #952
- Remove the unnecessary module by @jianoaix in #956
- Add controller to docker bake by @yujiezhu0 in #959
- Automatically generate protobuf documentation by @cody-littley in #946
- Add relay to docker build by @pschork in #957
- [ci] Disable graph indexer integration test by @ian-shim in #978
- Write TestRandom util by @litt3 in #976
- [v2] Inabox test by @ian-shim in #958
- fix: typos in documentation files by @leopardracer in #989
- Update proto docs by @ian-shim in #993
- Update docker-bake.hcl by @yujiezhu0 in #996
- chore: change from pk to random bytes by @shrimalmadhur in #1001
- [v2] inabox test retrieval from DA nodes by @ian-shim in #988
- Create codeQL-scanning.yaml by @anupsv in #997
- 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
- 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
- Improvements to the test random library. by @cody-littley in #1029
- Regenerate bindings by @cody-littley in #1030
- Update dependabot.yml by @anupsv in #1027
- [v2] payments inabox by @hopeyen in #991
- Create util to verify KZG commitment by generation and comparison by @litt3 in #1042
- Simplify commitment generation, and choose better name for util file by @litt3 in #1063
- Dataapi v2 swagger minimal refactor by @pschork in #1065
- Ignore .DS_Store files, which are generated by the OSX Finder app. by @cody-littley in #1070
- Update codeQL-scanning.yaml by @anupsv in #1020
- Simplify docker build by @cody-littley in #1071
- Update codeQL-scanning.yaml by @anupsv in #1028
- Update and rename codeQL-scanning.yaml to codeql-scanning.yaml by @anupsv in #1081
- Onchain verification v2 inabox test by @ian-shim in #1077
- Don't log relay config. by @cody-littley in #1085
- protobuf rename bin record -> period record by @hopeyen in #1084
- Inabox should produce logs in text format by @cody-littley in #1090
- fix: inabox flaky test by @ian-shim in #1086
- Disperser auth innabox by @cody-littley in #1052
- doc: remove duplicate word by @kilavvy in #1089
- Fix v2 doc collisions with v1. Make protoc multithreaded for doc generation. by @cody-littley in #1096
- Better printing during inabox failure mode by @cody-littley in #1101
- Refactor the unit test of dataapi serverv2 by @jianoaix in #1106
- Add trivial PR warning to pull request template by @pschork in #1108
- chore: bump eigensdk to dev branch by @shrimalmadhur in #1114
- Remove NK bot reputation farming doc fix warning by @pschork in #1115
- Added missing v2 protobuf documentation. by @cody-littley in #1082
- V2 contract testing by @0x0aa0 in #1032
- refactor: protobuf payment header in v2 and salt by @hopeyen in #1126
- update middleware commit by @0x0aa0 in #1134
- Use upload artifact v4 by @cody-littley in #1141
- Update unit-tests.yml by @anupsv in #1144
- refactor: required quorum number contract read by @hopeyen in #1148
- Rename existing client to PayloadRetriever by @litt3 in #1155
- onchain renaming by @0x0aa0 in #1154
- Update download-artifact version by @ian-shim in #1168
- Quorum operator stake report cli by @pschork in #1162
- Functional tests by @cody-littley in #1167
- Rename "node" to "validator" for v2 protobufs. by @cody-littley in #1125
- Upgrade icicle library to v3.4.0 by @dmanc in #1172
- Update v2 swagger by @pschork in #1176
- docs: proto on paymentHeader by @hopeyen in #1178
- Misc documentation fix by @jianoaix in #1139
- chore(api/clients/v2): Add build function for
PayloadDisperser
by @ethenotethan in #1188 - chore(api/clients/v2): Update payload disperser build function for optional prover usage by @ethenotethan in #1201
- Moar tests by @cody-littley in #1193
- chore: better logs in txn_manager by @samlaf in #1202
- Fix swagger doc gen to resolve v2.BlobHeader by @pschork in #1199
- docs: add minimum symbols to proto api explanation by @hopeyen in #1211
- Fix CI test failure by @jianoaix in #1216
- Additional correctness tests by @cody-littley in #1208
- docs: quorum number requirement for payment method by @hopeyen in #1196
- Improve test orginazation by @cody-littley in #1219
- Enable onchain verification in correctness tests. by @cody-littley in #1221
- Fix git actions by @anupsv in #1210
- Use payload clients in preprod tests by @litt3 in #1232
- chore(api/clients/v2): Reference prover via interface vs raw struct by @ethenotethan in #1215
- chore(contracts): Add binding check by @ethenotethan in #1217
- chore: attempt to fix test-contracts ci by @hopeyen in #1256
- Test improvements by @cody-littley in #1251
- CI: run test-contracts when a new commit pushed to the PR by @jianoaix in #1259
- chore(contracts): v0.0.1-rc-2 release + package README by @ethenotethan in #1258
- Update codeql-scanning.yaml by @anupsv in #1267
- Update codeql-scanning.yaml by @anupsv in #1277
- Load generator docker by @cody-littley in #1260
- Fix relay build by @dmanc in #1296
- Update codeql-scanning.yaml by @anupsv in #1279
- docs: refactor docs/spec to use mdbook by @samlaf in #1161
- Various small tweaks to the load generator. by @cody-littley in #1316
- Add additional edge case correctness tests by @litt3 in #1318
- Disable client tests against holesky by @ian-shim in #1330
- Fix flaky encoded payload test by @litt3 in #1333
- refactor: use block number for all payment vault param calls by @hopeyen in #1323
- test: make reservation test less flaky (due to time) by @hopeyen in #1243
- Update codeql-scanning.yaml by @anupsv in #1315
- Enable correctness tests on testnet by @cody-littley in #1353
- chore: move autogenerated api protobuf mdfiles to mdbook by @samlaf in #1348
- chore: address general comments by @hopeyen in #1324
- docs(proto-v1): add explanation as to how the request_id is computed by @samlaf in #1360
- docs(mdbook): add v2 integration spec to mdbook by @samlaf in #1354
- ci(docker-publish): fix workflow by updating cache action v2->v4 by @samlaf in #1362
- CI: disable test-contracts binding diff by @jianoaix in #1376
- CertVerifier Deployer by @0x0aa0 in #1302
- assignment tests by @hopeyen in #1385
- docs: Add core client readme by @litt3 in #1388
- Reenable client tests on holesky by @ian-shim in #1369
- docs(mdbook): add basic documentation for rollup stacks by @samlaf in #1383
- docs: add documentation for disperser v2 grpc api and related functions/structs by @samlaf in #1104
- CI: upgrade test-contracts ubuntu to 24.04 by @jianoaix in #1399
- chore: update eigenlayer-middleware commit by @hopeyen in #1416
- ci: Add job to check if PR title is using conventional commits by @dmanc in #1419
- chore: Update dependabot.yml for dockerfiles by @anupsv in #1297
- chore: updating subgraphs deps by @anupsv in #1412
- doc: document deployment procedure steps by @pakim249CAL in #1408
- docs: add mdbook-mermaid plugin by @samlaf in #1382
- ci(contracts): enforce no-warnings + formatting by @samlaf in #1444
- docs(mdbook): cleanup integration section by @samlaf in #1439
- chore: Fix old 'blob certified' terminology to be 'blob complete' by @litt3 in #1462
- chore(proto): push protos to buf BSR registry by @samlaf in #1437
- chore: reformat batch code by @cody-littley in #1461
- docs: Add SRS docs by @litt3 in #1458
- fix: links to images in docs by @wesfloyd in #1480
- chore(accountant): more informative error msg by @samlaf in #1487
- chore: update forge-std by @pakim249CAL in #1482
- refactor: split verification utils library by @pakim249CAL in #1490
- refactor: cleanup not needed code by @jianoaix in #1500
- ci: only run buf-proto on protobuf file changes by @samlaf in #1502
- chore: move encoder protos under api dir by @samlaf in #1505
- chore: use a standard controller configuration by @cody-littley in #1514
- chore: Update codeql-scanning.yaml by @anupsv in #1520
- chore: add TODO for LittDB audit finding 4 by @cody-littley in #1542
- chore: add heartbeat monitoring for controller by @yujiezhu0 in #1192
- docs(mdbook): update secure integration RBN recency validation explanation by @samlaf in #1533
- chore: delete unused code by @cody-littley in #1558
- chore: Remove MockRollup and test usage in favor of
EigenDACertVerifierV1
by @ethenotethan in #1565 - 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
New Contributors
- @yujiezhu0 made their first contribution in #952
- @litt3 made their first contribution in #976
- @leopardracer made their first contribution in #989
- @kilavvy made their first contribution in #1089
- @supriya-premkumar made their first contribution in #1181
Full Changelog: v0.8.6...v0.9.0