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

Does Kurtosis-CDK have support for the real prover for testing? #430

Open
tiagorvmartins opened this issue Dec 30, 2024 · 7 comments
Open
Assignees
Labels
bug Something isn't working

Comments

@tiagorvmartins
Copy link

System information

Ubuntu 22.04

Commit id

af3798e

Description & steps to reproduce

Is there support for running the real prover with the Kurtosis-CDK stack?
Found the flag zkevm_use_real_verifier in

"zkevm_use_real_verifier": False,

However when changing to true it doesn't deploy the real prover, it actually just uses a stateless executor, is this expected?
Currently running the stack (fork13) with cdk validium option and erigon sequencer in strict mode.

Also can't see the memory bumping (more than ~10gb), was actually expecting a lot more memory comsuption (around 300GB+) as the comment describes in:

# Note: This will require a lot of memory to run!

The reason, I believe, its because of this if condition:

not args["zkevm_use_real_verifier"]

However would like to get more insights on this, since I need to test the real prover using kurtosis-cdk framework.

Thank you in advance!

Desired behavior

Running kurtosis-cdk with the real prover.

What is the severity of this bug?

Painful; This is causing significant friction in my workflow.

@tiagorvmartins tiagorvmartins added the bug Something isn't working label Dec 30, 2024
@doutv
Copy link

doutv commented Dec 31, 2024

I also want to test it.
I think we need to start a real prover separately.
See zkevm-prover config https://github.com/0xPolygonHermez/zkevm-prover/blob/main/src/config/README.md

@praetoriansentry
Copy link
Member

Yes, I test with a real prover. @doutv is right.

When I do this, I set the zkevm_use_real_veriifer flag like what you're doing. Then I bring up the full enclave. At this point, you should have everything running except the prover. Then I would start a prover separately using a binary or docker or whatever. You'll need to configure the prover to connect to the aggregator port that will be exposed by the CDK.

@tiagorvmartins
Copy link
Author

Beside turning the flag 'zkevm_use_real_verifer' to True and configuring the zkevm-prover outside of the kurtosis enclave while connected to the aggregator (cdk node of kurtosis enclave) and postgres prover db (also from kurtosis enclave), I see some errors stating:

zkError: ExecutorServiceImpl::ProcessStatelessBatchV2() called with config.hashDBSingleton=true

Not only this, but the zkevm_verifiedBatchNumber is not going up, only the zkevm_batchNumber and zkevm_virtualBatchNumber, I believe this is not expected.

At this moment, the first batch sequenced was 15h ago and still wasn't verified, wondering if I have something badly configured (related to the error shown above) or something else is off / requires more time to be verified?!

Let me know,
Thank you!

@doutv
Copy link

doutv commented Jan 2, 2025

Same as you. The prover is running but zkevm_verifiedBatchNumber is not going up.

@praetoriansentry It's better to create a markdown document to show how to connect a real prover to kurtosis-cdk

@praetoriansentry praetoriansentry self-assigned this Jan 2, 2025
@seromenho
Copy link

seromenho commented Jan 9, 2025

I have identified the source of the error: it originates from the executor_service.cpp https://github.com/0xPolygonHermez/zkevm-prover/blob/v9.0.0-RC3/src/service/executor/executor_service.cpp#L1724-L1731

However, I’m confused by the presence of this check, as from what I understand by reading the documentation and the prover configuration file, in a production environment the prover is expected to be configured with databaseURL set and stateManager enabled. Specifically in the trusted-node template configuration https://github.com/0xPolygon/kurtosis-cdk/blob/main/templates/trusted-node/prover-config.json#L167-L179
The erroring check seems more applicable to the stateless executor than the prover.

What should the correct configuration look like for a production prover setup?

Additionally, I am using the version of the components corresponding to fork ID 13 from the CDK version matrix.

Thank you

@tiagorvmartins
Copy link
Author

tiagorvmartins commented Jan 15, 2025

Any news on this? Thank you
@doutv @praetoriansentry

@doutv
Copy link

doutv commented Jan 16, 2025

I haven't figured out the reason and I switch to other things. perhaps you can check aggregator log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants