Integration benchmarks and their results¶
Rollup benchmarks¶
This refers to benchmarking the rollup protocol in repo zkfold-cardano
.
We have benchmarked a rollup transaction with following assumptions:
- Two inputs, one containg the state (as datum) and a one containing an sample lovelace value.
- One reference input containing n data chunk tokens.
- Four outputs: the continuing output containing the new state, the "fee" output containing a lovelace value, a sample "bridge" output, and the change output.
We obtain exec units benchmarks as a function of n, the number of data chunk tokens, which we also refer as "update length" in following column:
Update length Exec Steps Exec Memory
0 5991180037 3189533
25 6488469206 5112315
50 6982110501 7016465
75 7475768416 8920615
100 7969409711 10824765
125 8463051006 12728915
150 8956692301 14633065
175 9450350216 16537215
200 9943991511 18441365
225 10437632806 20345515
250 10931274101 22249665
275 11424932016 24153815
300 11918573311 26057965
325 12412214606 27962115
350 12905855901 29866265
375 13399513816 31770415
400 13893155111 33674565
425 14386796406 35578715
450 14880437701 37482865
475 15374095616 39387015
500 15867736911 41291165
These results were obtained by executing cabal bench bench-rollup
.
We conclude that to be within exec units budget, the number of data chunks must be 141 or less. It means that a Rollup transaction batch can contain (roughly) up to 2.2MB of transaction data under the current Cardano protocol parameters.