-
Notifications
You must be signed in to change notification settings - Fork 5
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
basic benchmark #41
Comments
Block(4, 1, 1) with poseidon_hash:
|
Block(4, 1, 1) with rescue_hash:
|
better to post circuit here like 'Block(2,2,2,)' |
I see. |
==> ./data/rescue/massive/plonkit.time <== ==> ./data/rescue/massive/plonkit_lagrange.time <== ==> ./data/rescue/massive/zkutil.time <== ==> ./data/poseidon/massive/plonkit.time <== ==> ./data/poseidon/massive/plonkit_lagrange.time <== ==> ./data/poseidon/massive/zkutil.time <==
|
rapidsnark zkey generation is too slow; zkutil only supports json witness, but nodejs seems cannot write huge json file (> 512MB ). We may need to cherry-pick wtns reading to zkutil |
component main = Block(50, 20, 20, 20); ==> ./data/rescue/massive/plonkit.time <== We will use this circuit for a while |
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz component main = Block(100, 10, 10, 10); // it takes about 24h to process the circuit real 18m50.111s component main = Block(100, 10, 10, 10); real 0m14.529s |
Conclusion: So the proving time is basically linear as expected. 100 tps needs 300 24core machine ( real core? ht core? ) Assume EC2 c5.12xlarge ( 48 vcpus Latency about 15-20min~ |
==> /home/ubuntu/repos/circuits/tools/benchmark/data/massive/plonkit_lagrange_gen.time <== ==> /home/ubuntu/repos/circuits/tools/benchmark/data/massive/plonkit.time <== ==> /home/ubuntu/repos/circuits/tools/benchmark/data/massive/plonkit_lagrange.time <== ==> /home/ubuntu/repos/circuits/tools/benchmark/data/massive/zkutil.time <== ==> /home/ubuntu/repos/circuits/tools/benchmark/data/massive/circuit.circom <== |
so 421766.99 gates per tx. 2**28 == 636 * 421766.99. more than 600 layer2 tx in one l2 block |
Block(100, 20, 20, 20): peak memory: 261GB constructionPhase: 35:58.744 |
zksyn transfer needs 2 chunks, swap needs 5 chunks. So transfer needs 200k gates, swap needs 500k gates.
|
Choose a circuit ( either spotTrade or Block including spotTrade ), get a table with following schema:
Both one core and multi core ( 4 core or 8 core ) ( or
real time
/user time
) results are useful :plonkit should be upgraded to bellman beta branch ( If fully upgrading including solidity stuff costs much time, we can create a branch rather than push unfinished code to plonkit master )
The bench script code may be executed later so it is needed to be commited into the repo. ( We don't need a full auto script. Some manual operations are ok )
https://github.com/Fluidex/circuits/blob/master/tools/replace_hash.sh may be useful.
rapidsnark need a zkey, we may have to generate it.
The text was updated successfully, but these errors were encountered: