1- import { xmssLatest , XMSS_TARGET , AGGREGATE_SIZE_TARGET , aggregateSize } from './xmss-aggregation' ;
1+ import {
2+ xmssLatest ,
3+ XMSS_AGGREGATE_TIMING_TARGET ,
4+ AGGREGATE_SIZE_TARGET ,
5+ aggregateSize ,
6+ } from './benchmarks/xmss-aggregation' ;
7+ import { leanSigTimingData , LEANSIG_TIMING_TARGET } from './benchmarks/leansig-timing' ;
28
39export interface BenchmarkCategory {
410 id : string ;
@@ -34,23 +40,39 @@ export const benchmarksData: BenchmarkCategory[] = [
3440 value : '3' ,
3541 unit : 'KiB' ,
3642 } ,
43+ {
44+ label : 'Key generation time' ,
45+ note : '10-core MacBook Pro M1; 8 years key lifetime' ,
46+ value : '3.5' ,
47+ unit : 'hours' ,
48+ } ,
49+ {
50+ label : 'Signing time (Target)' ,
51+ note : 'Performance goal' ,
52+ value : String ( LEANSIG_TIMING_TARGET ) ,
53+ unit : 'μs' ,
54+ highlight : true ,
55+ } ,
3756 {
3857 label : 'Signing time' ,
39- note : 'Single core performance' ,
40- value : '~500' ,
58+ note : 'Single core performance, MacBook Pro M1 ' ,
59+ value : `~ ${ leanSigTimingData [ 0 ] . signing } ` ,
4160 unit : 'μs' ,
61+ subValue : `${ Math . round ( ( leanSigTimingData [ 0 ] . signing / LEANSIG_TIMING_TARGET ) * 100 ) } % of target${ leanSigTimingData [ 0 ] . signing <= LEANSIG_TIMING_TARGET ? ' 🎉' : '' } ` ,
4262 } ,
4363 {
44- label : 'Verification time' ,
45- note : 'Single core performance ' ,
46- value : '~300' ,
64+ label : 'Verification time (Target) ' ,
65+ note : 'Performance goal ' ,
66+ value : String ( LEANSIG_TIMING_TARGET ) ,
4767 unit : 'μs' ,
68+ highlight : true ,
4869 } ,
4970 {
50- label : 'Key generation time' ,
51- note : '10-core MacBook Pro; 8 years key lifetime' ,
52- value : '3.5' ,
53- unit : 'hours' ,
71+ label : 'Verification time' ,
72+ note : 'Single core performance, MacBook Pro M1' ,
73+ value : `~${ leanSigTimingData [ 0 ] . verification } ` ,
74+ unit : 'μs' ,
75+ subValue : `${ Math . round ( ( leanSigTimingData [ 0 ] . verification / LEANSIG_TIMING_TARGET ) * 100 ) } % of target${ leanSigTimingData [ 0 ] . verification <= LEANSIG_TIMING_TARGET ? ' 🎉' : '' } ` ,
5476 } ,
5577 ] ,
5678 } ,
@@ -62,7 +84,7 @@ export const benchmarksData: BenchmarkCategory[] = [
6284 {
6385 label : 'XMSS aggregated (Target)' ,
6486 note : 'Performance goal' ,
65- value : String ( XMSS_TARGET ) ,
87+ value : String ( XMSS_AGGREGATE_TIMING_TARGET ) ,
6688 unit : 'XMSS/s' ,
6789 highlight : true ,
6890 } ,
@@ -71,21 +93,21 @@ export const benchmarksData: BenchmarkCategory[] = [
7193 note : 'main branch; optimized for prover efficiency' ,
7294 value : `~${ xmssLatest . m4 } ` ,
7395 unit : '/sec' ,
74- subValue : `${ Math . round ( ( xmssLatest . m4 ! / XMSS_TARGET ) * 100 ) } % of target` ,
96+ subValue : `${ Math . round ( ( xmssLatest . m4 ! / XMSS_AGGREGATE_TIMING_TARGET ) * 100 ) } % of target${ xmssLatest . m4 ! >= XMSS_AGGREGATE_TIMING_TARGET ? ' 🎉' : '' } ` ,
7597 } ,
7698 {
7799 label : 'XMSS aggregated (M4 Max - Simple)' ,
78100 note : 'lean-vm-simple branch; optimized for simplicity' ,
79101 value : `~${ xmssLatest . m4vm } ` ,
80102 unit : '/sec' ,
81- subValue : `${ Math . round ( ( xmssLatest . m4vm ! / XMSS_TARGET ) * 100 ) } % of target` ,
103+ subValue : `${ Math . round ( ( xmssLatest . m4vm ! / XMSS_AGGREGATE_TIMING_TARGET ) * 100 ) } % of target${ xmssLatest . m4vm ! >= XMSS_AGGREGATE_TIMING_TARGET ? ' 🎉' : '' } ` ,
82104 } ,
83105 {
84106 label : 'XMSS aggregated (i9-12900H)' ,
85107 note : 'Baseline Intel performance' ,
86108 value : `~${ xmssLatest . i9 } ` ,
87109 unit : '/sec' ,
88- subValue : `${ Math . round ( ( xmssLatest . i9 ! / XMSS_TARGET ) * 100 ) } % of target` ,
110+ subValue : `${ Math . round ( ( xmssLatest . i9 ! / XMSS_AGGREGATE_TIMING_TARGET ) * 100 ) } % of target${ xmssLatest . i9 ! >= XMSS_AGGREGATE_TIMING_TARGET ? ' 🎉' : '' } ` ,
89111 } ,
90112 {
91113 label : 'Aggregate size (Target)' ,
@@ -99,14 +121,14 @@ export const benchmarksData: BenchmarkCategory[] = [
99121 note : 'main branch; optimized for prover efficiency' ,
100122 value : `~${ aggregateSize . efficient . min } - ${ aggregateSize . efficient . max } ` ,
101123 unit : 'KiB' ,
102- subValue : `${ Math . round ( ( aggregateSize . efficient . min / AGGREGATE_SIZE_TARGET ) * 100 ) } - ${ Math . round ( ( aggregateSize . efficient . max / AGGREGATE_SIZE_TARGET ) * 100 ) } % of target` ,
124+ subValue : `${ Math . round ( ( aggregateSize . efficient . min / AGGREGATE_SIZE_TARGET ) * 100 ) } - ${ Math . round ( ( aggregateSize . efficient . max / AGGREGATE_SIZE_TARGET ) * 100 ) } % of target${ aggregateSize . efficient . max <= AGGREGATE_SIZE_TARGET ? ' 🎉' : '' } ` ,
103125 } ,
104126 {
105127 label : 'Aggregate size (Simple)' ,
106128 note : 'lean-vm-simple branch; optimized for simplicity' ,
107129 value : `~${ aggregateSize . simple } ` ,
108130 unit : 'KiB' ,
109- subValue : `${ Math . round ( ( aggregateSize . simple / AGGREGATE_SIZE_TARGET ) * 100 ) } % of target` ,
131+ subValue : `${ Math . round ( ( aggregateSize . simple / AGGREGATE_SIZE_TARGET ) * 100 ) } % of target${ aggregateSize . simple <= AGGREGATE_SIZE_TARGET ? ' 🎉' : '' } ` ,
110132 } ,
111133 ] ,
112134 } ,
0 commit comments