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

Merge Extra features with main to M0 #355

Merged

Conversation

gianbelinche
Copy link

What ❔

This PR merges extra features with main merged to m0.

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 zkstack dev fmt and zkstack dev lint.

perekopskiy and others added 30 commits November 11, 2024 08:24
## What ❔

Ignores RUSTSEC advisory for `derivative` crate being unmaintained

## 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 `zkstack dev fmt` and `zkstack dev
lint`.
## What ❔

Closes matter-labs#3245

## Why ❔

See matter-labs#3245 for more details. TLDR better compatibility with ETH spec.

## 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.
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zkstack dev fmt` and `zkstack dev
lint`.
## What ❔

- Moves some of functionality of the `utils` crate to `basic_types`,
such as conversions, `div_ceil_u256`, and `serde_wrappers`.
- Inlines time-related utils at call sites (mostly the state keeper).

## Why ❔

- `utils` has moderately heavyweight deps (`tokio`, `reqwest`), which
are not necessary for basic functionality.
- Basic functionality better fits in `basic_types` by domain.

## 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 `zkstack dev fmt` and `zkstack dev
lint`.
…3198)

## What ❔
Migrate build core and prover release workflows to new re-usable
workflows

## Why ❔
Improve CI 

## 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 `zkstack dev fmt` and `zkstack dev
lint`.
## 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) -->

This PR accomplishes two things:
1. Improves the precision with which the loadtest contract can be
configured by splitting writes into two categories&mdash;initial and
repeated&mdash;since the cost associated with each is different.
2. Introduces a set of standards which can be used to determine
appropriate loadtest configurations. SQL queries are provided to assist
in the calculations.

## 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. -->

Currently, the loadtests do not produce activity that closely emulates
mainnet activity.

## 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. (See
https://github.com/matter-labs/zksync-era-workflows/pull/229)
- [x] Documentation comments have been added / updated.
- [x] Code has been formatted via `zk fmt` and `zk lint`.

---------

Co-authored-by: Roman Brodetski <[email protected]>
## What ❔

Fixes RocksDB termination in a unit test.

## Why ❔

Without such a termination, the test sporadically fails with the
"terminate called without an active exception" message.

## 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] Code has been formatted via `zkstack dev fmt` and `zkstack dev
lint`.
…atter-labs#3241)

## 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. -->

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

ref ZKD-1855

---------

Co-authored-by: EmilLuta <[email protected]>
## What ❔

Fix invalid `if` usage for `use_dummy_inclusion_data` flag.

## 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 `zkstack dev fmt` and `zkstack dev
lint`.
## What ❔
Update workflows

## Why ❔
For optimize CI/CD time

## 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 `zkstack dev fmt` and `zkstack dev
lint`.
…bs#3200)

## What ❔

Implements a background task to remove bogus stale keys for the Merkle
tree.

## Why ❔

These keys could have been produced during L1 batch reverts before
matter-labs#3178.

## 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 `zkstack dev fmt` and `zkstack dev
lint`.
…atter-labs#3251)

## What ❔

- Supports the Vyper toolchain for EVM bytecodes in the contract
verifier.
- Adds some more unit tests for the verifier (e.g., testing multi-file
inputs, Yul contracts, abstract contract errors etc.).

## Why ❔

Part of preparations to support EVM bytecodes throughout the codebase.

## 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 `zkstack dev fmt` and `zkstack dev
lint`.
* Add `deploy-timestamp-asserter` command to `zkstack` that works
similarly to `deploy-multicall3` and others. The command deploys
`TimestampAsserter` contract and updates it's address in
`contracts.yaml`;
* Update `contracts` submodule to the version that has the required
function added.

Sister [PR](matter-labs/era-contracts#1058) in
the `era-contracts` repo
matter-labs#3240)

## What ❔

- Introduces `build` and `wait` subcommands for server, EN and contract
verifier.
- Uses these commands in CI (integration tests job).

## Why ❔

These commands help preventing races between compilation and test logic.

## 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 `zkstack dev fmt` and `zkstack dev
lint`.

ci: Eliminate races between compilation and test logic in integration
tests
## What ❔

Ports VM changes to vm_fast that are needed for gateway version. Code
changes are mostly copied from vm_latest

## Why ❔

vm_fast should support new protocol version

## 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 `zkstack dev fmt` and `zkstack dev
lint`.
…3254)

## What ❔

Restored previously deleted intructions on how to enable p2p syncing. It
should remain until we deprecate JSON RPC syncing.
…#3134)

## 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) -->
Update docs to mention foundry zksync, and other changes to the CLI.

## 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 `zkstack dev fmt` and `zkstack dev
lint`.

---------

Co-authored-by: Daniyar Itegulov <[email protected]>
Co-authored-by: Devashish Dixit <[email protected]>
Co-authored-by: Artur Puzio <[email protected]>
Co-authored-by: Sarah Schwartz <[email protected]>
Co-authored-by: Antonio <[email protected]>
Removed the default gossip outbound peers list, obsoleted in favor of
seed_peers. Bumped EN image version in docker file.
…#3211)

if for any reason p2p syncing is behind, json RPC syncing will activate.
This is a protective measure for while we deploy changes to the
consensus algorithm.

Fixes BFT-516
## What ❔

Uses default experimental VM config when initializing the main node.

## Why ❔

Currently, the experimental VM config is required in certain cases,
which may lead to panics during node initialization.

## Checklist

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Code has been formatted via `zkstack dev fmt` and `zkstack dev
lint`.
## What ❔

- Docker build script checked for wrong forge version (foundry-zksync
reports a forge version 0.0.2)
- Dev setup guide stated the wrong command to install foundry-zksync
(current one wouldn't work)
…3258)

## What ❔

Moves bytecode hashing logic to `zksync_basic_types`.

## Why ❔

It belongs there by domain and further simplifies the dependency graph.

## 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 `zkstack dev fmt` and `zkstack dev
lint`.
## What ❔
Fix new version of reusable workflow 

## Why ❔
It was broke publishing releases

## 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 `zkstack dev fmt` and `zkstack dev
lint`.
## What ❔
Fix for contract verifier  workflow

## Why ❔
It's broken

## 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 `zkstack dev fmt` and `zkstack dev
lint`.
matter-labs#3282)

## What ❔

Breaking change: config option `min_provers` is a number now!
Add `apply_min_to_namespace` to specify which namespace is primary now,
`min_*` is applied only to primary namespace.
Add `min_replicas` for SimpleScaler.

<!-- 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 allow Witness Generators and Proof Compressors to always run, if
needed. This will remove pod start delay of about 2 minutes when new job
appears in the queue.

<!-- 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 `zkstack dev fmt` and `zkstack dev
lint`.

ref ZKD-1855
…er-labs#3275)

## What ❔

* [x] Convert `docs` core project documentation to [mdBook
project](https://rust-lang.github.io/mdBook/)
* [x] Convert `prover/docs` prover project documentation to [mdBook
project](https://rust-lang.github.io/mdBook/)
* [x] Add CI workflows to build, test, and deploy versioned
documentation for these projects using
https://github.com/matter-labs/deploy-mdbooks action

<!-- 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 ❔

Fixes matter-labs#3185

To improve documentation visibility and usability in ZKsync era
repository.

<!-- 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. -->

## Tests

Deployed documentation examples are available in the fork:
* For core project:
https://antonbaliasnikov.github.io/zksync-era/core/latest/
* For prover project:
https://antonbaliasnikov.github.io/zksync-era/prover/latest/

## Design decisions

It was chosen to use two different workflow files for documentation
deployments to keep CI reliable and easy to support regardless of a bit
of boilerplate code. [Solution with the unified
workflow](https://github.com/antonbaliasnikov/zksync-era/blob/main/.github/deploy-docs.yml)
for both projects was implemented but rejected as it is overcomplicated
and more difficult to support in the long term.

## 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 `zkstack dev fmt` and `zkstack dev
lint`.
## What ❔
Add more tags for prover subsystem docker images

## Why ❔
Backward compatible

## 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 `zkstack dev fmt` and `zkstack dev
lint`.
…-labs#3289)

## What ❔

Update `deploy-mdbooks` action 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 fix displaying of Mermaid diagrams.

<!-- 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 `zkstack dev fmt` and `zkstack dev
lint`.
…tion (matter-labs#3290)

## What ❔
Fixing docker tags for provers

## Why ❔
It isn't enough for now

## 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 `zkstack dev fmt` and `zkstack dev
lint`.
EmilLuta and others added 22 commits November 15, 2024 14:13
This is PR 2 out of 5.

## Upcoming PRs:
- refactor remaining code (circuit_prover main, keystore, etc.)
- add tests & example for the framework
- remove witness_vector_generator & prover_fri

## How to review this PR?
- I'd recommend going through the README's (first
[prover_job_processor](https://github.com/matter-labs/zksync-era/pull/3287/files#diff-49a3b8fb328da83d986d678b60142b207580e36b6c39d6fe19837801b2e86bdf),
then
[circuit_prover_service](https://github.com/matter-labs/zksync-era/pull/3287/files#diff-ee07b5d87c31d71235b0ae764c28fb413891712a770a7751a52ef072c945d4bb))
- Compare existing circuit prover implementation with this one

## What?

This PR touches 2 concepts:
- Prover Job Processor - some sort of "framework" to make prover
components more maintainable; it aims to make prover code more async &
faster, provide more configurability, simplifies testing and makes
writing new prover components easy
- Circuit Prover - a complete rewrite to showcase Prover Job Processor

## Why?

Check ProverJobProcessor [README.md - objectives
section](https://github.com/matter-labs/zksync-era/pull/3287/files#diff-49a3b8fb328da83d986d678b60142b207580e36b6c39d6fe19837801b2e86bdfR110).

## Testing

Ran on local setup, L4 & T4.
## What ❔
Revert latest tag for docker image on prover subsystem

## Why ❔
It was present

## 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 `zkstack dev fmt` and `zkstack dev
lint`.
## What ❔

Extracts test contracts to a separate crate with a reasonable build
pipeline.

## Why ❔

For now, test contracts are distributed across multiple crates (e.g.,
loaded using hardcoded paths in the workspace). This is not maintainable
and makes the codebase harder to publish and use.

## 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_supervisor fmt` and `zk_supervisor
lint`.
## What ❔
Migrate release workflows to new build templates

## Why ❔
For optimize speed of CI/CD

## 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 `zkstack dev fmt` and `zkstack dev
lint`.
🤖 I have created a release *beep* *boop*
---


##
[17.1.0](matter-labs/zksync-era@prover-v17.0.0...prover-v17.1.0)
(2024-11-18)


### Features

* Add min_replicas for SimpleScaler, apply_min_to_namespace config
([matter-labs#3282](matter-labs#3282))
([bc00c4a](matter-labs@bc00c4a))
* allow vm2 tracers to stop execution
([matter-labs#3183](matter-labs#3183))
([9dae839](matter-labs@9dae839))
* **contract-verifier:** Support Solidity contracts with EVM bytecode in
contract verifier
([matter-labs#3225](matter-labs#3225))
([8a3a82c](matter-labs@8a3a82c))
* **prover:** Add cluster name autodetection
([matter-labs#3227](matter-labs#3227))
([bd32aec](matter-labs@bd32aec))
* **prover:** Add queue metric to report autoscaler view of the queue.
([matter-labs#3206](matter-labs#3206))
([2721396](matter-labs@2721396))
* ProverJobProcessor & circuit prover
([matter-labs#3287](matter-labs#3287))
([98823f9](matter-labs@98823f9))
* **prover:** Move prover_autoscaler config into crate
([matter-labs#3222](matter-labs#3222))
([1b33b5e](matter-labs@1b33b5e))


### Bug Fixes

* **prover:** Remove unneeded dependencies, add default for
graceful_shutdown_timeout
([matter-labs#3242](matter-labs#3242))
([1bfff0e](matter-labs@1bfff0e))

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

CI is broken due to contracts not being recursively inited. This PR
fixes it.
## What ❔

Add a `sealed_at` column to the `l1_batches` table and extend the
tee_prover metrics.

## Why ❔

The duration metric of sealed -> TEE proven is of special interest for
Interop. It should not regress and should be optimized in future
development.

## 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 `zkstack dev fmt` and `zkstack dev
lint`.

---------

Signed-off-by: Harald Hoyer <[email protected]>
## 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 `zkstack dev fmt` and `zkstack dev
lint`.

---------

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

Make prover e2e test mandatory for merging the PRs
Fix prover e2e test

## 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 `zkstack dev fmt` and `zkstack dev
lint`.

fix ZKD-2081
🤖 I have created a release *beep* *boop*
---


##
[25.2.0](matter-labs/zksync-era@core-v25.1.0...core-v25.2.0)
(2024-11-19)


### Features

* add more metrics for the tee_prover
([matter-labs#3276](matter-labs#3276))
([8b62434](matter-labs@8b62434))
* **api-server:** add `yParity` for non-legacy txs
([matter-labs#3246](matter-labs#3246))
([6ea36d1](matter-labs@6ea36d1))
* **consensus:** fallback json rpc syncing for consensus
([matter-labs#3211](matter-labs#3211))
([726203b](matter-labs@726203b))
* **contract-verifier:** Adapt contract verifier API for EVM bytecodes
([matter-labs#3234](matter-labs#3234))
([4509179](matter-labs@4509179))
* **contract-verifier:** Support Solidity contracts with EVM bytecode in
contract verifier
([matter-labs#3225](matter-labs#3225))
([8a3a82c](matter-labs@8a3a82c))
* **contract-verifier:** Support Vyper toolchain for EVM bytecodes
([matter-labs#3251](matter-labs#3251))
([75f7db9](matter-labs@75f7db9))
* **en:** Support Merkle tree recovery with pruning enabled
([matter-labs#3172](matter-labs#3172))
([7b8640a](matter-labs@7b8640a))
* ProverJobProcessor & circuit prover
([matter-labs#3287](matter-labs#3287))
([98823f9](matter-labs@98823f9))
* **prover:** Move prover_autoscaler config into crate
([matter-labs#3222](matter-labs#3222))
([1b33b5e](matter-labs@1b33b5e))
* **vm_executor:** Add new histogram metric for gas per tx in
vm_executor
([matter-labs#3215](matter-labs#3215))
([3606fc1](matter-labs@3606fc1))
* **vm:** add gateway changes to fast vm
([matter-labs#3236](matter-labs#3236))
([f3a2517](matter-labs@f3a2517))


### Bug Fixes

* **merkle-tree:** Repair stale keys for tree in background
([matter-labs#3200](matter-labs#3200))
([363b4f0](matter-labs@363b4f0))
* **tracer:** Add error to flat tracer
([matter-labs#3306](matter-labs#3306))
([7c93c47](matter-labs@7c93c47))
* use_dummy_inclusion_data condition
([matter-labs#3244](matter-labs#3244))
([6e3c36e](matter-labs@6e3c36e))
* **vm:** Do not require experimental VM config
([matter-labs#3270](matter-labs#3270))
([54e4b00](matter-labs@54e4b00))

---
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]>
## What ❔
Fix docker tag in core reusable template

## Why ❔
EN alpha part was missed in tag

## 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 `zkstack dev fmt` and `zkstack dev
lint`.
Metrics were not exported for circuit prover. Prometheus exporter will
export metrics.
…atter-labs#2980)

## What ❔

`/tee/proof_inputs` endpoint no longer returns batches that have no
corresponding object file in Google Cloud Storage for an extended
period.

## Why ❔

TEE's `proof-data-handler` on `mainnet` was flooded with warnings.

Since the recent `mainnet`'s `24.25.0` redeployment, we've been [flooded
with warnings][warnings] for the `proof-data-handler` on `mainnet` (the
warnings are actually _not_ fatal in this context):
```
Failed request with a fatal error

(...)

Blobs for batch numbers 490520 to 490555 not found in the object store. Marked as unpicked.
```
The issue is caused [by the code][code] behind the `/tee/proof_inputs`
[endpoint][endpoint_proof_inputs] (which is equivalent to the
`/proof_generation_data` [endpoint][endpoint_proof_generation_data]) –
it finds the next batch to send to the [requesting][requesting]
`tee-prover` by looking for the first batch that has a corresponding
object in the Google object store. As it skips over batches that don’t
have the objects, [it logs][logging] `Failed request with a fatal error`
for each one (unless the skipped batch was successfully proven, in which
case it doesn’t log the error). This happens with every request the
`tee-prover` sends, which is why we're getting so much noise in the
logs.

One possible solution is to flag the problematic batches as
`permanently_ignored`, like [Thomas did before][Thomas] on `mainnet`.

[warnings]: https://grafana.matterlabs.dev/goto/TjlaXQgHg?orgId=1
[code]:
https://github.com/matter-labs/zksync-era/blob/3f406c7d0c0e76d798c2d838abde57ca692822c0/core/node/proof_data_handler/src/tee_request_processor.rs#L35-L79
[endpoint_proof_inputs]:
https://github.com/matter-labs/zksync-era/blob/3f406c7d0c0e76d798c2d838abde57ca692822c0/core/node/proof_data_handler/src/lib.rs#L96
[endpoint_proof_generation_data]:
https://github.com/matter-labs/zksync-era/blob/3f406c7d0c0e76d798c2d838abde57ca692822c0/core/node/proof_data_handler/src/lib.rs#L67
[requesting]:
https://github.com/matter-labs/zksync-era/blob/3f406c7d0c0e76d798c2d838abde57ca692822c0/core/bin/zksync_tee_prover/src/tee_prover.rs#L93
[logging]:
https://github.com/matter-labs/zksync-era/blob/3f406c7d0c0e76d798c2d838abde57ca692822c0/core/lib/object_store/src/retries.rs#L56
[Thomas]:
https://matter-labs-workspace.slack.com/archives/C05ANUCGCKV/p1725284962312929

## 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`.
…tter-labs#3291)

Resolves matter-labs#3257

- Adds resolver multiplexer: implementation of resolver that would go
through list of resolvers, trying to find one that works.
- Adds GH resolver: implementation of resolver that is able to fetch
releases from GH dynamically
- Adds a task to periodically (1h) update the list of supported compiler
versions.
- GH resolver has a temporary kill switch: it can be disabled by setting
`DISABLE_GITHUB_RESOLVER` env variable (in case we notice any problems).

⚠️ This PR doesn't contain any new tests, because I'm not sure if we
want to rely on the availability of GH API. Mocking relevant parts (e.g.
creating an alternative mock client for octocrab) would be _very_
troublesome, so idk if it's justified. Happy to discuss.

I've checked the functionality manually though.
Copy link

github-actions bot commented Nov 22, 2024

Hey there! 👋🏼

We require pull request titles to follow the Conventional Commits specification and it looks like your proposed title needs to be adjusted.
Examples of valid PR titles:

  • feat(eth_sender): Support new transaction type
  • fix(state_keeper): Correctly handle edge case
  • ci: Add new workflow for linting

Details:

No release type found in pull request title "Merge Extra features with main to M0". Add a prefix to indicate what kind of release this pull request corresponds to. For reference, see https://www.conventionalcommits.org/

Available types:
 - feat: A new feature
 - fix: A bug fix
 - docs: Documentation only changes
 - style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
 - refactor: A code change that neither fixes a bug nor adds a feature
 - perf: A code change that improves performance
 - test: Adding missing tests or correcting existing tests
 - build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
 - ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
 - chore: Other changes that don't modify src or test files
 - revert: Reverts a previous commit

Base automatically changed from eigen-client-m0-with-extra to eigen-client-m0-implementation November 22, 2024 20:33
@juan518munoz juan518munoz merged commit f91bd58 into eigen-client-m0-implementation Nov 22, 2024
8 of 27 checks passed
@juan518munoz juan518munoz deleted the eigen-client-m0-extra-merge-main branch November 22, 2024 22:08
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.