|
| 1 | +# v1.5.0 Multichain/MiddlewareV2/Hourglass |
| 2 | + |
| 3 | +These are the combined release notes of multichain and hourglass. |
| 4 | + |
| 5 | +# v1.4.0 MultiChain/MiddlewareV2 |
| 6 | + |
| 7 | +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: |
| 8 | + |
| 9 | +1. Core Contracts |
| 10 | +2. AVS Contracts |
| 11 | +3. Offchain Infrastructure |
| 12 | + |
| 13 | +The below release notes cover AVS Contracts. For more information on the end to end protocol, see our [docs](../docs/middlewareV2/README.md), [core contract docs](https://github.com/Layr-Labs/eigenlayer-contracts/tree/main/docs/multichain), and [ELIP-008](https://github.com/eigenfoundation/ELIPs/blob/main/ELIPs/ELIP-008.md). |
| 14 | + |
| 15 | +## Release Manager |
| 16 | + |
| 17 | +@ypatil12 @eigenmikem |
| 18 | + |
| 19 | +## Highlights |
| 20 | + |
| 21 | +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](../src/middlewareV2/). |
| 22 | + |
| 23 | +🚀 New Features – Highlight major new functionality |
| 24 | + |
| 25 | +- `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 sets |
| 26 | +- `OperatorTableCalculator`: Responsible for calculating stake weights of operator. These stake weights are aggregated and transported using the [Eigenlayer Multichain Protocol](https://github.com/eigenfoundation/ELIPs/blob/main/ELIPs/ELIP-008.md). In order to utilize the multichain protocol, an AVS *MUST* deploy an `OperatorTableCalculator` and register it in the `CrossChainRegistry` in EigenLayer core. See our [core documentation](https://github.com/Layr-Labs/eigenlayer-contracts/tree/main/docs/multichain#common-user-flows) for this process. |
| 27 | + |
| 28 | +🔧 Improvements – Enhancements to existing features. |
| 29 | + |
| 30 | +- The multichain protocol has protocol-ized several AVS-deployed contracts, enabling an simpler AVS developer experience. These include: |
| 31 | + - `KeyRegistrar`: Manages BLS and ECDSA signing keys. AVSs no longer have to deploy a `BLSAPKRegistry` |
| 32 | + - `CertificateVerifier`: Handles signature verification for BLS and ECDSA keys. AVSs no longer have to deploy a `BLSSignatureChecker` |
| 33 | + - Offchain Multichain Transport: AVSs no longer have to maintain [avs-sync](https://github.com/Layr-Labs/avs-sync) to keep operator stakes fresh |
| 34 | + |
| 35 | +# v1.5.0 Hourglass |
| 36 | + |
| 37 | +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: |
| 38 | + |
| 39 | +1. Core Contracts |
| 40 | +2. AVS Contracts |
| 41 | +3. Offchain Infrastructure |
| 42 | + |
| 43 | +The below release notes cover AVS Contracts. For more information on the end to end protocol, see our [docs](https://github.com/Layr-Labs/hourglass-monorepo/blob/master/README.md) and [ELIP-010](https://github.com/eigenfoundation/ELIPs/blob/main/ELIPs/ELIP-010.md). |
| 44 | + |
| 45 | +## Release Manager |
| 46 | + |
| 47 | +@0xrajath |
| 48 | + |
| 49 | +## Highlights |
| 50 | + |
| 51 | +This hourglass release only introduces new contracts. As a result, there are no breaking changes or deprecations. |
| 52 | + |
| 53 | +🚀 New Features |
| 54 | + |
| 55 | +- `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. |
| 56 | + |
| 57 | +# Changelog |
| 58 | +* fix: bls sig operator state retriever sorting by @RonTuretzky in https://github.com/Layr-Labs/eigenlayer-middleware/pull/480 |
| 59 | +* chore: update core submodule by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/497 |
| 60 | +* test: table calc by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/499 |
| 61 | +* test: ecdsa stake reg/bls sig checker utils by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/500 |
| 62 | +* release: middlewareV2/multichain by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/496 |
| 63 | +* fix: broken link by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/501 |
| 64 | +* chore: update `AVSRegistrar` for new `KeyRegistrar` interface by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/502 |
| 65 | +* chore: update submodule by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/503 |
| 66 | +* feat(redistribution): update slashers by @0xClandestine in https://github.com/Layr-Labs/eigenlayer-middleware/pull/492 |
| 67 | +* docs: format table in `OperatorTableCalculator` by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/505 |
| 68 | +* docs: add new table calculators by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/508 |
| 69 | +* fix(H-1): correct array indexing for BN254TableCalculatorBase._calculateOperatorTable by @nadir-akhtar in https://github.com/Layr-Labs/eigenlayer-middleware/pull/504 |
| 70 | +* feat: hourglass by @0xrajath in https://github.com/Layr-Labs/eigenlayer-middleware/pull/515 |
| 71 | +* fix: multichain pt1 audit fixes by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/520 |
| 72 | +* fix: make storage variable internal due to existing getter by @nadir-akhtar in https://github.com/Layr-Labs/eigenlayer-middleware/pull/524 |
| 73 | +* fix(I-07): add onlyInitializing modifier to initializing function by @nadir-akhtar in https://github.com/Layr-Labs/eigenlayer-middleware/pull/525 |
| 74 | +* feat: tablecalc modules by @eigenmikem in https://github.com/Layr-Labs/eigenlayer-middleware/pull/514 |
| 75 | +* fix(I-05): remove unused import by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/529 |
| 76 | +* fix: multichain pt2 audit fixes by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/528 |
| 77 | +* chore: bump core submodule by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/531 |
| 78 | +* feat: add UAM to `SocketRegistry` by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/532 |
| 79 | +* fix: add allowlist to TaskAVSRegistarBase by @nadir-akhtar in https://github.com/Layr-Labs/eigenlayer-middleware/pull/533 |
| 80 | +* chore: update core submodule + ReadME by @ypatil12 in https://github.com/Layr-Labs/eigenlayer-middleware/pull/534 |
| 81 | +* fix: task replay directed at same operator set by @0xrajath in https://github.com/Layr-Labs/eigenlayer-middleware/pull/535 |
| 82 | +* chore: update core bindings by @0xrajath in https://github.com/Layr-Labs/eigenlayer-middleware/pull/536 |
0 commit comments