23.0.0 (2024-04-16)
This release lays out some ground work for the upcoming protocol version upgrade (protocol version 23
). Note that deploying this version doesn't bump the protocol, as the upgrade has to be initiated via governance L1 transaction. Also please note that this is not the final version required for the upgrade - we'll announce this separately
Apart from that, it has some QoL improvements and some ground work for features that are coming soon (like pruning and snapshot recovery).
Noteworthy for EN operators:
- #1500 (ENs shouldn't be rate-limited by Main Node anymore)
- #1457 (EN now support additional API servers that operate on the same DB, which allows for better read traffic scaling)
For more information, please see the changelog below.
⚠ BREAKING CHANGES
- vm: 1 5 0 support (#1508)
Features
- api: Add
tokens_whitelisted_for_paymaster
(#1545) (6da89cd) - api: Log info about estimated fee (#1611) (daed58c)
- Archive old prover jobs (#1516) (201476c)
- Archiving of prover in gpu_prover_queue (#1537) (a970629)
- block-reverter: only require private key for sending revert transactions (#1579) (27de6b7)
- config: Initialize log config from files as well (#1566) (9e7db59)
- configs: Implement new format of configs and implement protobuf for it (#1501) (086ba5b)
- db: Wrap sqlx errors in DAL (#1522) (6e9ed8c)
- EN Pruning (#1418) (cea6578)
- en: add consistency checker condition in db pruner (#1653) (5ed92b9)
- en: add manual vacuum step in db pruning (#1652) (c818be3)
- en: Rate-limit L2 client requests (#1500) (3f55f1e)
- en: Rework storing and using protective reads (#1515) (13c0c45)
- en: support for snapshots recovery in version_sync_task.rs (#1585) (f911276)
- eth-watch: Brush up Ethereum watcher component (#1596) (b0b8f89)
- Expose component configs as info metrics (#1584) (7c8ae40)
- external-node: external node distributed operation mode (#1457) (777ffca)
- Extract commitment generator into a separate crate (#1636) (f763d1f)
- Extract eth_watch and shared metrics into separate crates (#1572) (4013771)
- Finalize fee address migration (#1617) (713f56b)
- fix availability checker (#1574) (b2f21fb)
- genesis: Add genesis config generator (#1671) (45164fa)
- genesis: mark system contracts bytecodes as known (#1554) (5ffec51)
- Migrate gas limit to u64 (#1538) (56dc049)
- node-framework: Add consensus support (#1546) (27fe475)
- node-framework: Add consistency checker (#1527) (3c28c25)
- remove unused variables in prover configs (#1564) (d32a019)
- Remove zksync-rs SDK (#1559) (cc78e1d)
- soft removal of
events_queue
table (#1504) (5899bc6) - sqlx: Use offline mode by default (#1539) (af01edd)
- Use config for max number of circuits (#1573) (9fcb87e)
- Validium (#1461) (132a169)
- vm: 1 5 0 support (#1508) (a6ccd25)
Bug Fixes
- api: Change error code for Web3Error::NotImplemented (#1521) (0a13602)
- cache: use factory deps cache correctly (#1547) (a923e11)
- CI: Less flaky CI (#1536) (2444b53)
- configs: Make genesis fields optional (#1555) (2d0ef46)
- contract verifier config test (#1583) (030d447)
- contract-verifier-api: permissive cors for contract verifier api server (#1525) (423f4a7)
- db: Fix "values cache update task failed" panics (#1561) (f7c5c14)
- en: do not log error when whitelisted_tokens_for_aa is not supported (#1600) (06c87f5)
- en: Fix DB pool for Postgres metrics on EN (#1675) (c51ca91)
- en: improved tree recovery logs (#1619) (ef12df7)
- en: Reduce amount of data in snapshot header (#1528) (afa1cf1)
- eth-client: Use local FeeHistory type (#1552) (5a512e8)
- instruction count diff always N/A in VM perf comparison (#1608) (c0f3104)
- vm: Fix storage oracle and estimation (#1634) (932b14b)
- vm: Increase log demuxer cycles on far calls (#1575) (90eb9d8)