@aztec/prover-client 0.47.1 → 0.48.0

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 (54) hide show
  1. package/dest/config.d.ts +2 -0
  2. package/dest/config.d.ts.map +1 -1
  3. package/dest/config.js +28 -30
  4. package/dest/mocks/fixtures.d.ts.map +1 -1
  5. package/dest/mocks/fixtures.js +11 -7
  6. package/dest/mocks/test_context.d.ts +1 -1
  7. package/dest/mocks/test_context.d.ts.map +1 -1
  8. package/dest/mocks/test_context.js +5 -23
  9. package/dest/orchestrator/block-building-helpers.d.ts +3 -3
  10. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  11. package/dest/orchestrator/block-building-helpers.js +6 -5
  12. package/dest/orchestrator/orchestrator.d.ts +11 -6
  13. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  14. package/dest/orchestrator/orchestrator.js +115 -89
  15. package/dest/orchestrator/orchestrator_metrics.d.ts +8 -0
  16. package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -0
  17. package/dest/orchestrator/orchestrator_metrics.js +19 -0
  18. package/dest/orchestrator/proving-state.d.ts +2 -0
  19. package/dest/orchestrator/proving-state.d.ts.map +1 -1
  20. package/dest/orchestrator/proving-state.js +5 -1
  21. package/dest/orchestrator/tx-proving-state.d.ts +3 -2
  22. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  23. package/dest/orchestrator/tx-proving-state.js +26 -8
  24. package/dest/prover-agent/memory-proving-queue.d.ts +15 -13
  25. package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -1
  26. package/dest/prover-agent/memory-proving-queue.js +37 -55
  27. package/dest/prover-agent/prover-agent.d.ts.map +1 -1
  28. package/dest/prover-agent/prover-agent.js +24 -7
  29. package/dest/prover-agent/queue_metrics.d.ts +10 -0
  30. package/dest/prover-agent/queue_metrics.d.ts.map +1 -0
  31. package/dest/prover-agent/queue_metrics.js +23 -0
  32. package/dest/prover-agent/rpc.d.ts.map +1 -1
  33. package/dest/prover-agent/rpc.js +4 -2
  34. package/dest/tx-prover/factory.d.ts +1 -3
  35. package/dest/tx-prover/factory.d.ts.map +1 -1
  36. package/dest/tx-prover/factory.js +3 -3
  37. package/dest/tx-prover/tx-prover.d.ts +8 -33
  38. package/dest/tx-prover/tx-prover.d.ts.map +1 -1
  39. package/dest/tx-prover/tx-prover.js +18 -46
  40. package/package.json +10 -10
  41. package/src/config.ts +28 -47
  42. package/src/mocks/fixtures.ts +14 -4
  43. package/src/mocks/test_context.ts +5 -25
  44. package/src/orchestrator/block-building-helpers.ts +6 -5
  45. package/src/orchestrator/orchestrator.ts +197 -103
  46. package/src/orchestrator/orchestrator_metrics.ts +32 -0
  47. package/src/orchestrator/proving-state.ts +5 -0
  48. package/src/orchestrator/tx-proving-state.ts +33 -7
  49. package/src/prover-agent/memory-proving-queue.ts +54 -70
  50. package/src/prover-agent/prover-agent.ts +35 -6
  51. package/src/prover-agent/queue_metrics.ts +29 -0
  52. package/src/prover-agent/rpc.ts +3 -0
  53. package/src/tx-prover/factory.ts +2 -9
  54. package/src/tx-prover/tx-prover.ts +21 -64
@@ -0,0 +1,10 @@
1
+ import { ProvingRequestType } from '@aztec/circuit-types';
2
+ import { type TelemetryClient } from '@aztec/telemetry-client';
3
+ export declare class ProvingQueueMetrics {
4
+ private jobSize;
5
+ private queueSize;
6
+ constructor(client: TelemetryClient, name?: string);
7
+ recordNewJob(type: ProvingRequestType, size: number): void;
8
+ recordQueueSize(size: number): void;
9
+ }
10
+ //# sourceMappingURL=queue_metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue_metrics.d.ts","sourceRoot":"","sources":["../../src/prover-agent/queue_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAmD,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEhH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,SAAS,CAAQ;gBAEb,MAAM,EAAE,eAAe,EAAE,IAAI,SAAwB;IAYjE,YAAY,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM;IAMnD,eAAe,CAAC,IAAI,EAAE,MAAM;CAG7B"}
@@ -0,0 +1,23 @@
1
+ import { ProvingRequestType } from '@aztec/circuit-types';
2
+ import { Attributes, Metrics } from '@aztec/telemetry-client';
3
+ export class ProvingQueueMetrics {
4
+ constructor(client, name = 'ProvingQueueMetrics') {
5
+ const meter = client.getMeter(name);
6
+ this.jobSize = meter.createHistogram(Metrics.PROVING_QUEUE_JOB_SIZE, {
7
+ description: 'Size of proving job',
8
+ unit: 'by',
9
+ });
10
+ this.queueSize = meter.createGauge(Metrics.PROVING_QUEUE_SIZE, {
11
+ description: 'Size of proving queue',
12
+ });
13
+ }
14
+ recordNewJob(type, size) {
15
+ this.jobSize.record(size, {
16
+ [Attributes.PROVING_JOB_TYPE]: ProvingRequestType[type],
17
+ });
18
+ }
19
+ recordQueueSize(size) {
20
+ this.queueSize.record(size);
21
+ }
22
+ }
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWVfbWV0cmljcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92ZXItYWdlbnQvcXVldWVfbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUE4QixPQUFPLEVBQXdCLE1BQU0seUJBQXlCLENBQUM7QUFFaEgsTUFBTSxPQUFPLG1CQUFtQjtJQUk5QixZQUFZLE1BQXVCLEVBQUUsSUFBSSxHQUFHLHFCQUFxQjtRQUMvRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUU7WUFDbkUsV0FBVyxFQUFFLHFCQUFxQjtZQUNsQyxJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUU7WUFDN0QsV0FBVyxFQUFFLHVCQUF1QjtTQUNyQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQXdCLEVBQUUsSUFBWTtRQUNqRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDeEIsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7U0FDeEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFZO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/prover-agent/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAwB7D,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAIlE,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,CA4BnF;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,yFAA8B,GAClC,gBAAgB,CA+BlB"}
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/prover-agent/rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAyB7D,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAIlE,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,CA6BnF;AAED,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,EAClB,KAAK,yFAA8B,GAClC,gBAAgB,CAgClB"}
@@ -1,4 +1,4 @@
1
- import { AvmCircuitInputs, BaseOrMergeRollupPublicInputs, BaseParityInputs, BaseRollupInputs, Fr, Header, KernelCircuitPublicInputs, MergeRollupInputs, ParityPublicInputs, Proof, PublicKernelCircuitPrivateInputs, PublicKernelCircuitPublicInputs, PublicKernelTailCircuitPrivateInputs, RecursiveProof, RootParityInput, RootParityInputs, RootRollupInputs, RootRollupPublicInputs, TubeInputs, VerificationKeyData, } from '@aztec/circuits.js';
1
+ import { AvmCircuitInputs, BaseOrMergeRollupPublicInputs, BaseParityInputs, BaseRollupInputs, Fr, Header, KernelCircuitPublicInputs, MergeRollupInputs, ParityPublicInputs, PrivateKernelEmptyInputData, Proof, PublicKernelCircuitPrivateInputs, PublicKernelCircuitPublicInputs, PublicKernelTailCircuitPrivateInputs, RecursiveProof, RootParityInput, RootParityInputs, RootRollupInputs, RootRollupPublicInputs, TubeInputs, VerificationKeyData, } from '@aztec/circuits.js';
2
2
  import { createJsonRpcClient, makeFetch } from '@aztec/foundation/json-rpc/client';
3
3
  import { JsonRpcServer } from '@aztec/foundation/json-rpc/server';
4
4
  import { ProvingError } from './proving-error.js';
@@ -15,6 +15,7 @@ export function createProvingJobSourceServer(queue) {
15
15
  ParityPublicInputs,
16
16
  Proof,
17
17
  ProvingError,
18
+ PrivateKernelEmptyInputData,
18
19
  PublicKernelCircuitPrivateInputs,
19
20
  PublicKernelCircuitPublicInputs,
20
21
  PublicKernelTailCircuitPrivateInputs,
@@ -40,6 +41,7 @@ export function createProvingJobSourceClient(url, namespace, fetch = makeFetch([
40
41
  ParityPublicInputs,
41
42
  Proof,
42
43
  ProvingError,
44
+ PrivateKernelEmptyInputData,
43
45
  PublicKernelCircuitPrivateInputs,
44
46
  PublicKernelCircuitPublicInputs,
45
47
  PublicKernelTailCircuitPrivateInputs,
@@ -52,4 +54,4 @@ export function createProvingJobSourceClient(url, namespace, fetch = makeFetch([
52
54
  VerificationKeyData,
53
55
  }, {}, false, namespace, fetch);
54
56
  }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci1hZ2VudC9ycGMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLGdCQUFnQixFQUNoQiw2QkFBNkIsRUFDN0IsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixFQUFFLEVBQ0YsTUFBTSxFQUNOLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLEtBQUssRUFDTCxnQ0FBZ0MsRUFDaEMsK0JBQStCLEVBQy9CLG9DQUFvQyxFQUNwQyxjQUFjLEVBQ2QsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3RCLFVBQVUsRUFDVixtQkFBbUIsR0FDcEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWxFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxNQUFNLFVBQVUsNEJBQTRCLENBQUMsS0FBdUI7SUFDbEUsT0FBTyxJQUFJLGFBQWEsQ0FDdEIsS0FBSyxFQUNMO1FBQ0UsZ0JBQWdCO1FBQ2hCLDZCQUE2QjtRQUM3QixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLEVBQUU7UUFDRixNQUFNO1FBQ04seUJBQXlCO1FBQ3pCLGlCQUFpQjtRQUNqQixrQkFBa0I7UUFDbEIsS0FBSztRQUNMLFlBQVk7UUFDWixnQ0FBZ0M7UUFDaEMsK0JBQStCO1FBQy9CLG9DQUFvQztRQUNwQyxjQUFjO1FBQ2QsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsc0JBQXNCO1FBQ3RCLFVBQVU7UUFDVixtQkFBbUI7S0FDcEIsRUFDRCxFQUFFLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsNEJBQTRCLENBQzFDLEdBQVcsRUFDWCxTQUFrQixFQUNsQixLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7SUFFbkMsT0FBTyxtQkFBbUIsQ0FDeEIsR0FBRyxFQUNIO1FBQ0UsZ0JBQWdCO1FBQ2hCLDZCQUE2QjtRQUM3QixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLEVBQUU7UUFDRixNQUFNO1FBQ04seUJBQXlCO1FBQ3pCLGlCQUFpQjtRQUNqQixrQkFBa0I7UUFDbEIsS0FBSztRQUNMLFlBQVk7UUFDWixnQ0FBZ0M7UUFDaEMsK0JBQStCO1FBQy9CLG9DQUFvQztRQUNwQyxjQUFjO1FBQ2QsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixzQkFBc0I7UUFDdEIsZ0JBQWdCO1FBQ2hCLFVBQVU7UUFDVixtQkFBbUI7S0FDcEIsRUFDRCxFQUFFLEVBQ0YsS0FBSyxFQUNMLFNBQVMsRUFDVCxLQUFLLENBQ2MsQ0FBQztBQUN4QixDQUFDIn0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci1hZ2VudC9ycGMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLGdCQUFnQixFQUNoQiw2QkFBNkIsRUFDN0IsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixFQUFFLEVBQ0YsTUFBTSxFQUNOLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLDJCQUEyQixFQUMzQixLQUFLLEVBQ0wsZ0NBQWdDLEVBQ2hDLCtCQUErQixFQUMvQixvQ0FBb0MsRUFDcEMsY0FBYyxFQUNkLGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLHNCQUFzQixFQUN0QixVQUFVLEVBQ1YsbUJBQW1CLEdBQ3BCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsTUFBTSxVQUFVLDRCQUE0QixDQUFDLEtBQXVCO0lBQ2xFLE9BQU8sSUFBSSxhQUFhLENBQ3RCLEtBQUssRUFDTDtRQUNFLGdCQUFnQjtRQUNoQiw2QkFBNkI7UUFDN0IsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixFQUFFO1FBQ0YsTUFBTTtRQUNOLHlCQUF5QjtRQUN6QixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLEtBQUs7UUFDTCxZQUFZO1FBQ1osMkJBQTJCO1FBQzNCLGdDQUFnQztRQUNoQywrQkFBK0I7UUFDL0Isb0NBQW9DO1FBQ3BDLGNBQWM7UUFDZCxlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixzQkFBc0I7UUFDdEIsVUFBVTtRQUNWLG1CQUFtQjtLQUNwQixFQUNELEVBQUUsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSw0QkFBNEIsQ0FDMUMsR0FBVyxFQUNYLFNBQWtCLEVBQ2xCLEtBQUssR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUVuQyxPQUFPLG1CQUFtQixDQUN4QixHQUFHLEVBQ0g7UUFDRSxnQkFBZ0I7UUFDaEIsNkJBQTZCO1FBQzdCLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsRUFBRTtRQUNGLE1BQU07UUFDTix5QkFBeUI7UUFDekIsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixLQUFLO1FBQ0wsWUFBWTtRQUNaLDJCQUEyQjtRQUMzQixnQ0FBZ0M7UUFDaEMsK0JBQStCO1FBQy9CLG9DQUFvQztRQUNwQyxjQUFjO1FBQ2QsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixzQkFBc0I7UUFDdEIsZ0JBQWdCO1FBQ2hCLFVBQVU7UUFDVixtQkFBbUI7S0FDcEIsRUFDRCxFQUFFLEVBQ0YsS0FBSyxFQUNMLFNBQVMsRUFDVCxLQUFLLENBQ2MsQ0FBQztBQUN4QixDQUFDIn0=
@@ -1,7 +1,5 @@
1
- import { type L2BlockSource } from '@aztec/circuit-types';
2
1
  import { type TelemetryClient } from '@aztec/telemetry-client';
3
- import { type WorldStateSynchronizer } from '@aztec/world-state';
4
2
  import { type ProverClientConfig } from '../config.js';
5
3
  import { TxProver } from './tx-prover.js';
6
- export declare function createProverClient(config: ProverClientConfig, worldStateSynchronizer: WorldStateSynchronizer, blockSource: L2BlockSource, telemetry?: TelemetryClient): Promise<TxProver> | undefined;
4
+ export declare function createProverClient(config: ProverClientConfig, telemetry?: TelemetryClient): Promise<TxProver> | undefined;
7
5
  //# sourceMappingURL=factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/tx-prover/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,EAC1B,sBAAsB,EAAE,sBAAsB,EAC9C,WAAW,EAAE,aAAa,EAC1B,SAAS,GAAE,eAA2C,iCAGvD"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/tx-prover/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,GAAE,eAA2C,iCAEpH"}
@@ -1,6 +1,6 @@
1
1
  import { NoopTelemetryClient } from '@aztec/telemetry-client/noop';
2
2
  import { TxProver } from './tx-prover.js';
3
- export function createProverClient(config, worldStateSynchronizer, blockSource, telemetry = new NoopTelemetryClient()) {
4
- return config.disableProver ? undefined : TxProver.new(config, worldStateSynchronizer, blockSource, telemetry);
3
+ export function createProverClient(config, telemetry = new NoopTelemetryClient()) {
4
+ return config.disableProver ? undefined : TxProver.new(config, telemetry);
5
5
  }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eC1wcm92ZXIvZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUluRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxNQUEwQixFQUMxQixzQkFBOEMsRUFDOUMsV0FBMEIsRUFDMUIsWUFBNkIsSUFBSSxtQkFBbUIsRUFBRTtJQUV0RCxPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ2pILENBQUMifQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eC1wcm92ZXIvZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUduRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE1BQTBCLEVBQUUsWUFBNkIsSUFBSSxtQkFBbUIsRUFBRTtJQUNuSCxPQUFPLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDNUUsQ0FBQyJ9
@@ -1,21 +1,21 @@
1
- import { type L2BlockSource, type ProcessedTx } from '@aztec/circuit-types';
2
- import { type BlockResult, type ProverClient, type ProvingJobSource, type ProvingTicket } from '@aztec/circuit-types/interfaces';
3
- import { type Fr, type GlobalVariables } from '@aztec/circuits.js';
1
+ import { type BlockProver, type ProverClient, type ProvingJobSource } from '@aztec/circuit-types/interfaces';
2
+ import { Fr } from '@aztec/circuits.js';
4
3
  import { type TelemetryClient } from '@aztec/telemetry-client';
5
- import { type WorldStateSynchronizer } from '@aztec/world-state';
4
+ import { type MerkleTreeOperations } from '@aztec/world-state';
6
5
  import { type ProverClientConfig } from '../config.js';
7
6
  /**
8
- * A prover accepting individual transaction requests
7
+ * A prover factory.
8
+ * TODO(palla/prover-node): Rename this class
9
9
  */
10
10
  export declare class TxProver implements ProverClient {
11
11
  private config;
12
- private worldStateSynchronizer;
13
12
  private telemetry;
14
13
  private agent?;
15
- private orchestrator;
16
14
  private queue;
17
15
  private running;
18
16
  private constructor();
17
+ createBlockProver(db: MerkleTreeOperations): BlockProver;
18
+ getProverId(): Fr;
19
19
  updateProverConfig(config: Partial<ProverClientConfig>): Promise<void>;
20
20
  /**
21
21
  * Starts the prover instance
@@ -32,33 +32,8 @@ export declare class TxProver implements ProverClient {
32
32
  * @param worldStateSynchronizer - An instance of the world state
33
33
  * @returns An instance of the prover, constructed and started.
34
34
  */
35
- static new(config: ProverClientConfig, worldStateSynchronizer: WorldStateSynchronizer, blockSource: L2BlockSource, telemetry: TelemetryClient): Promise<TxProver>;
35
+ static new(config: ProverClientConfig, telemetry: TelemetryClient): Promise<TxProver>;
36
36
  private static buildCircuitProver;
37
- /**
38
- * Cancels any block that is currently being built and prepares for a new one to be built
39
- * @param numTxs - The complete size of the block, must be a power of 2
40
- * @param globalVariables - The global variables for this block
41
- * @param l1ToL2Messages - The set of L1 to L2 messages to be included in this block
42
- */
43
- startNewBlock(numTxs: number, globalVariables: GlobalVariables, newL1ToL2Messages: Fr[]): Promise<ProvingTicket>;
44
- /**
45
- * Add a processed transaction to the current block
46
- * @param tx - The transaction to be added
47
- */
48
- addNewTx(tx: ProcessedTx): Promise<void>;
49
- /**
50
- * Cancels the block currently being proven. Proofs already bring built may continue but further proofs should not be started.
51
- */
52
- cancelBlock(): void;
53
- /**
54
- * Performs the final archive tree insertion for this block and returns the L2Block and Proof instances
55
- */
56
- finaliseBlock(): Promise<BlockResult>;
57
- /**
58
- * Mark the block as having all the transactions it is going to contain.
59
- * Will pad the block to it's complete size with empty transactions and prove all the way to the root rollup.
60
- */
61
- setBlockCompleted(): Promise<void>;
62
37
  getProvingJobSource(): ProvingJobSource;
63
38
  }
64
39
  //# sourceMappingURL=tx-prover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tx-prover.d.ts","sourceRoot":"","sources":["../../src/tx-prover/tx-prover.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAEnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAKvD;;GAEG;AACH,qBAAa,QAAS,YAAW,YAAY;IAMzC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,sBAAsB;IAC9B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,KAAK,CAAC;IARhB,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO;IAUD,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB5E;;OAEG;IACI,KAAK;IAWZ;;OAEG;IACU,IAAI;IASjB;;;;;;OAMG;WACiB,GAAG,CACrB,MAAM,EAAE,kBAAkB,EAC1B,sBAAsB,EAAE,sBAAsB,EAC9C,WAAW,EAAE,aAAa,EAC1B,SAAS,EAAE,eAAe;mBAeP,kBAAkB;IAevC;;;;;OAKG;IACU,aAAa,CACxB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAChC,iBAAiB,EAAE,EAAE,EAAE,GACtB,OAAO,CAAC,aAAa,CAAC;IAMzB;;;OAGG;IACI,QAAQ,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C;;OAEG;IACI,WAAW,IAAI,IAAI;IAI1B;;OAEG;IACI,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC;IAI5C;;;OAGG;IACI,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC,mBAAmB,IAAI,gBAAgB;CAG/C"}
1
+ {"version":3,"file":"tx-prover.d.ts","sourceRoot":"","sources":["../../src/tx-prover/tx-prover.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAEtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAKvD;;;GAGG;AACH,qBAAa,QAAS,YAAW,YAAY;IAKzC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,KAAK,CAAC;IANhB,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO;IAUA,iBAAiB,CAAC,EAAE,EAAE,oBAAoB,GAAG,WAAW;IAIxD,WAAW,IAAI,EAAE;IAIlB,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB5E;;OAEG;IACI,KAAK;IAWZ;;OAEG;IACU,IAAI;IAWjB;;;;;;OAMG;WACiB,GAAG,CAAC,MAAM,EAAE,kBAAkB,EAAE,SAAS,EAAE,eAAe;mBAczD,kBAAkB;IAehC,mBAAmB,IAAI,gBAAgB;CAG/C"}
@@ -1,20 +1,28 @@
1
1
  import { BBNativeRollupProver, TestCircuitProver } from '@aztec/bb-prover';
2
+ import { Fr } from '@aztec/circuits.js';
2
3
  import { NativeACVMSimulator } from '@aztec/simulator';
3
4
  import { ProvingOrchestrator } from '../orchestrator/orchestrator.js';
4
5
  import { MemoryProvingQueue } from '../prover-agent/memory-proving-queue.js';
5
6
  import { ProverAgent } from '../prover-agent/prover-agent.js';
6
7
  /**
7
- * A prover accepting individual transaction requests
8
+ * A prover factory.
9
+ * TODO(palla/prover-node): Rename this class
8
10
  */
9
11
  export class TxProver {
10
- constructor(config, worldStateSynchronizer, telemetry, agent) {
12
+ constructor(config, telemetry, agent) {
11
13
  this.config = config;
12
- this.worldStateSynchronizer = worldStateSynchronizer;
13
14
  this.telemetry = telemetry;
14
15
  this.agent = agent;
15
16
  this.running = false;
16
- this.queue = new MemoryProvingQueue(config.proverJobTimeoutMs, config.proverJobPollIntervalMs);
17
- this.orchestrator = new ProvingOrchestrator(worldStateSynchronizer.getLatest(), this.queue, telemetry);
17
+ // TODO(palla/prover-node): Cache the paddingTx here, and not in each proving orchestrator,
18
+ // so it can be reused across multiple ones and not recomputed every time.
19
+ this.queue = new MemoryProvingQueue(telemetry, config.proverJobTimeoutMs, config.proverJobPollIntervalMs);
20
+ }
21
+ createBlockProver(db) {
22
+ return new ProvingOrchestrator(db, this.queue, this.telemetry, this.config.proverId);
23
+ }
24
+ getProverId() {
25
+ return this.config.proverId ?? Fr.ZERO;
18
26
  }
19
27
  async updateProverConfig(config) {
20
28
  const newConfig = { ...this.config, ...config };
@@ -26,7 +34,7 @@ export class TxProver {
26
34
  this.agent?.setMaxConcurrency(newConfig.proverAgentConcurrency);
27
35
  }
28
36
  if (!this.config.realProofs && newConfig.realProofs) {
29
- this.orchestrator.reset();
37
+ // TODO(palla/prover-node): Reset padding tx here once we cache it at this class
30
38
  }
31
39
  this.config = newConfig;
32
40
  }
@@ -50,6 +58,7 @@ export class TxProver {
50
58
  return;
51
59
  }
52
60
  this.running = false;
61
+ // TODO(palla/prover-node): Keep a reference to all proving orchestrators that are alive and stop them?
53
62
  await this.agent?.stop();
54
63
  await this.queue.stop();
55
64
  }
@@ -60,11 +69,11 @@ export class TxProver {
60
69
  * @param worldStateSynchronizer - An instance of the world state
61
70
  * @returns An instance of the prover, constructed and started.
62
71
  */
63
- static async new(config, worldStateSynchronizer, blockSource, telemetry) {
72
+ static async new(config, telemetry) {
64
73
  const agent = config.proverAgentEnabled
65
74
  ? new ProverAgent(await TxProver.buildCircuitProver(config, telemetry), config.proverAgentConcurrency, config.proverAgentPollInterval)
66
75
  : undefined;
67
- const prover = new TxProver(config, worldStateSynchronizer, telemetry, agent);
76
+ const prover = new TxProver(config, telemetry, agent);
68
77
  await prover.start();
69
78
  return prover;
70
79
  }
@@ -77,45 +86,8 @@ export class TxProver {
77
86
  : undefined;
78
87
  return new TestCircuitProver(telemetry, simulationProvider);
79
88
  }
80
- /**
81
- * Cancels any block that is currently being built and prepares for a new one to be built
82
- * @param numTxs - The complete size of the block, must be a power of 2
83
- * @param globalVariables - The global variables for this block
84
- * @param l1ToL2Messages - The set of L1 to L2 messages to be included in this block
85
- */
86
- async startNewBlock(numTxs, globalVariables, newL1ToL2Messages) {
87
- const previousBlockNumber = globalVariables.blockNumber.toNumber() - 1;
88
- await this.worldStateSynchronizer.syncImmediate(previousBlockNumber);
89
- return this.orchestrator.startNewBlock(numTxs, globalVariables, newL1ToL2Messages);
90
- }
91
- /**
92
- * Add a processed transaction to the current block
93
- * @param tx - The transaction to be added
94
- */
95
- addNewTx(tx) {
96
- return this.orchestrator.addNewTx(tx);
97
- }
98
- /**
99
- * Cancels the block currently being proven. Proofs already bring built may continue but further proofs should not be started.
100
- */
101
- cancelBlock() {
102
- this.orchestrator.cancelBlock();
103
- }
104
- /**
105
- * Performs the final archive tree insertion for this block and returns the L2Block and Proof instances
106
- */
107
- finaliseBlock() {
108
- return this.orchestrator.finaliseBlock();
109
- }
110
- /**
111
- * Mark the block as having all the transactions it is going to contain.
112
- * Will pad the block to it's complete size with empty transactions and prove all the way to the root rollup.
113
- */
114
- setBlockCompleted() {
115
- return this.orchestrator.setBlockCompleted();
116
- }
117
89
  getProvingJobSource() {
118
90
  return this.queue;
119
91
  }
120
92
  }
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHgtcHJvdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R4LXByb3Zlci90eC1wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFVM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFLdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTlEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFFBQVE7SUFLbkIsWUFDVSxNQUEwQixFQUMxQixzQkFBOEMsRUFDOUMsU0FBMEIsRUFDMUIsS0FBbUI7UUFIbkIsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDMUIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUMxQixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBTnJCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFRdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMvRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksbUJBQW1CLENBQUMsc0JBQXNCLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQW1DO1FBQzFELE1BQU0sU0FBUyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7UUFFaEQsSUFB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
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHgtcHJvdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R4LXByb3Zlci90eC1wcm92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFPM0UsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBS3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sUUFBUTtJQUluQixZQUNVLE1BQTBCLEVBQzFCLFNBQTBCLEVBQzFCLEtBQW1CO1FBRm5CLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBQzFCLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBQzFCLFVBQUssR0FBTCxLQUFLLENBQWM7UUFMckIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQU90QiwyRkFBMkY7UUFDM0YsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxFQUF3QjtRQUMvQyxPQUFPLElBQUksbUJBQW1CLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFTSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0s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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/prover-client",
3
- "version": "0.47.1",
3
+ "version": "0.48.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -58,15 +58,15 @@
58
58
  ]
59
59
  },
60
60
  "dependencies": {
61
- "@aztec/bb-prover": "0.47.1",
62
- "@aztec/circuit-types": "0.47.1",
63
- "@aztec/circuits.js": "0.47.1",
64
- "@aztec/foundation": "0.47.1",
65
- "@aztec/kv-store": "0.47.1",
66
- "@aztec/noir-protocol-circuits-types": "0.47.1",
67
- "@aztec/simulator": "0.47.1",
68
- "@aztec/telemetry-client": "0.47.1",
69
- "@aztec/world-state": "0.47.1",
61
+ "@aztec/bb-prover": "0.48.0",
62
+ "@aztec/circuit-types": "0.48.0",
63
+ "@aztec/circuits.js": "0.48.0",
64
+ "@aztec/foundation": "0.48.0",
65
+ "@aztec/kv-store": "0.48.0",
66
+ "@aztec/noir-protocol-circuits-types": "0.48.0",
67
+ "@aztec/simulator": "0.48.0",
68
+ "@aztec/telemetry-client": "0.48.0",
69
+ "@aztec/world-state": "0.48.0",
70
70
  "@noir-lang/types": "portal:../../noir/packages/types",
71
71
  "commander": "^12.1.0",
72
72
  "lodash.chunk": "^4.2.0",
package/src/config.ts CHANGED
@@ -1,6 +1,5 @@
1
- import { type ProverConfig } from '@aztec/circuit-types';
2
-
3
- import { tmpdir } from 'os';
1
+ import { type ProverConfig, proverConfigMappings } from '@aztec/circuit-types';
2
+ import { type ConfigMappingsType, booleanConfigHelper, getConfigFromMappings } from '@aztec/foundation/config';
4
3
 
5
4
  /**
6
5
  * The prover configuration.
@@ -18,54 +17,36 @@ export type ProverClientConfig = ProverConfig & {
18
17
  disableProver: boolean;
19
18
  };
20
19
 
20
+ export const proverClientConfigMappings: ConfigMappingsType<ProverClientConfig> = {
21
+ acvmWorkingDirectory: {
22
+ env: 'ACVM_WORKING_DIRECTORY',
23
+ description: 'The working directory to use for simulation/proving',
24
+ },
25
+ acvmBinaryPath: {
26
+ env: 'ACVM_BINARY_PATH',
27
+ description: 'The path to the ACVM binary',
28
+ },
29
+ bbWorkingDirectory: {
30
+ env: 'BB_WORKING_DIRECTORY',
31
+ description: 'The working directory to for proving',
32
+ },
33
+ bbBinaryPath: {
34
+ env: 'BB_BINARY_PATH',
35
+ description: 'The path to the bb binary',
36
+ },
37
+ disableProver: {
38
+ env: 'PROVER_DISABLED',
39
+ description: 'Whether to disable proving.',
40
+ ...booleanConfigHelper(),
41
+ },
42
+ ...proverConfigMappings,
43
+ };
44
+
21
45
  /**
22
46
  * Returns the prover configuration from the environment variables.
23
47
  * Note: If an environment variable is not set, the default value is used.
24
48
  * @returns The prover configuration.
25
49
  */
26
50
  export function getProverEnvVars(): ProverClientConfig {
27
- const {
28
- AZTEC_NODE_URL,
29
- ACVM_WORKING_DIRECTORY = tmpdir(),
30
- ACVM_BINARY_PATH = '',
31
- BB_WORKING_DIRECTORY = tmpdir(),
32
- BB_BINARY_PATH = '',
33
- PROVER_DISABLED = '',
34
- /** @deprecated */
35
- PROVER_AGENTS = '1',
36
- PROVER_AGENT_ENABLED = '1',
37
- PROVER_AGENT_CONCURRENCY = PROVER_AGENTS,
38
- PROVER_AGENT_POLL_INTERVAL_MS = '100',
39
- PROVER_REAL_PROOFS = '',
40
- PROVER_JOB_TIMEOUT_MS = '60000',
41
- PROVER_JOB_POLL_INTERVAL_MS = '1000',
42
- } = process.env;
43
-
44
- const realProofs = ['1', 'true'].includes(PROVER_REAL_PROOFS);
45
- const proverAgentEnabled = ['1', 'true'].includes(PROVER_AGENT_ENABLED);
46
- const proverAgentConcurrency = safeParseNumber(PROVER_AGENT_CONCURRENCY, 1);
47
- const proverAgentPollInterval = safeParseNumber(PROVER_AGENT_POLL_INTERVAL_MS, 100);
48
- const proverJobTimeoutMs = safeParseNumber(PROVER_JOB_TIMEOUT_MS, 60000);
49
- const proverJobPollIntervalMs = safeParseNumber(PROVER_JOB_POLL_INTERVAL_MS, 1000);
50
- const disableProver = ['1', 'true'].includes(PROVER_DISABLED);
51
-
52
- return {
53
- acvmWorkingDirectory: ACVM_WORKING_DIRECTORY,
54
- acvmBinaryPath: ACVM_BINARY_PATH,
55
- bbBinaryPath: BB_BINARY_PATH,
56
- bbWorkingDirectory: BB_WORKING_DIRECTORY,
57
- realProofs,
58
- disableProver,
59
- proverAgentEnabled,
60
- proverAgentPollInterval,
61
- proverAgentConcurrency,
62
- nodeUrl: AZTEC_NODE_URL,
63
- proverJobPollIntervalMs,
64
- proverJobTimeoutMs,
65
- };
66
- }
67
-
68
- function safeParseNumber(value: string, defaultValue: number): number {
69
- const parsedValue = parseInt(value, 10);
70
- return Number.isSafeInteger(parsedValue) ? parsedValue : defaultValue;
51
+ return getConfigFromMappings<ProverClientConfig>(proverClientConfigMappings);
71
52
  }
@@ -12,6 +12,7 @@ import {
12
12
  GasFees,
13
13
  GlobalVariables,
14
14
  KernelCircuitPublicInputs,
15
+ LogHash,
15
16
  MAX_L2_TO_L1_MSGS_PER_TX,
16
17
  MAX_NOTE_HASHES_PER_TX,
17
18
  MAX_NULLIFIERS_PER_TX,
@@ -20,8 +21,9 @@ import {
20
21
  PUBLIC_DATA_SUBTREE_HEIGHT,
21
22
  PublicDataTreeLeaf,
22
23
  PublicDataUpdateRequest,
24
+ ScopedLogHash,
23
25
  } from '@aztec/circuits.js';
24
- import { fr } from '@aztec/circuits.js/testing';
26
+ import { fr, makeScopedL2ToL1Message } from '@aztec/circuits.js/testing';
25
27
  import { makeTuple } from '@aztec/foundation/array';
26
28
  import { padArrayEnd } from '@aztec/foundation/collection';
27
29
  import { randomBytes } from '@aztec/foundation/crypto';
@@ -120,9 +122,16 @@ export const makeBloatedProcessedTx = (builderDb: MerkleTreeOperations, seed = 0
120
122
 
121
123
  processedTx.data.end.nullifiers[tx.data.forPublic!.end.nullifiers.length - 1] = Fr.zero();
122
124
 
123
- processedTx.data.end.l2ToL1Msgs = makeTuple(MAX_L2_TO_L1_MSGS_PER_TX, fr, seed + 0x300);
124
- processedTx.data.end.noteEncryptedLogsHash = Fr.fromBuffer(processedTx.noteEncryptedLogs.hash());
125
- processedTx.data.end.encryptedLogsHash = Fr.fromBuffer(processedTx.encryptedLogs.hash());
125
+ processedTx.data.end.l2ToL1Msgs = makeTuple(MAX_L2_TO_L1_MSGS_PER_TX, makeScopedL2ToL1Message, seed + 0x300);
126
+ processedTx.noteEncryptedLogs.unrollLogs().forEach((log, i) => {
127
+ processedTx.data.end.noteEncryptedLogsHashes[i] = new LogHash(Fr.fromBuffer(log.hash()), 0, new Fr(log.length));
128
+ });
129
+ processedTx.encryptedLogs.unrollLogs().forEach((log, i) => {
130
+ processedTx.data.end.encryptedLogsHashes[i] = new ScopedLogHash(
131
+ new LogHash(Fr.fromBuffer(log.hash()), 0, new Fr(log.length)),
132
+ log.maskedContractAddress,
133
+ );
134
+ });
126
135
 
127
136
  return processedTx;
128
137
  };
@@ -171,6 +180,7 @@ export const makeGlobals = (blockNumber: number) => {
171
180
  Fr.ZERO,
172
181
  Fr.ZERO,
173
182
  new Fr(blockNumber),
183
+ new Fr(blockNumber) /** slot number */,
174
184
  Fr.ZERO,
175
185
  EthAddress.ZERO,
176
186
  AztecAddress.ZERO,
@@ -1,9 +1,7 @@
1
1
  import { type BBProverConfig } from '@aztec/bb-prover';
2
2
  import {
3
3
  type BlockProver,
4
- type BlockResult,
5
4
  type ProcessedTx,
6
- type ProvingTicket,
7
5
  type PublicExecutionRequest,
8
6
  type ServerCircuitProver,
9
7
  type Tx,
@@ -36,27 +34,7 @@ import { MemoryProvingQueue } from '../prover-agent/memory-proving-queue.js';
36
34
  import { ProverAgent } from '../prover-agent/prover-agent.js';
37
35
  import { getEnvironmentConfig, getSimulationProvider, makeGlobals } from './fixtures.js';
38
36
 
39
- class DummyProverClient implements BlockProver {
40
- constructor(private orchestrator: ProvingOrchestrator) {}
41
- startNewBlock(numTxs: number, globalVariables: GlobalVariables, l1ToL2Messages: Fr[]): Promise<ProvingTicket> {
42
- return this.orchestrator.startNewBlock(numTxs, globalVariables, l1ToL2Messages);
43
- }
44
- addNewTx(tx: ProcessedTx): Promise<void> {
45
- return this.orchestrator.addNewTx(tx);
46
- }
47
- cancelBlock(): void {
48
- return this.orchestrator.cancelBlock();
49
- }
50
- finaliseBlock(): Promise<BlockResult> {
51
- return this.orchestrator.finaliseBlock();
52
- }
53
- setBlockCompleted(): Promise<void> {
54
- return this.orchestrator.setBlockCompleted();
55
- }
56
- }
57
-
58
37
  export class TestContext {
59
- public blockProver: BlockProver;
60
38
  constructor(
61
39
  public publicExecutor: MockProxy<PublicExecutor>,
62
40
  public publicContractsDB: MockProxy<ContractsDataSourcePublicDB>,
@@ -71,8 +49,10 @@ export class TestContext {
71
49
  public blockNumber: number,
72
50
  public directoriesToCleanup: string[],
73
51
  public logger: DebugLogger,
74
- ) {
75
- this.blockProver = new DummyProverClient(this.orchestrator);
52
+ ) {}
53
+
54
+ public get blockProver() {
55
+ return this.orchestrator;
76
56
  }
77
57
 
78
58
  static async new(
@@ -119,7 +99,7 @@ export class TestContext {
119
99
  localProver = await createProver(bbConfig);
120
100
  }
121
101
 
122
- const queue = new MemoryProvingQueue();
102
+ const queue = new MemoryProvingQueue(telemetry);
123
103
  const orchestrator = new ProvingOrchestrator(actualDb, queue, telemetry);
124
104
  const agent = new ProverAgent(localProver, proverCount);
125
105
 
@@ -37,7 +37,6 @@ import {
37
37
  type RootRollupPublicInputs,
38
38
  StateDiffHints,
39
39
  type StateReference,
40
- type TUBE_PROOF_LENGTH,
41
40
  VK_TREE_HEIGHT,
42
41
  type VerificationKeyAsFields,
43
42
  type VerificationKeyData,
@@ -61,7 +60,7 @@ export type TreeNames = BaseTreeNames | 'L1ToL2MessageTree' | 'Archive';
61
60
  // Builds the base rollup inputs, updating the contract, nullifier, and data trees in the process
62
61
  export async function buildBaseRollupInput(
63
62
  tx: ProcessedTx,
64
- proof: RecursiveProof<typeof TUBE_PROOF_LENGTH>,
63
+ proof: RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>,
65
64
  globalVariables: GlobalVariables,
66
65
  db: MerkleTreeOperations,
67
66
  kernelVk: VerificationKeyData,
@@ -84,13 +83,13 @@ export async function buildBaseRollupInput(
84
83
  i < noteHashSubtreeSiblingPathArray.length ? noteHashSubtreeSiblingPathArray[i] : Fr.ZERO,
85
84
  );
86
85
 
87
- // Create data hint for reading fee payer initial balance in gas tokens
86
+ // Create data hint for reading fee payer initial balance in Fee Juice
88
87
  // If no fee payer is set, read hint should be empty
89
88
  // If there is already a public data write for this slot, also skip the read hint
90
89
  const hintsBuilder = new HintsBuilder(db);
91
90
  const leafSlot = computeFeePayerBalanceLeafSlot(tx.data.feePayer);
92
91
  const existingBalanceWrite = tx.data.end.publicDataUpdateRequests.find(write => write.leafSlot.equals(leafSlot));
93
- const feePayerGasTokenBalanceReadHint =
92
+ const feePayerFeeJuiceBalanceReadHint =
94
93
  leafSlot.isZero() || existingBalanceWrite
95
94
  ? PublicDataHint.empty()
96
95
  : await hintsBuilder.getPublicDataHint(leafSlot.toBigInt());
@@ -163,7 +162,7 @@ export async function buildBaseRollupInput(
163
162
  kernelData: getKernelDataFor(tx, kernelVk, proof),
164
163
  start,
165
164
  stateDiffHints,
166
- feePayerGasTokenBalanceReadHint,
165
+ feePayerFeeJuiceBalanceReadHint: feePayerFeeJuiceBalanceReadHint,
167
166
  sortedPublicDataWrites: txPublicDataUpdateRequestInfo.sortedPublicDataWrites,
168
167
  sortedPublicDataWritesIndexes: txPublicDataUpdateRequestInfo.sortedPublicDataWritesIndexes,
169
168
  lowPublicDataWritesPreimages: txPublicDataUpdateRequestInfo.lowPublicDataWritesPreimages,
@@ -224,6 +223,7 @@ export async function getRootRollupInput(
224
223
  messageTreeSnapshot: AppendOnlyTreeSnapshot,
225
224
  messageTreeRootSiblingPath: Tuple<Fr, typeof L1_TO_L2_MSG_SUBTREE_SIBLING_PATH_LENGTH>,
226
225
  db: MerkleTreeOperations,
226
+ proverId: Fr,
227
227
  ) {
228
228
  const previousRollupData: RootRollupInputs['previousRollupData'] = [
229
229
  getPreviousRollupDataFromPublicInputs(rollupOutputLeft, rollupProofLeft, verificationKeyLeft),
@@ -254,6 +254,7 @@ export async function getRootRollupInput(
254
254
  startL1ToL2MessageTreeSnapshot: messageTreeSnapshot,
255
255
  startArchiveSnapshot,
256
256
  newArchiveSiblingPath,
257
+ proverId,
257
258
  });
258
259
  }
259
260