@aztec/bb-prover 0.0.1-commit.9b94fc1 → 0.0.1-commit.9ee6fcc6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dest/avm_proving_tests/avm_proving_tester.d.ts +5 -4
  2. package/dest/avm_proving_tests/avm_proving_tester.d.ts.map +1 -1
  3. package/dest/avm_proving_tests/avm_proving_tester.js +26 -10
  4. package/dest/bb/execute.d.ts +7 -6
  5. package/dest/bb/execute.d.ts.map +1 -1
  6. package/dest/bb/execute.js +52 -76
  7. package/dest/config.d.ts +12 -1
  8. package/dest/config.d.ts.map +1 -1
  9. package/dest/instrumentation.d.ts +1 -1
  10. package/dest/instrumentation.d.ts.map +1 -1
  11. package/dest/instrumentation.js +21 -43
  12. package/dest/prover/client/bb_private_kernel_prover.d.ts +9 -3
  13. package/dest/prover/client/bb_private_kernel_prover.d.ts.map +1 -1
  14. package/dest/prover/client/bb_private_kernel_prover.js +16 -4
  15. package/dest/prover/client/bundle.d.ts +3 -3
  16. package/dest/prover/client/bundle.d.ts.map +1 -1
  17. package/dest/prover/client/bundle.js +2 -3
  18. package/dest/prover/client/lazy.d.ts +3 -3
  19. package/dest/prover/client/lazy.d.ts.map +1 -1
  20. package/dest/prover/client/lazy.js +2 -3
  21. package/dest/prover/proof_utils.js +1 -1
  22. package/dest/prover/server/bb_prover.d.ts +6 -9
  23. package/dest/prover/server/bb_prover.d.ts.map +1 -1
  24. package/dest/prover/server/bb_prover.js +416 -43
  25. package/dest/test/delay_values.d.ts +1 -1
  26. package/dest/test/delay_values.d.ts.map +1 -1
  27. package/dest/test/delay_values.js +28 -26
  28. package/dest/test/index.d.ts +2 -1
  29. package/dest/test/index.d.ts.map +1 -1
  30. package/dest/test/index.js +1 -0
  31. package/dest/test/test_circuit_prover.d.ts +4 -4
  32. package/dest/test/test_circuit_prover.d.ts.map +1 -1
  33. package/dest/test/test_circuit_prover.js +462 -59
  34. package/dest/verification_key/verification_key_data.d.ts +1 -8
  35. package/dest/verification_key/verification_key_data.d.ts.map +1 -1
  36. package/dest/verification_key/verification_key_data.js +1 -20
  37. package/dest/verifier/batch_chonk_verifier.d.ts +45 -0
  38. package/dest/verifier/batch_chonk_verifier.d.ts.map +1 -0
  39. package/dest/verifier/batch_chonk_verifier.js +232 -0
  40. package/dest/verifier/bb_verifier.d.ts +1 -1
  41. package/dest/verifier/bb_verifier.d.ts.map +1 -1
  42. package/dest/verifier/bb_verifier.js +1 -4
  43. package/dest/verifier/index.d.ts +2 -1
  44. package/dest/verifier/index.d.ts.map +1 -1
  45. package/dest/verifier/index.js +1 -0
  46. package/dest/verifier/queued_chonk_verifier.d.ts +2 -3
  47. package/dest/verifier/queued_chonk_verifier.d.ts.map +1 -1
  48. package/dest/verifier/queued_chonk_verifier.js +15 -45
  49. package/package.json +20 -19
  50. package/src/avm_proving_tests/avm_proving_tester.ts +31 -19
  51. package/src/bb/execute.ts +41 -60
  52. package/src/config.ts +11 -0
  53. package/src/instrumentation.ts +20 -43
  54. package/src/prover/client/bb_private_kernel_prover.ts +20 -6
  55. package/src/prover/client/bundle.ts +3 -4
  56. package/src/prover/client/lazy.ts +3 -4
  57. package/src/prover/proof_utils.ts +1 -1
  58. package/src/prover/server/bb_prover.ts +23 -38
  59. package/src/test/delay_values.ts +30 -26
  60. package/src/test/index.ts +1 -0
  61. package/src/test/test_circuit_prover.ts +10 -13
  62. package/src/verification_key/verification_key_data.ts +1 -26
  63. package/src/verifier/batch_chonk_verifier.ts +276 -0
  64. package/src/verifier/bb_verifier.ts +1 -5
  65. package/src/verifier/index.ts +1 -0
  66. package/src/verifier/queued_chonk_verifier.ts +15 -47
@@ -10,14 +10,12 @@ import {
10
10
  type ObservableGauge,
11
11
  type TelemetryClient,
12
12
  type UpDownCounter,
13
- ValueType,
13
+ createUpDownCounterWithDefault,
14
14
  getTelemetryClient,
15
15
  } from '@aztec/telemetry-client';
16
16
 
17
17
  import { createHistogram } from 'node:perf_hooks';
18
18
 
