v2.6.0 - Release Notes
- Commit:
139a06b0f3e7beec023c6bed05850e4256d4a799 - Prior Release:
v2.5.1 - Prior Commit:
304709bf9f46ac35b82d493b65b50361fef5d519
This is an optional release for validators.
Validators
Major Changes
feat: protect from rogue dispersers - simplified by @crypt0fairy in #2423feat(validator): Add flag to enforce single blob batches by @cody-littley in #2438feat(validator): Remove option to skip authentication by @cody-littley in #2355feat(node): rate limit store chunk requests by @crypt0fairy in #2430feat: add on-demand rate limiter by @crypt0fairy in #2445
Minor Changes
feat: Stub out simplified chunk retrieval request by @cody-littley in #2440feat(payments): Don't allow validators to skip payment validation by @cody-littley in #2432feat(metrics): Implement validator ID metric name remappings by @cody-littley in #2411
Disperser
Major Changes
feat: batch creation threading by @cody-littley in #2404feat: Anchor dispersal requests by @cody-littley in #2402feat(disperser-registry): CreateDisperserRegistryinterface and initial implementation by @cody-littley in #2369feat(clients): Implement client-side disperser multiplexing by @cody-littley in #2347feat: signing rate controller grpc implementation by @cody-littley in #2357feat: wire up signing rate tracker by @cody-littley in #2346feat: signing rate controller grpcs by @cody-littley in #2327feat: storage mechanism for new signing rate data by @cody-littley in #2007feat: periodically flush signing rate data to disk, load at startup by @cody-littley in #2358feat: api server signing rate by @cody-littley in #2371
Minor Changes
fix: batch creation threading bugfix by @cody-littley in #2418fix(batcher): Handle nil dereference in signature aggregation due to subgraph failure by @pschork in #2428feat(disperser): adds dispersal client request timestamp drift metrics by @pschork in #2353feat(metrics): Add per account blob status reporting by @cody-littley in #2388feat(metrics): Do more account name remapping by @cody-littley in #2408feat(metrics): Implement account ID -> account name metric remapping by @cody-littley in #2391chore(payments): Remove legacy payment code from disperser by @cody-littley in #2417chore(payments): Remove legacy accountant by @cody-littley in #2321fix(payments): Make global meter to use billable symbols by @cody-littley in #2316fix: priority queue by @cody-littley in #2446feat: a priority queue that doesn't use gods by @cody-littley in #2437chore: renamed dispatcher to controller by @cody-littley in #2387chore: flatten controller config by @cody-littley in #2416fix: controller config by @cody-littley in #2447feat: document controller config by @cody-littley in #2429chore: clean up handle batch by @cody-littley in #2328chore: Flag to disable GetBlobCommitment() by @crypt0fairy in #2340
Data API
Minor Changes
Contracts
Major Changes
feat(contracts): Add V4 cert to CertVerifier by @iquidus in #2378feat(contracts): MakeEigenDAEjectionsManagercontract upgradable via ERC1967 ProxyAdmin by @ethenotethan in #2419feat(contracts): Add offchain derivation version to cert verifier by @iquidus in #2372feat(contracts): Add sproc functions (getActiveAndFuture) toEigenDADirectoryby @ethenotethan in #2399feat(contracts): Update Config Registry to use type specific activation keys by @ethenotethan in #2338
Minor Changes
feat(contracts): Remove ERC20 Staked Deposits fromEigenDAEjectionsManagerby @ethenotethan in #2420fix(contracts): DA Directory initialize bug and foundry tests by @ethenotethan in #2403fix(contracts): accounting bug inEigenDAEjectionsManagerby @ethenotethan in #2380fix(contracts): removeCERT_VERIFIERentry fromEigenDADirectoryby @ethenotethan in #2281fix(contracts): cert verifier deploy scripts update by @ethenotethan in #2277fix: prevent cert verifier from running out of gas by @BowenXue in #2413
Integrations
Major Changes
This release introduces the new secure upgrade feature as described in the spec. With this mechanism, off-chain code changes in eigenda-proxy can now be executed in a hardfork-style manner. Logic prior to the activation block remains backward compatible, while only the new logic is executed after the activation time.
As part of the secure upgrade mechanism, the recency window is now hardcoded in eigenda-proxy, and can be updated via secure upgrades going forward. The current configured value is 48 hours. Please also see hokulea release note.
This release also includes useful improvements that embeds SRS into the binary and allows retry configuration of eth client.
feat(proxy): Arb CustomDA Recency Check by @ethenotethan in #2266feat(proxy): Add offchain derivation logic to get path by @iquidus in #2414feat(proxy): AddGetMaxMessageSizemethod to ARB CustomDA Server by @ethenotethan in #2406feat(proxy): embed srs points into built binaries by @samlaf in #2385feat(proxy): Add JWT authn to ARB CustomDA Server by @ethenotethan in #2315feat(rust): validate correct cert-verifier is used via router proof-of-storage by @samlaf in #2398feat(rust): managed subshell proxy poc by @samlaf in #2384feat(rust): support extracting router storage by @samlaf in #2349feat(clients): Implement simple reputation system by @cody-littley in #2348feat(clients): UseBlobtype inDisperserClientby @cody-littley in #2434feat(clients): Improve threading model for closing grpc client pool by @cody-littley in #2363feat(clients): Simplify DisperserClient config to just useNetworkAddressinstead ofhostnameandportby @cody-littley in #2368
Minor Changes
chore: add new flag for numRetry, and have BuildEthClient take gethCfg by @BowenXue in #2392fix: refactor parser and gas meterer, and print v4 cert by @BowenXue in #2443fix: allow proxy to start with v4 cert by @BowenXue in #2441feat(proxy): add v4 cert to memstore by @iquidus in #2410fix(proxy): update GetSupportedHeaderBytes return 1D byte array by @ethenotethan in #2407feat(proxy-arb): Add invalid cert handling toggle by @ethenotethan in #2326fix(proxy): Add check to ensure relay retriever is not only retriever by @iquidus in #2341fix(proxy): Update errors to return 418 by @iquidus in #2312feat(rust-eiger): RemoveCERT_VERIFIERDirectory Key Usage by @ethenotethan in #2335fix(rust): fix proxy client not handling error bug by @samlaf in #2354fix(rust): decode_payload checks that padding is 0s by @samlaf in #2332chore(rust): cleanup extractor interfaces and add docs by @samlaf in #2405chore(rust)!: fix verify_and_extract_payload interface + docs by @samlaf in #2370chore(rust): remove "native" feature in eigenda-ethereum crate by @samlaf in #2339fix: bug with connection pool size for disperser client by @cody-littley in #2367chore(disperser-client): Remove option to rely on disperser for commitment generation by @cody-littley in #2320chore(clients): PutDisperseralClientinto dispersal package by @cody-littley in #2333chore(clients): Remove client examples by @cody-littley in #2344feat: ImplementSafeDialto avoid leaking RPC secrets in logs by @cody-littley in #2329feat: Implement weighted selector utility by @cody-littley in #2383feat(discovery-tool): better json printout of directory addresses by @samlaf in #2362chore(ci): create draft gh release with proxy binaries by @samlaf in #2379
Other
Major Changes
feat: config aliases by @cody-littley in #2356feat: secret config by @cody-littley in #2365feat: handle slices of secrets in config by @cody-littley in #2377feat: efficient range query by @cody-littley in #2317
Minor Changes
feat: config improvements by @cody-littley in #2352fix: config slices of primitive objects by @cody-littley in #2390feat: qol improvements by @clandestine-eth in #2323fix: subgraph return an error instead of just logging it by @cody-littley in #2394chore: Remove Mock Config Retriever by @ethenotethan in #2376chore: Remove unneeded SRS file by @cody-littley in #2436chore: delete rogue printfs by @cody-littley in #2382chore: Allow release branches off release branches by @cody-littley in #2395chore: move audit location by @BowenXue in #2393chore: release notes generation by @cody-littley in #2043chore: disable proto linting by @cody-littley in #2319chore(core): remove unused delegation manager binding from god class reader by @ethenotethan in #2342chore(subgraph): templatize subgraph.yaml for goldsky build support by @pschork in #2337chore(inabox): adds inabox prepare target to subgraph build by @pschork in #2361fix: test flakes by @cody-littley in #2426fix: DecreaseReputationSelectiontest flakiness by @cody-littley in #2389fix(live-tests): Properly construct metadata for edge case tests by @cody-littley in #2334fix(live-tests): Get rid of remaining nil committer by @cody-littley in #2322test(clients): move v1 clients live tests holesky->sepolia by @samlaf in #2375test(rust): integration test works against inabox by @samlaf in #2359test(rust): remove unused arbitrary dependency by @samlaf in #2400test(rust): add first integration test by @samlaf in #2280test(bench): make benchmarkFrameGeneration loop only once by @samlaf in #2421bench(crypto): rerun crypto benchmarks by @samlaf in #2409docs: add payment system docs to SUMMARY.md by @Lulu-Zhou-EigenLabs in #2442docs: ejection and churner by @Lulu-Zhou-EigenLabs in #2435docs: Clarify MaxNumOperators upper bound in chunk assignment vs per-... by @Lulu-Zhou-EigenLabs in #2422docs: update spec to include upgrade procedure and eigenda blob derivation by @BowenXue in #2401fix(specs): MD Book build error by @ethenotethan in #2364feat(specs): Updated contracts overview by @ethenotethan in #2360