-
Notifications
You must be signed in to change notification settings - Fork 19
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
feat(example): poseidon-based merkle-tree benchmark #285
Comments
when tree height is large e.g. 32 levels, then it is practical to start with default tree. In bottom level (level 1), each leaf has default value v1=hash(NULL) |
**Motivation** Part of #285 Our API should allow step-circuit to be changed between rounds of folding **Overview** It's just that now IVC is taking the step circuit from the ref
**Motivation** Our API should allow step-circuit to be changed between rounds of folding. As part of #285, we will change the private input (merkle-tree leaves changing) at each iteration of folding **Overview** It's just that now IVC is taking the step circuit from the ref
FYI Apart from the benchmark itself, the only thing left is the correctness of the merkle-tree calculation on-circuit Now you can rearrange the sibling in the counting of the original root and the new one - and the circuit will think that everything is correct, but it is wrong. I'll fix it tomorrow by fixing the order of hash input with index. But except for this nuance - the circuit is ready and working and folding |
I finished to implement merkle-tree-update-circuit, collect data for all the batch we are interested in, moved to the task of implementing this circuit within halo2, so far the problem is that |
Benchmark Update:
|
Added to kzg-halo2curves branch
For refresh keygen: |
**Motivation** Within #285 we used this gadget as a test gadget, however, due to the fact that benchmarks will now be systematic I suggest adding it to the main codebase **Overview** The implementation is a bit rough and not generalized everywhere, but it works, so I suggest to add it to the project in this form and add an issue for refactoring
**Motivation** Without fields, information about span is incomplete, part of #285 **Overview** Simply add the required fields to the output on the basis of logs
**Motivation** Within #285 we used this gadget as a test gadget, however, due to the fact that benchmarks will now be systematic I suggest adding it to the main codebase **Overview** The implementation is a bit rough and not generalized everywhere, but it works, so I suggest to add it to the project in this form and add an issue for refactoring
**Motivation** For systematic performance measurements we need references and halo2 based on ipa & kzg can act as them Part of #285 **Overview** - Added halo2 code samples to run, parameters are passed through cli-args - Renamed cargo-alias, added abbreviation `re`('run example') instead of postfix '-example'
Memory UsageRepeat Count: 2
Repeat Count: 10
Repeat Count: 20
Repeat Count: 40
Repeat Count: 60
Repeat Count: 80
Repeat Count: 100
|
Start with initial tree state. The initial tree can be fully filled with default values (e.g. hash(NULL)). Then batch update the merkle tree by a list of nodes.
Public Input
[Old Root Hash, Root Hash]
Private Input
Vec<(leaf_index, new_leaf_value)>
The text was updated successfully, but these errors were encountered: