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(state-keeper): Refactor persistence in StateKeeper #1411

Merged
merged 23 commits into from Mar 26, 2024

Conversation

slowli
Copy link
Contributor

@slowli slowli commented Mar 12, 2024

What ❔

  • Splits off miniblock and L1 batch persistence from StateKeeperIO into a separate trait.
  • Moves tracking current miniblock / L1 batch number from StateKeeperIO to the state keeper.

Why ❔

  • Simplifies further changes to the persistence logic, e.g. toggling saving protective reads.
  • Can be used as a building block for generic retrospective L1 batch execution.

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.

@slowli slowli marked this pull request as ready for review March 14, 2024 08:55
@slowli slowli requested a review from EmilLuta March 14, 2024 09:28
Copy link
Member

@popzxc popzxc left a comment

Choose a reason for hiding this comment

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

Only had time to look at a part of the PR.
Generally it looks very promising, will continue review on Monday (but please don't wait for me -- I may have a look retroactively).

core/lib/zksync_core/src/state_keeper/io/mod.rs Outdated Show resolved Hide resolved
core/lib/zksync_core/src/state_keeper/io/mod.rs Outdated Show resolved Hide resolved
core/lib/zksync_core/src/state_keeper/io/mod.rs Outdated Show resolved Hide resolved
Copy link
Member

@popzxc popzxc left a comment

Choose a reason for hiding this comment

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

Generally looks good, a few more minor comments.

core/lib/zksync_core/src/state_keeper/io/mod.rs Outdated Show resolved Hide resolved
core/lib/zksync_core/src/state_keeper/io/mod.rs Outdated Show resolved Hide resolved
core/lib/zksync_core/src/state_keeper/io/persistence.rs Outdated Show resolved Hide resolved
core/lib/zksync_core/src/state_keeper/keeper.rs Outdated Show resolved Hide resolved
perekopskiy
perekopskiy previously approved these changes Mar 18, 2024
popzxc
popzxc previously approved these changes Mar 26, 2024
@slowli slowli added this pull request to the merge queue Mar 26, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Mar 26, 2024
@slowli slowli added this pull request to the merge queue Mar 26, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Mar 26, 2024
@slowli slowli added this pull request to the merge queue Mar 26, 2024
Merged via the queue into main with commit e26091a Mar 26, 2024
30 checks passed
@slowli slowli deleted the aov-pla-846-refactor-persistence-in-statekeeper branch March 26, 2024 19:32
RomanBrodetski pushed a commit that referenced this pull request Mar 28, 2024
🤖 I have created a release *beep* *boop*
---


##
[22.1.0](core-v22.0.0...core-v22.1.0)
(2024-03-28)


### Features

* Drop prover tables in core database
([#1436](#1436))
([0d78122](0d78122))
* **en:** consistency checker persistent cursor
([#1466](#1466))
([03496e6](03496e6))
* **en:** Make snapshot syncing future-proof
([#1441](#1441))
([8c26a7a](8c26a7a))
* **genesis:** Using genesis config only during the genesis
([#1423](#1423))
([4b634fd](4b634fd))
* **node_framework:** Add a task to handle sigint
([#1471](#1471))
([2ba6527](2ba6527))
* **node-framework:** Add circuit breaker checker layer to framework
([#1452](#1452))
([2c7a6bf](2c7a6bf))
* **prover:** export prover traces through OTLP
([#1427](#1427))
([16dce75](16dce75))
* sigint initialization only after snapshots is applied
([#1356](#1356))
([c7c7356](c7c7356))
* Split witness generator timeout configs by round
([#1505](#1505))
([8074d01](8074d01))
* **state-keeper:** implement asynchronous RocksDB cache
([#1256](#1256))
([da41f63](da41f63))
* **state-keeper:** Refactor persistence in `StateKeeper`
([#1411](#1411))
([e26091a](e26091a))
* **state-keeper:** Remove `WitnessBlockState` generation from state
keeper ([#1507](#1507))
([8ae0355](8ae0355))
* Switch contract verification API to axum and get rid of actix-web
usage ([#1467](#1467))
([e7a9d61](e7a9d61))


### Bug Fixes

* **api:** `filters_disabled` should only affect HTTP endpoints
([#1493](#1493))
([8720568](8720568))
* **api:** Fix API server shutdown flow
([#1425](#1425))
([780f6b0](780f6b0))
* **prover:** Remove FriProtocolVersionId
([#1510](#1510))
([6aa51b0](6aa51b0))
* **prover:** Remove redundant LoadingMode
([#1496](#1496))
([e7583f4](e7583f4))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
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

4 participants