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: prover components versioning #1660

Merged
merged 22 commits into from
May 7, 2024
Merged

Conversation

Artemka374
Copy link
Contributor

@Artemka374 Artemka374 commented Apr 11, 2024

What ❔

Use the defined protocol version on the components of prover subsystems.
Refactor queries to check the protocol version of the job they are trying to access.

Why ❔

To be consistent with protocol versions.
To be able to run 2 different versions of provers at the same time with no intersection

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.
  • Linkcheck has been run via zk linkcheck.

Copy link
Contributor

@EmilLuta EmilLuta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder what's the impact of loading these keys at runtime. Also, these keys (AFAIK) are loaded by software. Whilst I see no problem with this approach, it make me wonder if we can't hardcode some other variables.

I know you're doing a deep dive to understand where this variables are coming from and how they're loaded. Let's circle back on it once you have this information.

Until then, no objections from me.

cc: @RomanBrodetski -- You may find this interesting.

prover/proof_fri_compressor/src/main.rs Outdated Show resolved Hide resolved
@Artemka374 Artemka374 changed the title [WIP] feat: prover components versioning feat: prover components versioning Apr 18, 2024
Copy link
Contributor

@EmilLuta EmilLuta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, this looks neat. Left some minor nits.

core/lib/basic_types/src/protocol_version.rs Outdated Show resolved Hide resolved
prover/prover_dal/src/fri_gpu_prover_queue_dal.rs Outdated Show resolved Hide resolved
prover/witness_vector_generator/src/generator.rs Outdated Show resolved Hide resolved
prover/witness_generator/src/main.rs Outdated Show resolved Hide resolved
prover/witness_generator/src/main.rs Outdated Show resolved Hide resolved
prover/witness_generator/src/main.rs Show resolved Hide resolved
EmilLuta
EmilLuta previously approved these changes Apr 23, 2024
@Artemka374 Artemka374 added this pull request to the merge queue Apr 24, 2024
@Artemka374 Artemka374 removed this pull request from the merge queue due to a manual request Apr 24, 2024
# Conflicts:
#	prover/prover_dal/src/fri_proof_compressor_dal.rs
#	prover/prover_dal/src/fri_prover_dal.rs
#	prover/prover_fri/src/utils.rs
#	prover/prover_fri_utils/src/lib.rs
@Artemka374 Artemka374 added this pull request to the merge queue May 7, 2024
Merged via the queue into main with commit 29a4ffc May 7, 2024
51 checks passed
@Artemka374 Artemka374 deleted the afo/protocol-versions-checking branch May 7, 2024 15:36
RomanBrodetski pushed a commit that referenced this pull request May 8, 2024
🤖 I have created a release *beep* *boop*
---


##
[24.1.0](core-v24.0.0...core-v24.1.0)
(2024-05-08)


### Features

* add `sendRawTransactionWithDetailedOutput` API
([#1806](#1806))
([6a30a31](6a30a31))
* add getGasPerPubdataByte endpoint
([#1778](#1778))
([d62dd08](d62dd08))
* **config:** Wrap sensitive urls
([#1828](#1828))
([c8ee740](c8ee740))
* **db:** Implement weak references to RocksDB
([e0d4daa](e0d4daa))
* **en:** Add pruning health checks and rework pruning config
([#1790](#1790))
([e0d4daa](e0d4daa))
* Extract proof_data_handler into separate crate
([#1677](#1677))
([f4facee](f4facee))
* Extract several crates from zksync_core
([#1859](#1859))
([7dcf796](7dcf796))
* **node:** Extract genesis into separate crate
([#1797](#1797))
([a8c4599](a8c4599))
* **Prover CLI:** `status batch` command
([#1638](#1638))
([3fd6d65](3fd6d65))
* prover components versioning
([#1660](#1660))
([29a4ffc](29a4ffc))
* Update provers current version
([#1872](#1872))
([bb5f129](bb5f129))


### Bug Fixes

* **basic_types:** bincode deserialization for `L2ChainId`
([#1835](#1835))
([fde85f4](fde85f4))
* **contract-verifier:** YUL system-mode verification
([#1863](#1863))
([5aa7d41](5aa7d41))
* **loadtest:** Do not initiate transactions with 0 amount
([#1847](#1847))
([1bbe108](1bbe108))


### Performance Improvements

* **db:** Fine-tune state keeper cache performance / RAM usage
([#1804](#1804))
([82bf40e](82bf40e))
* **state-keeper:** Improve `FilterWrittenSlots` l1 batch seal stage
([#1854](#1854))
([4cf235f](4cf235f))

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

---------

Co-authored-by: perekopskiy <mikeson.dp@gmail.com>
RomanBrodetski pushed a commit that referenced this pull request May 11, 2024
🤖 I have created a release *beep* *boop*
---


##
[14.1.0](prover-v14.0.0...prover-v14.1.0)
(2024-05-11)


### Features

* **en:** Brush up EN observability config
([#1897](#1897))
([086f768](086f768))
* Extract several crates from zksync_core
([#1859](#1859))
([7dcf796](7dcf796))
* **Prover CLI:** Configuration (with flag)
([#1861](#1861))
([620c880](620c880))
* **Prover CLI:** Initial Docs
([#1862](#1862))
([8b094aa](8b094aa))
* **Prover CLI:** status l1 command
([#1706](#1706))
([8ddd039](8ddd039))
* prover components versioning
([#1660](#1660))
([29a4ffc](29a4ffc))


### Bug Fixes

* 1.5.0 + validium (contracts only) patches
([#1911](#1911))
([bf439f4](bf439f4))
* Update prover cargo lock
([#1896](#1896))
([2ca01f5](2ca01f5))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
EmilLuta pushed a commit that referenced this pull request May 12, 2024
Use the defined protocol version on the components of prover subsystems.
Refactor queries to check the protocol version of the job they are
trying to access.

To be consistent with protocol versions.
To be able to run 2 different versions of provers at the same time with
no intersection

<!-- 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`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants