Skip to content

Conversation

Artemka374
Copy link
Contributor

@Artemka374 Artemka374 commented Feb 19, 2025

What ❔

Implement communication between proof data handler and gateway through web sockets.
The workflow:

  • Long-living connection is established
  • Data handler subscribes for proofs from gateway
  • Data handler sends proof generation data to gateway
  • On receiving proofs through subscription, data handler saves it's data and sends a notification to gateway, that proof was successfully received(to not lose the data in between)

Why ❔

For the sake of prover cluster, where we will have a single prover subsystem with multiple sequencers.

Is this a breaking change?

  • Yes
  • No

Operational changes

Config values:
Prover gateway: ws_port
Proof data handler: api_url, batch_readiness_check_interval_in_secs, retry_connection_interval_in_secs

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.

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.

Checked changes since last review -- LGTM.

@Artemka374 Artemka374 added this pull request to the merge queue Mar 14, 2025
Merged via the queue into main with commit 4e74730 Mar 14, 2025
46 checks passed
@Artemka374 Artemka374 deleted the afo/web-socket-gateway branch March 14, 2025 13:48
github-merge-queue bot pushed a commit that referenced this pull request Mar 21, 2025
🤖 I have created a release *beep* *boop*
---


##
[27.0.0](core-v26.7.0...core-v27.0.0)
(2025-03-21)


### ⚠ BREAKING CHANGES

* Remove old prover stack
([#3729](#3729))
* V27 update
([#3580](#3580))

### Features

* **eigenda:** EigenDA M0
([#3650](#3650))
([2a3cae9](2a3cae9))
* **eth-watch:** split heavy get logs requests if 503
([#3706](#3706))
([406a3ff](406a3ff))
* **gateway:** Requirement to stop L1->L2 transactions before v26
upgrade ([#3707](#3707))
([0a095b7](0a095b7))
* Remove old prover stack
([#3729](#3729))
([fbbdc76](fbbdc76))
* Starting from v26 version, always fetch the address of the validator
timelock from CTM
([#3721](#3721))
([d3db521](d3db521))
* **storage:** rocksdb storage extension for zkos
([#3698](#3698))
([2779245](2779245))
* Use JSON-RPC for core <> prover interaction
([#3626](#3626))
([4e74730](4e74730))
* V27 update
([#3580](#3580))
([9e18550](9e18550))
* **zksync_tee_prover:** add support for TDX and None TEE types
([#3711](#3711))
([11d166b](11d166b))
* **zksync_tee_prover:** read config in TDX from google metadata
([#3702](#3702))
([e50201c](e50201c))


### Bug Fixes

* **contract-verifier:** Allow reverification of system contracts in Yul
([#3735](#3735))
([e99b548](e99b548))
* **contract-verifier:** contract verifier to return fully matched
verification info when available
([#3734](#3734))
([1a0f27f](1a0f27f))
* **contract-verifier:** Correctly process partial verification for EVM
contracts
([#3688](#3688))
([8292234](8292234))
* **contract-verifier:** Ignore suppressable errors during compilation
([#3747](#3747))
([a5955c4](a5955c4))
* **data-availability-fetcher:** prevent EN database from being
populated with unnecessary inclusion data
([#3742](#3742))
([037bac3](037bac3))
* make eigenda_eth_rpc in Eigen config optional in file-based configs
([#3732](#3732))
([69d0efc](69d0efc))
* make secret optionnal when da client object store is selected
([#3715](#3715))
([f05fffd](f05fffd))
* Serialization issues
([#3589](#3589))
([606d5af](606d5af))
* **vm:** Fix another VM divergence in validation
([#3675](#3675))
([85dfc13](85dfc13))


### Performance Improvements

* **zkos:** Choose optimal amortization radix for ZK OS Merkle tree
([#3685](#3685))
([fc1e230](fc1e230))

---
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 <zksync-era-bot@users.noreply.github.com>
Artemka374 added a commit that referenced this pull request Mar 26, 2025
github-merge-queue bot pushed a commit that referenced this pull request Apr 1, 2025
🤖 I have created a release *beep* *boop*
---


##
[20.0.0](prover-v19.0.0...prover-v20.0.0)
(2025-04-01)


### ⚠ BREAKING CHANGES

* Remove old prover stack
([#3729](#3729))
* V27 update
([#3580](#3580))

### Features

* Add S3 implementation for object_store
([#3664](#3664))
([a848927](a848927))
* **consensus:** Add consensus protocol versioning
([#3720](#3720))
([d1b4308](d1b4308))
* **gateway:** Migration to Gateway
([#3654](#3654))
([2858ba0](2858ba0))
* Remove old prover stack
([#3729](#3729))
([fbbdc76](fbbdc76))
* Use JSON-RPC for core &lt;&gt; prover interaction
([#3626](#3626))
([4e74730](4e74730))
* V27 update
([#3580](#3580))
([9e18550](9e18550))


### Bug Fixes

* API URL for prover gateway
([#3716](#3716))
([ca2c4a4](ca2c4a4))
* make proof data handler backwards compatible
([#3767](#3767))
([bdbbaaa](bdbbaaa))
* Prover job ordering
([#3738](#3738))
([8f7f831](8f7f831))
* **prover:** Fixing shutdown time for circuit-prover
([#3768](#3768))
([6c9de26](6c9de26))
* **prover:** Reevaluation of 'heavy' jobs for WVG
([#3754](#3754))
([2a8d33b](2a8d33b))
* **prover:** Remove deleted pods from autoscaler-agent cluster cache
([#3739](#3739))
([e94985f](e94985f))

---
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 <147085853+zksync-era-bot@users.noreply.github.com>
Co-authored-by: zksync-era-bot <zksync-era-bot@users.noreply.github.com>
zkzoomer pushed a commit that referenced this pull request Jun 21, 2025
## What ❔

Implement communication between proof data handler and gateway through
web sockets.
The workflow:
 * Long-living connection is established
 * Data handler subscribes for proofs from gateway
 * Data handler sends proof generation data to gateway
* On receiving proofs through subscription, data handler saves it's data
and sends a notification to gateway, that proof was successfully
received(to not lose the data in between)

## Why ❔

For the sake of prover cluster, where we will have a single prover
subsystem with multiple sequencers.

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

## Operational changes
Config values:
Prover gateway: ws_port
Proof data handler: api_url, batch_readiness_check_interval_in_secs,
retry_connection_interval_in_secs

## 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`.
zkzoomer pushed a commit that referenced this pull request Jun 21, 2025
🤖 I have created a release *beep* *boop*
---


##
[27.0.0](core-v26.7.0...core-v27.0.0)
(2025-03-21)


### ⚠ BREAKING CHANGES

* Remove old prover stack
([#3729](#3729))
* V27 update
([#3580](#3580))

### Features

* **eigenda:** EigenDA M0
([#3650](#3650))
([2a3cae9](2a3cae9))
* **eth-watch:** split heavy get logs requests if 503
([#3706](#3706))
([406a3ff](406a3ff))
* **gateway:** Requirement to stop L1-&gt;L2 transactions before v26
upgrade ([#3707](#3707))
([867cfa5](867cfa5))
* Remove old prover stack
([#3729](#3729))
([4a001a7](4a001a7))
* Starting from v26 version, always fetch the address of the validator
timelock from CTM
([#3721](#3721))
([d3db521](d3db521))
* **storage:** rocksdb storage extension for zkos
([#3698](#3698))
([2779245](2779245))
* Use JSON-RPC for core &lt;&gt; prover interaction
([#3626](#3626))
([1971fe4](1971fe4))
* V27 update
([#3580](#3580))
([e7e930e](e7e930e))
* **zksync_tee_prover:** add support for TDX and None TEE types
([#3711](#3711))
([11d166b](11d166b))
* **zksync_tee_prover:** read config in TDX from google metadata
([#3702](#3702))
([e50201c](e50201c))


### Bug Fixes

* **contract-verifier:** Allow reverification of system contracts in Yul
([#3735](#3735))
([e99b548](e99b548))
* **contract-verifier:** contract verifier to return fully matched
verification info when available
([#3734](#3734))
([1a0f27f](1a0f27f))
* **contract-verifier:** Correctly process partial verification for EVM
contracts
([#3688](#3688))
([8292234](8292234))
* **contract-verifier:** Ignore suppressable errors during compilation
([#3747](#3747))
([a5955c4](a5955c4))
* **data-availability-fetcher:** prevent EN database from being
populated with unnecessary inclusion data
([#3742](#3742))
([037bac3](037bac3))
* make eigenda_eth_rpc in Eigen config optional in file-based configs
([#3732](#3732))
([69d0efc](69d0efc))
* make secret optionnal when da client object store is selected
([#3715](#3715))
([f05fffd](f05fffd))
* Serialization issues
([#3589](#3589))
([606d5af](606d5af))
* **vm:** Fix another VM divergence in validation
([#3675](#3675))
([85dfc13](85dfc13))


### Performance Improvements

* **zkos:** Choose optimal amortization radix for ZK OS Merkle tree
([#3685](#3685))
([fc1e230](fc1e230))

---
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 <zksync-era-bot@users.noreply.github.com>
dutterbutter pushed a commit to dutterbutter/zkstack-cli that referenced this pull request Jul 3, 2025
🤖 I have created a release *beep* *boop*
---


##
[27.0.0](matter-labs/zksync-era@core-v26.7.0...core-v27.0.0)
(2025-03-21)


### ⚠ BREAKING CHANGES

* Remove old prover stack
([#3729](matter-labs/zksync-era#3729))
* V27 update
([#3580](matter-labs/zksync-era#3580))

### Features

* **eigenda:** EigenDA M0
([#3650](matter-labs/zksync-era#3650))
([2a3cae9](matter-labs/zksync-era@2a3cae9))
* **eth-watch:** split heavy get logs requests if 503
([#3706](matter-labs/zksync-era#3706))
([406a3ff](matter-labs/zksync-era@406a3ff))
* **gateway:** Requirement to stop L1-&gt;L2 transactions before v26
upgrade ([#3707](matter-labs/zksync-era#3707))
([1fea419](matter-labs/zksync-era@1fea419))
* Remove old prover stack
([#3729](matter-labs/zksync-era#3729))
([ba05a88](matter-labs/zksync-era@ba05a88))
* Starting from v26 version, always fetch the address of the validator
timelock from CTM
([#3721](matter-labs/zksync-era#3721))
([d3db521](matter-labs/zksync-era@d3db521))
* **storage:** rocksdb storage extension for zkos
([#3698](matter-labs/zksync-era#3698))
([2779245](matter-labs/zksync-era@2779245))
* Use JSON-RPC for core &lt;&gt; prover interaction
([#3626](matter-labs/zksync-era#3626))
([6a6cead](matter-labs/zksync-era@6a6cead))
* V27 update
([#3580](matter-labs/zksync-era#3580))
([6548ace](matter-labs/zksync-era@6548ace))
* **zksync_tee_prover:** add support for TDX and None TEE types
([#3711](matter-labs/zksync-era#3711))
([11d166b](matter-labs/zksync-era@11d166b))
* **zksync_tee_prover:** read config in TDX from google metadata
([#3702](matter-labs/zksync-era#3702))
([e50201c](matter-labs/zksync-era@e50201c))


### Bug Fixes

* **contract-verifier:** Allow reverification of system contracts in Yul
([#3735](matter-labs/zksync-era#3735))
([e99b548](matter-labs/zksync-era@e99b548))
* **contract-verifier:** contract verifier to return fully matched
verification info when available
([#3734](matter-labs/zksync-era#3734))
([1a0f27f](matter-labs/zksync-era@1a0f27f))
* **contract-verifier:** Correctly process partial verification for EVM
contracts
([#3688](matter-labs/zksync-era#3688))
([8292234](matter-labs/zksync-era@8292234))
* **contract-verifier:** Ignore suppressable errors during compilation
([#3747](matter-labs/zksync-era#3747))
([a5955c4](matter-labs/zksync-era@a5955c4))
* **data-availability-fetcher:** prevent EN database from being
populated with unnecessary inclusion data
([#3742](matter-labs/zksync-era#3742))
([037bac3](matter-labs/zksync-era@037bac3))
* make eigenda_eth_rpc in Eigen config optional in file-based configs
([#3732](matter-labs/zksync-era#3732))
([69d0efc](matter-labs/zksync-era@69d0efc))
* make secret optionnal when da client object store is selected
([#3715](matter-labs/zksync-era#3715))
([f05fffd](matter-labs/zksync-era@f05fffd))
* Serialization issues
([#3589](matter-labs/zksync-era#3589))
([606d5af](matter-labs/zksync-era@606d5af))
* **vm:** Fix another VM divergence in validation
([#3675](matter-labs/zksync-era#3675))
([85dfc13](matter-labs/zksync-era@85dfc13))


### Performance Improvements

* **zkos:** Choose optimal amortization radix for ZK OS Merkle tree
([#3685](matter-labs/zksync-era#3685))
([fc1e230](matter-labs/zksync-era@fc1e230))

---
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 <zksync-era-bot@users.noreply.github.com>
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.

2 participants