v1.5.0 Multichain/MiddlewareV2/Hourglass
These are the combined release notes of multichain and hourglass.
v1.4.0 MultiChain/MiddlewareV2
The multichain/middlewareV2 release enables AVSs to launch their services and make verified Operator outputs available on any EVM chain, meeting their customers where they are. AVSs can specify custom operator weights to be transported to any destination chain. The release has 3 components:
- Core Contracts
- AVS Contracts
- Offchain Infrastructure
The below release notes cover AVS Contracts. For more information on the end to end protocol, see our docs, core contract docs, and ELIP-008.
Release Manager
Highlights
This multichain release only introduces new standards and contracts. As a result, there are no breaking changes or deprecations. All new contracts are in the middlewareV2 folder.
🚀 New Features – Highlight major new functionality
AVSRegistrar
: The primary interface for managing operator registration and deregistration within an AVS. It integrates with core EigenLayer contracts to ensure operators have valid keys and are properly registered in operator setsOperatorTableCalculator
: Responsible for calculating stake weights of operator. These stake weights are aggregated and transported using the Eigenlayer Multichain Protocol. In order to utilize the multichain protocol, an AVS MUST deploy anOperatorTableCalculator
and register it in theCrossChainRegistry
in EigenLayer core. See our core documentation for this process.
🔧 Improvements – Enhancements to existing features.
- The multichain protocol has protocol-ized several AVS-deployed contracts, enabling an simpler AVS developer experience. These include:
KeyRegistrar
: Manages BLS and ECDSA signing keys. AVSs no longer have to deploy aBLSAPKRegistry
CertificateVerifier
: Handles signature verification for BLS and ECDSA keys. AVSs no longer have to deploy aBLSSignatureChecker
- Offchain Multichain Transport: AVSs no longer have to maintain avs-sync to keep operator stakes fresh
v1.5.0 Hourglass
The Hourglass release consists of a framework that supports the creation of task-based AVSs. The task-based AVSs are enabled through a TaskMailbox
core contract deployed to all chains that support a CertificateVerifier
. Additionally AVSs deploy their TaskAVSRegistrar
. The release has 3 components:
- Core Contracts
- AVS Contracts
- Offchain Infrastructure
The below release notes cover AVS Contracts. For more information on the end to end protocol, see our docs and ELIP-010.
Release Manager
Highlights
This hourglass release only introduces new contracts. As a result, there are no breaking changes or deprecations.
🚀 New Features
TaskAVSRegistrar
: An instanced (per-AVS) eigenlayer middleware contract on L1 that is responsible for handling operator registration for specific operator sets of your AVS and providing the offchain components with socket endpoints for the Aggregator and Executor operators. It also keeps track of which operator sets are the aggregator and executors. It works by default, but can be extended to include additional onchain logic for your AVS.
What's Changed
- fix: bls sig operator state retriever sorting by @RonTuretzky in #480
- chore: update core submodule by @ypatil12 in #497
- test: table calc by @ypatil12 in #499
- test: ecdsa stake reg/bls sig checker utils by @ypatil12 in #500
- release: middlewareV2/multichain by @ypatil12 in #496
- fix: broken link by @ypatil12 in #501
- chore: update
AVSRegistrar
for newKeyRegistrar
interface by @ypatil12 in #502 - chore: update submodule by @ypatil12 in #503
- feat(redistribution): update slashers by @0xClandestine in #492
- docs: format table in
OperatorTableCalculator
by @ypatil12 in #505 - docs: add new table calculators by @ypatil12 in #508
- fix(H-1): correct array indexing for BN254TableCalculatorBase._calculateOperatorTable by @nadir-akhtar in #504
- feat: hourglass by @0xrajath in #515
- fix: multichain pt1 audit fixes by @ypatil12 in #520
- fix: make storage variable internal due to existing getter by @nadir-akhtar in #524
- fix(I-07): add onlyInitializing modifier to initializing function by @nadir-akhtar in #525
- feat: tablecalc modules by @eigenmikem in #514
- fix(I-05): remove unused import by @ypatil12 in #529
- fix: multichain pt2 audit fixes by @ypatil12 in #528
- chore: bump core submodule by @ypatil12 in #531
- feat: add UAM to
SocketRegistry
by @ypatil12 in #532 - fix: add allowlist to TaskAVSRegistarBase by @nadir-akhtar in #533
- chore: update core submodule + ReadME by @ypatil12 in #534
- fix: task replay directed at same operator set by @0xrajath in #535
- chore: update core bindings by @0xrajath in #536
- chore: combined release notes; rev submodule by @ypatil12 in #538
Full Changelog: v1.3.1...v1.5.0