19
- import type { BBConfig } from '../config.js';
20
-
21
19
  class IVCVerifierMetrics {
22
20
  private ivcVerificationHistogram: Histogram;
23
21
  private ivcTotalVerificationHistogram: Histogram;
@@ -36,49 +34,18 @@ class IVCVerifierMetrics {
36
34
  constructor(client: TelemetryClient, name = 'QueuedIVCVerifier') {
37
35
  const meter = client.getMeter(name);
38
36
 
39
- this.ivcVerificationHistogram = meter.createHistogram(Metrics.IVC_VERIFIER_TIME, {
40
- unit: 'ms',
41
- description: 'Duration to verify chonk proofs',
42
- valueType: ValueType.INT,
43
- });
37
+ this.ivcVerificationHistogram = meter.createHistogram(Metrics.IVC_VERIFIER_TIME);
44
38
 
45
- this.ivcTotalVerificationHistogram = meter.createHistogram(Metrics.IVC_VERIFIER_TOTAL_TIME, {
46
- unit: 'ms',
47
- description: 'Total duration to verify chonk proofs, including serde',
48
- valueType: ValueType.INT,
49
- });
39
+ this.ivcTotalVerificationHistogram = meter.createHistogram(Metrics.IVC_VERIFIER_TOTAL_TIME);
50
40
 
51
- this.ivcFailureCount = meter.createUpDownCounter(Metrics.IVC_VERIFIER_FAILURE_COUNT, {
52
- description: 'Count of failed IVC proof verifications',
53
- valueType: ValueType.INT,
54
- });
41
+ this.ivcFailureCount = createUpDownCounterWithDefault(meter, Metrics.IVC_VERIFIER_FAILURE_COUNT);
55
42
 
56
43
  this.aggDurationMetrics = {
57
- avg: meter.createObservableGauge(Metrics.IVC_VERIFIER_AGG_DURATION_AVG, {
58
- valueType: ValueType.DOUBLE,
59
- description: 'AVG ivc verification',
60
- unit: 'ms',
61
- }),
62
- max: meter.createObservableGauge(Metrics.IVC_VERIFIER_AGG_DURATION_MAX, {
63
- valueType: ValueType.DOUBLE,
64
- description: 'MAX ivc verification',
65
- unit: 'ms',
66
- }),
67
- min: meter.createObservableGauge(Metrics.IVC_VERIFIER_AGG_DURATION_MIN, {
68
- valueType: ValueType.DOUBLE,
69
- description: 'MIN ivc verification',
70
- unit: 'ms',
71
- }),
72
- p50: meter.createObservableGauge(Metrics.IVC_VERIFIER_AGG_DURATION_P50, {
73
- valueType: ValueType.DOUBLE,
74
- description: 'P50 ivc verification',
75
- unit: 'ms',
76
- }),
77
- p90: meter.createObservableGauge(Metrics.IVC_VERIFIER_AGG_DURATION_P90, {
78
- valueType: ValueType.DOUBLE,
79
- description: 'P90 ivc verification',
80
- unit: 'ms',
81
- }),
44
+ avg: meter.createObservableGauge(Metrics.IVC_VERIFIER_AGG_DURATION_AVG),
45
+ max: meter.createObservableGauge(Metrics.IVC_VERIFIER_AGG_DURATION_MAX),
46
+ min: meter.createObservableGauge(Metrics.IVC_VERIFIER_AGG_DURATION_MIN),
47
+ p50: meter.createObservableGauge(Metrics.IVC_VERIFIER_AGG_DURATION_P50),
48
+ p90: meter.createObservableGauge(Metrics.IVC_VERIFIER_AGG_DURATION_P90),
82
49
  };
83
50
 
84
51
  meter.addBatchObservableCallback(this.aggregate, Object.values(this.aggDurationMetrics));
@@ -117,15 +84,15 @@ export class QueuedIVCVerifier implements ClientProtocolCircuitVerifier {
117
84
  private metrics: IVCVerifierMetrics;
118
85
 
119
86
  public constructor(
120
- config: BBConfig,
121
87
  private verifier: ClientProtocolCircuitVerifier,
88
+ concurrency: number,
122
89
  private telemetry: TelemetryClient = getTelemetryClient(),
123
90
  private logger = createLogger('bb-prover:queued_chonk_verifier'),
124
91
  ) {
125
92
  this.metrics = new IVCVerifierMetrics(this.telemetry, 'QueuedIVCVerifier');
126
93
  this.queue = new SerialQueue();
127
- this.logger.info(`Starting QueuedIVCVerifier with ${config.numConcurrentIVCVerifiers} concurrent verifiers`);
128
- this.queue.start(config.numConcurrentIVCVerifiers);
94
+ this.logger.info(`Starting QueuedIVCVerifier with ${concurrency} concurrent verifiers`);
95
+ this.queue.start(concurrency);
129
96
  }
130
97
 
131
98
  public async verifyProof(tx: Tx): Promise<IVCProofVerificationResult> {
@@ -134,7 +101,8 @@ export class QueuedIVCVerifier implements ClientProtocolCircuitVerifier {
134
101
  return result;
135
102
  }
136
103
 
137
- stop(): Promise<void> {
138
- return this.queue.end();
104
+ async stop(): Promise<void> {
105
+ await this.queue.end();
106
+ await this.verifier.stop();
139
107
  }
140
108
  }