@@ -14,14 +14,16 @@ import {
14
14
Signature ,
15
15
verify ,
16
16
} from "../src/lib" ;
17
- import { runBenchmark } from "./runner" ;
17
+ import { BenchmarkRunner } from "./utils /runner" ;
18
18
19
19
const dst = "BLS_SIG_BLS12381G2-SHA256-SSWU-RO_POP_" ;
20
20
const hashOrEncode = true ;
21
21
const msg = Buffer . from ( "Mr F was here" ) ;
22
22
23
23
( async function ( ) {
24
- await runBenchmark ( {
24
+ const runner = new BenchmarkRunner ( "BLS opts benchmark" ) ;
25
+
26
+ await runner . run ( {
25
27
id : "Scalar multiplication G1 (255-bit, constant-time)" ,
26
28
before : ( ) => { } ,
27
29
beforeEach : ( ) => ( {
@@ -33,7 +35,7 @@ const msg = Buffer.from("Mr F was here");
33
35
} ,
34
36
} ) ;
35
37
36
- await runBenchmark ( {
38
+ await runner . run ( {
37
39
id : "Scalar multiplication G2 (255-bit, constant-time)" ,
38
40
before : ( ) => { } ,
39
41
beforeEach : ( ) => ( {
@@ -45,7 +47,7 @@ const msg = Buffer.from("Mr F was here");
45
47
} ,
46
48
} ) ;
47
49
48
- await runBenchmark ( {
50
+ await runner . run ( {
49
51
id : "EC add G1 (constant-time)" ,
50
52
before : ( ) => { } ,
51
53
beforeEach : ( ) => {
@@ -57,7 +59,7 @@ const msg = Buffer.from("Mr F was here");
57
59
} ,
58
60
} ) ;
59
61
60
- await runBenchmark ( {
62
+ await runner . run ( {
61
63
id : "EC add G2 (constant-time)" ,
62
64
before : ( ) => { } ,
63
65
beforeEach : ( ) => {
@@ -69,7 +71,7 @@ const msg = Buffer.from("Mr F was here");
69
71
} ,
70
72
} ) ;
71
73
72
- await runBenchmark < { pk : P1_Affine ; sig : P2_Affine } , Pairing > ( {
74
+ await runner . run < { pk : P1_Affine ; sig : P2_Affine } , Pairing > ( {
73
75
id : "Pairing (Miller loop + Final Exponentiation)" ,
74
76
before : ( ) => {
75
77
const sk = new blst . SecretKey ( ) ;
@@ -99,7 +101,7 @@ const msg = Buffer.from("Mr F was here");
99
101
} ,
100
102
} ) ;
101
103
102
- await runBenchmark ( {
104
+ await runner . run ( {
103
105
id : "Hash to G2 (Draft #9) + affine conversion" ,
104
106
before : ( ) => { } ,
105
107
beforeEach : ( ) => new blst . P2 ( ) ,
@@ -115,42 +117,42 @@ const msg = Buffer.from("Mr F was here");
115
117
{ id : "P1" , P : blst . P1 , p : blst . BLS12_381_G1 } ,
116
118
{ id : "P2" , P : blst . P2 , p : blst . BLS12_381_G2 } ,
117
119
] ) {
118
- await runBenchmark ( {
120
+ await runner . run ( {
119
121
id : `${ id } to_affine` ,
120
122
before : ( ) => { } ,
121
123
beforeEach : ( ) => new P ( p ) ,
122
124
run : ( p ) => p . to_affine ( ) ,
123
125
} ) ;
124
126
125
- await runBenchmark ( {
127
+ await runner . run ( {
126
128
id : `${ id } to_jacobian` ,
127
129
before : ( ) => { } ,
128
130
beforeEach : ( ) => p . dup ( ) ,
129
131
run : ( p ) => p . to_jacobian ( ) ,
130
132
} ) ;
131
133
132
- await runBenchmark ( {
134
+ await runner . run ( {
133
135
id : `${ id } compress` ,
134
136
before : ( ) => { } ,
135
137
beforeEach : ( ) => new P ( p ) ,
136
138
run : ( p ) => p . compress ( ) ,
137
139
} ) ;
138
140
139
- await runBenchmark ( {
141
+ await runner . run ( {
140
142
id : `${ id } serialize` ,
141
143
before : ( ) => { } ,
142
144
beforeEach : ( ) => new P ( p ) ,
143
145
run : ( p ) => p . serialize ( ) ,
144
146
} ) ;
145
147
146
- await runBenchmark ( {
148
+ await runner . run ( {
147
149
id : `${ id } from compress` ,
148
150
before : ( ) => { } ,
149
151
beforeEach : ( ) => new P ( p ) . compress ( ) ,
150
152
run : ( bytes ) => new P ( bytes ) ,
151
153
} ) ;
152
154
153
- await runBenchmark ( {
155
+ await runner . run ( {
154
156
id : `${ id } from serialize` ,
155
157
before : ( ) => { } ,
156
158
beforeEach : ( ) => new P ( p ) . serialize ( ) ,
@@ -169,25 +171,25 @@ const msg = Buffer.from("Mr F was here");
169
171
P1_Affine : new blst . P1 ( sk ) . to_affine ( ) ,
170
172
P2_Affine : new blst . P2 ( sk ) . to_affine ( ) ,
171
173
} ) ) {
172
- await runBenchmark ( {
174
+ await runner . run ( {
173
175
id : `${ id } on_curve` ,
174
176
before : ( ) => { } ,
175
177
run : ( ) => p . on_curve ( ) ,
176
178
} ) ;
177
179
178
- await runBenchmark ( {
180
+ await runner . run ( {
179
181
id : `${ id } in_group` ,
180
182
before : ( ) => { } ,
181
183
run : ( ) => p . in_group ( ) ,
182
184
} ) ;
183
185
184
- await runBenchmark ( {
186
+ await runner . run ( {
185
187
id : `${ id } is_inf` ,
186
188
before : ( ) => { } ,
187
189
run : ( ) => p . is_inf ( ) ,
188
190
} ) ;
189
191
190
- await runBenchmark ( {
192
+ await runner . run ( {
191
193
id : `${ id } dup` ,
192
194
before : ( ) => { } ,
193
195
run : ( ) => p . dup ( ) ,
@@ -206,7 +208,7 @@ const msg = Buffer.from("Mr F was here");
206
208
} ) ;
207
209
208
210
// Fastest than using .dup()
209
- await runBenchmark < InstanceType < typeof blst . P1 > [ ] > ( {
211
+ await runner . run < InstanceType < typeof blst . P1 > [ ] > ( {
210
212
id : `BLS aggregate ${ aggCount } from P1[] with .add` ,
211
213
before : ( ) => sks . map ( ( sk ) => new blst . P1 ( sk ) ) ,
212
214
run : ( pks ) => {
@@ -215,7 +217,7 @@ const msg = Buffer.from("Mr F was here");
215
217
} ,
216
218
} ) ;
217
219
218
- await runBenchmark < InstanceType < typeof blst . P1 > [ ] > ( {
220
+ await runner . run < InstanceType < typeof blst . P1 > [ ] > ( {
219
221
id : `BLS aggregate ${ aggCount } from P1[] with .add add .dup first` ,
220
222
before : ( ) => sks . map ( ( sk ) => new blst . P1 ( sk ) ) ,
221
223
run : ( pks ) => {
@@ -224,7 +226,7 @@ const msg = Buffer.from("Mr F was here");
224
226
} ,
225
227
} ) ;
226
228
227
- await runBenchmark < InstanceType < typeof blst . P1_Affine > [ ] > ( {
229
+ await runner . run < InstanceType < typeof blst . P1_Affine > [ ] > ( {
228
230
id : `BLS aggregate ${ aggCount } from P1_Aff[] with .add` ,
229
231
before : ( ) => sks . map ( ( sk ) => new blst . P1 ( sk ) . to_affine ( ) ) ,
230
232
run : ( pks ) => {
@@ -234,7 +236,7 @@ const msg = Buffer.from("Mr F was here");
234
236
} ) ;
235
237
236
238
// This is way more expensive because .aggregate does a group check on each key
237
- await runBenchmark < InstanceType < typeof blst . P1_Affine > [ ] > ( {
239
+ await runner . run < InstanceType < typeof blst . P1_Affine > [ ] > ( {
238
240
id : `BLS aggregate ${ aggCount } from P1_Aff[] with .aggregate` ,
239
241
before : ( ) => sks . map ( ( sk ) => new blst . P1 ( sk ) . to_affine ( ) ) ,
240
242
run : ( pks ) => {
@@ -246,7 +248,7 @@ const msg = Buffer.from("Mr F was here");
246
248
247
249
// BLS lib
248
250
249
- await runBenchmark ( {
251
+ await runner . run ( {
250
252
id : "BLS signature" ,
251
253
before : ( ) => { } ,
252
254
beforeEach : ( ) => SecretKey . fromKeygen ( crypto . randomBytes ( 32 ) ) ,
@@ -255,7 +257,7 @@ const msg = Buffer.from("Mr F was here");
255
257
} ,
256
258
} ) ;
257
259
258
- await runBenchmark < { pk : PublicKey ; sig : Signature } > ( {
260
+ await runner . run < { pk : PublicKey ; sig : Signature } > ( {
259
261
id : "BLS verification" ,
260
262
before : ( ) => {
261
263
const sk = SecretKey . fromKeygen ( crypto . randomBytes ( 32 ) ) ;
@@ -268,8 +270,8 @@ const msg = Buffer.from("Mr F was here");
268
270
} ,
269
271
} ) ;
270
272
271
- for ( const n of [ 32 , 128 , 512 ] ) {
272
- await runBenchmark < { pks : PublicKey [ ] ; sig : Signature } > ( {
273
+ for ( const n of [ 32 , 128 ] ) {
274
+ await runner . run < { pks : PublicKey [ ] ; sig : Signature } > ( {
273
275
id : `BLS agg verif of 1 msg by ${ n } pubkeys` ,
274
276
before : ( ) => {
275
277
const pks : PublicKey [ ] = [ ] ;
0 commit comments