Releases: primev/mev-commit
v0.7.0
The team is excited to announce the latest release, which focuses on improving the robustness of the protocol through enhancements to the bridge contracts, validator registry. Below are the highlights:
Bridge Contract Improvements
- Renaming and Clarity:
Whitelist
renamed toAllocator
for improved clarity. - Enhancements: Added interfaces, storage contracts, reentrancy guards, and custom errors for better security and maintainability.
- Resilient Operations: Introduced reverting receivers and fallbacks for unsupported operations.
Validator Registry Refinements
- Error Handling: Custom errors now provide more informative responses when invalid operations are attempted (e.g.,
NoPodExists
for non-setup eigenpods). - Gas Optimizations: Reduced gas costs through optimized storage reads and updates.
- Audit-Driven Enhancements: Fixed issues highlighted in audits, such as handling slashed and unstaked validators more effectively.
Other Contract Improvements and Fixes
- Gas Usage and State Optimization: Refined contract logic to improve efficiency and reduce integration test failures.
- API Updates: Validator registry parameters and APIs updated for improved usability and integration flexibility.
- Symbiotic Integration: Updated middleware deployment to address symbiotic network requirements, including address updates and handling veto slashers.
- Audit Fixes: Addressed findings to improve protocol safety, such as fixes to slashing logic, modifier usage, and reentrancy safeguards.
- Expanded Features: Added support for multiple BLS keys, enhancing provider flexibility and dynamic registry assignments.
- Precision and Reliability: Resolved precision issues and improved test stability.
- Provider Staking Logic: Modified API to allow stake deposits for slashed providers without creating new APIs.
- Bid Overflow Handling: Fixed issues with bid overflow slashing logic.
Developer Enhancements
- Logs and Debugging: Improved error logging for bidder services and other critical operations.
- Deployment Scripts: Updated and streamlined deployment scripts for mainnet and devnet configurations.
- Documentation Updates: Inline and readme documentation now align with the latest features and audit recommendations.
For detailed changes and implementation specifics, please review the changelog and updated documentation.
This release represents a significant step forward in robustness, security, and usability for MEV-Commit. As always, we welcome feedback and contributions from the community!
Changelog
- a7df3dd chore: add bid timeout option (#453)
- 281fc65 chore: add flags to l1 deployer cli (#477)
- 798fa51 chore: bridge deploy scripts (#434)
- dad3788 chore: bump Golang version (#427)
- 1e0e2cf chore: mainnet deploy scripts for vanilla and avs registries (#476)
- b151c03 chore: middleware deployment update (#454)
- c7cd1be chore: restructure tools module (#433)
- f86e8c5 chore: scripts for getting validator registry params on mainnet (#485)
- 1ee9bc5 chore: symbiotic middleware deploy scripts (#423)
- c3e3884 chore: update contract addresses and bug with provider exit (#424)
- a8add56 chore: update testnet contract addresses (#506)
- 8975530 chore: updated router addr and deploy script (#489)
- 43b923e dereg on freeze (#415)
- 30e7da5 feat: add dockerfiles for bridge and dashboard (#467)
- fdc165a feat: add geth zero fee addresses (#502)
- 6242f1d feat: added logs to bidder service (#498)
- 0a2f8ff feat: adds support for multiple BLS keys (#468)
- ce3ce6f feat: dockerfiles or p2p and oracle (#445)
- 882eeeb feat: integrate L1 mock with services (#438)
- 3f7766a feat: introduce mock l1 for devnet setup (#430)
- 7e5a850 feat: introduce multiple L1 connections for oracle (#421)
- 8bf6f39 feat: introduce stressnet-wl1 (#490)
- 4dd1302 feat: introduce the --nat-ip flag for launchmevcommit (#426)
- b5fbdc4 feat: l1 contract deployer cli (#442)
- a8f287e feat: middleware fixes from audit report (#419)
- 86132eb feat: middleware slashing revamp (#460)
- 443e126 feat: redis consensus (#444)
- 4200e9b feat: standard bridge contract improvements (#413)
- ff04f83 feat: streamlined symbiotic veto slasher handling (#466)
- 338f9d4 feat: vanilla reg final improvements before audit (#418)
- 073cbe4 fix: add missing whenNotPaused modifiers (#474)
- df77342 fix: all targets build (#479)
- 5ed4429 fix: allocate faucet keystore in genesis (#472)
- d278132 fix: archive node historical state availability (#420)
- 26ecd81 fix: audit remediations for l1 contracts (#457)
- 5b1b678 fix: change staking API to allow register as well as deposit (#461)
- c136cea fix: comment in the generated bash script (#511)
- a6f22d0 fix: deleted bidder registered mapping (#501)
- 230de21 fix: emulator ignores if no relay (#504)
- 36254cd fix: fixed flacky tests (#494)
- 5689bce fix: get_stake provider api (#422)
- 3f3155b fix: geth lib update (#475)
- 9a95e83 fix: ignore errors in preconf tracker and bump handshake (#487)
- 1259c72 fix: increase bid processing timeout (#443)
- f67c289 fix: invalid character in keystore artifact (#469)
- 1fe77bd fix: l1 rpc url (#510)
- 69cb1b5 fix: malicious user can dos bridge transfer finalization (#448)
- f17e2e5 fix: more audit remediations (#470)
- 411470c fix: new message and renaming command (#473)
- 12fcdeb fix: node type info in output logs (#425)
- a529292 fix: precision issue (#493)
- 45562df fix: relay emulator for testnet (#505)
- 58db5fa fix: remove Geth data on destroy (#431)
- b4116e7 fix: set L1 RPC URL for gateway deployment (#507)
- 47f560f fix: set L1 chain ID for holesky (#509)
- 3531b98 fix: set bridge relayer log level to info
- 046106c fix: set last block for l1 relayer (#512)
- 8500fcb fix: slash amount in case of the bid overflow (#496)
- 1992047 fix: smart contracts audit (#447)
- 4549d7f perf: gas optimizations for vanillaRegistry and mevCommitAVS (#416)
- b715a0a refactor: change log level to warn for grpc dial (#481)
- 00df501 refactor: custom err when non-valid podOwner registers with avs (#414)
- f0fabdf refactor: export/import of Geth chaindata (#428)
- 419e63f refactor: redistribute funds from single genesis address (#465)
v0.6.3
This patch adds a new flag for both bidder and provider nodes. It also organizes the flags for the mev-commit binary into categories for better UX.
The bidder nodes can use the --bidder-bid-timeout
flag to configure the timeout to wait for preconfirmations from the provider nodes.
The provider nodes can use the --provider-decision-timeout
flag to configure the timeout for the mev-commit node to wait for the decision logic.
Changelog
v0.6.2
v0.6.1
This patch release introduces several enhancements and fixes.
Provider API Enhancement: get stake provider API behavior has been fixed, which previously always returned an empty BLS public key string. This fix ensures accurate retrieval of stake information, enhancing API reliability for providers.
Updated Default Contract Addresses: The default contract addresses have been updated to reflect with the latest deployments. In addition, a minor issue causing provider nodes to close improperly has been fixed, improving node stability.
Output Log Accuracy: Issue where output logs were displaying the wrong node type for providers has been fixed.
NAT Configuration Support: Introduction of the --nat-ip
flag to the launchmevcommit script, allowing providers to set their IP and/or port when operating behind NAT. This addition improves network connectivity and simplifies configuration for providers in NAT environments.
See the changelog for more details.
Changelog
v0.6.0
The team is happy to announce the next release of mev-commit. This release mainly focuses on hardening the P2P node and improving the smart contracts deployed on the mev-commit chain.
Validator API Improvements: Introduction of default parameters, inclusion of error checks for incorrect epochs, and improved documentation for Validator API endpoints to improve usability and integration.
Symbiotic Integration for Validator Registry: Introduction of symbiotic network middleware contract as an option for the validator registry with mev-commit, extending functionality and providing additional options for network interaction.
Contracts Modularization: Storage and state transition logic in core contracts has been split to improve modularity. Storage gaps have also been added to all contracts to maintain upgradeability.
Gas Parameter Adjustments: Gas usage parameters have been adjusted to optimize contract interactions and prevent integration test failures.
Several other several small fixes and improvements have been made. See the changelog and documentation for more information.
Changelog
- fe35e71 chore: added description for validator api (#336)
- e0c7a7c chore: bump solidity across repo (#379)
- 9b35b02 chore: bump version for new release (#412)
- 726dd18 chore: delete redundant check (#359)
- 06dcf97 chore: gas adjustments (#372)
- a439edd chore: improve OpenAPI specs (#380) (#381)
- 3408ed6 chore: update values w.r.t new opt-in router deployment (#362)
- 0253556 ci: remove forge coverage command (#396)
- e570c21 feat: add option to enable tracing for launchmevcommit script (#356)
- c0f5663 feat: added default params for validator api (#357)
- 3e78702 feat: automated integration tests (#252)
- 5fe2843 feat: consolidate slashAmount and minStake for vanillaRegistry (#406)
- 1d60d2f feat: contract storage gaps (#351)
- b576754 feat: delegation for provider registration/stake (#332)
- b4b4862 feat: dont reset unstake height upon slashing w/ vanilla registry (#401)
- 6583739 feat: enable backup/restore of Geth db (#365)
- 8eb78b9 feat: implements partial slashing (#402)
- 8056852 feat: introduce Geth archive node profile (#377)
- 8321257 feat: introduce OTEL tracing (#343)
- 50ce7ea feat: pauseable core contracts (#352)
- d866562 feat: revert reason and custom errors (#375)
- 3ac5116 feat: send transaction payloads in bid (#355)
- 09b87de feat: symbiotic integration for validator registry (#383)
- 86e18aa feat: tune Geth backup/restore resources (#374)
- ad33981 fix: backup in progress (#382)
- 4e43a8c fix: check "hasPod" in _isValidatorOptedIn (#353)
- 23872f5 fix: handle pq error (#397)
- 3aa76a7 fix: misc fixes from negative testing (#407)
- 5f27ffc fix: nomad noop on service restart (#404)
- 92e0be6 fix: provider-emulator-nodes for stressnet profile (#391)
- ea0d050 fix: real bidder (#346)
- ace3989 fix: remove indexed fields from mev-commit avs contract (#393)
- 8c5dda5 fix: remove store contracts addresses (#342)
- 32311d7 fix: retry on failed event subscription (#384)
- 3541c70 fix: send payloads and reverting txns on API (#389)
- 7e68fcf perf: reduce transfer calls in vanilla registry functions (#411)
- 0a85a2b refactor: change log verbosity of Geth nodes (#405)
- d76827f refactor: change sync mode to snap on all Geth nodes (#370)
- 246b1ce refactor: contract cleanup (#339)
- a170087 refactor: custom errors for core contracts (#410)
- e827a4f refactor: custom errors for l1 contracts (#395)
- 379ff76 refactor: double nomad decompression file count limit again (#387)
- 7fa300d refactor: event height lib becomes occurrence lib (#392)
- 1eccbef refactor: force stop and purge jobs as default on destroy (#371)
- a1d9f63 refactor: link all geth nodes using static node configuration (#408)
- 0f32940 refactor: misc contract audit fixes (#409)
- cb10157 refactor: rename oracle api access fields (#331)
- 4605509 refactor: rename service name and introduce service version (#400)
- 9a7bbc8 refactor: run all services inside nomad task as pid 1 (#373)
- ffd2f19 refactor: split out storage and state transition for core contracts (#341)
- 8080525 refactor: validatorRegistryV1 renamed to vanillaRegistry (#364)
v0.5.3
v0.5.2
This patch release fixes the stability of the websocket event subscription and also an issue related to the Provider API not having the transaction payload and reverting transaction hashes populated correctly.
Changelog
v0.5.1
This patch release includes a new feature that allows transaction payloads to be sent in the bidding process and increases the default gas amount used for transactions.
Changelog
v0.5.0
The team is happy to announce the next release of testnet. The main focus of this release has been to add a number of new features and harden the existing ones.
Embedded Storage: Introduction of persistent storage for mev-commit that helps retain certain state across restarts.
Health Check: mev-commit and oracle now expose a /health
endpoint that helps determine the health of the running node by the state of important subsystems.
New Oracle API: A new authenticated API for registering provider graffiti along with their addresses has been introduced for oracle.
New Provider API: A new withdrawal API for providers to withdraw their stake from the contract.
New Bidder API: A new validator API for bidders to get information on whether the running node is opted into a validator that proposes blocks in the next epoch.
Increase of Slashing Penalty: The slashing penalty has been increased by 5% on top of the decayed bid amount (removed from the provider's share). 100% of the decayed bid is given to the bidder, and the additional 5% goes to the protocol treasury.
Window Offset Change: This change allows a deposit to be withdrawn 1 window earlier and to deposit 3 times the window amount for automatic deposit instead of 4 times.
In addition, several small fixes and improvements have been made. See the changelog and documentation for more information.
Changelog
- 1a9ddc7 chore(ci): include independent go modules in the ci (#286)
- bf05bc3 chore(p2p): remove unused gen-certificates.sh file (#316)
- 65753f6 chore: add arm64 arch for oracle goreleaser (#238)
- fca7319 chore: bump geth (#294)
- 38a1173 chore: delete enumerableMap and enumerableSet (#243)
- 10a4ea7 chore: deploy local avs w/ anvil (#195)
- e596dfb chore: deploy scripts for Holesky contracts + updated bindings (#308)
- fb28440 chore: fully enable solhint linter (#261)
- a0d9367 chore: get rid of redundant docs (#263)
- 4d60ace chore: introduce solhint linter + fixes (#245)
- f0d9326 chore: remove external/geth from go.work (#247)
- bc6d2c3 chore: remove unused/outdated files (#300)
- 1107a53 chore: standardize solidity version to 0.8.20 across repo (#230)
- ddad6c8 chore: update bufgen (#298)
- 076e73a chore: updated api (#248)
- bdd0d5f chore: updated structs (#237)
- 2de9999 chore: upgrade GitHub runners to version ubuntu-24.04 (#254)
- d58e930 docs(infra): update README.md (#281)
- b394bd8 feat(infra): detect uncommitted changes on release (#257)
- 02d3a22 feat(infra): fail fast on first deployment error (#226)
- bf20b62 feat(oracle): change window offset to 1 (#274)
- 62c9ff1 feat: add auth_token as a new type of secret artifact (#232)
- ea2db97 feat: add new API for provider registration (#229)
- 6c78079 feat: add validator api (#310)
- b0a20a3 feat: added additional info for the autodeposit (#228)
- 9529ee8 feat: added pr template (#266)
- f404367 feat: allows 0x prefix (#291)
- 11e33f9 feat: automatic protocol fee payout (#293)
- aeb9ec0 feat: bump handshake version (#327)
- be0e7d9 feat: health check (#278)
- c78997d feat: introduces additive slashing penalty (#301)
- 63b011f feat: migrate launchmevcommit script (#240)
- 89d6b43 feat: smart contract updates (#279)
- 21b6cbb feat: use store for tracker and autodepositor (#271)
- cad5605 feat: withdrawal api (#282)
- f225e6e fix(libp2p): standardize protocol ID across all protocols (#244)
- 6bc7944 fix: added description for the autodeposit response (#231)
- c270dda fix: artifacts.yml action (#307)
- d6d48d3 fix: bugs from testing session (#289)
- fa9f3f5 fix: commitment stored event update (#324)
- f483e3e fix: commitments struct rename (#311)
- 413038a fix: override oracle winners for devenv only (#225)
- 985b84f fix: preconf + block tracker contracts now use their interfaces (#264)
- b1c7986 fix: real-bidder panic (#219)
- b99958a fix: refactored contracts (#234)
- 536d57e fix: remaining audit remediations (#241)
- 489f0c4 fix: remove status (#325)
- 6481bfa fix: remove unnecessary # suffix check form PR title regex (#321)
- ae5eaa0 fix: renamed committer and fix require (#297)
- f436d08 fix: separate oracle and owner accounts in contracts (#251)
- 443d9fd fix: testenv deployment (#255)
- e858b05 fix: use websocket for bidder nodes in launch script (#249)
- 262aa90 fix: validator registry audit remediations part 1 (#224)
- 1ea0d5a perf: streamline transactions from node (#256)
- b0ab7d6 refactor: add logging for preconfirmations (#314)
- 346fd2d refactor: cleans up logs for non-verbose state (#304)
- c6348e5 refactor: lint GitHub PR title (#320)
- fba49d8 refactor: oracle l1 retry client (#326)
v0.4.3
This patch release includes several fixes to improve functionality. The launchscript now always loads the latest released version and uses WebSocket instead of HTTP to communicate with the RPC settlement endpoint. The bidder auto-deposit API has been updated to provide a more ergonomic user experience.