Skip to content

Conversation

slowli
Copy link
Contributor

@slowli slowli commented Mar 7, 2025

What ❔

  • Changes the default amortization radix to 8.
  • Uses RocksDB multi-gets for key–index lookup.

Why ❔

  • Changing amortization radix to 8 yields ~10–20% performance improvement compared to previously used radix-16 on local benches (see the updated readme). It also reduces storage overhead.
  • Multi-gets for key–index lookup reduce lookup latency ~2x on the local benches (= ~15% total block processing latency improvement).

Is this a breaking change?

  • Yes
  • No

Operational changes

No operational changes.

Checklist

  • PR title corresponds to the body of PR (we generate changelog entries from PRs).
  • Tests for the changes have been added / updated.
  • Documentation comments have been added / updated.
  • Code has been formatted via zkstack dev fmt and zkstack dev lint.

@slowli slowli marked this pull request as ready for review March 7, 2025 12:39
perekopskiy
perekopskiy previously approved these changes Mar 17, 2025
@slowli slowli added this pull request to the merge queue Mar 17, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to no response for status checks Mar 17, 2025
@slowli slowli added this pull request to the merge queue Mar 17, 2025
Merged via the queue into main with commit fc1e230 Mar 17, 2025
36 checks passed
@slowli slowli deleted the aov-pla-1096-choose-optimal-amortization-radix-for-zk-os-merkle-tree branch March 17, 2025 14:46
github-merge-queue bot pushed a commit that referenced this pull request Mar 21, 2025
🤖 I have created a release *beep* *boop*
---


##
[27.0.0](core-v26.7.0...core-v27.0.0)
(2025-03-21)


### ⚠ BREAKING CHANGES

* Remove old prover stack
([#3729](#3729))
* V27 update
([#3580](#3580))

### Features

* **eigenda:** EigenDA M0
([#3650](#3650))
([2a3cae9](2a3cae9))
* **eth-watch:** split heavy get logs requests if 503
([#3706](#3706))
([406a3ff](406a3ff))
* **gateway:** Requirement to stop L1->L2 transactions before v26
upgrade ([#3707](#3707))
([0a095b7](0a095b7))
* Remove old prover stack
([#3729](#3729))
([fbbdc76](fbbdc76))
* Starting from v26 version, always fetch the address of the validator
timelock from CTM
([#3721](#3721))
([d3db521](d3db521))
* **storage:** rocksdb storage extension for zkos
([#3698](#3698))
([2779245](2779245))
* Use JSON-RPC for core <> prover interaction
([#3626](#3626))
([4e74730](4e74730))
* V27 update
([#3580](#3580))
([9e18550](9e18550))
* **zksync_tee_prover:** add support for TDX and None TEE types
([#3711](#3711))
([11d166b](11d166b))
* **zksync_tee_prover:** read config in TDX from google metadata
([#3702](#3702))
([e50201c](e50201c))


### Bug Fixes

* **contract-verifier:** Allow reverification of system contracts in Yul
([#3735](#3735))
([e99b548](e99b548))
* **contract-verifier:** contract verifier to return fully matched
verification info when available
([#3734](#3734))
([1a0f27f](1a0f27f))
* **contract-verifier:** Correctly process partial verification for EVM
contracts
([#3688](#3688))
([8292234](8292234))
* **contract-verifier:** Ignore suppressable errors during compilation
([#3747](#3747))
([a5955c4](a5955c4))
* **data-availability-fetcher:** prevent EN database from being
populated with unnecessary inclusion data
([#3742](#3742))
([037bac3](037bac3))
* make eigenda_eth_rpc in Eigen config optional in file-based configs
([#3732](#3732))
([69d0efc](69d0efc))
* make secret optionnal when da client object store is selected
([#3715](#3715))
([f05fffd](f05fffd))
* Serialization issues
([#3589](#3589))
([606d5af](606d5af))
* **vm:** Fix another VM divergence in validation
([#3675](#3675))
([85dfc13](85dfc13))


### Performance Improvements

* **zkos:** Choose optimal amortization radix for ZK OS Merkle tree
([#3685](#3685))
([fc1e230](fc1e230))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: zksync-era-bot <zksync-era-bot@users.noreply.github.com>
zkzoomer pushed a commit that referenced this pull request Jun 21, 2025
🤖 I have created a release *beep* *boop*
---


##
[27.0.0](core-v26.7.0...core-v27.0.0)
(2025-03-21)


### ⚠ BREAKING CHANGES

* Remove old prover stack
([#3729](#3729))
* V27 update
([#3580](#3580))

### Features

* **eigenda:** EigenDA M0
([#3650](#3650))
([2a3cae9](2a3cae9))
* **eth-watch:** split heavy get logs requests if 503
([#3706](#3706))
([406a3ff](406a3ff))
* **gateway:** Requirement to stop L1-&gt;L2 transactions before v26
upgrade ([#3707](#3707))
([867cfa5](867cfa5))
* Remove old prover stack
([#3729](#3729))
([4a001a7](4a001a7))
* Starting from v26 version, always fetch the address of the validator
timelock from CTM
([#3721](#3721))
([d3db521](d3db521))
* **storage:** rocksdb storage extension for zkos
([#3698](#3698))
([2779245](2779245))
* Use JSON-RPC for core &lt;&gt; prover interaction
([#3626](#3626))
([1971fe4](1971fe4))
* V27 update
([#3580](#3580))
([e7e930e](e7e930e))
* **zksync_tee_prover:** add support for TDX and None TEE types
([#3711](#3711))
([11d166b](11d166b))
* **zksync_tee_prover:** read config in TDX from google metadata
([#3702](#3702))
([e50201c](e50201c))


### Bug Fixes

* **contract-verifier:** Allow reverification of system contracts in Yul
([#3735](#3735))
([e99b548](e99b548))
* **contract-verifier:** contract verifier to return fully matched
verification info when available
([#3734](#3734))
([1a0f27f](1a0f27f))
* **contract-verifier:** Correctly process partial verification for EVM
contracts
([#3688](#3688))
([8292234](8292234))
* **contract-verifier:** Ignore suppressable errors during compilation
([#3747](#3747))
([a5955c4](a5955c4))
* **data-availability-fetcher:** prevent EN database from being
populated with unnecessary inclusion data
([#3742](#3742))
([037bac3](037bac3))
* make eigenda_eth_rpc in Eigen config optional in file-based configs
([#3732](#3732))
([69d0efc](69d0efc))
* make secret optionnal when da client object store is selected
([#3715](#3715))
([f05fffd](f05fffd))
* Serialization issues
([#3589](#3589))
([606d5af](606d5af))
* **vm:** Fix another VM divergence in validation
([#3675](#3675))
([85dfc13](85dfc13))


### Performance Improvements

* **zkos:** Choose optimal amortization radix for ZK OS Merkle tree
([#3685](#3685))
([fc1e230](fc1e230))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: zksync-era-bot <zksync-era-bot@users.noreply.github.com>
dutterbutter pushed a commit to dutterbutter/zkstack-cli that referenced this pull request Jul 3, 2025
🤖 I have created a release *beep* *boop*
---


##
[27.0.0](matter-labs/zksync-era@core-v26.7.0...core-v27.0.0)
(2025-03-21)


### ⚠ BREAKING CHANGES

* Remove old prover stack
([#3729](matter-labs/zksync-era#3729))
* V27 update
([#3580](matter-labs/zksync-era#3580))

### Features

* **eigenda:** EigenDA M0
([#3650](matter-labs/zksync-era#3650))
([2a3cae9](matter-labs/zksync-era@2a3cae9))
* **eth-watch:** split heavy get logs requests if 503
([#3706](matter-labs/zksync-era#3706))
([406a3ff](matter-labs/zksync-era@406a3ff))
* **gateway:** Requirement to stop L1-&gt;L2 transactions before v26
upgrade ([#3707](matter-labs/zksync-era#3707))
([1fea419](matter-labs/zksync-era@1fea419))
* Remove old prover stack
([#3729](matter-labs/zksync-era#3729))
([ba05a88](matter-labs/zksync-era@ba05a88))
* Starting from v26 version, always fetch the address of the validator
timelock from CTM
([#3721](matter-labs/zksync-era#3721))
([d3db521](matter-labs/zksync-era@d3db521))
* **storage:** rocksdb storage extension for zkos
([#3698](matter-labs/zksync-era#3698))
([2779245](matter-labs/zksync-era@2779245))
* Use JSON-RPC for core &lt;&gt; prover interaction
([#3626](matter-labs/zksync-era#3626))
([6a6cead](matter-labs/zksync-era@6a6cead))
* V27 update
([#3580](matter-labs/zksync-era#3580))
([6548ace](matter-labs/zksync-era@6548ace))
* **zksync_tee_prover:** add support for TDX and None TEE types
([#3711](matter-labs/zksync-era#3711))
([11d166b](matter-labs/zksync-era@11d166b))
* **zksync_tee_prover:** read config in TDX from google metadata
([#3702](matter-labs/zksync-era#3702))
([e50201c](matter-labs/zksync-era@e50201c))


### Bug Fixes

* **contract-verifier:** Allow reverification of system contracts in Yul
([#3735](matter-labs/zksync-era#3735))
([e99b548](matter-labs/zksync-era@e99b548))
* **contract-verifier:** contract verifier to return fully matched
verification info when available
([#3734](matter-labs/zksync-era#3734))
([1a0f27f](matter-labs/zksync-era@1a0f27f))
* **contract-verifier:** Correctly process partial verification for EVM
contracts
([#3688](matter-labs/zksync-era#3688))
([8292234](matter-labs/zksync-era@8292234))
* **contract-verifier:** Ignore suppressable errors during compilation
([#3747](matter-labs/zksync-era#3747))
([a5955c4](matter-labs/zksync-era@a5955c4))
* **data-availability-fetcher:** prevent EN database from being
populated with unnecessary inclusion data
([#3742](matter-labs/zksync-era#3742))
([037bac3](matter-labs/zksync-era@037bac3))
* make eigenda_eth_rpc in Eigen config optional in file-based configs
([#3732](matter-labs/zksync-era#3732))
([69d0efc](matter-labs/zksync-era@69d0efc))
* make secret optionnal when da client object store is selected
([#3715](matter-labs/zksync-era#3715))
([f05fffd](matter-labs/zksync-era@f05fffd))
* Serialization issues
([#3589](matter-labs/zksync-era#3589))
([606d5af](matter-labs/zksync-era@606d5af))
* **vm:** Fix another VM divergence in validation
([#3675](matter-labs/zksync-era#3675))
([85dfc13](matter-labs/zksync-era@85dfc13))


### Performance Improvements

* **zkos:** Choose optimal amortization radix for ZK OS Merkle tree
([#3685](matter-labs/zksync-era#3685))
([fc1e230](matter-labs/zksync-era@fc1e230))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: zksync-era-bot <zksync-era-bot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants