-
Notifications
You must be signed in to change notification settings - Fork 28
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
Always prove to produce proofs for BatchProofs #1540
base: nightly
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
explained in DMs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sorry I misunderstood
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
are you sure light client proofs with work with fake proofs and real proofs? (running in dev mode ofc)
Yes. Before we added a new proving mode
I can't do it now with |
I don't quite understand the motivation behind this PR. As far as I observed:
What is the effect of this to fullnodes? How will fullnodes know whether the proof is fake or not when verifying if some of them can be fake and some of them can be real? How will this be used in conjunction with the What does this bring us in general? |
we get to test da consumption and gather logs on testnet without any additional costs. looks like our testnet zk aproach will be based on this |
ProofGenMode::ProveWithSampling => { | ||
// `make_proof` is called with a probability in this case. | ||
// When it's called, we have to produce a real proof. | ||
vm.run(elf, true) | ||
} | ||
ProofGenMode::ProveWithSamplingWithFakeProofs(proof_sampling_number) => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Only nit I have is that ProveWithSampling is a bit confusing to me, because in the eyes of ProverService it is just Prove, and sampling happens above in the call stack in da_block_handler. So i think we should just call them Prove and ProveWithSampling respectively, so its obvious from the ProofGenMode whether ProverService should do any sampling itself.
I am not going to block the PR for this nit, but would love to see this change.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, what if instead of sampling on per proof basis for ProveWithSamplingWithFakeProofs, we sample per DA block. Meaning, we again decide the sampling on da_block_handler level, but what we decide is to whether proofs in current DA should be run in execute or prove mode. It would simplify the flow quite a bit. Just throwing this out as a thought. WDYT?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We talked with Esad, the approach doesn't matter much in this PR. We may open a new issue as a followup
Description
We run every seqcom on l1 block in execute mode (no proving but producing fake receipts).
So we have to implement producing fake proof for all batch proofs but with sampling to produce a real proof once a day.
In order to do that there is a new proving mode:
prove-with-fakes
.Linked Issues
Testing
I tested locally for:
So light client proving for fake batch proofs works.