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

Update from upstream #226

Merged
merged 359 commits into from
Jul 24, 2024
Merged

Update from upstream #226

merged 359 commits into from
Jul 24, 2024

Conversation

jrchatruc
Copy link
Member

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.

matias-gonz and others added 30 commits June 3, 2024 19:53
## What ❔

Updates the installing instructions for SQLx CLI

## Why ❔

Problems when compiling `clap_lex`:
`error[E0599]: no method named `as_encoded_bytes` found for reference
`&OsStr` in the current scope`
`error[E0599]: no function or associated item named
`from_encoded_bytes_unchecked` found for struct `OsStr` in the current
scope`
Note: healthchecks for `Main Node` and `Eth` client layers will be added
in the next PR(there is a general principle of change.)

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


##
[14.5.0](matter-labs/zksync-era@prover-v14.4.0...prover-v14.5.0)
(2024-06-04)


### Features

* update VKs and bump cargo.lock
([matter-labs#2112](matter-labs#2112))
([6510317](matter-labs@6510317))
* use semver for metrics, move constants to prover workspace
([matter-labs#2098](matter-labs#2098))
([7a50a9f](matter-labs@7a50a9f))


### Bug Fixes

* **block-reverter:** Fix reverting snapshot files
([matter-labs#2064](matter-labs#2064))
([17a7e78](matter-labs@17a7e78))
* **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).
…s#2131)

## What ❔

Adds a couple of metrics / logs for tree data fetcher related to
fetching data from L1. Follow-up after matter-labs#2000.

## Why ❔

These metrics / logs would allow to track tree data fetcher health more
thoroughly.

## 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`.
…#2017)

## What ❔

Adds a new component `vm_runner_protective_reads` that computes
protective reads independently and asynchronously from state keeper.

For now, the component does not actually save anything; instead, it
computes protective reads and compares them against what state keeper
has already written to the DB. So, in short, this is just the first
stepping stone aka a sanity check that the VM runner mechanism works as
intended.

## Why ❔

In the future, we want to be able to save protective reads
asynchronously thus saving time on L1 batch sealing.

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

Removes L1 client health check from EN.

## Why ❔

Doesn't bring that much value and leads to L1 client getting
rate-limited for our GCS ENs.

## Checklist

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
…ction (matter-labs#2091)

These fields are unused and don't affect the execution. eth_hash and
deadline_block are not even stored, so they have been removed
completely. eth_block is stored in db and is part of the block signed by
consensus, therefore removing it will require a protocol upgrade and a
hard fork.
## What ❔

Update the `pubdata.md` doc, and copy the 4844-related docs. 

## Why ❔

The docs in `pubdata.md` were outdated, and lacking the EIP-4844
details.

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

save l2 l1 logs for miniblock only if there are some

## Why ❔

We save l2 l1 logs using `COPY` and it appears it has some constant
overhead of ~40ms regardless whether there is some data to copy or not.
By checking if l2_l1_logs.is_empty we can save this 40ms.

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

Allows recovering a node from a specific snapshot specified at the start
of recovery.

## Why ❔

Useful at least for testing recovery and pruning end-to-end on the
testnet. There, L1 batches are produced very slowly, so it makes sense
to recover from an earlier snapshot in order to meaningfully test
pruning.

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

* Updated boojum version, which allows us to update nightly rust
compiler.

## Why ❔

* Our rust nightly is quite old (around 1 year)
…-labs#2140)

## What ❔

Considers a subset of contract call errors as transient.

## Why ❔

Currently, consistency checker considers all contract call errors fatal,
which leads to EN terminating when it shouldn't.

## Checklist

- [x] PR title corresponds to the body of PR (we generate changelog
entries from PRs).
- [x] Code has been formatted via `zk fmt` and `zk lint`.
- [x] Spellcheck has been run via `zk spellcheck`.
…tter-labs#2148)

## What ❔

- Tweaking postgres `healthcheck` command in EN Docker Compose example
to work from shells other than bash
- Minor formatting fixes to the aforementioned Docker Compose example
files
- EN bump to the latest stable in the aforementioned Docker Compose
example files

## Why ❔

Fixes:
**zkSync-Community-Hub/zksync-developers#526 (comment)

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

* Prover_cli has a new command - `debug-proof`, that prints a lot more
detailed information about any basic proof file.

## Why ❔

* This will speed up debugging  of the failed proofs.
* Small caveat - the cli has to be compiled with `verbose_circuits`
feature - which will include the whole zkevm_test_harness and all the
other crypto libraries.


How to use:
* Simply download the .bin file with the proof, and run `./prover_cli
debug-proof file.bin`

Part of EVM-639
matter-labs#2147)

…st images.

## What ❔

* Added workflow_dispatch to zk_enviroinment

## Why ❔

* This way, you can build the 'experimental' docker images to test
things before merging into 'main' branch.
* It will build only zk_environment basic (not GPU specific ones), and
it will NOT mark it as latest.
…ork (matter-labs#2138)

## What ❔

Refactors `ObjectStore` and `ObjectStoreFactory` to fit it into the node
framework:

- Consistently uses `Arc<dyn ObjectStore>` in DI
- Clearly documents `ObjectStoreFactory` as one possible `ObjectStore`
producer
- Expose GCS, file-based and mock object stores directly and remove
ability to create mock object stores from `ObjectStoreFactory`
- Refactors retries as `ObjectStore` "middleware"

## Why ❔

Currently, object store APIs don't fit into the node framework well,
leading to suboptimal DevEx.

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

- renames fields in method's response
- removes `verification_keys_hashes` completely

## Why ❔

- more meaningfully field names and camelCase for consistency
- `verification_keys_hashes` doesn't make sense in the context of minor
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`.
…atter-labs#2021)

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

## What ❔

* Update historical_keys dir with the proper keys.

## Why ❔

* To maintain a clear history, and a small unittest to verify that they
are correct.
## What ❔

- Adds zk_toolbox CI with ecosystem initialization
- Add zk_supervisor integration-tests command
- Make paths in ecosystem config absolute

## Why ❔

- Improve CI flow

## 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`.
…covery (matter-labs#2050)

## What ❔

Persists chunks during tree recovery in parallel to processing
subsequent chunks.

## Why ❔

- Could speed up tree recovery ~2x on the mainnet (both persistence and
processing of a single chunk of 200k entries take ~3s).
- Significantly easier to implement and reason about than alternatives.
- May be used together with alternatives.

## 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`.
…r-labs#2158)

## What ❔

Adds a new config value that regulate which batch to consider as the
last processed on a fresh start.

Also renames config values to be more idiomatic due to several from
DevOps and other people :)

## Why ❔

We don't want to wait half a year for VM to process all testnet/mainnet
batches.

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

Added a bunch of intermediate representations for rlp structs. I need
these to be able to verify L1 batches for
https://linear.app/matterlabs/issue/BFT-471/implement-stateless-l1-batch-verification
Added .md to match other md names

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

* VK generation tool now allows specifying --jobs - to run multiple jobs
in parallel
* Added a progress bar

## Why ❔

* To make it easier (and faster) to generate new verification keys.

Fixes: EVM-642
## What ❔

Moves some easily movable stuff from `zksync_external_node` binary, e.g.

- rustc metrics
- main node healthcheck
- validate chain ids task

Note: this PR does not aim to be exhaustive. There will be more PRs like
this in the future.

## Why ❔

- Makes logic shareable (e.g. we can now use rustc metrics for main node
too)
- Less logic in binary makes it easier to switch to the framework.

## 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`.
…bs#2150)

## What ❔

Add file based config for fri prover gateway

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

File based configs for witness generator

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

Signed-off-by: Danil <[email protected]>
Deniallugo and others added 27 commits July 12, 2024 07:24
…ter-labs#2430)

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

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

This PR ports remaining parts of the EN to node framework and makes
framework the default way to run it.
In more detail:

- Config for the health check limits are now set from config.
- EN and rust metrics are now exposed; the protocol version update task
now runs.
- ⚠️ Connection pool healthcheck was removed. It was controversial
initially, its usefulness is not clear, it was supposed to be refactored
a year ago but didn't, and it wasn't working well when testing. See
[linear
issue](https://linear.app/matterlabs/issue/PLA-255/revamp-db-connection-health-check)
for more context.
- Tests were reworked to use node framework; some refactoring was also
applied to reduce boilerplate.
- Additional tests were added to check for invalid EN configurations.
- ⚠️ Node framework was made the default way to run the EN. There is
also a hook to force EN to run the old way, so that we don't have to
rollback over small issues.

## Why ❔

- Part of switch to the node framework.

## 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`.
## What ❔

- ⚠️ Adds `prover_dal` to the core workspace and removes from prover
workspace. This is done without changing any paths. It's required
because house keeper is a part of core workspace. cc @EmilLuta
- Merges `zksync_crypto` and `zksync_crypto_primitives` crates
- Sets descriptions for crates
- Sets `publish = false` where required
- Changes manually set versions to `version.workspace = true`
- Specifies versions in the workspace `Cargo.toml` for local deps.

## Why ❔

Publishing on crates.io

## 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`.
…r-labs#2420)

## What ❔
Add contract verifier support for zk toolbox

---------

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

Adds debug logs to show whether the new attester key has been parsed.

## Why ❔

On stage2 the main node doesn't seem to run attestations, while the
external node does, even though both have the correct secret keys mapped
to the containers. This is just a sanity check to see whether the values
are present in the parsed configs, it's not an attempt to solve
anything.

## 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`.
…er-labs#2433)

## What ❔

Push the `zksync-tee-prover-azure` container to our docker repos.

## Why ❔

So, the `zksync-tee-prover-azure` container can be used to run in our
infra on staging.

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

---------

Signed-off-by: Harald Hoyer <[email protected]>
)

## What ❔

Fixes a bug for which it is impossible to run `zk_inception containers`.
The command required an impossible to supply subcommand due to the
`#[command(subcommand,...` attribute.

```
❯ zk_inception containers

┌   ZKsync toolbox 
│
Run containers for local development

Usage: zk_inception containers [OPTIONS]

Options:
  -h, --help  Print help

Global options:
  -v, --verbose               Verbose mode
      --chain <CHAIN>         Chain to use
      --ignore-prerequisites  Ignores prerequisites checks
```

```
❯ zk_inception containers  -v

┌   ZKsync toolbox 
│
error: 'zk_inception containers' requires a subcommand but one was not provided

Usage: zk_inception containers [OPTIONS]

For more information, try '--help'.
```
## 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. -->
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`.

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

Makes eth_tx_manager emit less logs

## Why ❔

Even if there is no activity (e.g. locally), `eth_tx_manager` keeps
emitting a lot of logs, which makes it harder to understand what's going
on with the server.

## 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`.
## 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`.
…s#2451)

## What ❔

Improves readability of prover fri gateway:

- `PeriodicApi` is moved to a separate file. Generic argument was
removed; instead now it has associated types for both request and
response.
- `PeriodicApiStruct` was renamed to `ProverApiClient`.
`PeriodicApiStruct::run` was moved to `PeriodicApi` trait.
- Dedicated types were created for `ProofSubmitter` and
`ProofGenDataFetcher`.
- A bit of doc comments.

It can be refactored further, but I want to focus on incremental
improvements for now.

## Why ❔

- Previously the workflow responsibilities were split between
`PeriodicApi` and `PeriodicApiStruct`. Now each type has its own area of
responsiblity.
- Using the same type for two different pollers was pretty confusing.

## 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`.
…2448)

## What ❔

~~When zone read domain name cannot be resolved, assumes local
environment and uses `local` zone.~~

- Introduces a new config to choose cloud type, either GCP or local.
- Creates `RegionFetcher` structure that can fetch the zone based on
configuration.
- Introduces strong typing for zone.

## Why ❔

Makes it possible to run prover locally.

## 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`.
## What ❔

A few more fixes that were required to publish packages.
Core workspace crates are already published under `crates.io-v0.1.0`
tag.

## Why ❔

Publishing on crates.io

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


##
[24.10.0](matter-labs/zksync-era@core-v24.9.0...core-v24.10.0)
(2024-07-22)


### Features

* Add blob size metrics
([matter-labs#2411](matter-labs#2411))
([41c535a](matter-labs@41c535a))
* **en:** Switch EN to use node framework
([matter-labs#2427](matter-labs#2427))
([0cee530](matter-labs@0cee530))
* **eth-sender:** add early return in sending new transactions to not
spam logs with errors
([matter-labs#2425](matter-labs#2425))
([192f2a3](matter-labs@192f2a3))
* **eth-watch:** Integrate decentralized upgrades
([matter-labs#2401](matter-labs#2401))
([5a48e10](matter-labs@5a48e10))
* L1 batch signing (BFT-474)
([matter-labs#2414](matter-labs#2414))
([ab699db](matter-labs@ab699db))
* **prover:** Make it possible to run prover out of GCP
([matter-labs#2448](matter-labs#2448))
([c9da549](matter-labs@c9da549))
* **zk_toolbox:** Small adjustment for zk toolbox
([matter-labs#2424](matter-labs#2424))
([ce43c42](matter-labs@ce43c42))


### Bug Fixes

* **eth-sender:** add bump of min 10% when resending txs to avoid
"replacement transaction underpriced"
([matter-labs#2422](matter-labs#2422))
([a7bcf5d](matter-labs@a7bcf5d))
* Set attesters in Connection::adjust_genesis (BFT-489)
([matter-labs#2429](matter-labs#2429))
([ca4cb3c](matter-labs@ca4cb3c))

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

Prover workspace has got its own "mature" hierarchy, with multiple
crates, some data folders, some important files lying in the root, etc.
This makes prover workspace less understandable (especially figuring out
the `vk_setup_data_generator_fri/data` folder).

This is the first PR of N that aims to improve prover workspace
hierarchy.
It moves all the crates to two subfolders: `crates/bin` and
`crates/lib`.
Right now we have most of logic in binaries, but later we'll move some
of it to `lib` too. And hopefully, in a foreseeable future we will also
have `crates/test`.
Later on we will also have a top-level directory(ies) for _data_ (e.g.
keys).

## Why ❔

Make the workspace easier to orient in.

## 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`.
## What ❔

- Adds state override for gas estimates

## Why ❔

- Solves matter-labs#947 
- Feature parity with geth
ethereum/go-ethereum#27800

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

---------

Co-authored-by: Juan Rigada <[email protected]>
Co-authored-by: Jrigada <[email protected]>
Co-authored-by: Danil <[email protected]>
Now that we have a support for file-based configuration, we can embed
the consensus configuration in general configs file.

---------

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

Removed redundant columns from prover DB after adding BWIP.

## Why ❔

Because they won't be used anymore

## 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`.
## What ❔

- Adds revert tests (external node) to zk_toolbox

## Why ❔

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

---------

Co-authored-by: aon <[email protected]>
Co-authored-by: Manuel <[email protected]>
This PR adds BWG optimizations on crypto side. See more
[here](matter-labs/era-zkevm_test_harness#165).
it will be used by partners running ENs to populate consensus secrets
config. Also drafted the documentation on how to enable gossipnet on EN
deployment. Following the instructions using a docker image won't be
that simple though.

---------

Co-authored-by: Denis Kolegov <[email protected]>
🤖 I have created a release *beep* *boop*
---


##
[24.11.0](matter-labs/zksync-era@core-v24.10.0...core-v24.11.0)
(2024-07-23)


### Features

* add revert tests (external node) to zk_toolbox
([matter-labs#2408](matter-labs#2408))
([3fbbee1](matter-labs@3fbbee1))
* add state override for gas estimates
([matter-labs#1358](matter-labs#1358))
([761bda1](matter-labs@761bda1))
* added consensus_config to general config
([matter-labs#2462](matter-labs#2462))
([c5650a4](matter-labs@c5650a4))
* added key generation command to EN
([matter-labs#2461](matter-labs#2461))
([9861415](matter-labs@9861415))
* remove leftovers after BWIP
([matter-labs#2456](matter-labs#2456))
([990676c](matter-labs@990676c))

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

Brush up VM storage overrides as introduced in
matter-labs#1358.

## Why ❔

The overrides implementation looks overly complex and isn't correctly
localized by domain (located in the `state` crate, while the
functionality is API server-specific). This worsens maintainability.

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


##
[16.1.0](matter-labs/zksync-era@prover-v16.0.0...prover-v16.1.0)
(2024-07-24)


### Features

* **prover:** Make it possible to run prover out of GCP
([matter-labs#2448](matter-labs#2448))
([c9da549](matter-labs@c9da549))
* remove leftovers after BWIP
([matter-labs#2456](matter-labs#2456))
([990676c](matter-labs@990676c))


### Bug Fixes

* **prover:** BWG optimizations
([matter-labs#2469](matter-labs#2469))
([d8851c8](matter-labs@d8851c8))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
@jrchatruc jrchatruc merged commit 513b56e into main Jul 24, 2024
8 of 17 checks passed
@jrchatruc jrchatruc deleted the update-from-upstream branch July 24, 2024 12:34
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.