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

feat(main): eigen client m0 implementation #347

Open
wants to merge 64 commits into
base: eigen-client-extra-features
Choose a base branch
from

Conversation

juan518munoz
Copy link

@juan518munoz juan518munoz commented Nov 19, 2024

What ❔

Add needed features for Eigen client M0 implementation:

Why ❔

Extend data availability functionality

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
matter-labs/zksync-era-workflows#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
* initial commit

* impl TODO query for concurrent dispatcher
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`.
otani88 and others added 12 commits November 15, 2024 15:48
## 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]>
juan518munoz and others added 16 commits November 19, 2024 17:32
* initial commit

* initial commit

* fix ambiguous job name & add docker restart command

* fix integration test command

* update readme, remove fetching lambda repo

* reorganize readme instructions

* Fix concurrent dispatcher (#338)

* Add shutdown to dispatch batches

* Add JoinSet

* Format code

* Fix unbounded channel breaking authenticated dispersal

* Fix pr comments

* feat(eigen-client-m0-implementation): optimize concurrent dispatcher (#345)

* initial commit

* optimize dispatch_batches fn

* remove commented code

* remove needless variables

* optimize inclusion_poller fn

* break loop if dispatch fail

* remove client_lock variable

* switch to retriable err

* replace arbitrary value with config

---------

Co-authored-by: Gianbelinche <[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.
* initial commit

* add get_all_blobs

* get_all_blobs fmt

* add colored output

* update contracts submodule

* add proxy to get_all_blobs

* fixes

* update cargo lock

* fix readme

* initial impl move get all blobs to rust

* remove get_all_blob js implementation

* Simplify get all blobs toml

* Add parameters

* Add get all blobs steps on readme

* Make loop for getting blobs

* Add log for blocks proccessed

* Add constants

* update contracts submodule

---------

Co-authored-by: Gianbelinche <[email protected]>
…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.
…main

Merge Extra features with main to M0
@juanbono juanbono marked this pull request as ready for review November 22, 2024 22:10
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.