Open wangtsiao opened 1 year ago
Thanks for the report, we're currently investigating this.
I have run the integration tests for each individual circuit with the real prover and they all seem to pass.
I used this script:
CIRCUITS="bytecode_circuit
copy_circuit
evm_circuit
exp_circuit
keccak_circuit
state_circuit
tx_circuit"
# super_circuit"
TESTS="block_transfer_0
multiple_transfers_0
erc20_openzeppelin_transfer_succeed
erc20_openzeppelin_transfer_fail
multiple_erc20_openzeppelin_transfers"
for circuit in $CIRCUITS; do
for test in $TESTS; do
cargo test --release --test circuits real_prover::serial_test_${circuit}_${test} -- --nocapture
done
done
This are the results:
Idea: we can compare the status of this issue with the scroll fork (to see if we're failing the same tests or not)
Thanks @ed255 for the analysis. integration tests in e2e environment are for the most part successful, apart from the EVM and SUPER circuit proofs, Reference issues : #1334 #1335 (all tests run with aggregate enabled) Super circuit test without aggregate is currently in progress. Will update here as soon as test concludes.
Here's a summary of what we have tested so far:
Results for real prover with:
73b2aebca9400ac8b31c9394fb726690dbfe0b74
2023-05-30 02:00:00
Circuit | standalone | with Aggregation |
---|---|---|
EVM | PASS | FAILED |
State | PASS | PASS |
Tx | PASS | PASS |
Bytecode | PASS | PASS |
Copy | PASS | PASS |
Keccak | PASS | PASS |
Exp | PASS | PASS |
Pi | PASS | PASS |
Super | FAILED | FAILED |
proof for super circuit / no aggregate succeeds. https://zkevm-chain-testing.s3.eu-central-1.amazonaws.com/proveSingeCrossChainTx_super_False_410-maronis.tar.gz
We have been able to reproduce this issue. All integration tests with the real prover and super circuit are failing https://github.com/privacy-scaling-explorations/zkevm-circuits/actions/runs/5152993138/jobs/9279691434
The fact that the subcircuits test with real prover pass, and that all mock prover tests pass makes it a bit hard to debug this issue. A ConstraintSystemFailure
is very opaque and doesn't give you any hint of what may be the problem (which ideally should be found by the MockProver, but that's not happening)
proof for super circuit / no aggregate succeeds. https://zkevm-chain-testing.s3.eu-central-1.amazonaws.com/proveSingeCrossChainTx_super_False_410-maronis.tar.gz
Update on this: The test that succeeded was using an old version of the zkevm-circuits. Via the integration test run via github actions we have been able to reproduce the issue and observe the failure (see previous message)
What command(s) is the bug in?
cargo test --release --test circuits real_prover::serial_test_super_circuit_multiple_erc20_openzeppelin_transfers -- --nocapture 2>&1
Describe the bug
mock_prover
passes tests, but the following error occurs when switching toreal_prover
.Not only
circuit_multiple_erc20_openzeppelin_transfers
, but alsocircuit_block_transfer_0
,circuit_multiple_transfers_0
, andcircuit_erc20_openzeppelin_transfer_succeed
.Concrete steps to reproduce the bug. If it's able reproduce via testool, please share
test_id
from jenkins report