Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: merge main #222

Merged
merged 93 commits into from
Jul 24, 2024
Merged

chore: merge main #222

merged 93 commits into from
Jul 24, 2024

Conversation

ilitteri
Copy link
Collaborator

What ❔

Why ❔

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 zk fmt and zk lint.
  • Spellcheck has been run via zk spellcheck.

Artemka374 and others added 30 commits May 16, 2024 18:02
## What ❔

Bump versions of repos in Cargo.lock and update circuits.

## Why ❔

There is a divergency between in-circuit and out-of-circuit logic

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.

---------

Co-authored-by: zksync-admin-bot2 <[email protected]>
## What ❔

Make the `skip-test-token-deployment` option available

## Why ❔

We don't want to deploy test tokens when deploying on Sepolia or other
networks
(current test erc20 deployment consumes a lot of gas)


## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [ ] 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 `zk fmt` and `zk lint`.
- [ ] Spellcheck has been run via `zk spellcheck`.
- [ ] Linkcheck has been run via `zk linkcheck`.
🤖 I have created a release *beep* *boop*
---


##
[24.3.0](matter-labs/zksync-era@core-v24.2.0...core-v24.3.0)
(2024-05-16)


### Features

* Added support for making EN a (non-leader) consensus validator
(BFT-426)
([matter-labs#1905](matter-labs#1905))
([9973629](matter-labs@9973629))
* **configs:** Extract secrets to an additional config
([matter-labs#1956](matter-labs#1956))
([bab4d65](matter-labs@bab4d65))
* **en:** Fetch L1 batch root hashes from main node
([matter-labs#1923](matter-labs#1923))
([72a3571](matter-labs@72a3571))
* **eth-client:** Generalize RPC client
([matter-labs#1898](matter-labs#1898))
([a4e099f](matter-labs@a4e099f))
* **Prover CLI:** `requeue` cmd
([matter-labs#1719](matter-labs#1719))
([f722df7](matter-labs@f722df7))
* **Prover CLI:** `status batch --verbose`
([matter-labs#1899](matter-labs#1899))
([cf80184](matter-labs@cf80184))
* **pruning:** Vacuum freeze started daily
([matter-labs#1929](matter-labs#1929))
([5c85e9f](matter-labs@5c85e9f))
* Remove metrics crate
([matter-labs#1902](matter-labs#1902))
([5f7bda7](matter-labs@5f7bda7))
* **state-keeper:** Parallel l2 block sealing
([matter-labs#1801](matter-labs#1801))
([9b06dd8](matter-labs@9b06dd8))
* tee_verifier_input_producer
([matter-labs#1860](matter-labs#1860))
([fea7f16](matter-labs@fea7f16))
* **vm-runner:** implement output handler for VM runner
([matter-labs#1856](matter-labs#1856))
([1e4aeb5](matter-labs@1e4aeb5))


### Bug Fixes

* **basic_types:** bincode deserialization for `web3::Bytes`
([matter-labs#1928](matter-labs#1928))
([406ec8c](matter-labs@406ec8c))
* **config:** Fix data-handler-config
([matter-labs#1919](matter-labs#1919))
([b6bb041](matter-labs@b6bb041))
* **en:** Delete old txs by (init_addr, nonce)
([matter-labs#1942](matter-labs#1942))
([fa5f4a7](matter-labs@fa5f4a7))
* **en:** Fix reorg detector logic for dealing with last L1 batch
([matter-labs#1906](matter-labs#1906))
([3af5f5b](matter-labs@3af5f5b))
* parentHash in websocket blocks subscription is shown as 0x0
([matter-labs#1946](matter-labs#1946))
([fc2efad](matter-labs@fc2efad))
* **Prover CLI:** `status batch` bugs
([matter-labs#1865](matter-labs#1865))
([09682f2](matter-labs@09682f2))
* **utils:** bincode ser-/deserialization for `BytesToHexSerde`
([matter-labs#1947](matter-labs#1947))
([a75b917](matter-labs@a75b917))

---
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 <[email protected]>
🤖 I have created a release *beep* *boop*
---


##
[14.2.0](matter-labs/zksync-era@prover-v14.1.1...prover-v14.2.0)
(2024-05-17)


### Features

* Added support for making EN a (non-leader) consensus validator
(BFT-426)
([matter-labs#1905](matter-labs#1905))
([9973629](matter-labs@9973629))
* **configs:** Extract secrets to an additional config
([matter-labs#1956](matter-labs#1956))
([bab4d65](matter-labs@bab4d65))
* **eth-client:** Generalize RPC client
([matter-labs#1898](matter-labs#1898))
([a4e099f](matter-labs@a4e099f))
* **Prover CLI:** `delete` cmd
([matter-labs#1802](matter-labs#1802))
([6e4a92e](matter-labs@6e4a92e))
* **Prover CLI:** `requeue` cmd
([matter-labs#1719](matter-labs#1719))
([f722df7](matter-labs@f722df7))
* **Prover CLI:** `status batch --verbose`
([matter-labs#1899](matter-labs#1899))
([cf80184](matter-labs@cf80184))
* **state-keeper:** Parallel l2 block sealing
([matter-labs#1801](matter-labs#1801))
([9b06dd8](matter-labs@9b06dd8))
* tee_verifier_input_producer
([matter-labs#1860](matter-labs#1860))
([fea7f16](matter-labs@fea7f16))


### Bug Fixes

* **Prover CLI:** `status batch` bugs
([matter-labs#1865](matter-labs#1865))
([09682f2](matter-labs@09682f2))
* **prover:** Bump Cargo.lock and update VKs
([matter-labs#1959](matter-labs#1959))
([367baad](matter-labs@367baad))

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

Current zk init has multiple issues

- it tries to run the server genesis setup before l1 contracts are
deployed which result the following error

```
Error: Failed to save SetChainId upgrade transaction

Caused by:
    Expected a single set_chain_id event, got these 0: []

Stack backtrace:
   0: std::backtrace_rs::backtrace::libunwind::trace
             at /rustc/5c6a7e71cd66705c31c9af94077901a220f0870c/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1: std::backtrace_rs::backtrace::trace_unsynchronized
             at /rustc/5c6a7e71cd66705c31c9af94077901a220f0870c/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2: std::backtrace::Backtrace::create
             at /rustc/5c6a7e71cd66705c31c9af94077901a220f0870c/library/std/src/backtrace.rs:331:13
   3: std::backtrace::Backtrace::capture
             at /rustc/5c6a7e71cd66705c31c9af94077901a220f0870c/library/std/src/backtrace.rs:297:9
   4: anyhow::error::<impl anyhow::Error>::msg
   5: zksync_server::main::{{closure}}
   6: tokio::runtime::park::CachedParkThread::block_on
   7: tokio::runtime::context::runtime::enter_runtime
   8: tokio::runtime::runtime::Runtime::block_on
   9: zksync_server::main
  10: std::sys_common::backtrace::__rust_begin_short_backtrace
  11: std::rt::lang_start::{{closure}}
  12: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once
             at /rustc/5c6a7e71cd66705c31c9af94077901a220f0870c/library/core/src/ops/function.rs:284:13
  13: std::panicking::try::do_call
             at /rustc/5c6a7e71cd66705c31c9af94077901a220f0870c/library/std/src/panicking.rs:524:40
  14: std::panicking::try
             at /rustc/5c6a7e71cd66705c31c9af94077901a220f0870c/library/std/src/panicking.rs:488:19
  15: std::panic::catch_unwind
             at /rustc/5c6a7e71cd66705c31c9af94077901a220f0870c/library/std/src/panic.rs:142:14
  16: std::rt::lang_start_internal::{{closure}}
             at /rustc/5c6a7e71cd66705c31c9af94077901a220f0870c/library/std/src/rt.rs:148:48
  17: std::panicking::try::do_call
             at /rustc/5c6a7e71cd66705c31c9af94077901a220f0870c/library/std/src/panicking.rs:524:40
  18: std::panicking::try
             at /rustc/5c6a7e71cd66705c31c9af94077901a220f0870c/library/std/src/panicking.rs:488:19
  19: std::panic::catch_unwind
             at /rustc/5c6a7e71cd66705c31c9af94077901a220f0870c/library/std/src/panic.rs:142:14
  20: std::rt::lang_start_internal
             at /rustc/5c6a7e71cd66705c31c9af94077901a220f0870c/library/std/src/rt.rs:148:20
  21: _main
  22: <unknown>
  ```
  
  - The DB is initialized twices which slow down the init process

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] PR title corresponds to the body of PR (we generate changelog entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
- [x] Linkcheck has been run via `zk linkcheck`.
## What ❔

Release-stable-en.yml should remove -alpha from all tags across all
repos.

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [ ] 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 `zk fmt` and `zk lint`.
- [ ] Spellcheck has been run via `zk spellcheck`.
…labs#1977)

## What ❔

Just making actions/checkout consistent everywhere across all CI
workflows

## Why ❔

To get latest/non-deprecated version of GHA action

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] 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 `zk fmt` and `zk lint`.
- [ ] Spellcheck has been run via `zk spellcheck`.
## What ❔

- Makes health status "affected" if the tree API is not available.
- Distinguishes between "tree API not enabled on the node" and "tree API
temporarily unavailable" errors.

## Why ❔

Right now, the status is "not ready", meaning that the entire app health
status is "not ready" as well. This makes API servers excluded from
serving traffic, which is not desirable (they can still serve all of
requests other than `zks_getProof`).

## Checklist

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
…#1968)

## What ❔

Remove dependency from dev.env envs from ts-tests

## Why ❔

For migrating it later to file-based config we have to consolidate all
env calls into one place

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [ ] 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 `zk fmt` and `zk lint`.
- [ ] Spellcheck has been run via `zk spellcheck`.

---------

Signed-off-by: Danil <[email protected]>
## What ❔

Fixes minor issues with the EN:

- Transient error detection for RPC clients is suboptimal, leading to
what really is a transient error crashing consistency checker.
- Since refactoring signal handling, `ManagedTasks::wait_single()` on EN
may inappropriately log task termination errors even after a signal is
being received.
- Since recent refactoring (?), block fetcher doesn't tag its L2 client.
- Block fetcher may produce many rate limiting logs, which currently
have WARN level.
- Initializing L2 client multiple times (e.g., in a load test) produces
many WARN logs.

## Why ❔

Improves EN UX.

## Checklist

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
…ter-labs#1948)

## What ❔

Reworks `EthInterface` to be an extension trait for L1 RPC client
instead of a separate entity.

## Why ❔

Allows to eliminate L1 client / `EthInterface` duplication and ensure
that the `EthInterface` wrapper code is covered by tests.

## Checklist

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
…#1988)

## What ❔

Runs `MainNodeFeeParamsFetcher` in `run_api`.
Removes it from `run_core`.

## Why ❔

En's core doesn't use `MainNodeFeeParamsFetcher`. API uses it. API
operated normally only if Core and Api are launched in the same process
which is not true for distributed nodes. The PR fixes it

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [ ] 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 `zk fmt` and `zk lint`.
- [ ] Spellcheck has been run via `zk spellcheck`.
## What ❔

Add check to `set_tx_id` query, that doesn't allow to update tx_id if it
is not NULL.

## Why ❔

To prevent issues when 1 batch can be commited 2 times.

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
)

This PR adds a check to the batch status command to show that a batch
does not exist or that the proving process for it has already finished.

## Checklist

- [x] 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.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
…abs#1995)

## What ❔

- Adds foundry installation to zk-environment Dockerfile

## Why ❔

- This is necessary for adding CI to zk_toolbox

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
## What ❔

<!-- What are the changes this PR brings about? -->
<!-- Example: This PR adds a PR template to the repo. -->
<!-- (For bigger PRs adding more context is appreciated) -->

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [ ] 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 `zk fmt` and `zk lint`.
- [ ] Spellcheck has been run via `zk spellcheck`.
## What ❔

Integrate GPU proof compressors into monorepo.
GPU compressors can be run with `gpu` feature.

## Why ❔

Running compressors with GPU significantly improves efficiency.
CPU compressor average proving time - 15 minutes
GPU compressor average proving time - 2 minutes

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
- [x] Linkcheck has been run via `zk linkcheck`.
🤖 I have created a release *beep* *boop*
---


##
[24.4.0](matter-labs/zksync-era@core-v24.3.0...core-v24.4.0)
(2024-05-21)


### Features

* **prover:** add GPU feature for compressor
([matter-labs#1838](matter-labs#1838))
([e9a2213](matter-labs@e9a2213))
* **pruning:** remove manual vaccum; add migration configuring
autovacuum
([matter-labs#1983](matter-labs#1983))
([3d98072](matter-labs@3d98072))
* **tests:** Move all env calls to one place in ts-tests
([matter-labs#1968](matter-labs#1968))
([3300047](matter-labs@3300047))


### Bug Fixes

* Disallow non null updates for transactions
([matter-labs#1951](matter-labs#1951))
([a603ac8](matter-labs@a603ac8))
* **en:** Minor node fixes
([matter-labs#1978](matter-labs#1978))
([74144e8](matter-labs@74144e8))
* **en:** run `MainNodeFeeParamsFetcher` in API component
([matter-labs#1988](matter-labs#1988))
([b62677e](matter-labs@b62677e))
* **merkle-tree:** Fix tree API health check status
([matter-labs#1973](matter-labs#1973))
([6235561](matter-labs@6235561))

---
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 <[email protected]>
I need matter-labs/era-consensus#114 to be
included, so start testing EN validator mode (on stage).
…tter-labs#1893)

Prover queue metrics jobs are adnotate with protocol version. These
metrics are used for autoscaling jobs. These changes will enable
autoscaling different pools of provers at the same time, with different
protocol versions.

The change is necessary for a better protocol upgrade procedure. Flow in
the past: Start protocol upgrade, finalize all old provers, deploy new
provers, finish protocol upgrade.
Flow in the future: Deploy both new and old provers. Be independent of
protocol upgrade and require no manual timing of deployment.

The metrics will be used in autoscaler to tell what versions to have up.
Autoscaler will have a configuration similar to:
deployment green - metric protocol_version=22 - tag prover-v13.0.0
deployment blue - metric protocol_version=24 - tag prover-v14.0.0

The metrics will inform how many instances of each component will be
needed per version.

NOTE: There are some refactorings involved for the upcoming core/prover
house_keeper split. Whilst they could've been separated in a different
PR, they've been done together given CI's condition.
NOTE2: We should really migrate to `vise`. Left it out for this PR as it
was growing enough as is (+ adds operational risks).

---------

Co-authored-by: Artem Fomiuk <[email protected]>
Follow-up PR for
https://github.com/matter-labs/zksync-era/pull/1946/files
context:
https://github.com/matter-labs/zksync-era/pull/1946/files#r1602029812

## What ❔
+ return correct `gas_limit` and `gas_used`
+ Improve the `ws` unit test to check the full response 

## Why ❔


## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
…tches in parallel (matter-labs#1984)

## What ❔

Generates commitments with configurable parallelism.

## Why ❔

- As long as produced commitments are persisted in the same order as
previously (not even atomically), there's still a cursor to be used by
the commitment generator.
- Can provide speed up during node recovery (esp. if treeless mode is
used). Also can speed up some integration tests.

## Checklist

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
## What ❔

Add protocol_version label to WG jobs metric

## Why ❔

To be able to use autoscaler for protocol versions

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
## What ❔

- Add zk toolbox 

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.

---------

Signed-off-by: Danil <[email protected]>
Co-authored-by: Ramon "9Tails" Canales <[email protected]>
Co-authored-by: Danil <[email protected]>
…ter-labs#1987)

## What ❔

Resolve unit conversion problem when reporting current balance of
loadtest wallet

## Why ❔

![Screenshot 2024-05-20 at 12 17
13](https://github.com/matter-labs/zksync-era/assets/1053184/2a53090f-c7c7-4f1f-9e1c-78b3893b46e9)
tomg10 and others added 25 commits May 29, 2024 14:07
## What ❔

Makes protective reads sorted

## Why ❔

Fix bug

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [ ] 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 `zk fmt` and `zk lint`.
- [ ] Spellcheck has been run via `zk spellcheck`.
## What ❔

Add `prover_version`, which prints current prover protocol version.


<!-- What are the changes this PR brings about? -->
<!-- Example: This PR adds a PR template to the repo. -->
<!-- (For bigger PRs adding more context is appreciated) -->

## Why ❔

To use in CI.
<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] 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.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [ ] Spellcheck has been run via `zk spellcheck`.
## What ❔

Updates zk_evm 

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [ ] 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 `zk fmt` and `zk lint`.
- [ ] Spellcheck has been run via `zk spellcheck`.
## What ❔

Emit protocol version from database in metrics.

## Why ❔

Before we were emitting hardcoded protocol version, which is not
accurate

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
## What ❔

Adds support for protocol semantic versions. Major version is always 0.
Minor version has the same meaning as the previous concept of protocol
version we used. Patch version can be bumped only for vks upgrades.
Adds new DB table `protocol_vk_patches` that keeps track of patch
versions.
- eth watcher was updated correspondingly to L1 contracts changes, now
it also saves data to `protocol_vk_patches`
- proof data handler passes and accepts protocol semantic version for
each batch/final proof
- eth sender determines patch version for batch proofs from L1 and waits
for the proof generated for the patch to be present in GCS

## Why ❔

It makes it possible to upgrade vks without bumping minor part of
protocol version.

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.

Part of EVM-648

---------

Co-authored-by: Stanislav Breadless <[email protected]>
Co-authored-by: Artem Fomiuk <[email protected]>
## What ❔

Don't return results with NULL protocol version from DB.

## Why ❔

It's incorrect

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
…s#2096)

## What ❔

fixes on conflict statement

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [ ] 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 `zk fmt` and `zk lint`.
- [ ] Spellcheck has been run via `zk spellcheck`.
## What ❔

<!-- What are the changes this PR brings about? -->
<!-- Example: This PR adds a PR template to the repo. -->
<!-- (For bigger PRs adding more context is appreciated) -->

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [ ] 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 `zk fmt` and `zk lint`.
- [ ] Spellcheck has been run via `zk spellcheck`.
## What ❔

<!-- What are the changes this PR brings about? -->
<!-- Example: This PR adds a PR template to the repo. -->
<!-- (For bigger PRs adding more context is appreciated) -->

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [ ] 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 `zk fmt` and `zk lint`.
- [ ] Spellcheck has been run via `zk spellcheck`.

Signed-off-by: Danil <[email protected]>
## What ❔

Tag prover packages with protocol version.

Removes unneeded dependencies of `prover-version`.
Remove outdated images from builder:
- prover
- prover-v2
- circuit-synthesizer
<!-- What are the changes this PR brings about? -->
<!-- Example: This PR adds a PR template to the repo. -->
<!-- (For bigger PRs adding more context is appreciated) -->

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] 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.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
## What ❔

- Refactors zk_toolbox config to its own crate.
- Most ethers references were moved to alloy-rs. Remaining features
still unimplemented in alloy-rs will be migrated in the future.
- Config manipulations were left in zk_inception as those are specific
to the implementation.
- Add methods to read from yaml, toml and json files.
https://github.com/matter-labs/zksync-era/pull/2063/files#diff-151b929045cb8a5689467a85476811b61e1a3e84a6fe8b3d7b5a262e289bad95

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
## What ❔

<!-- What are the changes this PR brings about? -->
<!-- Example: This PR adds a PR template to the repo. -->
<!-- (For bigger PRs adding more context is appreciated) -->

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [ ] 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 `zk fmt` and `zk lint`.
- [ ] Spellcheck has been run via `zk spellcheck`.
## What ❔

fix CI for protocol version binary

## Why ❔

CI is not working

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
## What ❔

Fix protocol_version between jobs propagation in
build-prover-template.yml.

<!-- What are the changes this PR brings about? -->
<!-- Example: This PR adds a PR template to the repo. -->
<!-- (For bigger PRs adding more context is appreciated) -->

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] 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.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
…bs#2090)

## What ❔

Propagates errors in the batch executor instead of panicking.

## Why ❔

Batch executor somewhat frequently panics on node shutdown. This is
suboptimal UX, can lead to false positive bug reports etc.

## Checklist

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
## What ❔

- Follow rust formatting convention to zk_toolbox
- Add format and clippy to CI

<!-- What are the changes this PR brings about? -->
<!-- Example: This PR adds a PR template to the repo. -->
<!-- (For bigger PRs adding more context is appreciated) -->

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
## What ❔

Remove group by status clause

## Why ❔

It causes incorrectly returning values

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Tests for the changes have been added / updated.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
…labs#2080)

## What ❔

We plan to generally have all upgrades executed via a direct call to
diamond proxy.

While in principle it is possible that an upgrade comes via a direct
call through STM, this is a very rare circumstance and for now out of
scope

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [ ] 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 `zk fmt` and `zk lint`.
- [ ] Spellcheck has been run via `zk spellcheck`.
🤖 I have created a release *beep* *boop*
---


##
[24.5.0](matter-labs/zksync-era@core-v24.4.0...core-v24.5.0)
(2024-05-30)


### Features

* Add protocol_version label to WG jobs metric
([matter-labs#2009](matter-labs#2009))
([e0a3393](matter-labs@e0a3393))
* **config:** remove zksync home
([matter-labs#2022](matter-labs#2022))
([d08fe81](matter-labs@d08fe81))
* **en:** Improve tree snapshot recovery
([matter-labs#1938](matter-labs#1938))
([5bc8234](matter-labs@5bc8234))
* Make house keeper emit correct protocol version
([matter-labs#2062](matter-labs#2062))
([a58a7e8](matter-labs@a58a7e8))
* **node_framework:** Migrate main node to the framework
([matter-labs#1997](matter-labs#1997))
([27a26cb](matter-labs@27a26cb))
* **node_framework:** Synchronize pools layer with logic in
initialize_components
([matter-labs#2079](matter-labs#2079))
([3202461](matter-labs@3202461))
* Protocol semantic version
([matter-labs#2059](matter-labs#2059))
([3984dcf](matter-labs@3984dcf))
* **prover:** Adnotate prover queue metrics with protocol version
([matter-labs#1893](matter-labs#1893))
([d1e1004](matter-labs@d1e1004))
* save writes needed for tree in state keeper
([matter-labs#1965](matter-labs#1965))
([471af53](matter-labs@471af53))
* **test:** Add filebased config support for integration tests
([matter-labs#2043](matter-labs#2043))
([be3ded9](matter-labs@be3ded9))
* **vm-runner:** implement VM runner main body
([matter-labs#1955](matter-labs#1955))
([bf5b6c2](matter-labs@bf5b6c2))


### Bug Fixes

* **API:** polish web3 api block-related types
([matter-labs#1994](matter-labs#1994))
([6cd3c53](matter-labs@6cd3c53))
* **en:** chunk factory deps
([matter-labs#2077](matter-labs#2077))
([4b9e6fa](matter-labs@4b9e6fa))
* **en:** Fix recovery-related metrics
([matter-labs#2014](matter-labs#2014))
([86355d6](matter-labs@86355d6))
* **eth-watch:** Do not track for stm, only for diamond proxy
([matter-labs#2080](matter-labs#2080))
([87adac9](matter-labs@87adac9))
* fix metrics reporting wrong values
([matter-labs#2065](matter-labs#2065))
([2ec010a](matter-labs@2ec010a))
* **loadtest:** resolve unit conversion error in loadtest metrics
([matter-labs#1987](matter-labs#1987))
([b5870a0](matter-labs@b5870a0))
* **merkle-tree:** Fix incoherent Merkle tree view
([matter-labs#2071](matter-labs#2071))
([2fc9a6c](matter-labs@2fc9a6c))
* **metadata-calculator:** protective reads sort
([matter-labs#2087](matter-labs#2087))
([160c13c](matter-labs@160c13c))
* **node_framework:** Fix the connection pool size for the catchup task
([matter-labs#2046](matter-labs#2046))
([c00a2eb](matter-labs@c00a2eb))
* **node_framework:** Use custom pool for commitiment generator
([matter-labs#2076](matter-labs#2076))
([994df8f](matter-labs@994df8f))
* **protocol_version:** Add backward compatibility
([matter-labs#2097](matter-labs#2097))
([391624b](matter-labs@391624b))
* **pruning:** Fix DB pruner responsiveness during shutdown
([matter-labs#2058](matter-labs#2058))
([0a07312](matter-labs@0a07312))
* **zk_toolbox:** Use both folders for loading contracts
([matter-labs#2030](matter-labs#2030))
([97c6d5c](matter-labs@97c6d5c))


### Performance Improvements

* **commitment-generator:** Run commitment generation for multiple
batches in parallel
([matter-labs#1984](matter-labs#1984))
([602bf67](matter-labs@602bf67))

---
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 <[email protected]>
🤖 I have created a release *beep* *boop*
---


##
[14.4.0](matter-labs/zksync-era@prover-v14.3.0...prover-v14.4.0)
(2024-05-30)


### Features

* Make house keeper emit correct protocol version
([matter-labs#2062](matter-labs#2062))
([a58a7e8](matter-labs@a58a7e8))
* **pli:** add support for persistent config
([matter-labs#1907](matter-labs#1907))
([9d5631c](matter-labs@9d5631c))
* Protocol semantic version
([matter-labs#2059](matter-labs#2059))
([3984dcf](matter-labs@3984dcf))
* **prover:** Add `prover_version` binary.
([matter-labs#2089](matter-labs#2089))
([e1822f6](matter-labs@e1822f6))


### Bug Fixes

* fix null protocol version error
([matter-labs#2094](matter-labs#2094))
([aab3a7f](matter-labs@aab3a7f))
* fix query for proof compressor metrics
([matter-labs#2103](matter-labs#2103))
([d23d24e](matter-labs@d23d24e))
* **prover_dal:** fix `save_prover_protocol_version` query
([matter-labs#2096](matter-labs#2096))
([d8dd1ae](matter-labs@d8dd1ae))

---
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: perekopskiy <[email protected]>
## What ❔

Move string constants to an additional file

## Why ❔

Easily change messages for the toolbox and allow translations in the
future.
## What ❔

Fixes queries

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [ ] 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 `zk fmt` and `zk lint`.
- [ ] Spellcheck has been run via `zk spellcheck`.
🤖 I have created a release *beep* *boop*
---


##
[24.5.1](matter-labs/zksync-era@core-v24.5.0...core-v24.5.1)
(2024-05-31)


### Bug Fixes

* **house-keeper:** Fix queue size queries
([matter-labs#2106](matter-labs#2106))
([183502a](matter-labs@183502a))

---
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 <[email protected]>
Warning: bumps contracts for STM contract, do not merge until contracts
are merged.

## What ❔

<!-- What are the changes this PR brings about? -->
<!-- Example: This PR adds a PR template to the repo. -->
<!-- (For bigger PRs adding more context is appreciated) -->

## Why ❔

<!-- Why are these changes done? What goal do they contribute to? What
are the principles behind them? -->
<!-- Example: PR templates ensure PR reviewers, observers, and future
iterators are in context about the evolution of repos. -->

## Checklist

<!-- Check your PR fulfills the following items. -->
<!-- For draft PRs check the boxes as you complete them. -->

- [ ] 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 `zk fmt` and `zk lint`.
- [ ] Spellcheck has been run via `zk spellcheck`.
- [ ] Linkcheck has been run via `zk linkcheck`.

---------

Co-authored-by: Stanislav Breadless <[email protected]>
@ilitteri ilitteri changed the title Merge main chore: merge main May 31, 2024
@jrchatruc jrchatruc merged commit 1c5229c into main Jul 24, 2024
20 of 29 checks passed
@jrchatruc jrchatruc deleted the merge-main branch July 24, 2024 12:34
toni-calvin pushed a commit that referenced this pull request Aug 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.