Skip to content

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.

data plots