@aztec/prover-client 0.47.1 → 0.49.2

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 (58) hide show
  1. package/dest/config.d.ts +2 -2
  2. package/dest/config.d.ts.map +1 -1
  3. package/dest/config.js +23 -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/index.d.ts +2 -0
  13. package/dest/orchestrator/index.d.ts.map +1 -0
  14. package/dest/orchestrator/index.js +2 -0
  15. package/dest/orchestrator/orchestrator.d.ts +12 -7
  16. package/dest/orchestrator/orchestrator.d.ts.map +1 -1
  17. package/dest/orchestrator/orchestrator.js +115 -89
  18. package/dest/orchestrator/orchestrator_metrics.d.ts +8 -0
  19. package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -0
  20. package/dest/orchestrator/orchestrator_metrics.js +19 -0
  21. package/dest/orchestrator/proving-state.d.ts +2 -0
  22. package/dest/orchestrator/proving-state.d.ts.map +1 -1
  23. package/dest/orchestrator/proving-state.js +5 -1
  24. package/dest/orchestrator/tx-proving-state.d.ts +3 -2
  25. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  26. package/dest/orchestrator/tx-proving-state.js +26 -8
  27. package/dest/prover-agent/memory-proving-queue.d.ts +15 -13
  28. package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -1
  29. package/dest/prover-agent/memory-proving-queue.js +37 -55
  30. package/dest/prover-agent/prover-agent.d.ts.map +1 -1
  31. package/dest/prover-agent/prover-agent.js +24 -7
  32. package/dest/prover-agent/queue_metrics.d.ts +10 -0
  33. package/dest/prover-agent/queue_metrics.d.ts.map +1 -0
  34. package/dest/prover-agent/queue_metrics.js +23 -0
  35. package/dest/prover-agent/rpc.d.ts.map +1 -1
  36. package/dest/prover-agent/rpc.js +4 -2
  37. package/dest/tx-prover/factory.d.ts +1 -3
  38. package/dest/tx-prover/factory.d.ts.map +1 -1
  39. package/dest/tx-prover/factory.js +3 -3
  40. package/dest/tx-prover/tx-prover.d.ts +8 -33
  41. package/dest/tx-prover/tx-prover.d.ts.map +1 -1
  42. package/dest/tx-prover/tx-prover.js +18 -46
  43. package/package.json +12 -11
  44. package/src/config.ts +23 -49
  45. package/src/mocks/fixtures.ts +14 -4
  46. package/src/mocks/test_context.ts +5 -25
  47. package/src/orchestrator/block-building-helpers.ts +6 -5
  48. package/src/orchestrator/index.ts +1 -0
  49. package/src/orchestrator/orchestrator.ts +199 -105
  50. package/src/orchestrator/orchestrator_metrics.ts +32 -0
  51. package/src/orchestrator/proving-state.ts +5 -0
  52. package/src/orchestrator/tx-proving-state.ts +33 -7
  53. package/src/prover-agent/memory-proving-queue.ts +54 -70
  54. package/src/prover-agent/prover-agent.ts +35 -6
  55. package/src/prover-agent/queue_metrics.ts +29 -0
  56. package/src/prover-agent/rpc.ts +3 -0
  57. package/src/tx-prover/factory.ts +2 -9
  58. package/src/tx-prover/tx-prover.ts +21 -64
@@ -92,6 +92,10 @@ export class ProvingState {
92
92
  get allTxs() {
93
93
  return this.txs;
94
94
  }
95
+ /** Returns the block number as an epoch number. Used for prioritizing proof requests. */
96
+ get epochNumber() {
97
+ return this.globalVariables.blockNumber.toNumber();
98
+ }
95
99
  /**
96
100
  * Stores the inputs to a merge circuit and determines if the circuit is ready to be executed
97
101
  * @param mergeInputs - The inputs to store
@@ -163,4 +167,4 @@ export class ProvingState {
163
167
  this.completionCallback(result);
164
168
  }
165
169
  }
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvcHJvdmluZy1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErQkEsSUFBSyx1QkFLSjtBQUxELFdBQUssdUJBQXVCO0lBQzFCLHVHQUFxQixDQUFBO0lBQ3JCLGlHQUFrQixDQUFBO0lBQ2xCLHlHQUFzQixDQUFBO0lBQ3RCLHlHQUFzQixDQUFBO0FBQ3hCLENBQUMsRUFMSSx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBSzNCO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBVXZCLFlBQ2tCLFdBQW1CLEVBQzNCLGtCQUFtRCxFQUNuRCxpQkFBMkMsRUFDbkMsZUFBZ0MsRUFDaEMsaUJBQXdFLEVBQ3hGLG1CQUEyQixFQUNYLG1CQUEyQyxFQUMzQywwQkFBc0Y7UUFQdEYsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDM0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFpQztRQUNuRCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQTBCO1FBQ25DLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXVEO1FBRXhFLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFDM0MsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUE0RDtRQWpCaEcsMEJBQXFCLEdBQUcsdUJBQXVCLENBQUMscUJBQXFCLENBQUM7UUFDdEUsc0JBQWlCLEdBQTJCLEVBQUUsQ0FBQztRQUMvQyxxQkFBZ0IsR0FBc0UsRUFBRSxDQUFDO1FBTXpGLFFBQUcsR0FBcUIsRUFBRSxDQUFDO1FBV2pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRixD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
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvcHJvdmluZy1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErQkEsSUFBSyx1QkFLSjtBQUxELFdBQUssdUJBQXVCO0lBQzFCLHVHQUFxQixDQUFBO0lBQ3JCLGlHQUFrQixDQUFBO0lBQ2xCLHlHQUFzQixDQUFBO0lBQ3RCLHlHQUFzQixDQUFBO0FBQ3hCLENBQUMsRUFMSSx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBSzNCO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBVXZCLFlBQ2tCLFdBQW1CLEVBQzNCLGtCQUFtRCxFQUNuRCxpQkFBMkMsRUFDbkMsZUFBZ0MsRUFDaEMsaUJBQXdFLEVBQ3hGLG1CQUEyQixFQUNYLG1CQUEyQyxFQUMzQywwQkFBc0Y7UUFQdEYsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDM0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFpQztRQUNuRCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQTBCO1FBQ25DLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXVEO1FBRXhFLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFDM0MsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUE0RDtRQWpCaEcsMEJBQXFCLEdBQUcsdUJBQXVCLENBQUMscUJBQXFCLENBQUM7UUFDdEUsc0JBQWlCLEdBQTJCLEVBQUUsQ0FBQztRQUMvQyxxQkFBZ0IsR0FBc0UsRUFBRSxDQUFDO1FBTXpGLFFBQUcsR0FBcUIsRUFBRSxDQUFDO1FBV2pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRixD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
@@ -1,5 +1,5 @@
1
1
  import { type AvmProvingRequest, type MerkleTreeId, type ProcessedTx, type PublicKernelRequest, PublicKernelType } from '@aztec/circuit-types';
2
- import { type AppendOnlyTreeSnapshot, type BaseRollupInputs, type NESTED_RECURSIVE_PROOF_LENGTH, type Proof, type RecursiveProof, type VerificationKeyData } from '@aztec/circuits.js';
2
+ import { type AppendOnlyTreeSnapshot, type BaseRollupInputs, type NESTED_RECURSIVE_PROOF_LENGTH, type Proof, type RECURSIVE_PROOF_LENGTH, type RecursiveProof, type VerificationKeyData } from '@aztec/circuits.js';
3
3
  export declare enum TX_PROVING_CODE {
4
4
  NOT_READY = 0,
5
5
  READY = 1,
@@ -26,8 +26,9 @@ export declare class TxProvingState {
26
26
  readonly baseRollupInputs: BaseRollupInputs;
27
27
  readonly treeSnapshots: Map<MerkleTreeId, AppendOnlyTreeSnapshot>;
28
28
  private publicFunctions;
29
- constructor(processedTx: ProcessedTx, baseRollupInputs: BaseRollupInputs, treeSnapshots: Map<MerkleTreeId, AppendOnlyTreeSnapshot>, privateKernelVk: VerificationKeyData);
29
+ constructor(processedTx: ProcessedTx, baseRollupInputs: BaseRollupInputs, treeSnapshots: Map<MerkleTreeId, AppendOnlyTreeSnapshot>);
30
30
  getNextPublicKernelFromKernelProof(provenIndex: number, proof: RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>, verificationKey: VerificationKeyData): TxProvingInstruction;
31
+ getNextPublicKernelFromTubeProof(proof: RecursiveProof<typeof RECURSIVE_PROOF_LENGTH>, verificationKey: VerificationKeyData): TxProvingInstruction;
31
32
  getNextPublicKernelFromVMProof(provenIndex: number, proof: Proof): TxProvingInstruction;
32
33
  getPublicFunctionState(functionIndex: number): PublicFunction;
33
34
  getNumPublicKernels(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"tx-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/tx-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,6BAA6B,EAClC,KAAK,KAAK,EACV,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAE5B,oBAAY,eAAe;IACzB,SAAS,IAAA;IACT,KAAK,IAAA;IACL,SAAS,IAAA;CACV;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,OAAO,EAAE,KAAK,GAAG,SAAS,CAAC;IAC3B,iBAAiB,EAAE,gBAAgB,CAAC;IACpC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C,CAAC;AAIF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF;;;;GAIG;AACH,qBAAa,cAAc;aAIP,WAAW,EAAE,WAAW;aACxB,gBAAgB,EAAE,gBAAgB;aAClC,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAL1E,OAAO,CAAC,eAAe,CAAwB;gBAG7B,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC,EACxE,eAAe,EAAE,mBAAmB;IA0B/B,kCAAkC,CACvC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,cAAc,CAAC,OAAO,6BAA6B,CAAC,EAC3D,eAAe,EAAE,mBAAmB,GACnC,oBAAoB;IA6BhB,8BAA8B,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,oBAAoB;IAcvF,sBAAsB,CAAC,aAAa,EAAE,MAAM;IAQ5C,mBAAmB;CAG3B"}
1
+ {"version":3,"file":"tx-proving-state.d.ts","sourceRoot":"","sources":["../../src/orchestrator/tx-proving-state.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,6BAA6B,EAClC,KAAK,KAAK,EACV,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAE5B,oBAAY,eAAe;IACzB,SAAS,IAAA;IACT,KAAK,IAAA;IACL,SAAS,IAAA;CACV;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,OAAO,EAAE,KAAK,GAAG,SAAS,CAAC;IAC3B,iBAAiB,EAAE,gBAAgB,CAAC;IACpC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C,CAAC;AAIF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF;;;;GAIG;AACH,qBAAa,cAAc;aAIP,WAAW,EAAE,WAAW;aACxB,gBAAgB,EAAE,gBAAgB;aAClC,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAL1E,OAAO,CAAC,eAAe,CAAwB;gBAG7B,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,aAAa,EAAE,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC;IAqBnE,kCAAkC,CACvC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,cAAc,CAAC,OAAO,6BAA6B,CAAC,EAC3D,eAAe,EAAE,mBAAmB,GACnC,oBAAoB;IA6BhB,gCAAgC,CACrC,KAAK,EAAE,cAAc,CAAC,OAAO,sBAAsB,CAAC,EACpD,eAAe,EAAE,mBAAmB,GACnC,oBAAoB;IA4BhB,8BAA8B,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,oBAAoB;IAcvF,sBAAsB,CAAC,aAAa,EAAE,MAAM;IAQ5C,mBAAmB;CAG3B"}
@@ -11,7 +11,7 @@ export var TX_PROVING_CODE;
11
11
  * Also stores the inputs to the base rollup for this transaction and the tree snapshots
12
12
  */
13
13
  export class TxProvingState {
14
- constructor(processedTx, baseRollupInputs, treeSnapshots, privateKernelVk) {
14
+ constructor(processedTx, baseRollupInputs, treeSnapshots) {
15
15
  this.processedTx = processedTx;
16
16
  this.baseRollupInputs = baseRollupInputs;
17
17
  this.treeSnapshots = treeSnapshots;
@@ -20,17 +20,12 @@ export class TxProvingState {
20
20
  for (let i = 0; i < processedTx.publicProvingRequests.length; i++) {
21
21
  const provingRequest = processedTx.publicProvingRequests[i];
22
22
  const kernelRequest = provingRequest.type === AVM_REQUEST ? provingRequest.kernelRequest : provingRequest;
23
- // the first circuit has a valid previous proof, it came from private
24
- if (i === 0) {
25
- kernelRequest.inputs.previousKernel.vk = privateKernelVk;
26
- kernelRequest.inputs.previousKernel.clientIvcProof = processedTx.clientIvcProof;
27
- }
28
23
  const vmRequest = provingRequest.type === AVM_REQUEST ? provingRequest : undefined;
29
24
  const publicFunction = {
30
25
  vmRequest,
31
26
  vmProof: undefined,
32
27
  previousProofType,
33
- previousKernelProven: i === 0,
28
+ previousKernelProven: false,
34
29
  publicKernelRequest: kernelRequest,
35
30
  };
36
31
  this.publicFunctions.push(publicFunction);
@@ -61,6 +56,29 @@ export class TxProvingState {
61
56
  // The VM proof is ready, we can continue
62
57
  return { code: TX_PROVING_CODE.READY, function: nextFunction };
63
58
  }
59
+ // Updates the transaction's proving state after completion of a tube proof
60
+ // Returns an instruction as to the next stage of tx proving
61
+ getNextPublicKernelFromTubeProof(proof, verificationKey) {
62
+ const nextKernelIndex = 0;
63
+ if (nextKernelIndex >= this.publicFunctions.length) {
64
+ // The next kernel index is greater than our set of functions, we are done!
65
+ return { code: TX_PROVING_CODE.COMPLETED, function: undefined };
66
+ }
67
+ // There is more work to do, are we ready?
68
+ const nextFunction = this.publicFunctions[nextKernelIndex];
69
+ // pass both the proof and verification key forward to the next circuit
70
+ nextFunction.publicKernelRequest.inputs.previousKernel.proof = proof;
71
+ nextFunction.publicKernelRequest.inputs.previousKernel.vk = verificationKey;
72
+ // We need to update this so the state machine knows this proof is ready
73
+ nextFunction.previousKernelProven = true;
74
+ nextFunction.previousProofType = PublicKernelType.NON_PUBLIC;
75
+ if (nextFunction.vmProof === undefined) {
76
+ // The VM proof for the next function is not ready
77
+ return { code: TX_PROVING_CODE.NOT_READY, function: undefined };
78
+ }
79
+ // The VM proof is ready, we can continue
80
+ return { code: TX_PROVING_CODE.READY, function: nextFunction };
81
+ }
64
82
  // Updates the transaction's proving state after completion of a VM proof
65
83
  // Returns an instruction as to the next stage of tx proving
66
84
  getNextPublicKernelFromVMProof(provenIndex, proof) {
@@ -86,4 +104,4 @@ export class TxProvingState {
86
104
  return this.publicFunctions.length;
87
105
  }
88
106
  }
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHgtcHJvdmluZy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvdHgtcHJvdmluZy1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUtYLGdCQUFnQixHQUNqQixNQUFNLHNCQUFzQixDQUFDO0FBVTlCLE1BQU0sQ0FBTixJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDekIsK0RBQVMsQ0FBQTtJQUNULHVEQUFLLENBQUE7SUFDTCwrREFBUyxDQUFBO0FBQ1gsQ0FBQyxFQUpXLGVBQWUsS0FBZixlQUFlLFFBSTFCO0FBaUJEOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sY0FBYztJQUd6QixZQUNrQixXQUF3QixFQUN4QixnQkFBa0MsRUFDbEMsYUFBd0QsRUFDeEUsZUFBb0M7UUFIcEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBMkM7UUFMbEUsb0JBQWUsR0FBcUIsRUFBRSxDQUFDO1FBUTdDLElBQUksaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDO1FBQ3BELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxXQUFXLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDbEUsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVELE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7WUFDMUcscUVBQXFFO1lBQ3JFLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNaLGFBQWEsQ0FBQyxNQUFNLENBQUMs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
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHgtcHJvdmluZy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvdHgtcHJvdmluZy1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUtYLGdCQUFnQixHQUNqQixNQUFNLHNCQUFzQixDQUFDO0FBVzlCLE1BQU0sQ0FBTixJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFDekIsK0RBQVMsQ0FBQTtJQUNULHVEQUFLLENBQUE7SUFDTCwrREFBUyxDQUFBO0FBQ1gsQ0FBQyxFQUpXLGVBQWUsS0FBZixlQUFlLFFBSTFCO0FBaUJEOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sY0FBYztJQUd6QixZQUNrQixXQUF3QixFQUN4QixnQkFBa0MsRUFDbEMsYUFBd0Q7UUFGeEQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBMkM7UUFMbEUsb0JBQWUsR0FBcUIsRUFBRSxDQUFDO1FBTzdDLElBQUksaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsVUFBVSxDQUFDO1FBQ3BELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxXQUFXLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDbEUsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVELE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7WUFDMUcsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUyxD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
@@ -1,8 +1,9 @@
1
1
  import { type ProofAndVerificationKey, type ProvingJob, type ProvingJobSource, type ProvingRequest, type ProvingRequestResult, ProvingRequestType, type PublicInputsAndRecursiveProof, type PublicKernelNonTailRequest, type PublicKernelTailRequest, type ServerCircuitProver } from '@aztec/circuit-types';
2
2
  import type { AvmCircuitInputs, BaseOrMergeRollupPublicInputs, BaseParityInputs, BaseRollupInputs, KernelCircuitPublicInputs, MergeRollupInputs, NESTED_RECURSIVE_PROOF_LENGTH, PrivateKernelEmptyInputData, PublicKernelCircuitPublicInputs, RECURSIVE_PROOF_LENGTH, RecursiveProof, RootParityInput, RootParityInputs, RootRollupInputs, RootRollupPublicInputs, TubeInputs, VerificationKeyData } from '@aztec/circuits.js';
3
+ import { type TelemetryClient } from '@aztec/telemetry-client';
3
4
  /**
4
5
  * A helper class that sits in between services that need proofs created and agents that can create them.
5
- * The queue accumulates jobs and provides them to agents in FIFO order.
6
+ * The queue accumulates jobs and provides them to agents prioritized by block number.
6
7
  */
7
8
  export declare class MemoryProvingQueue implements ServerCircuitProver, ProvingJobSource {
8
9
  /** Timeout the job if an agent doesn't report back in this time */
@@ -13,7 +14,8 @@ export declare class MemoryProvingQueue implements ServerCircuitProver, ProvingJ
13
14
  private queue;
14
15
  private jobsInProgress;
15
16
  private runningPromise;
16
- constructor(
17
+ private metrics;
18
+ constructor(client: TelemetryClient,
17
19
  /** Timeout the job if an agent doesn't report back in this time */
18
20
  jobTimeoutMs?: number,
19
21
  /** How often to check for timed out jobs */
@@ -29,51 +31,51 @@ export declare class MemoryProvingQueue implements ServerCircuitProver, ProvingJ
29
31
  isJobRunning(jobId: string): boolean;
30
32
  private poll;
31
33
  private enqueue;
32
- getEmptyPrivateKernelProof(inputs: PrivateKernelEmptyInputData, signal?: AbortSignal): Promise<PublicInputsAndRecursiveProof<KernelCircuitPublicInputs>>;
33
- getTubeProof(inputs: TubeInputs, signal?: AbortSignal | undefined): Promise<{
34
+ getEmptyPrivateKernelProof(inputs: PrivateKernelEmptyInputData, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<KernelCircuitPublicInputs>>;
35
+ getTubeProof(inputs: TubeInputs, signal?: AbortSignal, epochNumber?: number): Promise<{
34
36
  tubeVK: VerificationKeyData;
35
37
  tubeProof: RecursiveProof<typeof RECURSIVE_PROOF_LENGTH>;
36
38
  }>;
37
- getEmptyTubeProof(inputs: PrivateKernelEmptyInputData, signal?: AbortSignal): Promise<PublicInputsAndRecursiveProof<KernelCircuitPublicInputs>>;
39
+ getEmptyTubeProof(inputs: PrivateKernelEmptyInputData, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<KernelCircuitPublicInputs>>;
38
40
  /**
39
41
  * Creates a proof for the given input.
40
42
  * @param input - Input to the circuit.
41
43
  */
42
- getBaseParityProof(inputs: BaseParityInputs, signal?: AbortSignal): Promise<RootParityInput<typeof RECURSIVE_PROOF_LENGTH>>;
44
+ getBaseParityProof(inputs: BaseParityInputs, signal?: AbortSignal, epochNumber?: number): Promise<RootParityInput<typeof RECURSIVE_PROOF_LENGTH>>;
43
45
  /**
44
46
  * Creates a proof for the given input.
45
47
  * @param input - Input to the circuit.
46
48
  */
47
- getRootParityProof(inputs: RootParityInputs, signal?: AbortSignal): Promise<RootParityInput<typeof NESTED_RECURSIVE_PROOF_LENGTH>>;
49
+ getRootParityProof(inputs: RootParityInputs, signal?: AbortSignal, epochNumber?: number): Promise<RootParityInput<typeof NESTED_RECURSIVE_PROOF_LENGTH>>;
48
50
  /**
49
51
  * Creates a proof for the given input.
50
52
  * @param input - Input to the circuit.
51
53
  */
52
- getBaseRollupProof(baseRollupInput: BaseRollupInputs, signal?: AbortSignal): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs>>;
54
+ getBaseRollupProof(baseRollupInput: BaseRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs>>;
53
55
  /**
54
56
  * Creates a proof for the given input.
55
57
  * @param input - Input to the circuit.
56
58
  */
57
- getMergeRollupProof(input: MergeRollupInputs, signal?: AbortSignal): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs>>;
59
+ getMergeRollupProof(input: MergeRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs>>;
58
60
  /**
59
61
  * Creates a proof for the given input.
60
62
  * @param input - Input to the circuit.
61
63
  */
62
- getRootRollupProof(input: RootRollupInputs, signal?: AbortSignal): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs>>;
64
+ getRootRollupProof(input: RootRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs>>;
63
65
  /**
64
66
  * Create a public kernel proof.
65
67
  * @param kernelRequest - Object containing the details of the proof required
66
68
  */
67
- getPublicKernelProof(kernelRequest: PublicKernelNonTailRequest, signal?: AbortSignal): Promise<PublicInputsAndRecursiveProof<PublicKernelCircuitPublicInputs>>;
69
+ getPublicKernelProof(kernelRequest: PublicKernelNonTailRequest, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<PublicKernelCircuitPublicInputs>>;
68
70
  /**
69
71
  * Create a public kernel tail proof.
70
72
  * @param kernelRequest - Object containing the details of the proof required
71
73
  */
72
- getPublicTailProof(kernelRequest: PublicKernelTailRequest, signal?: AbortSignal): Promise<PublicInputsAndRecursiveProof<KernelCircuitPublicInputs>>;
74
+ getPublicTailProof(kernelRequest: PublicKernelTailRequest, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<KernelCircuitPublicInputs>>;
73
75
  /**
74
76
  * Creates an AVM proof.
75
77
  */
76
- getAvmProof(inputs: AvmCircuitInputs, signal?: AbortSignal | undefined): Promise<ProofAndVerificationKey>;
78
+ getAvmProof(inputs: AvmCircuitInputs, signal?: AbortSignal, epochNumber?: number): Promise<ProofAndVerificationKey>;
77
79
  /**
78
80
  * Verifies a circuit proof
79
81
  */
@@ -1 +1 @@
1
- {"version":3,"file":"memory-proving-queue.d.ts","sourceRoot":"","sources":["../../src/prover-agent/memory-proving-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-proving-queue.d.ts","sourceRoot":"","sources":["../../src/prover-agent/memory-proving-queue.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,20 @@
1
1
  import { ProvingRequestType, } from '@aztec/circuit-types';
2
2
  import { randomBytes } from '@aztec/foundation/crypto';
3
3
  import { AbortError, TimeoutError } from '@aztec/foundation/error';
4
- import { MemoryFifo } from '@aztec/foundation/fifo';
5
4
  import { createDebugLogger } from '@aztec/foundation/log';
6
5
  import { RunningPromise, promiseWithResolvers } from '@aztec/foundation/promise';
6
+ import { PriorityMemoryQueue } from '@aztec/foundation/queue';
7
+ import { serializeToBuffer } from '@aztec/foundation/serialize';
8
+ import { ProvingQueueMetrics } from './queue_metrics.js';
7
9
  const MAX_RETRIES = 3;
8
10
  const defaultIdGenerator = () => randomBytes(4).toString('hex');
9
11
  const defaultTimeSource = () => Date.now();
10
12
  /**
11
13
  * A helper class that sits in between services that need proofs created and agents that can create them.
12
- * The queue accumulates jobs and provides them to agents in FIFO order.
14
+ * The queue accumulates jobs and provides them to agents prioritized by block number.
13
15
  */
14
16
  export class MemoryProvingQueue {
15
- constructor(
17
+ constructor(client,
16
18
  /** Timeout the job if an agent doesn't report back in this time */
17
19
  jobTimeoutMs = 60 * 1000,
18
20
  /** How often to check for timed out jobs */
@@ -21,10 +23,11 @@ export class MemoryProvingQueue {
21
23
  this.generateId = generateId;
22
24
  this.timeSource = timeSource;
23
25
  this.log = createDebugLogger('aztec:prover-client:prover-pool:queue');
24
- this.queue = new MemoryFifo();
26
+ this.queue = new PriorityMemoryQueue((a, b) => (a.epochNumber ?? 0) - (b.epochNumber ?? 0));
25
27
  this.jobsInProgress = new Map();
26
28
  this.poll = () => {
27
29
  const now = this.timeSource();
30
+ this.metrics.recordQueueSize(this.queue.length());
28
31
  for (const job of this.jobsInProgress.values()) {
29
32
  if (job.signal?.aborted) {
30
33
  this.jobsInProgress.delete(job.id);
@@ -38,6 +41,7 @@ export class MemoryProvingQueue {
38
41
  }
39
42
  }
40
43
  };
44
+ this.metrics = new ProvingQueueMetrics(client, 'MemoryProvingQueue');
41
45
  this.runningPromise = new RunningPromise(this.poll, pollingIntervalMs);
42
46
  }
43
47
  start() {
@@ -110,7 +114,8 @@ export class MemoryProvingQueue {
110
114
  if (job.signal?.aborted) {
111
115
  return Promise.resolve();
112
116
  }
113
- if (job.attempts < MAX_RETRIES) {
117
+ // every job should be retried with the exception of the public VM since its in development and can fail
118
+ if (job.attempts < MAX_RETRIES && job.request.type !== ProvingRequestType.PUBLIC_VM) {
114
119
  job.attempts++;
115
120
  this.log.warn(`Job id=${job.id} type=${ProvingRequestType[job.request.type]} failed with error: ${err}. Retry ${job.attempts}/${MAX_RETRIES}`);
116
121
  this.queue.put(job);
@@ -134,7 +139,7 @@ export class MemoryProvingQueue {
134
139
  isJobRunning(jobId) {
135
140
  return this.jobsInProgress.has(jobId);
136
141
  }
137
- enqueue(request, signal) {
142
+ enqueue(request, signal, epochNumber) {
138
143
  if (!this.runningPromise.isRunning()) {
139
144
  return Promise.reject(new Error('Proving queue is not running.'));
140
145
  }
@@ -148,6 +153,7 @@ export class MemoryProvingQueue {
148
153
  reject,
149
154
  attempts: 1,
150
155
  heartbeat: 0,
156
+ epochNumber,
151
157
  };
152
158
  if (signal) {
153
159
  signal.addEventListener('abort', () => reject(new AbortError('Operation has been aborted')));
@@ -157,97 +163,73 @@ export class MemoryProvingQueue {
157
163
  if (!this.queue.put(item)) {
158
164
  throw new Error();
159
165
  }
166
+ const byteSize = serializeToBuffer(item.request.inputs).length;
167
+ this.metrics.recordNewJob(item.request.type, byteSize);
160
168
  return promise;
161
169
  }
162
- getEmptyPrivateKernelProof(inputs, signal) {
163
- return this.enqueue({ type: ProvingRequestType.PRIVATE_KERNEL_EMPTY, inputs }, signal);
170
+ getEmptyPrivateKernelProof(inputs, signal, epochNumber) {
171
+ return this.enqueue({ type: ProvingRequestType.PRIVATE_KERNEL_EMPTY, inputs }, signal, epochNumber);
164
172
  }
165
- getTubeProof(inputs, signal) {
166
- return this.enqueue({ type: ProvingRequestType.TUBE_PROOF, inputs }, signal);
173
+ getTubeProof(inputs, signal, epochNumber) {
174
+ return this.enqueue({ type: ProvingRequestType.TUBE_PROOF, inputs }, signal, epochNumber);
167
175
  }
168
- getEmptyTubeProof(inputs, signal) {
169
- return this.enqueue({ type: ProvingRequestType.PRIVATE_KERNEL_EMPTY, inputs }, signal);
176
+ getEmptyTubeProof(inputs, signal, epochNumber) {
177
+ return this.enqueue({ type: ProvingRequestType.PRIVATE_KERNEL_EMPTY, inputs }, signal, epochNumber);
170
178
  }
171
179
  /**
172
180
  * Creates a proof for the given input.
173
181
  * @param input - Input to the circuit.
174
182
  */
175
- getBaseParityProof(inputs, signal) {
176
- return this.enqueue({
177
- type: ProvingRequestType.BASE_PARITY,
178
- inputs,
179
- }, signal);
183
+ getBaseParityProof(inputs, signal, epochNumber) {
184
+ return this.enqueue({ type: ProvingRequestType.BASE_PARITY, inputs }, signal, epochNumber);
180
185
  }
181
186
  /**
182
187
  * Creates a proof for the given input.
183
188
  * @param input - Input to the circuit.
184
189
  */
185
- getRootParityProof(inputs, signal) {
186
- return this.enqueue({
187
- type: ProvingRequestType.ROOT_PARITY,
188
- inputs,
189
- }, signal);
190
+ getRootParityProof(inputs, signal, epochNumber) {
191
+ return this.enqueue({ type: ProvingRequestType.ROOT_PARITY, inputs }, signal, epochNumber);
190
192
  }
191
193
  /**
192
194
  * Creates a proof for the given input.
193
195
  * @param input - Input to the circuit.
194
196
  */
195
- getBaseRollupProof(baseRollupInput, signal) {
196
- return this.enqueue({
197
- type: ProvingRequestType.BASE_ROLLUP,
198
- inputs: baseRollupInput,
199
- }, signal);
197
+ getBaseRollupProof(baseRollupInput, signal, epochNumber) {
198
+ return this.enqueue({ type: ProvingRequestType.BASE_ROLLUP, inputs: baseRollupInput }, signal, epochNumber);
200
199
  }
201
200
  /**
202
201
  * Creates a proof for the given input.
203
202
  * @param input - Input to the circuit.
204
203
  */
205
- getMergeRollupProof(input, signal) {
206
- return this.enqueue({
207
- type: ProvingRequestType.MERGE_ROLLUP,
208
- inputs: input,
209
- }, signal);
204
+ getMergeRollupProof(input, signal, epochNumber) {
205
+ return this.enqueue({ type: ProvingRequestType.MERGE_ROLLUP, inputs: input }, signal, epochNumber);
210
206
  }
211
207
  /**
212
208
  * Creates a proof for the given input.
213
209
  * @param input - Input to the circuit.
214
210
  */
215
- getRootRollupProof(input, signal) {
216
- return this.enqueue({
217
- type: ProvingRequestType.ROOT_ROLLUP,
218
- inputs: input,
219
- }, signal);
211
+ getRootRollupProof(input, signal, epochNumber) {
212
+ return this.enqueue({ type: ProvingRequestType.ROOT_ROLLUP, inputs: input }, signal, epochNumber);
220
213
  }
221
214
  /**
222
215
  * Create a public kernel proof.
223
216
  * @param kernelRequest - Object containing the details of the proof required
224
217
  */
225
- getPublicKernelProof(kernelRequest, signal) {
226
- return this.enqueue({
227
- type: ProvingRequestType.PUBLIC_KERNEL_NON_TAIL,
228
- kernelType: kernelRequest.type,
229
- inputs: kernelRequest.inputs,
230
- }, signal);
218
+ getPublicKernelProof(kernelRequest, signal, epochNumber) {
219
+ return this.enqueue({ type: ProvingRequestType.PUBLIC_KERNEL_NON_TAIL, kernelType: kernelRequest.type, inputs: kernelRequest.inputs }, signal, epochNumber);
231
220
  }
232
221
  /**
233
222
  * Create a public kernel tail proof.
234
223
  * @param kernelRequest - Object containing the details of the proof required
235
224
  */
236
- getPublicTailProof(kernelRequest, signal) {
237
- return this.enqueue({
238
- type: ProvingRequestType.PUBLIC_KERNEL_TAIL,
239
- kernelType: kernelRequest.type,
240
- inputs: kernelRequest.inputs,
241
- }, signal);
225
+ getPublicTailProof(kernelRequest, signal, epochNumber) {
226
+ return this.enqueue({ type: ProvingRequestType.PUBLIC_KERNEL_TAIL, kernelType: kernelRequest.type, inputs: kernelRequest.inputs }, signal, epochNumber);
242
227
  }
243
228
  /**
244
229
  * Creates an AVM proof.
245
230
  */
246
- getAvmProof(inputs, signal) {
247
- return this.enqueue({
248
- type: ProvingRequestType.PUBLIC_VM,
249
- inputs,
250
- }, signal);
231
+ getAvmProof(inputs, signal, epochNumber) {
232
+ return this.enqueue({ type: ProvingRequestType.PUBLIC_VM, inputs }, signal, epochNumber);
251
233
  }
252
234
  /**
253
235
  * Verifies a circuit proof
@@ -256,4 +238,4 @@ export class MemoryProvingQueue {
256
238
  return Promise.reject('not implemented');
257
239
  }
258
240
  }
259
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LXByb3ZpbmctcXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmVyLWFnZW50L21lbW9yeS1wcm92aW5nLXF1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFNTCxrQkFBa0IsR0FLbkIsTUFBTSxzQkFBc0IsQ0FBQztBQW9COUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBNkIsY0FBYyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFVNUcsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBRXRCLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoRSxNQUFNLGlCQUFpQixHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUUzQzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBTzdCO0lBQ0UsbUVBQW1FO0lBQzNELGVBQWUsRUFBRSxHQUFHLElBQUk7SUFDaEMsNENBQTRDO0lBQzVDLGlCQUFpQixHQUFHLElBQUksRUFDaEIsYUFBYSxrQkFBa0IsRUFDL0IsYUFBYSxpQkFBaUI7UUFKOUIsaUJBQVksR0FBWixZQUFZLENBQVk7UUFHeEIsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFDL0IsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7UUFaaEMsUUFBRyxHQUFHLGlCQUFpQixDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFDakUsVUFB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
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LXByb3ZpbmctcXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmVyLWFnZW50L21lbW9yeS1wcm92aW5nLXF1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFNTCxrQkFBa0IsR0FLbkIsTUFBTSxzQkFBc0IsQ0FBQztBQW9COUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUE2QixjQUFjLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUdoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQVV6RCxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFFdEIsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hFLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQzNDOzs7R0FHRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFXN0IsWUFDRSxNQUF1QjtJQUN2QixtRUFBbUU7SUFDM0QsZUFBZSxFQUFFLEdBQUcsSUFBSTtJQUNoQyw0Q0FBNEM7SUFDNUMsaUJBQWlCLEdBQUcsSUFBSSxFQUNoQixhQUFhLGtCQUFrQixFQUMvQixhQUFhLGlCQUFpQjtRQUo5QixpQkFBWSxHQUFaLFlBQVksQ0FBWTtRQUd4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
@@ -1 +1 @@
1
- {"version":3,"file":"prover-agent.d.ts","sourceRoot":"","sources":["../../src/prover-agent/prover-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,EAIrB,KAAK,mBAAmB,EACzB,MAAM,sBAAsB,CAAC;AAO9B;;GAEG;AACH,qBAAa,WAAW;IAKpB,iDAAiD;IACjD,OAAO,CAAC,aAAa;IACrB,8DAA8D;IAC9D,OAAO,CAAC,cAAc;IACtB,oCAAoC;IACpC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,GAAG;IAVb,OAAO,CAAC,gBAAgB,CAAmC;IAC3D,OAAO,CAAC,cAAc,CAAC,CAAiB;;IAGtC,iDAAiD;IACzC,aAAa,EAAE,mBAAmB;IAC1C,8DAA8D;IACtD,cAAc,SAAI;IAC1B,oCAAoC;IAC5B,cAAc,SAAM,EACpB,GAAG,yCAAwD;IAGrE,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAO/C,gBAAgB,CAAC,aAAa,EAAE,mBAAmB,GAAG,IAAI;IAI1D,SAAS;IAIT,KAAK,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAoClC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAWb,IAAI;IAkClB,OAAO,CAAC,QAAQ;CAuDjB"}
1
+ {"version":3,"file":"prover-agent.d.ts","sourceRoot":"","sources":["../../src/prover-agent/prover-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,EAIrB,KAAK,mBAAmB,EACzB,MAAM,sBAAsB,CAAC;AAS9B;;GAEG;AACH,qBAAa,WAAW;IAYpB,iDAAiD;IACjD,OAAO,CAAC,aAAa;IACrB,8DAA8D;IAC9D,OAAO,CAAC,cAAc;IACtB,oCAAoC;IACpC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,GAAG;IAjBb,OAAO,CAAC,gBAAgB,CAOpB;IACJ,OAAO,CAAC,cAAc,CAAC,CAAiB;;IAGtC,iDAAiD;IACzC,aAAa,EAAE,mBAAmB;IAC1C,8DAA8D;IACtD,cAAc,SAAI;IAC1B,oCAAoC;IAC5B,cAAc,SAAM,EACpB,GAAG,yCAAwD;IAGrE,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAO/C,gBAAgB,CAAC,aAAa,EAAE,mBAAmB,GAAG,IAAI;IAI1D,SAAS;IAIT,KAAK,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI;IAuDlC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAWb,IAAI;IAmClB,OAAO,CAAC,QAAQ;CAuDjB"}
@@ -3,6 +3,7 @@ import { createDebugLogger } from '@aztec/foundation/log';
3
3
  import { RunningPromise } from '@aztec/foundation/running-promise';
4
4
  import { elapsed } from '@aztec/foundation/timer';
5
5
  import { ProvingError } from './proving-error.js';
6
+ const PRINT_THRESHOLD_NS = 6e10; // 60 seconds
6
7
  /**
7
8
  * A helper class that encapsulates a circuit prover and connects it to a job source.
8
9
  */
@@ -36,10 +37,22 @@ export class ProverAgent {
36
37
  if (this.runningPromise) {
37
38
  throw new Error('Agent is already running');
38
39
  }
40
+ let lastPrint = process.hrtime.bigint();
39
41
  this.runningPromise = new RunningPromise(async () => {
40
42
  for (const jobId of this.inFlightPromises.keys()) {
41
43
  await jobSource.heartbeat(jobId);
42
44
  }
45
+ const now = process.hrtime.bigint();
46
+ if (now - lastPrint >= PRINT_THRESHOLD_NS) {
47
+ // only log if we're actually doing work
48
+ if (this.inFlightPromises.size > 0) {
49
+ const jobs = Array.from(this.inFlightPromises.values())
50
+ .map(job => `id=${job.id},type=${ProvingRequestType[job.type]}`)
51
+ .join(' ');
52
+ this.log.info(`Agent is running with ${this.inFlightPromises.size} in-flight jobs: ${jobs}`);
53
+ }
54
+ lastPrint = now;
55
+ }
43
56
  while (this.inFlightPromises.size < this.maxConcurrency) {
44
57
  try {
45
58
  const job = await jobSource.getProvingJob();
@@ -49,14 +62,18 @@ export class ProverAgent {
49
62
  }
50
63
  try {
51
64
  const promise = this.work(jobSource, job).finally(() => this.inFlightPromises.delete(job.id));
52
- this.inFlightPromises.set(job.id, promise);
65
+ this.inFlightPromises.set(job.id, {
66
+ id: job.id,
67
+ type: job.request.type,
68
+ promise,
69
+ });
53
70
  }
54
71
  catch (err) {
55
72
  this.log.warn(`Error processing job! type=${ProvingRequestType[job.request.type]}: ${err}. ${err.stack}`);
56
73
  }
57
74
  }
58
75
  catch (err) {
59
- // no-op
76
+ this.log.error(`Error fetching job`, err);
60
77
  }
61
78
  }
62
79
  }, this.pollIntervalMs);
@@ -76,20 +93,20 @@ export class ProverAgent {
76
93
  this.log.debug(`Picked up proving job id=${job.id} type=${ProvingRequestType[job.request.type]}`);
77
94
  const [time, result] = await elapsed(this.getProof(job.request));
78
95
  if (this.isRunning()) {
79
- this.log.debug(`Processed proving job id=${job.id} type=${ProvingRequestType[job.request.type]} duration=${time}ms`);
96
+ this.log.verbose(`Processed proving job id=${job.id} type=${ProvingRequestType[job.request.type]} duration=${time}ms`);
80
97
  await jobSource.resolveProvingJob(job.id, result);
81
98
  }
82
99
  else {
83
- this.log.debug(`Dropping proving job id=${job.id} type=${ProvingRequestType[job.request.type]} duration=${time}ms: agent stopped`);
100
+ this.log.verbose(`Dropping proving job id=${job.id} type=${ProvingRequestType[job.request.type]} duration=${time}ms: agent stopped`);
84
101
  }
85
102
  }
86
103
  catch (err) {
87
104
  if (this.isRunning()) {
88
- this.log.error(`Error processing proving job id=${job.id} type=${ProvingRequestType[job.request.type]}: ${err.stack || err}`);
105
+ this.log.error(`Error processing proving job id=${job.id} type=${ProvingRequestType[job.request.type]}: ${err.stack || err}`, err);
89
106
  await jobSource.rejectProvingJob(job.id, new ProvingError(err?.message ?? String(err)));
90
107
  }
91
108
  else {
92
- this.log.debug(`Dropping proving job id=${job.id} type=${ProvingRequestType[job.request.type]}: agent stopped: ${err.stack || err}`);
109
+ this.log.verbose(`Dropping proving job id=${job.id} type=${ProvingRequestType[job.request.type]}: agent stopped: ${err.stack || err}`);
93
110
  }
94
111
  }
95
112
  }
@@ -139,4 +156,4 @@ export class ProverAgent {
139
156
  }
140
157
  }
141
158
  }
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLWFnZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci1hZ2VudC9wcm92ZXItYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtMLGtCQUFrQixHQUVuQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWxEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFJdEI7SUFDRSxpREFBaUQ7SUFDekMsYUFBa0M7SUFDMUMsOERBQThEO0lBQ3RELGlCQUFpQixDQUFDO0lBQzFCLG9DQUFvQztJQUM1QixpQkFBaUIsR0FBRyxFQUNwQixNQUFNLGlCQUFpQixDQUFDLGtDQUFrQyxDQUFDO1FBTDNELGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUVsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBSTtRQUVsQixtQkFBYyxHQUFkLGNBQWMsQ0FBTTtRQUNwQixRQUFHLEdBQUgsR0FBRyxDQUF3RDtRQVY3RCxxQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBd0IsQ0FBQztJQVd4RCxDQUFDO0lBRUosaUJBQWlCLENBQUMsY0FBc0I7UUFDdEMsSUFBSSxjQUFjLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsYUFBa0M7UUFDakQsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDckMsQ0FBQztJQUVE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
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmVyLWFnZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3Zlci1hZ2VudC9wcm92ZXItYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtMLGtCQUFrQixHQUVuQixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWxELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLENBQUMsYUFBYTtBQUU5Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBV3RCO0lBQ0UsaURBQWlEO0lBQ3pDLGFBQWtDO0lBQzFDLDhEQUE4RDtJQUN0RCxpQkFBaUIsQ0FBQztJQUMxQixvQ0FBb0M7SUFDNUIsaUJBQWlCLEdBQUcsRUFDcEIsTUFBTSxpQkFBaUIsQ0FBQyxrQ0FBa0MsQ0FBQztRQUwzRCxrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFFbEMsbUJBQWMsR0FBZCxjQUFjLENBQUk7UUFFbEIsbUJBQWMsR0FBZCxjQUFjLENBQU07UUFDcEIsUUFBRyxHQUFILEdBQUcsQ0FBd0Q7UUFqQjdELHFCQUFnQixHQUFHLElBQUksR0FBRyxFQU8vQixDQUFDO0lBV0QsQ0FBQztJQUVKLGlCQUFpQixDQUFDLGNBQXNCO1FBQ3RDLElBQUksY0FBYyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdkMsQ0FBQztJQUVELGdCQUFnQixDQUFDLGFBQWtDO1FBQ2pELElB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