Skip to content

Commit 561c249

Browse files
committed
Clarify benchmarks
1 parent bad6c98 commit 561c249

1 file changed

Lines changed: 29 additions & 50 deletions

File tree

test/benchmark/kzg.ts

Lines changed: 29 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,14 @@ export async function main() {
2929
g1: strip0x(trustedSetup.g1_lagrange),
3030
g2: strip0x(trustedSetup.g2_monomial),
3131
};
32-
const wasmKZG = await loadKZG(opts);
33-
const nobleKZG = new kzg.KZG(s_fast);
32+
let mkzg, wkzg;
3433

35-
await bench('init micro-eth-signer', () => new kzg.KZG(s_fast), 1);
36-
await bench('init kzg-wasm', () => loadKZG(opts), 1);
34+
await bench('init micro-eth-signer', () => {
35+
mkzg = new kzg.KZG(s_fast);
36+
}, 1);
37+
await bench('init kzg-wasm', async () => {
38+
wkzg = await loadKZG(opts)
39+
}, 1);
3740

3841
const i0 = VIEM['blob-to-kzg-commitment'][1].input;
3942
const i1 = VIEM['compute-kzg-proof'][0].input;
@@ -42,50 +45,50 @@ export async function main() {
4245
const i4 = VIEM['verify-blob-kzg-proof'][0].input;
4346
const i5 = VIEM['verify-blob-kzg-proof-batch'][1].input;
4447

45-
eql(nobleKZG.blobToKzgCommitment(i0.blob), wasmKZG.blobToKZGCommitment(i0.blob).toLowerCase());
48+
eql(mkzg.blobToKzgCommitment(i0.blob), wkzg.blobToKZGCommitment(i0.blob).toLowerCase());
4649
eql(
47-
nobleKZG.computeBlobProof(i2.blob, i2.commitment),
48-
wasmKZG.computeBlobKZGProof(i2.blob, i2.commitment).toLowerCase()
50+
mkzg.computeBlobProof(i2.blob, i2.commitment),
51+
wkzg.computeBlobKZGProof(i2.blob, i2.commitment).toLowerCase()
4952
);
5053
eql(
51-
nobleKZG.verifyProof(i3.commitment, i3.z, i3.y, i3.proof),
52-
wasmKZG.verifyKZGProof(i3.commitment, i3.z, i3.y, i3.proof)
54+
mkzg.verifyProof(i3.commitment, i3.z, i3.y, i3.proof),
55+
wkzg.verifyKZGProof(i3.commitment, i3.z, i3.y, i3.proof)
5356
);
5457
eql(
55-
nobleKZG.verifyBlobProof(i4.blob, i4.commitment, i4.proof),
56-
wasmKZG.verifyBlobKZGProof(i4.blob, i4.commitment, i4.proof)
58+
mkzg.verifyBlobProof(i4.blob, i4.commitment, i4.proof),
59+
wkzg.verifyBlobKZGProof(i4.blob, i4.commitment, i4.proof)
5760
);
5861
eql(
59-
nobleKZG.verifyBlobProofBatch(i5.blobs, i5.commitments, i5.proofs),
60-
wasmKZG.verifyBlobKZGProofBatch(i5.blobs, i5.commitments, i5.proofs)
62+
mkzg.verifyBlobProofBatch(i5.blobs, i5.commitments, i5.proofs),
63+
wkzg.verifyBlobKZGProofBatch(i5.blobs, i5.commitments, i5.proofs)
6164
);
6265
async function benchSigner() {
6366
console.log();
6467
console.log('# micro-eth-signer');
65-
await bench('blobToKzgCommitment', () => nobleKZG.blobToKzgCommitment(i0.blob));
66-
await bench('computeProof', () => nobleKZG.computeProof(i1.blob, i1.z));
67-
await bench('computeBlobProof', () => nobleKZG.computeBlobProof(i2.blob, i2.commitment));
68-
await bench('verifyProof', () => nobleKZG.verifyProof(i3.commitment, i3.z, i3.y, i3.proof));
69-
await bench('verifyBlogProof', () =>
70-
nobleKZG.verifyBlobProof(i4.blob, i4.commitment, i4.proof)
68+
await bench('blobToKzgCommitment', () => mkzg.blobToKzgCommitment(i0.blob));
69+
await bench('computeProof', () => mkzg.computeProof(i1.blob, i1.z));
70+
await bench('computeBlobProof', () => mkzg.computeBlobProof(i2.blob, i2.commitment));
71+
await bench('verifyProof', () => mkzg.verifyProof(i3.commitment, i3.z, i3.y, i3.proof));
72+
await bench('verifyBlobProof', () =>
73+
mkzg.verifyBlobProof(i4.blob, i4.commitment, i4.proof)
7174
);
7275
await bench('verifyBlobProofBatch', () =>
73-
nobleKZG.verifyBlobProofBatch(i5.blobs, i5.commitments, i5.proofs)
76+
mkzg.verifyBlobProofBatch(i5.blobs, i5.commitments, i5.proofs)
7477
);
7578
}
7679

7780
async function benchWasm() {
7881
console.log();
7982
console.log('# kzg-wasm');
80-
await bench('blobToKZGCommitment', () => wasmKZG.blobToKZGCommitment(i0.blob));
83+
await bench('blobToKZGCommitment', () => wkzg.blobToKZGCommitment(i0.blob));
8184
// () => nobleKZG.computeProof(i1.blob, i1.z)
82-
await bench('computeBlobProof', () => wasmKZG.computeBlobKZGProof(i2.blob, i2.commitment));
83-
await bench('verifyProof', () => wasmKZG.verifyKZGProof(i3.commitment, i3.z, i3.y, i3.proof));
84-
await bench('verifyBlogProof', () =>
85-
wasmKZG.verifyBlobKZGProof(i4.blob, i4.commitment, i4.proof)
85+
await bench('computeBlobProof', () => wkzg.computeBlobKZGProof(i2.blob, i2.commitment));
86+
await bench('verifyProof', () => wkzg.verifyKZGProof(i3.commitment, i3.z, i3.y, i3.proof));
87+
await bench('verifyBlobProof', () =>
88+
wkzg.verifyBlobKZGProof(i4.blob, i4.commitment, i4.proof)
8689
);
8790
await bench('verifyBlobProofBatch', () =>
88-
wasmKZG.verifyBlobKZGProofBatch(i5.blobs, i5.commitments, i5.proofs)
91+
wkzg.verifyBlobKZGProofBatch(i5.blobs, i5.commitments, i5.proofs)
8992
);
9093
}
9194
await benchSigner();
@@ -97,27 +100,3 @@ import url from 'node:url';
97100
if (import.meta.url === url.pathToFileURL(process.argv[1]).href) {
98101
main();
99102
}
100-
101-
/*
102-
M2, Nov 2024
103-
init
104-
├─wasm x 3 ops/sec @ 294ms/op
105-
└─noble x 161 ops/sec @ 6ms/op
106-
blobToKzgCommitment
107-
├─wasm x 3 ops/sec @ 304ms/op
108-
└─noble x 1 ops/sec @ 705ms/op
109-
computeKzgProof
110-
└─noble x 112 ops/sec @ 8ms/op
111-
computeBlobKzgProof
112-
├─wasm x 3 ops/sec @ 311ms/op
113-
└─noble x 1 ops/sec @ 725ms/op
114-
verifyKzgProof
115-
├─wasm x 241 ops/sec @ 4ms/op
116-
└─noble x 91 ops/sec @ 10ms/op
117-
verifyBlobKzgProof
118-
├─wasm x 109 ops/sec @ 9ms/op
119-
└─noble x 59 ops/sec @ 16ms/op
120-
verifyBlobKzgProofBatch
121-
├─wasm x 15 ops/sec @ 64ms/op
122-
└─noble x 14 ops/sec @ 71ms/op
123-
*/

0 commit comments

Comments
 (0)