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(eigen-client-extra-features): Merge main #387

Merged

Conversation

juan518munoz
Copy link

@juan518munoz juan518munoz commented Jan 23, 2025

What ❔

Update branch with latest changes from main as it's now the dst branch of the ongoing PR.

This PR also makes changes to the era-contracts.

⚠️ Do not squash merge this PR, as it will otherwise erase commit history.

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.

EmilLuta and others added 30 commits January 6, 2025 14:57
During FFLONK commit, dependencies got unpinned. This PR repins the
dependencies to declared versions.
## What ❔
Remove deprecated workflows

## Why ❔
Increase usability 

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

Sending `execute` operations is stopped when gateway upgrade is ongoing
Also, validator timelock is fetched from state transition manager
Also, l1 shared bridge is updated from bridgehub

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

Changes to PubdataType from sync-layer-stable: Validium variant is
removed and specific DAs are added. This change is breaking but
- for DB only `Rollup` is used for pre-gateway and this variant wasn't
changed
- for consensus protobuf `pubdata_params` is null for pre-gateway
so it should be good.

Changes to allow reading system bytecodes from L2 upgrade tx factory
deps.
Fix `metadata[3]` in eth watcher processor.

## Why ❔

Reduce sync-layer-stable diff

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

## What ❔

This PR adds a migration that creates an index on `ratio_timestamp`
field of `base_token_ratios` table.

## Why ❔

Queries to this table are currently much heavier than they should be,
that has to be optimized.

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

optimize sql query

## Why ❔

improve performance

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

Copies protocol upgrade schema changes from sync-layer-stable in a
non-breaking way.

## Why ❔

Support post-gateway upgrade schema.

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

## What ❔
Add fflonk key for proof fri GPU compressor

## Why ❔
New version require it

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

- Don't assume NoDA Validium by default, make the config required even
for no DA, that helps avoid misconfiguration issues
- Separate threads in da_dispatcer for `dispatch` and
`poll_for_inclusion`
- Change the default amount of rows that are fetched for dispatching

## Why ❔

To make configuration more resilient and main logic more efficient.

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

## What ❔
Fix gsutil command for download fflonk key

## 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`.
## What ❔
Add ghcr.io to list of registries for image storing

## Why ❔
Cost optimization

## 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 ❔
fix workflow for push prover ghcr images

## Why ❔
Broken ghcr image

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

## What ❔

* [x] Rename `zkstack_cli` crates with unique names for publishing.
* [x] Set individual versions of the `zkstack_cli` workspace crates to
the common workspace 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 allow publishing to crates.io.

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

## What ❔

`api_server` should report gas price based on the currently open L1
batch as opposed to the latest sealed L2 block.

Note: adding `BatchFeeInput` to L1 batch models did not end up being
necessary but I think it still makes sense.

## Why ❔

To avoid gas fluctuation issues on chains with low amount of traffic

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

Updates CUDA to 12.2 in zk-environment CUDA variant

## Why ❔

To be aligned with with CUDA version in github-actions runner image and
to support newer Nvidia drivers

## 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 `zkstack dev fmt` and `zkstack dev
lint`.
(hopefully) fixes matter-labs#3394
See the issue for the context.

Looks like some old transactions do not have error stored for out-of-gas
errors. However, we know that they're failed, and we know that based on
[the error field from the transactions
table](https://github.com/matter-labs/zksync-era/blob/main/core/lib/dal/src/models/storage_transaction.rs#L361).

This PR adds a "fallback" error -- if no other error is detected in the
call trace, we use the error from the sequencer.

Granted, I do not have access to the mainnet DB, so not sure what error
messages are inside, but if I am to guess, it will be more or less
adequate. 😅

⚠️ To make things spicier, I have no way to test this functionality (per
@dutterbutter report in the issue, it does not reproduce with the
current protocol version), so it's kind of "hope it helps" fix. Please
be careful during the review.
## What ❔

Change of deprecated nvidia repos to newer ones, and changing from
ubuntu 20 repos to ubuntu 22

## Why ❔



## Checklist

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

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

pin zk foundry in zk env

## Why ❔



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

---------

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

Proper Nvidia repo add

## Why ❔


## Checklist

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

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

Fix for GPU forwarding in docker compose

## Why ❔

Docker update broke old way of forwarding GPU

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

## What ❔
`zkstack dev migrate` attempts to create a database first before
performing the migration. It should instead only try to perform the
migration, and fail if the database does not exist.

## Why ❔
Keeping the create database command may potentially drop and recreate
the database - the current behaviour of `cargo sqlx database create`
doesn't do this, but it may change in the future. Furthermore, even if
the database doesn't exist, it doesn't make sense for a migrate command
to perform database creation.

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

- v26 contracts
- zkstack_cli compatible with v26 contracts & scripts
- final server improvements for v26, ProtocolVersionId::latest() is set
to v26
- prover version is set to v26

## Why ❔



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

---------

Co-authored-by: dimazhornyk <[email protected]>
Co-authored-by: perekopskiy <[email protected]>
Co-authored-by: perekopskiy <[email protected]>
Co-authored-by: Dima Zhornyk <[email protected]>
Co-authored-by: Marcin M <[email protected]>
Co-authored-by: koloz193 <[email protected]>
## What ❔

Move `Cargo.toml` from repository root to `core` workspace.

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

It is mandatory for proper separation of workspaces and setting up a
`release-please` CI that requires all files of a component to be inside
the component directory.

## CI failures

Currently, the following tests are failing:
* `protobuf_compatibility` - the workflow is using base version and will
be fixed with the next PRs after merge to `main`.

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

Deduplicates helper code shared between legacy and fast VMs.

## Why ❔

Less code is easier to maintain.

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

fixes eth aggregator restrictions

## 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`.
juan518munoz and others added 9 commits January 22, 2025 17:35
## What ❔

In a very unlikely scenario timeouted tx can still succeed in the short
window while we are resubmitting it with updated gas. This PR handles
this gracefully + another case when nonce might have been used
asynchronously by someone else.

## Why ❔

Good ol' flakiness

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

## What ❔

Reworks `NodeStorageInitializer::is_chain_tip_correct()` so that it
performs the minimum amount of work possible, i.e. detects whether the
latest L1 batch / L2 block diverge or not.

## Why ❔

EN storage initialization is prone to a data race: the "is storage
initialized" check calls
`NodeStorageInitializer::is_chain_tip_correct()`, which internally
performs the entire iteration of the reorg detector (in particular,
binary search for the first diverged block). This can lead to a data
race with block revert logic, which may be executed concurrently. This
data race was observed on the revert integration tests.

## Checklist

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

* [x] Fixes the typo in `component` argument
* [x] Returns `RELEASE_TOKEN` to run required CI in release PR
* [x] Update runner for publishing crates 

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

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

Integrate optimizations for compressor's work.
Before:
PLONK: ~180s
FFLONK: ~248s
Now
Both: ~70s

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

---------

Co-authored-by: afo <[email protected]>
Co-authored-by: zksync-admin-bot2 <[email protected]>
@juan518munoz juan518munoz marked this pull request as ready for review January 28, 2025 16:07
Base automatically changed from eigen-client-extra-features-address-comments-third to eigen-client-extra-features January 28, 2025 19:39
@juan518munoz juan518munoz requested a review from juanbono January 28, 2025 21:10
@juan518munoz juan518munoz merged commit 1273ed2 into eigen-client-extra-features Jan 29, 2025
6 of 26 checks passed
@juan518munoz juan518munoz deleted the eigen-client-extra-features-merge-main branch January 29, 2025 19:27
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.