Skip to content

Conversation

@cytadela8
Copy link
Member

@cytadela8 cytadela8 commented May 26, 2025

What ❔

  • Added validation against SL of commit prove and execute transaction hashes provided by main node to ENs in BatchStatusUpdater.
  • Properly update transaction finalization status on EN. Marking as Pending when fetches and updated to fast finalized and finalized when reaching those statuses.

Why ❔

Database is our source of truth used by e.g. API to provide clients with information about chain state. EN should not trust main node about the provided finalization status of batches. EN should verify claims about status changes of batches with L1. This is done here instead of consistency checker, as the consistency checker validates post factum.

We also validate the logs from receipts in transactions, making sure commit/prove/exeucte transactions actually perform what the should.

Is this a breaking change?

  • Yes
  • No

Operational changes

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.

@cytadela8 cytadela8 marked this pull request as draft May 26, 2025 22:00
cytadela8 added 4 commits May 27, 2025 16:03
This updater is used in ENs and should not add transaction to database
without first verifying their validity.
@cytadela8 cytadela8 force-pushed the apu-fast-finality-l2 branch from 037f0cf to d0ff485 Compare May 28, 2025 09:08
@cytadela8 cytadela8 changed the base branch from deniallugo-precommit-gateway to main May 28, 2025 09:12
@cytadela8 cytadela8 changed the title EN Commit,Prove,Execute verification feat: EN Commit,Prove,Execute verification May 28, 2025
@cytadela8 cytadela8 changed the title feat: EN Commit,Prove,Execute verification feat: EN commit, prove, execute batch transactions verification May 28, 2025
@cytadela8 cytadela8 force-pushed the apu-fast-finality-l2 branch from d0ff485 to 1bd4e0e Compare May 28, 2025 11:41
@cytadela8 cytadela8 force-pushed the apu-fast-finality-l2 branch from 1bd4e0e to 562eee9 Compare May 28, 2025 12:13
@cytadela8 cytadela8 requested a review from Deniallugo May 28, 2025 15:48
@cytadela8 cytadela8 marked this pull request as ready for review May 28, 2025 15:48
@cytadela8 cytadela8 requested a review from slowli June 23, 2025 11:36
Copy link
Contributor

@slowli slowli left a comment

Choose a reason for hiding this comment

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

Sorry for the delayed review. Looks substantially better; most comments are nits (but IMO, would be easy to resolve).

@Deniallugo Deniallugo requested a review from slowli July 1, 2025 10:55
@Deniallugo Deniallugo dismissed slowli’s stale review July 1, 2025 10:55

review will be reapplied

@Deniallugo Deniallugo enabled auto-merge July 1, 2025 16:41
@Deniallugo Deniallugo added this pull request to the merge queue Jul 2, 2025
Merged via the queue into main with commit d06697d Jul 2, 2025
60 of 62 checks passed
@Deniallugo Deniallugo deleted the apu-fast-finality-l2 branch July 2, 2025 13:06
github-merge-queue bot pushed a commit that referenced this pull request Jul 8, 2025
🤖 I have created a release *beep* *boop*
---


##
[28.8.0](core-v28.7.0...core-v28.8.0)
(2025-07-07)


### Features

* **ci:** fast integration tests framework
([#4255](#4255))
([a72cbd8](a72cbd8))
* **eigenda:** EigenDA V2 M0
([#3983](#3983))
([8302a81](8302a81))
* EN commit, prove, execute batch transactions verification and finality
status ([#4080](#4080))
([d06697d](d06697d))
* **en:** remove JSON RPC syncing
([#4258](#4258))
([d194604](d194604))
* **state-keeper:** implement block commit/rollback
([#4197](#4197))
([99af8fc](99af8fc))
* **zkstack:** fast fmt
([#4222](#4222))
([d05c3dd](d05c3dd))


### Bug Fixes

* **consensus:** Debug page server port reuse
([#4273](#4273))
([77d043f](77d043f))
* **eth-watch:** return internal errors from BatchRootProcessor
([#4285](#4285))
([1f668e5](1f668e5))
* use FullPubdataBuilder for all pre-gateway batches
([#4265](#4265))
([7c46480](7c46480))

---
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]>
jishnundth pushed a commit to jishnundth/zksync-era that referenced this pull request Oct 6, 2025
…inality status (matter-labs#4080)

## What ❔

- Added validation against SL of commit prove and execute transaction
hashes provided by main node to ENs in `BatchStatusUpdater`.
- Properly update transaction finalization status on EN. Marking as
Pending when fetches and updated to fast finalized and finalized when
reaching those statuses.


## Why ❔

Database is our source of truth used by e.g. API to provide clients with
information about chain state. EN should not trust main node about the
provided finalization status of batches. EN should verify claims about
status changes of batches with L1. This is done here instead of
consistency checker, as the consistency checker validates post factum.

We also validate the logs from receipts in transactions, making sure
commit/prove/exeucte transactions actually perform what the should.

## Is this a breaking change?
- [ ] Yes
- [x] No

## Operational changes
<!-- Any config changes? Any new flags? Any changes to any scripts? -->
<!-- Please add anything that non-Matter Labs entities running their own
ZK Chain may need to know -->

## 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`.
jishnundth pushed a commit to jishnundth/zksync-era that referenced this pull request Oct 6, 2025
🤖 I have created a release *beep* *boop*
---


##
[28.8.0](matter-labs/zksync-era@core-v28.7.0...core-v28.8.0)
(2025-07-07)


### Features

* **ci:** fast integration tests framework
([matter-labs#4255](matter-labs#4255))
([a72cbd8](matter-labs@a72cbd8))
* **eigenda:** EigenDA V2 M0
([matter-labs#3983](matter-labs#3983))
([8302a81](matter-labs@8302a81))
* EN commit, prove, execute batch transactions verification and finality
status ([matter-labs#4080](matter-labs#4080))
([d06697d](matter-labs@d06697d))
* **en:** remove JSON RPC syncing
([matter-labs#4258](matter-labs#4258))
([d194604](matter-labs@d194604))
* **state-keeper:** implement block commit/rollback
([matter-labs#4197](matter-labs#4197))
([99af8fc](matter-labs@99af8fc))
* **zkstack:** fast fmt
([matter-labs#4222](matter-labs#4222))
([d05c3dd](matter-labs@d05c3dd))


### Bug Fixes

* **consensus:** Debug page server port reuse
([matter-labs#4273](matter-labs#4273))
([77d043f](matter-labs@77d043f))
* **eth-watch:** return internal errors from BatchRootProcessor
([matter-labs#4285](matter-labs#4285))
([1f668e5](matter-labs@1f668e5))
* use FullPubdataBuilder for all pre-gateway batches
([matter-labs#4265](matter-labs#4265))
([7c46480](matter-labs@7c46480))

---
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]>
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.

3 participants