You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since the state of the proposer/prover_server depends on the last_verified_block or block_committed to the L1 and the zk Proofs coming from the prover_client, there is a need to keep track of the verified proofs and then update the proposer's state.
If we think that the prover_client just asks for inputs to use, it can be thought as a stateless component, all the state is handled by the proposer.
The prover_server should store:
The latest_verified_block(block verified on the L1) → check if we can get it from a contract.
The account_updates of each block.
Unsent proofs to the L1, if we want to batch proof verifications.
The complete workflow would be:
New block is executed.
Proposer commits to this new block. For this it reexecutes the block to get the account updates. It saves the account_updates on disk.
The prover server reads from disk the account_updates, creates the execution_db and passes it to the prover client.
When the client sends the proof to the proof server, the server stores it on disk.
Since the state of the
proposer
/prover_server
depends on thelast_verified_block
orblock_committed
to the L1 and thezk Proofs
coming from theprover_client
, there is a need to keep track of the verified proofs and then update the proposer's state.prover_client
just asks for inputs to use, it can be thought as a stateless component, all the state is handled by theproposer
.prover_server
should store:latest_verified_block
(block verified on the L1) → check if we can get it from a contract.account_updates
of each block.The complete workflow would be:
Proposed structure:
latest committed block
and thelatest verified block
.We may have to create a verifying contract, described in Issue #1006.
TaskList:
The text was updated successfully, but these errors were encountered: