-
Notifications
You must be signed in to change notification settings - Fork 843
Keccak lookup error causes real prover to panic in testnet #723
Comments
Proof is failing on block 1, attaching the debug traces of submitted transactions. |
privacy-scaling-explorations/zkevm-chain@abede6a
Ah, actually the commit should fix privacy-scaling-explorations/zkevm-chain#24 😆 |
Here are the transaction traces and mock prover outputs for the same use case. @CPerezz @pinkiebell @ed255 Layer_2_Block_1_0xaa7d9aef38951286c85f16abc8e38ac9c378adc405c3bddfe7bd92f530cefc50.txt mockProver.log |
That was fast!! Thanks @pinkiebell @AronisAt79 !! Did we go for the approach discussed in our call @AronisAt79 ?? |
According to the logs. I see that: As for the logs, They're pretty difficult to read. Isn't it possible to print the entire But there's `MSTORE` for example in the block traces. See:
|
I think this should be moved to |
@CPerezz pretty much. But simpler :). No extra service//container created. Once a proof_request fails, mockProver is activated on the same container. @pinkiebell said that we could also implement a proof_request option to control whether a real or mock prover is engaged per proof_request. I think that would be an awesome debug tool to consider. |
@AronisAt79 @CPerezz @pinkiebell do we know what's the pre-state for the block? |
Hi @ChihChengLiang. Unfortunately not. I will need to repeat the test since the environment has been redeployed. How do i collect the block pre_state info? |
I have no idea currently. Maybe @pinkiebell has some info. I can look into the prover code. |
The
Returns for example:
|
I think this should do @ChihChengLiang right? Since the failure is inside the |
thanks @pinkiebell! |
Thank you @AronisAt79 for the prestate. Is there a chance we can get the block info? It would have the content of the block header and the transactions inside it. |
@ChihChengLiang I looked your PR. I think the error must have something todo with not having the proper block/tx setup. So the data of the block is needed and (easier) to reproduce anyway. I think it's best to pull-in a script that: |
I added a helper script: privacy-scaling-explorations/zkevm-chain@0dc460a @AronisAt79 You have to retry this again. Sorry for the inconvenience 🙏 |
Hello, @pinkiebell thanks for the script. I will add a debug option into our test tool to fetch that info. Can you please explain why you go back specifically 255 blocks in history? @ChihChengLiang i am attaching fresh set of info plus tx traces. Will you need the prover log as well? |
@AronisAt79 thanks for the data. Yeah prover log might help if it's not too much trouble for you. |
The max. supported lookup (by EVM convention) is 256 blocks. And otherwise are just zero hash. I didn't take a closer look ad the circuit input builder and just padded the array accordingly. |
@pinkiebell the bug seems to be fixed on main. Can you try the zkevm-main on zkevm-chain prover? |
Will do. |
@AronisAt79 Can we do a run with privacy-scaling-explorations/zkevm-chain@d01a5c0 and see if it goes trough without errors? |
sure! on it |
Close in favor of #790 |
* try * fix: returndatalength for precompiles * fix: add restorecontext to modexp * return data length for precompiles using BaseGadget --------- Co-authored-by: Rohit Narurkar <rohit.narurkar@protonmail.com>
During proof generation (block consisting of a single deposit Tx):
[2022-08-29T12:52:09Z INFO prover::shared_state] ProvingKey: generated and cached key=/testnet/21.bin944750200000596662096896
[2022-08-29T14:05:32Z INFO prover::shared_state] task_result: Err(
"The constraint system is not satisfied",
)
commit: 2887314434c1fe52e88a7176385c2db09fadae8d
The text was updated successfully, but these errors were encountered: