@aztec/prover-client 0.0.1-commit.d431d1c → 0.0.1-commit.d58ff9d0

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 (132) hide show
  1. package/dest/config.d.ts +1 -1
  2. package/dest/config.d.ts.map +1 -1
  3. package/dest/config.js +16 -2
  4. package/dest/light/lightweight_checkpoint_builder.d.ts +14 -6
  5. package/dest/light/lightweight_checkpoint_builder.d.ts.map +1 -1
  6. package/dest/light/lightweight_checkpoint_builder.js +66 -27
  7. package/dest/mocks/fixtures.d.ts +1 -1
  8. package/dest/mocks/fixtures.d.ts.map +1 -1
  9. package/dest/mocks/fixtures.js +2 -1
  10. package/dest/mocks/test_context.d.ts +11 -11
  11. package/dest/mocks/test_context.d.ts.map +1 -1
  12. package/dest/mocks/test_context.js +31 -30
  13. package/dest/orchestrator/block-building-helpers.d.ts +4 -4
  14. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
  15. package/dest/orchestrator/block-building-helpers.js +3 -3
  16. package/dest/orchestrator/block-proving-state.d.ts +4 -1
  17. package/dest/orchestrator/block-proving-state.d.ts.map +1 -1
  18. package/dest/orchestrator/block-proving-state.js +7 -0
  19. package/dest/orchestrator/checkpoint-proving-state.d.ts +20 -36
  20. package/dest/orchestrator/checkpoint-proving-state.d.ts.map +1 -1
  21. package/dest/orchestrator/checkpoint-proving-state.js +22 -120
  22. package/dest/orchestrator/checkpoint-sub-tree-orchestrator.d.ts +161 -0
  23. package/dest/orchestrator/checkpoint-sub-tree-orchestrator.d.ts.map +1 -0
  24. package/dest/orchestrator/{orchestrator.js → checkpoint-sub-tree-orchestrator.js} +311 -472
  25. package/dest/orchestrator/chonk-cache.d.ts +39 -0
  26. package/dest/orchestrator/chonk-cache.d.ts.map +1 -0
  27. package/dest/orchestrator/chonk-cache.js +80 -0
  28. package/dest/orchestrator/index.d.ts +4 -2
  29. package/dest/orchestrator/index.d.ts.map +1 -1
  30. package/dest/orchestrator/index.js +3 -1
  31. package/dest/orchestrator/proving-scheduler.d.ts +81 -0
  32. package/dest/orchestrator/proving-scheduler.d.ts.map +1 -0
  33. package/dest/orchestrator/proving-scheduler.js +120 -0
  34. package/dest/orchestrator/top-tree-orchestrator.d.ts +88 -0
  35. package/dest/orchestrator/top-tree-orchestrator.d.ts.map +1 -0
  36. package/dest/orchestrator/top-tree-orchestrator.js +232 -0
  37. package/dest/orchestrator/top-tree-proving-state.d.ts +61 -0
  38. package/dest/orchestrator/top-tree-proving-state.d.ts.map +1 -0
  39. package/dest/orchestrator/top-tree-proving-state.js +185 -0
  40. package/dest/orchestrator/tx-proving-state.d.ts +3 -3
  41. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
  42. package/dest/prover-client/prover-client.d.ts +64 -7
  43. package/dest/prover-client/prover-client.d.ts.map +1 -1
  44. package/dest/prover-client/prover-client.js +66 -14
  45. package/dest/proving_broker/broker_prover_facade.d.ts +6 -5
  46. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -1
  47. package/dest/proving_broker/broker_prover_facade.js +16 -22
  48. package/dest/proving_broker/config.d.ts +12 -64
  49. package/dest/proving_broker/config.d.ts.map +1 -1
  50. package/dest/proving_broker/config.js +22 -5
  51. package/dest/proving_broker/index.d.ts +2 -1
  52. package/dest/proving_broker/index.d.ts.map +1 -1
  53. package/dest/proving_broker/index.js +1 -0
  54. package/dest/proving_broker/proof_store/factory.d.ts +2 -5
  55. package/dest/proving_broker/proof_store/factory.d.ts.map +1 -1
  56. package/dest/proving_broker/proof_store/factory.js +7 -30
  57. package/dest/proving_broker/proof_store/file_store_proof_store.d.ts +18 -0
  58. package/dest/proving_broker/proof_store/file_store_proof_store.d.ts.map +1 -0
  59. package/dest/proving_broker/proof_store/file_store_proof_store.js +60 -0
  60. package/dest/proving_broker/proof_store/index.d.ts +2 -2
  61. package/dest/proving_broker/proof_store/index.d.ts.map +1 -1
  62. package/dest/proving_broker/proof_store/index.js +1 -1
  63. package/dest/proving_broker/proving_agent.d.ts +4 -3
  64. package/dest/proving_broker/proving_agent.d.ts.map +1 -1
  65. package/dest/proving_broker/proving_agent.js +4 -4
  66. package/dest/proving_broker/proving_broker.d.ts +8 -5
  67. package/dest/proving_broker/proving_broker.d.ts.map +1 -1
  68. package/dest/proving_broker/proving_broker.js +68 -11
  69. package/dest/proving_broker/proving_broker_database/persisted.js +2 -2
  70. package/dest/proving_broker/proving_broker_instrumentation.d.ts +3 -1
  71. package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -1
  72. package/dest/proving_broker/proving_broker_instrumentation.js +18 -7
  73. package/dest/proving_broker/proving_job_controller.d.ts +4 -3
  74. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -1
  75. package/dest/proving_broker/proving_job_controller.js +6 -3
  76. package/dest/proving_broker/rpc.d.ts +6 -2
  77. package/dest/proving_broker/rpc.d.ts.map +1 -1
  78. package/dest/proving_broker/rpc.js +87 -23
  79. package/dest/test/epoch_settlement.d.ts +36 -0
  80. package/dest/test/epoch_settlement.d.ts.map +1 -0
  81. package/dest/test/epoch_settlement.js +52 -0
  82. package/dest/test/index.d.ts +2 -0
  83. package/dest/test/index.d.ts.map +1 -0
  84. package/dest/test/index.js +1 -0
  85. package/dest/test/mock_prover.d.ts +4 -4
  86. package/dest/test/mock_prover.js +2 -2
  87. package/package.json +20 -20
  88. package/src/config.ts +18 -2
  89. package/src/light/lightweight_checkpoint_builder.ts +79 -31
  90. package/src/mocks/fixtures.ts +2 -1
  91. package/src/mocks/test_context.ts +27 -43
  92. package/src/orchestrator/block-building-helpers.ts +3 -3
  93. package/src/orchestrator/block-proving-state.ts +9 -0
  94. package/src/orchestrator/checkpoint-proving-state.ts +21 -162
  95. package/src/orchestrator/checkpoint-sub-tree-orchestrator.ts +1044 -0
  96. package/src/orchestrator/chonk-cache.ts +99 -0
  97. package/src/orchestrator/index.ts +8 -1
  98. package/src/orchestrator/proving-scheduler.ts +160 -0
  99. package/src/orchestrator/top-tree-orchestrator.ts +384 -0
  100. package/src/orchestrator/top-tree-proving-state.ts +219 -0
  101. package/src/orchestrator/tx-proving-state.ts +3 -3
  102. package/src/prover-client/prover-client.ts +146 -20
  103. package/src/proving_broker/broker_prover_facade.ts +25 -25
  104. package/src/proving_broker/config.ts +25 -2
  105. package/src/proving_broker/index.ts +1 -0
  106. package/src/proving_broker/proof_store/factory.ts +10 -32
  107. package/src/proving_broker/proof_store/file_store_proof_store.ts +78 -0
  108. package/src/proving_broker/proof_store/index.ts +1 -1
  109. package/src/proving_broker/proving_agent.ts +5 -2
  110. package/src/proving_broker/proving_broker.ts +64 -8
  111. package/src/proving_broker/proving_broker_database/persisted.ts +2 -2
  112. package/src/proving_broker/proving_broker_instrumentation.ts +19 -6
  113. package/src/proving_broker/proving_job_controller.ts +9 -3
  114. package/src/proving_broker/rpc.ts +46 -20
  115. package/src/test/epoch_settlement.ts +82 -0
  116. package/src/test/index.ts +1 -0
  117. package/src/test/mock_prover.ts +2 -2
  118. package/dest/orchestrator/epoch-proving-state.d.ts +0 -75
  119. package/dest/orchestrator/epoch-proving-state.d.ts.map +0 -1
  120. package/dest/orchestrator/epoch-proving-state.js +0 -267
  121. package/dest/orchestrator/orchestrator.d.ts +0 -123
  122. package/dest/orchestrator/orchestrator.d.ts.map +0 -1
  123. package/dest/prover-client/server-epoch-prover.d.ts +0 -32
  124. package/dest/prover-client/server-epoch-prover.d.ts.map +0 -1
  125. package/dest/prover-client/server-epoch-prover.js +0 -40
  126. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +0 -14
  127. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +0 -1
  128. package/dest/proving_broker/proof_store/gcs_proof_store.js +0 -52
  129. package/src/orchestrator/epoch-proving-state.ts +0 -378
  130. package/src/orchestrator/orchestrator.ts +0 -1267
  131. package/src/prover-client/server-epoch-prover.ts +0 -69
  132. package/src/proving_broker/proof_store/gcs_proof_store.ts +0 -76
@@ -0,0 +1,60 @@
1
+ import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
2
+ import { ProvingJobResult, getProvingJobInputClassFor } from '@aztec/stdlib/interfaces/server';
3
+ import { ProvingRequestType } from '@aztec/stdlib/proofs';
4
+ const INPUTS_PATH = 'inputs';
5
+ const OUTPUTS_PATH = 'outputs';
6
+ /**
7
+ * A proof store implementation backed by a generic FileStore.
8
+ * Supports any storage backend (GCS, S3, local filesystem) via the FileStore abstraction.
9
+ */ export class FileStoreProofStore {
10
+ fileStore;
11
+ constructor(fileStore){
12
+ this.fileStore = fileStore;
13
+ }
14
+ async saveProofInput(id, type, inputs) {
15
+ const path = `${INPUTS_PATH}/${ProvingRequestType[type]}/${id}`;
16
+ const uri = await this.fileStore.save(path, inputs.toBuffer());
17
+ return uri;
18
+ }
19
+ async saveProofOutput(id, type, result) {
20
+ const jobResult = {
21
+ type,
22
+ result
23
+ };
24
+ const json = jsonStringify(jobResult);
25
+ const path = `${OUTPUTS_PATH}/${ProvingRequestType[type]}/${id}.json`;
26
+ const uri = await this.fileStore.save(path, Buffer.from(json, 'utf-8'));
27
+ return uri;
28
+ }
29
+ async getProofInput(uri) {
30
+ try {
31
+ const buffer = await this.fileStore.read(uri);
32
+ const type = this.extractTypeFromUri(uri);
33
+ const inputs = getProvingJobInputClassFor(type).fromBuffer(buffer);
34
+ return {
35
+ inputs,
36
+ type
37
+ };
38
+ } catch (err) {
39
+ throw new Error(`Error getting proof input at ${uri}: ${err}`);
40
+ }
41
+ }
42
+ async getProofOutput(uri) {
43
+ try {
44
+ const buffer = await this.fileStore.read(uri);
45
+ return jsonParseWithSchema(buffer.toString('utf-8'), ProvingJobResult);
46
+ } catch (err) {
47
+ throw new Error(`Error getting proof output at ${uri}: ${err}`);
48
+ }
49
+ }
50
+ extractTypeFromUri(uri) {
51
+ const url = new URL(uri);
52
+ const pathParts = url.pathname.split('/').filter(Boolean);
53
+ const typeString = pathParts.at(-2);
54
+ const type = typeString ? ProvingRequestType[typeString] : undefined;
55
+ if (type === undefined) {
56
+ throw new Error(`Unrecognized proof type ${typeString} in URI ${uri}`);
57
+ }
58
+ return type;
59
+ }
60
+ }
@@ -1,5 +1,5 @@
1
1
  export * from './proof_store.js';
2
2
  export * from './inline_proof_store.js';
3
3
  export * from './factory.js';
4
- export * from './gcs_proof_store.js';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm92aW5nX2Jyb2tlci9wcm9vZl9zdG9yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxzQkFBc0IsQ0FBQyJ9
4
+ export * from './file_store_proof_store.js';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm92aW5nX2Jyb2tlci9wcm9vZl9zdG9yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyw2QkFBNkIsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/proving_broker/proof_store/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/proving_broker/proof_store/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export * from './proof_store.js';
2
2
  export * from './inline_proof_store.js';
3
3
  export * from './factory.js';
4
- export * from './gcs_proof_store.js';
4
+ export * from './file_store_proof_store.js';
@@ -1,3 +1,4 @@
1
+ import { type LoggerBindings } from '@aztec/foundation/log';
1
2
  import type { ProverAgentStatus, ProvingJobConsumer, ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
2
3
  import { ProvingRequestType } from '@aztec/stdlib/proofs';
3
4
  import type { ProofStore } from './proof_store/index.js';
@@ -15,9 +16,9 @@ export declare class ProvingAgent {
15
16
  private proofAllowList;
16
17
  /** How long to wait between jobs */
17
18
  private pollIntervalMs;
18
- private log;
19
19
  private currentJobController?;
20
20
  private runningPromise;
21
+ private log;
21
22
  constructor(
22
23
  /** The source of proving jobs */
23
24
  broker: ProvingJobConsumer,
@@ -28,7 +29,7 @@ export declare class ProvingAgent {
28
29
  /** Optional list of allowed proof types to build */
29
30
  proofAllowList?: Array<ProvingRequestType>,
30
31
  /** How long to wait between jobs */
31
- pollIntervalMs?: number, log?: import("@aztec/foundation/log").Logger);
32
+ pollIntervalMs?: number, bindings?: LoggerBindings);
32
33
  setCircuitProver(circuitProver: ServerCircuitProver): void;
33
34
  isRunning(): boolean;
34
35
  start(): void;
@@ -38,4 +39,4 @@ export declare class ProvingAgent {
38
39
  private startJob;
39
40
  private reportResult;
40
41
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19hZ2VudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpbmdfYnJva2VyL3Byb3ZpbmdfYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxLQUFLLEVBRVYsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUlsQixtQkFBbUIsRUFDcEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUxRCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUd6RDs7R0FFRztBQUNILHFCQUFhLFlBQVk7SUFLckIsaUNBQWlDO0lBQ2pDLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsZ0RBQWdEO0lBQ2hELE9BQU8sQ0FBQyxVQUFVO0lBQ2xCLGlEQUFpRDtJQUNqRCxPQUFPLENBQUMsYUFBYTtJQUNyQixvREFBb0Q7SUFDcEQsT0FBTyxDQUFDLGNBQWM7SUFDdEIsb0NBQW9DO0lBQ3BDLE9BQU8sQ0FBQyxjQUFjO0lBQ3RCLE9BQU8sQ0FBQyxHQUFHO0lBZGIsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQXVCO0lBQ3BELE9BQU8sQ0FBQyxjQUFjLENBQWlCO0lBRXZDO0lBQ0UsaUNBQWlDO0lBQ3pCLE1BQU0sRUFBRSxrQkFBa0I7SUFDbEMsZ0RBQWdEO0lBQ3hDLFVBQVUsRUFBRSxVQUFVO0lBQzlCLGlEQUFpRDtJQUN6QyxhQUFhLEVBQUUsbUJBQW1CO0lBQzFDLG9EQUFvRDtJQUM1QyxjQUFjLEdBQUUsS0FBSyxDQUFDLGtCQUFrQixDQUFNO0lBQ3RELG9DQUFvQztJQUM1QixjQUFjLFNBQU8sRUFDckIsR0FBRyx5Q0FBOEMsRUFHMUQ7SUFFTSxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLEdBQUcsSUFBSSxDQUVoRTtJQUVNLFNBQVMsSUFBSSxPQUFPLENBRTFCO0lBRU0sS0FBSyxJQUFJLElBQUksQ0FFbkI7SUFFWSxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUdqQztJQUVNLFNBQVMsSUFBSSxpQkFBaUIsQ0FXcEM7WUFFYSxJQUFJO1lBcURKLFFBQVE7WUF1RFIsWUFBWTtDQTBCM0IifQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19hZ2VudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpbmdfYnJva2VyL3Byb3ZpbmdfYWdlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFlLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBSXZGLE9BQU8sS0FBSyxFQUVWLGlCQUFpQixFQUNqQixrQkFBa0IsRUFJbEIsbUJBQW1CLEVBQ3BCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFMUQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHekQ7O0dBRUc7QUFDSCxxQkFBYSxZQUFZO0lBTXJCLGlDQUFpQztJQUNqQyxPQUFPLENBQUMsTUFBTTtJQUNkLGdEQUFnRDtJQUNoRCxPQUFPLENBQUMsVUFBVTtJQUNsQixpREFBaUQ7SUFDakQsT0FBTyxDQUFDLGFBQWE7SUFDckIsb0RBQW9EO0lBQ3BELE9BQU8sQ0FBQyxjQUFjO0lBQ3RCLG9DQUFvQztJQUNwQyxPQUFPLENBQUMsY0FBYztJQWR4QixPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBdUI7SUFDcEQsT0FBTyxDQUFDLGNBQWMsQ0FBaUI7SUFDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBUztJQUVwQjtJQUNFLGlDQUFpQztJQUN6QixNQUFNLEVBQUUsa0JBQWtCO0lBQ2xDLGdEQUFnRDtJQUN4QyxVQUFVLEVBQUUsVUFBVTtJQUM5QixpREFBaUQ7SUFDekMsYUFBYSxFQUFFLG1CQUFtQjtJQUMxQyxvREFBb0Q7SUFDNUMsY0FBYyxHQUFFLEtBQUssQ0FBQyxrQkFBa0IsQ0FBTTtJQUN0RCxvQ0FBb0M7SUFDNUIsY0FBYyxTQUFPLEVBQzdCLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFJMUI7SUFFTSxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsbUJBQW1CLEdBQUcsSUFBSSxDQUVoRTtJQUVNLFNBQVMsSUFBSSxPQUFPLENBRTFCO0lBRU0sS0FBSyxJQUFJLElBQUksQ0FFbkI7SUFFWSxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUdqQztJQUVNLFNBQVMsSUFBSSxpQkFBaUIsQ0FXcEM7WUFFYSxJQUFJO1lBcURKLFFBQVE7WUF3RFIsWUFBWTtDQTBCM0IifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"proving_agent.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_agent.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,iBAAiB,EACjB,kBAAkB,EAIlB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD;;GAEG;AACH,qBAAa,YAAY;IAKrB,iCAAiC;IACjC,OAAO,CAAC,MAAM;IACd,gDAAgD;IAChD,OAAO,CAAC,UAAU;IAClB,iDAAiD;IACjD,OAAO,CAAC,aAAa;IACrB,oDAAoD;IACpD,OAAO,CAAC,cAAc;IACtB,oCAAoC;IACpC,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,GAAG;IAdb,OAAO,CAAC,oBAAoB,CAAC,CAAuB;IACpD,OAAO,CAAC,cAAc,CAAiB;IAEvC;IACE,iCAAiC;IACzB,MAAM,EAAE,kBAAkB;IAClC,gDAAgD;IACxC,UAAU,EAAE,UAAU;IAC9B,iDAAiD;IACzC,aAAa,EAAE,mBAAmB;IAC1C,oDAAoD;IAC5C,cAAc,GAAE,KAAK,CAAC,kBAAkB,CAAM;IACtD,oCAAoC;IAC5B,cAAc,SAAO,EACrB,GAAG,yCAA8C,EAG1D;IAEM,gBAAgB,CAAC,aAAa,EAAE,mBAAmB,GAAG,IAAI,CAEhE;IAEM,SAAS,IAAI,OAAO,CAE1B;IAEM,KAAK,IAAI,IAAI,CAEnB;IAEY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAGjC;IAEM,SAAS,IAAI,iBAAiB,CAWpC;YAEa,IAAI;YAqDJ,QAAQ;YAuDR,YAAY;CA0B3B"}
1
+ {"version":3,"file":"proving_agent.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAIvF,OAAO,KAAK,EAEV,iBAAiB,EACjB,kBAAkB,EAIlB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD;;GAEG;AACH,qBAAa,YAAY;IAMrB,iCAAiC;IACjC,OAAO,CAAC,MAAM;IACd,gDAAgD;IAChD,OAAO,CAAC,UAAU;IAClB,iDAAiD;IACjD,OAAO,CAAC,aAAa;IACrB,oDAAoD;IACpD,OAAO,CAAC,cAAc;IACtB,oCAAoC;IACpC,OAAO,CAAC,cAAc;IAdxB,OAAO,CAAC,oBAAoB,CAAC,CAAuB;IACpD,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,GAAG,CAAS;IAEpB;IACE,iCAAiC;IACzB,MAAM,EAAE,kBAAkB;IAClC,gDAAgD;IACxC,UAAU,EAAE,UAAU;IAC9B,iDAAiD;IACzC,aAAa,EAAE,mBAAmB;IAC1C,oDAAoD;IAC5C,cAAc,GAAE,KAAK,CAAC,kBAAkB,CAAM;IACtD,oCAAoC;IAC5B,cAAc,SAAO,EAC7B,QAAQ,CAAC,EAAE,cAAc,EAI1B;IAEM,gBAAgB,CAAC,aAAa,EAAE,mBAAmB,GAAG,IAAI,CAEhE;IAEM,SAAS,IAAI,OAAO,CAE1B;IAEM,KAAK,IAAI,IAAI,CAEnB;IAEY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAGjC;IAEM,SAAS,IAAI,iBAAiB,CAWpC;YAEa,IAAI;YAqDJ,QAAQ;YAwDR,YAAY;CA0B3B"}
@@ -13,16 +13,16 @@ import { ProvingJobController, ProvingJobControllerStatus } from './proving_job_
13
13
  circuitProver;
14
14
  proofAllowList;
15
15
  pollIntervalMs;
16
- log;
17
16
  currentJobController;
18
17
  runningPromise;
19
- constructor(/** The source of proving jobs */ broker, /** Database holding proof inputs and outputs */ proofStore, /** The prover implementation to defer jobs to */ circuitProver, /** Optional list of allowed proof types to build */ proofAllowList = [], /** How long to wait between jobs */ pollIntervalMs = 1000, log = createLogger('prover-client:proving-agent')){
18
+ log;
19
+ constructor(/** The source of proving jobs */ broker, /** Database holding proof inputs and outputs */ proofStore, /** The prover implementation to defer jobs to */ circuitProver, /** Optional list of allowed proof types to build */ proofAllowList = [], /** How long to wait between jobs */ pollIntervalMs = 1000, bindings){
20
20
  this.broker = broker;
21
21
  this.proofStore = proofStore;
22
22
  this.circuitProver = circuitProver;
23
23
  this.proofAllowList = proofAllowList;
24
24
  this.pollIntervalMs = pollIntervalMs;
25
- this.log = log;
25
+ this.log = createLogger('prover-client:proving-agent', bindings);
26
26
  this.runningPromise = new RunningPromise(this.work.bind(this), this.log, this.pollIntervalMs);
27
27
  }
28
28
  setCircuitProver(circuitProver) {
@@ -124,7 +124,7 @@ import { ProvingJobController, ProvingJobControllerStatus } from './proving_job_
124
124
  // trigger a run of the main work loop when proving completes
125
125
  // no need to await this here. The controller will stay alive (in DONE state) until the result is send to the broker
126
126
  void this.runningPromise.trigger();
127
- });
127
+ }, this.log.getBindings());
128
128
  if (abortedProofJobId) {
129
129
  this.log.info(`Aborting job id=${abortedProofJobId} type=${abortedProofName} to start new job id=${this.currentJobController.getJobId()} type=${this.currentJobController.getProofTypeName()} inputsUri=${truncate(job.inputsUri)}`);
130
130
  } else {
@@ -1,4 +1,5 @@
1
- import { type GetProvingJobResponse, type ProofUri, type ProvingJob, type ProvingJobConsumer, type ProvingJobFilter, type ProvingJobId, type ProvingJobProducer, type ProvingJobStatus } from '@aztec/stdlib/interfaces/server';
1
+ import { EpochNumber } from '@aztec/foundation/branded-types';
2
+ import { type GetProvingJobResponse, type ProofUri, type ProvingJob, type ProvingJobBrokerDebug, type ProvingJobConsumer, type ProvingJobFilter, type ProvingJobId, type ProvingJobProducer, type ProvingJobStatus } from '@aztec/stdlib/interfaces/server';
2
3
  import { ProvingRequestType } from '@aztec/stdlib/proofs';
3
4
  import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
4
5
  import { type ProverBrokerConfig } from './config.js';
@@ -7,7 +8,7 @@ import type { ProvingBrokerDatabase } from './proving_broker_database.js';
7
8
  * A broker that manages proof requests and distributes them to workers based on their priority.
8
9
  * It takes a backend that is responsible for storing and retrieving proof requests and results.
9
10
  */
10
- export declare class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Traceable {
11
+ export declare class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, ProvingJobBrokerDebug, Traceable {
11
12
  #private;
12
13
  private database;
13
14
  private logger;
@@ -38,7 +39,8 @@ export declare class ProvingBroker implements ProvingJobProducer, ProvingJobCons
38
39
  private epochHeight;
39
40
  private maxEpochsToKeepResultsFor;
40
41
  private started;
41
- constructor(database: ProvingBrokerDatabase, { proverBrokerJobTimeoutMs, proverBrokerPollIntervalMs, proverBrokerJobMaxRetries, proverBrokerMaxEpochsToKeepResultsFor }?: Required<Pick<ProverBrokerConfig, 'proverBrokerJobTimeoutMs' | 'proverBrokerPollIntervalMs' | 'proverBrokerJobMaxRetries' | 'proverBrokerMaxEpochsToKeepResultsFor'>>, client?: TelemetryClient, logger?: import("@aztec/foundation/log").Logger);
42
+ private debugReplayEnabled;
43
+ constructor(database: ProvingBrokerDatabase, { proverBrokerJobTimeoutMs, proverBrokerPollIntervalMs, proverBrokerJobMaxRetries, proverBrokerMaxEpochsToKeepResultsFor, proverBrokerDebugReplayEnabled }?: Required<Pick<ProverBrokerConfig, 'proverBrokerJobTimeoutMs' | 'proverBrokerPollIntervalMs' | 'proverBrokerJobMaxRetries' | 'proverBrokerMaxEpochsToKeepResultsFor' | 'proverBrokerDebugReplayEnabled'>>, client?: TelemetryClient, logger?: import("@aztec/foundation/log").Logger);
42
44
  private measureQueueDepth;
43
45
  private countActiveJobs;
44
46
  start(): Promise<void>;
@@ -54,9 +56,10 @@ export declare class ProvingBroker implements ProvingJobProducer, ProvingJobCons
54
56
  job: ProvingJob;
55
57
  time: number;
56
58
  } | undefined>;
59
+ replayProvingJob(jobId: ProvingJobId, type: ProvingRequestType, epochNumber: EpochNumber, inputsUri: ProofUri): Promise<ProvingJobStatus>;
57
60
  private cleanUpProvingJobState;
58
61
  private cleanupPass;
59
- private cleanupStaleJobs;
62
+ private cleanupJobsOlderThanEpoch;
60
63
  private reEnqueueExpiredJobs;
61
64
  private enqueueJobInternal;
62
65
  private isJobStale;
@@ -70,4 +73,4 @@ export declare class ProvingBroker implements ProvingJobProducer, ProvingJobCons
70
73
  * is to get picked up by agents
71
74
  */
72
75
  export declare const PROOF_TYPES_IN_PRIORITY_ORDER: ProvingRequestType[];
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19icm9rZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aW5nX2Jyb2tlci9wcm92aW5nX2Jyb2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxPQUFPLEVBQ0wsS0FBSyxxQkFBcUIsRUFDMUIsS0FBSyxRQUFRLEVBQ2IsS0FBSyxVQUFVLEVBQ2YsS0FBSyxrQkFBa0IsRUFDdkIsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyxZQUFZLEVBQ2pCLEtBQUssa0JBQWtCLEVBRXZCLEtBQUssZ0JBQWdCLEVBRXRCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFFLEtBQUssU0FBUyxFQUFFLEtBQUssTUFBTSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBSWhILE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUE2QixNQUFNLGFBQWEsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBVzFFOzs7R0FHRztBQUNILHFCQUFhLGFBQWMsWUFBVyxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxTQUFTOztJQStFbkYsT0FBTyxDQUFDLFFBQVE7SUFnQmhCLE9BQU8sQ0FBQyxNQUFNO0lBOUZoQixPQUFPLENBQUMsTUFBTSxDQTZCWjtJQUlGLE9BQU8sQ0FBQyxTQUFTLENBQXVDO0lBRXhELE9BQU8sQ0FBQyxZQUFZLENBQW9EO0lBR3hFLE9BQU8sQ0FBQyxVQUFVLENBQWtDO0lBTXBELE9BQU8sQ0FBQyxVQUFVLENBQStDO0lBR2pFLE9BQU8sQ0FBQyxPQUFPLENBQW1DO0lBR2xELE9BQU8sQ0FBQyxRQUFRLENBQTBFO0lBRTFGLE9BQU8sQ0FBQyxjQUFjLENBQWlCO0lBQ3ZDLE9BQU8sQ0FBQyxZQUFZLENBQW9CO0lBQ3hDLE9BQU8sQ0FBQyxZQUFZ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
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19icm9rZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm92aW5nX2Jyb2tlci9wcm92aW5nX2Jyb2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFLOUQsT0FBTyxFQUNMLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssUUFBUSxFQUNiLEtBQUssVUFBVSxFQUNmLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssa0JBQWtCLEVBQ3ZCLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssWUFBWSxFQUNqQixLQUFLLGtCQUFrQixFQUV2QixLQUFLLGdCQUFnQixFQUV0QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBRSxLQUFLLFNBQVMsRUFBRSxLQUFLLE1BQU0sRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUloSCxPQUFPLEVBQUUsS0FBSyxrQkFBa0IsRUFBNkIsTUFBTSxhQUFhLENBQUM7QUFDakYsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQVcxRTs7O0dBR0c7QUFDSCxxQkFBYSxhQUFjLFlBQVcsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsU0FBUzs7SUFpRjFHLE9BQU8sQ0FBQyxRQUFRO0lBa0JoQixPQUFPLENBQUMsTUFBTTtJQWxHaEIsT0FBTyxDQUFDLE1BQU0sQ0E2Qlo7SUFJRixPQUFPLENBQUMsU0FBUyxDQUF1QztJQUV4RCxPQUFPLENBQUMsWUFBWSxDQUFvRDtJQUd4RSxPQUFPLENBQUMsVUFBVSxDQUFrQztJQU1wRCxPQUFPLENBQUMsVUFBVSxDQUErQztJQUdqRSxPQUFPLENBQUMsT0FBTyxDQUFtQztJQUdsRCxPQUFPLENBQUMsUUFBUSxDQUEwRTtJ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
@@ -1 +1 @@
1
- {"version":3,"file":"proving_broker.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_broker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proving_broker.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_broker.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,8 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
51
51
  */ epochHeight;
52
52
  maxEpochsToKeepResultsFor;
53
53
  started;
54
- constructor(database, { proverBrokerJobTimeoutMs, proverBrokerPollIntervalMs, proverBrokerJobMaxRetries, proverBrokerMaxEpochsToKeepResultsFor } = defaultProverBrokerConfig, client = getTelemetryClient(), logger = createLogger('prover-client:proving-broker')){
54
+ debugReplayEnabled;
55
+ constructor(database, { proverBrokerJobTimeoutMs, proverBrokerPollIntervalMs, proverBrokerJobMaxRetries, proverBrokerMaxEpochsToKeepResultsFor, proverBrokerDebugReplayEnabled } = defaultProverBrokerConfig, client = getTelemetryClient(), logger = createLogger('prover-client:proving-broker')){
55
56
  this.database = database;
56
57
  this.logger = logger;
57
58
  this.queues = {
@@ -104,6 +105,7 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
104
105
  this.jobTimeoutMs = proverBrokerJobTimeoutMs;
105
106
  this.maxRetries = proverBrokerJobMaxRetries;
106
107
  this.maxEpochsToKeepResultsFor = proverBrokerMaxEpochsToKeepResultsFor;
108
+ this.debugReplayEnabled = proverBrokerDebugReplayEnabled ?? false;
107
109
  }
108
110
  measureQueueDepth;
109
111
  countActiveJobs;
@@ -163,6 +165,32 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
163
165
  reportProvingJobProgress(id, startedAt, filter) {
164
166
  return Promise.resolve(this.#reportProvingJobProgress(id, startedAt, filter));
165
167
  }
168
+ async replayProvingJob(jobId, type, epochNumber, inputsUri) {
169
+ if (!this.debugReplayEnabled) {
170
+ throw new Error('Debug replay not enabled. Set PROVER_BROKER_DEBUG_REPLAY_ENABLED=true');
171
+ }
172
+ this.logger.info(`Replaying proving job`, {
173
+ provingJobId: jobId,
174
+ epochNumber,
175
+ inputsUri
176
+ });
177
+ // Clear existing state and enqueue
178
+ this.cleanUpProvingJobState([
179
+ jobId
180
+ ]);
181
+ const job = {
182
+ id: jobId,
183
+ type,
184
+ epochNumber,
185
+ inputsUri
186
+ };
187
+ this.jobsCache.set(jobId, job);
188
+ await this.database.addProvingJob(job);
189
+ this.enqueueJobInternal(job);
190
+ return {
191
+ status: 'in-queue'
192
+ };
193
+ }
166
194
  async #enqueueProvingJob(job) {
167
195
  // We return the job status at the start of this call
168
196
  const jobStatus = this.#getProvingJobStatus(job.id);
@@ -211,18 +239,27 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
211
239
  this.logger.info(`Cancelling job id=${id}`, {
212
240
  provingJobId: id
213
241
  });
214
- await this.#reportProvingJobError(id, 'Aborted', false);
242
+ await this.#reportProvingJobError(id, 'Aborted', false, undefined, true);
215
243
  }
216
244
  }
217
245
  cleanUpProvingJobState(ids) {
246
+ const idsToClean = new Set(ids);
218
247
  for (const id of ids){
219
248
  this.jobsCache.delete(id);
249
+ const deferred = this.promises.get(id);
250
+ if (deferred) {
251
+ deferred.resolve({
252
+ status: 'rejected',
253
+ reason: 'Proving job cleaned up'
254
+ });
255
+ }
220
256
  this.promises.delete(id);
221
257
  this.resultsCache.delete(id);
222
258
  this.inProgress.delete(id);
223
259
  this.retries.delete(id);
224
260
  this.enqueuedAt.delete(id);
225
261
  }
262
+ this.completedJobNotifications = this.completedJobNotifications.filter((id)=>!idsToClean.has(id));
226
263
  }
227
264
  #getProvingJobStatus(id) {
228
265
  const result = this.resultsCache.get(id);
@@ -285,7 +322,7 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
285
322
  }
286
323
  return undefined;
287
324
  }
288
- async #reportProvingJobError(id, err, retry = false, filter) {
325
+ async #reportProvingJobError(id, err, retry = false, filter, aborted = false) {
289
326
  const info = this.inProgress.get(id);
290
327
  const item = this.jobsCache.get(id);
291
328
  const retries = this.retries.get(id) ?? 0;
@@ -332,7 +369,11 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
332
369
  this.resultsCache.set(id, result);
333
370
  this.promises.get(id).resolve(result);
334
371
  this.completedJobNotifications.push(id);
335
- this.instrumentation.incRejectedJobs(item.type);
372
+ if (aborted) {
373
+ this.instrumentation.incAbortedJobs(item.type);
374
+ } else {
375
+ this.instrumentation.incRejectedJobs(item.type);
376
+ }
336
377
  if (info) {
337
378
  const duration = this.msTimeSource() - info.startedAt;
338
379
  this.instrumentation.recordJobDuration(item.type, duration);
@@ -447,20 +488,20 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
447
488
  return this.#getProvingJob(filter);
448
489
  }
449
490
  async cleanupPass() {
450
- this.cleanupStaleJobs();
451
491
  this.reEnqueueExpiredJobs();
452
492
  const oldestEpochToKeep = this.oldestEpochToKeep();
453
493
  if (oldestEpochToKeep > 0) {
494
+ this.cleanupJobsOlderThanEpoch(EpochNumber(oldestEpochToKeep));
454
495
  await this.database.deleteAllProvingJobsOlderThanEpoch(EpochNumber(oldestEpochToKeep));
455
496
  this.logger.trace(`Deleted all epochs older than ${oldestEpochToKeep}`);
456
497
  }
457
498
  }
458
- cleanupStaleJobs() {
499
+ cleanupJobsOlderThanEpoch(epochNumber) {
459
500
  const jobIds = Array.from(this.jobsCache.keys());
460
501
  const jobsToClean = [];
461
502
  for (const id of jobIds){
462
503
  const job = this.jobsCache.get(id);
463
- if (this.isJobStale(job)) {
504
+ if (job.epochNumber < epochNumber) {
464
505
  jobsToClean.push(id);
465
506
  }
466
507
  }
@@ -483,12 +524,28 @@ import { ProvingBrokerInstrumentation } from './proving_broker_instrumentation.j
483
524
  const now = this.msTimeSource();
484
525
  const msSinceLastUpdate = now - metadata.lastUpdatedAt;
485
526
  if (msSinceLastUpdate >= this.jobTimeoutMs) {
486
- this.logger.warn(`Proving job id=${id} timed out. Adding it back to the queue.`, {
487
- provingJobId: id
488
- });
489
527
  this.inProgress.delete(id);
490
- this.enqueueJobInternal(item);
491
528
  this.instrumentation.incTimedOutJobs(item.type);
529
+ const retries = this.retries.get(id) ?? 0;
530
+ if (retries + 1 < this.maxRetries && !this.isJobStale(item)) {
531
+ this.logger.warn(`Proving job id=${id} timed out. Re-enqueueing (retry ${retries + 1}/${this.maxRetries}).`, {
532
+ provingJobId: id
533
+ });
534
+ this.retries.set(id, retries + 1);
535
+ this.enqueueJobInternal(item);
536
+ } else {
537
+ this.logger.error(`Proving job id=${id} timed out after ${retries + 1} attempts. Marking as failed.`, {
538
+ provingJobId: id
539
+ });
540
+ const result = {
541
+ status: 'rejected',
542
+ reason: 'Timed out'
543
+ };
544
+ this.resultsCache.set(id, result);
545
+ this.promises.get(id)?.resolve(result);
546
+ this.completedJobNotifications.push(id);
547
+ this.instrumentation.incRejectedJobs(item.type);
548
+ }
492
549
  }
493
550
  }
494
551
  }
@@ -499,7 +499,7 @@ export class KVBrokerDatabase {
499
499
  continue;
500
500
  }
501
501
  logger.info(`Loading broker database for epoch ${epochNumber} from ${fullDirectory} with map size ${config.dataStoreMapSizeKb}KB`);
502
- const db = await openVersionedStoreAt(fullDirectory, SingleEpochDatabase.SCHEMA_VERSION, config.l1Contracts.rollupAddress, config.dataStoreMapSizeKb);
502
+ const db = await openVersionedStoreAt(fullDirectory, SingleEpochDatabase.SCHEMA_VERSION, config.rollupAddress, config.dataStoreMapSizeKb);
503
503
  const epochDb = new SingleEpochDatabase(db);
504
504
  epochs.set(epochNumber, epochDb);
505
505
  }
@@ -563,7 +563,7 @@ export class KVBrokerDatabase {
563
563
  recursive: true
564
564
  });
565
565
  this.logger.info(`Creating broker database for epoch ${epochNumber} at ${newEpochDirectory} with map size ${this.config.dataStoreMapSizeKb}`);
566
- const db = await openVersionedStoreAt(newEpochDirectory, SingleEpochDatabase.SCHEMA_VERSION, this.config.l1Contracts.rollupAddress, this.config.dataStoreMapSizeKb);
566
+ const db = await openVersionedStoreAt(newEpochDirectory, SingleEpochDatabase.SCHEMA_VERSION, this.config.rollupAddress, this.config.dataStoreMapSizeKb);
567
567
  epochDb = new SingleEpochDatabase(db);
568
568
  this.epochs.set(epochNumber, epochDb);
569
569
  }
@@ -7,6 +7,7 @@ export declare class ProvingBrokerInstrumentation {
7
7
  private activeJobs;
8
8
  private resolvedJobs;
9
9
  private rejectedJobs;
10
+ private abortedJobs;
10
11
  private timedOutJobs;
11
12
  private cachedJobs;
12
13
  private totalJobs;
@@ -18,6 +19,7 @@ export declare class ProvingBrokerInstrumentation {
18
19
  monitorActiveJobs(fn: MonitorCallback): void;
19
20
  incResolvedJobs(proofType: ProvingRequestType): void;
20
21
  incRejectedJobs(proofType: ProvingRequestType): void;
22
+ incAbortedJobs(proofType: ProvingRequestType): void;
21
23
  incRetriedJobs(proofType: ProvingRequestType): void;
22
24
  incTimedOutJobs(proofType: ProvingRequestType): void;
23
25
  incCachedJobs(proofType: ProvingRequestType): void;
@@ -26,4 +28,4 @@ export declare class ProvingBrokerInstrumentation {
26
28
  recordJobDuration(proofType: ProvingRequestType, msOrTimer: Timer | number): void;
27
29
  private observe;
28
30
  }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19icm9rZXJfaW5zdHJ1bWVudGF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmluZ19icm9rZXIvcHJvdmluZ19icm9rZXJfaW5zdHJ1bWVudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFNTCxLQUFLLGVBQWUsRUFFckIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxNQUFNLE1BQU0sZUFBZSxHQUFHLENBQUMsU0FBUyxFQUFFLGtCQUFrQixLQUFLLE1BQU0sQ0FBQztBQUV4RSxxQkFBYSw0QkFBNEI7SUFDdkMsT0FBTyxDQUFDLFNBQVMsQ0FBa0I7SUFDbkMsT0FBTyxDQUFDLFVBQVUsQ0FBa0I7SUFDcEMsT0FBTyxDQUFDLFlBQVksQ0FBZ0I7SUFDcEMsT0FBTyxDQUFDLFlBQVksQ0FBZ0I7SUFDcEMsT0FBTyxDQUFDLFlBQVksQ0FBZ0I7SUFDcEMsT0FBTyxDQUFDLFVBQVUsQ0FBZ0I7SUFDbEMsT0FBTyxDQUFDLFNBQVMsQ0FBZ0I7SUFDakMsT0FBTyxDQUFDLE9BQU8sQ0FBWTtJQUMzQixPQUFPLENBQUMsV0FBVyxDQUFZO0lBQy9CLE9BQU8sQ0FBQyxXQUFXLENBQWdCO0lBRW5DLFlBQVksTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLFNBQWtCLEVBc0IxRDtJQUVELGlCQUFpQixDQUFDLEVBQUUsRUFBRSxlQUFlLFFBRXBDO0lBRUQsaUJBQWlCLENBQUMsRUFBRSxFQUFFLGVBQWUsUUFFcEM7SUFFRCxlQUFlLENBQUMsU0FBUyxFQUFFLGtCQUFrQixRQUk1QztJQUVELGVBQWUsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLFFBSTVDO0lBRUQsY0FBYyxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsUUFJM0M7SUFFRCxlQUFlLENBQUMsU0FBUyxFQUFFLGtCQUFrQixRQUk1QztJQUVELGFBQWEsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLFFBSTFDO0lBRUQsWUFBWSxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsUUFJekM7SUFFRCxhQUFhLENBQUMsU0FBUyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxLQUFLLEdBQUcsTUFBTSxRQUtyRTtJQUVELGlCQUFpQixDQUFDLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsS0FBSyxHQUFHLE1BQU0sUUFLekU7SUFFRCxPQUFPLENBQUMsT0FBTztDQVdoQiJ9
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19icm9rZXJfaW5zdHJ1bWVudGF0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmluZ19icm9rZXIvcHJvdmluZ19icm9rZXJfaW5zdHJ1bWVudGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFNTCxLQUFLLGVBQWUsRUFHckIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxNQUFNLE1BQU0sZUFBZSxHQUFHLENBQUMsU0FBUyxFQUFFLGtCQUFrQixLQUFLLE1BQU0sQ0FBQztBQUV4RSxxQkFBYSw0QkFBNEI7SUFDdkMsT0FBTyxDQUFDLFNBQVMsQ0FBa0I7SUFDbkMsT0FBTyxDQUFDLFVBQVUsQ0FBa0I7SUFDcEMsT0FBTyxDQUFDLFlBQVksQ0FBZ0I7SUFDcEMsT0FBTyxDQUFDLFlBQVksQ0FBZ0I7SUFDcEMsT0FBTyxDQUFDLFdBQVcsQ0FBZ0I7SUFDbkMsT0FBTyxDQUFDLFlBQVksQ0FBZ0I7SUFDcEMsT0FBTyxDQUFDLFVBQVUsQ0FBZ0I7SUFDbEMsT0FBTyxDQUFDLFNBQVMsQ0FBZ0I7SUFDakMsT0FBTyxDQUFDLE9BQU8sQ0FBWTtJQUMzQixPQUFPLENBQUMsV0FBVyxDQUFZO0lBQy9CLE9BQU8sQ0FBQyxXQUFXLENBQWdCO0lBRW5DLFlBQVksTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLFNBQWtCLEVBMkIxRDtJQUVELGlCQUFpQixDQUFDLEVBQUUsRUFBRSxlQUFlLFFBRXBDO0lBRUQsaUJBQWlCLENBQUMsRUFBRSxFQUFFLGVBQWUsUUFFcEM7SUFFRCxlQUFlLENBQUMsU0FBUyxFQUFFLGtCQUFrQixRQUk1QztJQUVELGVBQWUsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLFFBSTVDO0lBRUQsY0FBYyxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsUUFJM0M7SUFFRCxjQUFjLENBQUMsU0FBUyxFQUFFLGtCQUFrQixRQUkzQztJQUVELGVBQWUsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLFFBSTVDO0lBRUQsYUFBYSxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsUUFJMUM7SUFFRCxZQUFZLENBQUMsU0FBUyxFQUFFLGtCQUFrQixRQUl6QztJQUVELGFBQWEsQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLEtBQUssR0FBRyxNQUFNLFFBS3JFO0lBRUQsaUJBQWlCLENBQUMsU0FBUyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxLQUFLLEdBQUcsTUFBTSxRQUt6RTtJQUVELE9BQU8sQ0FBQyxPQUFPO0NBV2hCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"proving_broker_instrumentation.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_broker_instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAML,KAAK,eAAe,EAErB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,kBAAkB,KAAK,MAAM,CAAC;AAExE,qBAAa,4BAA4B;IACvC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,WAAW,CAAgB;IAEnC,YAAY,MAAM,EAAE,eAAe,EAAE,IAAI,SAAkB,EAsB1D;IAED,iBAAiB,CAAC,EAAE,EAAE,eAAe,QAEpC;IAED,iBAAiB,CAAC,EAAE,EAAE,eAAe,QAEpC;IAED,eAAe,CAAC,SAAS,EAAE,kBAAkB,QAI5C;IAED,eAAe,CAAC,SAAS,EAAE,kBAAkB,QAI5C;IAED,cAAc,CAAC,SAAS,EAAE,kBAAkB,QAI3C;IAED,eAAe,CAAC,SAAS,EAAE,kBAAkB,QAI5C;IAED,aAAa,CAAC,SAAS,EAAE,kBAAkB,QAI1C;IAED,YAAY,CAAC,SAAS,EAAE,kBAAkB,QAIzC;IAED,aAAa,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,GAAG,MAAM,QAKrE;IAED,iBAAiB,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,GAAG,MAAM,QAKzE;IAED,OAAO,CAAC,OAAO;CAWhB"}
1
+ {"version":3,"file":"proving_broker_instrumentation.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_broker_instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAML,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,kBAAkB,KAAK,MAAM,CAAC;AAExE,qBAAa,4BAA4B;IACvC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,OAAO,CAAY;IAC3B,OAAO,CAAC,WAAW,CAAY;IAC/B,OAAO,CAAC,WAAW,CAAgB;IAEnC,YAAY,MAAM,EAAE,eAAe,EAAE,IAAI,SAAkB,EA2B1D;IAED,iBAAiB,CAAC,EAAE,EAAE,eAAe,QAEpC;IAED,iBAAiB,CAAC,EAAE,EAAE,eAAe,QAEpC;IAED,eAAe,CAAC,SAAS,EAAE,kBAAkB,QAI5C;IAED,eAAe,CAAC,SAAS,EAAE,kBAAkB,QAI5C;IAED,cAAc,CAAC,SAAS,EAAE,kBAAkB,QAI3C;IAED,cAAc,CAAC,SAAS,EAAE,kBAAkB,QAI3C;IAED,eAAe,CAAC,SAAS,EAAE,kBAAkB,QAI5C;IAED,aAAa,CAAC,SAAS,EAAE,kBAAkB,QAI1C;IAED,YAAY,CAAC,SAAS,EAAE,kBAAkB,QAIzC;IAED,aAAa,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,GAAG,MAAM,QAKrE;IAED,iBAAiB,CAAC,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,KAAK,GAAG,MAAM,QAKzE;IAED,OAAO,CAAC,OAAO;CAWhB"}
@@ -1,10 +1,11 @@
1
1
  import { ProvingRequestType } from '@aztec/stdlib/proofs';
2
- import { Attributes, Metrics } from '@aztec/telemetry-client';
2
+ import { Attributes, Metrics, createUpDownCounterWithDefault } from '@aztec/telemetry-client';
3
3
  export class ProvingBrokerInstrumentation {
4
4
  queueSize;
5
5
  activeJobs;
6
6
  resolvedJobs;
7
7
  rejectedJobs;
8
+ abortedJobs;
8
9
  timedOutJobs;
9
10
  cachedJobs;
10
11
  totalJobs;
@@ -15,12 +16,17 @@ export class ProvingBrokerInstrumentation {
15
16
  const meter = client.getMeter(name);
16
17
  this.queueSize = meter.createObservableGauge(Metrics.PROVING_QUEUE_SIZE);
17
18
  this.activeJobs = meter.createObservableGauge(Metrics.PROVING_QUEUE_ACTIVE_JOBS);
18
- this.resolvedJobs = meter.createUpDownCounter(Metrics.PROVING_QUEUE_RESOLVED_JOBS);
19
- this.rejectedJobs = meter.createUpDownCounter(Metrics.PROVING_QUEUE_REJECTED_JOBS);
20
- this.retriedJobs = meter.createUpDownCounter(Metrics.PROVING_QUEUE_RETRIED_JOBS);
21
- this.timedOutJobs = meter.createUpDownCounter(Metrics.PROVING_QUEUE_TIMED_OUT_JOBS);
22
- this.cachedJobs = meter.createUpDownCounter(Metrics.PROVING_QUEUE_CACHED_JOBS);
23
- this.totalJobs = meter.createUpDownCounter(Metrics.PROVING_QUEUE_TOTAL_JOBS);
19
+ const provingJobTypes = Object.values(ProvingRequestType).filter((v)=>typeof v === 'string');
20
+ const provingJobAttrs = {
21
+ [Attributes.PROVING_JOB_TYPE]: provingJobTypes
22
+ };
23
+ this.resolvedJobs = createUpDownCounterWithDefault(meter, Metrics.PROVING_QUEUE_RESOLVED_JOBS, provingJobAttrs);
24
+ this.rejectedJobs = createUpDownCounterWithDefault(meter, Metrics.PROVING_QUEUE_REJECTED_JOBS, provingJobAttrs);
25
+ this.abortedJobs = createUpDownCounterWithDefault(meter, Metrics.PROVING_QUEUE_ABORTED_JOBS, provingJobAttrs);
26
+ this.retriedJobs = createUpDownCounterWithDefault(meter, Metrics.PROVING_QUEUE_RETRIED_JOBS, provingJobAttrs);
27
+ this.timedOutJobs = createUpDownCounterWithDefault(meter, Metrics.PROVING_QUEUE_TIMED_OUT_JOBS, provingJobAttrs);
28
+ this.cachedJobs = createUpDownCounterWithDefault(meter, Metrics.PROVING_QUEUE_CACHED_JOBS, provingJobAttrs);
29
+ this.totalJobs = createUpDownCounterWithDefault(meter, Metrics.PROVING_QUEUE_TOTAL_JOBS, provingJobAttrs);
24
30
  this.jobWait = meter.createHistogram(Metrics.PROVING_QUEUE_JOB_WAIT);
25
31
  this.jobDuration = meter.createHistogram(Metrics.PROVING_QUEUE_JOB_DURATION);
26
32
  }
@@ -40,6 +46,11 @@ export class ProvingBrokerInstrumentation {
40
46
  [Attributes.PROVING_JOB_TYPE]: ProvingRequestType[proofType]
41
47
  });
42
48
  }
49
+ incAbortedJobs(proofType) {
50
+ this.abortedJobs.add(1, {
51
+ [Attributes.PROVING_JOB_TYPE]: ProvingRequestType[proofType]
52
+ });
53
+ }
43
54
  incRetriedJobs(proofType) {
44
55
  this.retriedJobs.add(1, {
45
56
  [Attributes.PROVING_JOB_TYPE]: ProvingRequestType[proofType]
@@ -1,4 +1,5 @@
1
1
  import { EpochNumber } from '@aztec/foundation/branded-types';
2
+ import { type LoggerBindings } from '@aztec/foundation/log';
2
3
  import type { ProvingJobId, ProvingJobInputs, ProvingJobResultsMap, ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
3
4
  import { ProvingRequestType } from '@aztec/stdlib/proofs';
4
5
  export declare enum ProvingJobControllerStatus {
@@ -13,12 +14,12 @@ export declare class ProvingJobController {
13
14
  private startedAt;
14
15
  private circuitProver;
15
16
  private onComplete;
16
- private log;
17
17
  private status;
18
18
  private promise?;
19
19
  private abortController;
20
20
  private result?;
21
- constructor(jobId: ProvingJobId, inputs: ProvingJobInputs, epochNumber: EpochNumber, startedAt: number, circuitProver: ServerCircuitProver, onComplete: () => void, log?: import("@aztec/foundation/log").Logger);
21
+ private log;
22
+ constructor(jobId: ProvingJobId, inputs: ProvingJobInputs, epochNumber: EpochNumber, startedAt: number, circuitProver: ServerCircuitProver, onComplete: () => void, bindings?: LoggerBindings);
22
23
  start(): void;
23
24
  getStatus(): ProvingJobControllerStatus;
24
25
  getResult(): ProvingJobResultsMap[ProvingRequestType] | Error | undefined;
@@ -30,4 +31,4 @@ export declare class ProvingJobController {
30
31
  private run;
31
32
  private generateProof;
32
33
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19qb2JfY29udHJvbGxlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpbmdfYnJva2VyL3Byb3Zpbmdfam9iX2NvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBSTlELE9BQU8sS0FBSyxFQUNWLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNwQixNQUFNLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTFELG9CQUFZLDBCQUEwQjtJQUNwQyxJQUFJLFNBQVM7SUFDYixPQUFPLFlBQVk7SUFDbkIsSUFBSSxTQUFTO0NBQ2Q7QUFFRCxxQkFBYSxvQkFBb0I7SUFPN0IsT0FBTyxDQUFDLEtBQUs7SUFDYixPQUFPLENBQUMsTUFBTTtJQUNkLE9BQU8sQ0FBQyxXQUFXO0lBQ25CLE9BQU8sQ0FBQyxTQUFTO0lBQ2pCLE9BQU8sQ0FBQyxhQUFhO0lBQ3JCLE9BQU8sQ0FBQyxVQUFVO0lBQ2xCLE9BQU8sQ0FBQyxHQUFHO0lBWmIsT0FBTyxDQUFDLE1BQU0sQ0FBK0Q7SUFDN0UsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFnQjtJQUNoQyxPQUFPLENBQUMsZUFBZSxDQUF5QjtJQUNoRCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQW1EO0lBRWxFLFlBQ1UsS0FBSyxFQUFFLFlBQVksRUFDbkIsTUFBTSxFQUFFLGdCQUFnQixFQUN4QixXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsTUFBTSxFQUNqQixhQUFhLEVBQUUsbUJBQW1CLEVBQ2xDLFVBQVUsRUFBRSxNQUFNLElBQUksRUFDdEIsR0FBRyx5Q0FBK0YsRUFDeEc7SUFFRyxLQUFLLElBQUksSUFBSSxDQWlCbkI7SUFFTSxTQUFTLElBQUksMEJBQTBCLENBRTdDO0lBRU0sU0FBUyxJQUFJLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLEdBQUcsS0FBSyxHQUFHLFNBQVMsQ0FFL0U7SUFFTSxLQUFLLElBQUksSUFBSSxDQWFuQjtJQUVNLFFBQVEsSUFBSSxZQUFZLENBRTlCO0lBRU0sWUFBWSxJQUFJLGtCQUFrQixDQUV4QztJQUVNLFlBQVksSUFBSSxNQUFNLENBRTVCO0lBRU0sZ0JBQWdCLElBQUksTUFBTSxDQUVoQztJQUVELE9BQU8sQ0FBQyxHQUFHLENBNEJUO1lBRVksYUFBYTtDQWtGNUIifQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmluZ19qb2JfY29udHJvbGxlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpbmdfYnJva2VyL3Byb3Zpbmdfam9iX2NvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzlELE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RixPQUFPLEtBQUssRUFDVixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDcEIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUxRCxvQkFBWSwwQkFBMEI7SUFDcEMsSUFBSSxTQUFTO0lBQ2IsT0FBTyxZQUFZO0lBQ25CLElBQUksU0FBUztDQUNkO0FBRUQscUJBQWEsb0JBQW9CO0lBUTdCLE9BQU8sQ0FBQyxLQUFLO0lBQ2IsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsV0FBVztJQUNuQixPQUFPLENBQUMsU0FBUztJQUNqQixPQUFPLENBQUMsYUFBYTtJQUNyQixPQUFPLENBQUMsVUFBVTtJQVpwQixPQUFPLENBQUMsTUFBTSxDQUErRDtJQUM3RSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQWdCO0lBQ2hDLE9BQU8sQ0FBQyxlQUFlLENBQXlCO0lBQ2hELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBbUQ7SUFDbEUsT0FBTyxDQUFDLEdBQUcsQ0FBUztJQUVwQixZQUNVLEtBQUssRUFBRSxZQUFZLEVBQ25CLE1BQU0sRUFBRSxnQkFBZ0IsRUFDeEIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsU0FBUyxFQUFFLE1BQU0sRUFDakIsYUFBYSxFQUFFLG1CQUFtQixFQUNsQyxVQUFVLEVBQUUsTUFBTSxJQUFJLEVBQzlCLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFNMUI7SUFFTSxLQUFLLElBQUksSUFBSSxDQWlCbkI7SUFFTSxTQUFTLElBQUksMEJBQTBCLENBRTdDO0lBRU0sU0FBUyxJQUFJLG9CQUFvQixDQUFDLGtCQUFrQixDQUFDLEdBQUcsS0FBSyxHQUFHLFNBQVMsQ0FFL0U7SUFFTSxLQUFLLElBQUksSUFBSSxDQWFuQjtJQUVNLFFBQVEsSUFBSSxZQUFZLENBRTlCO0lBRU0sWUFBWSxJQUFJLGtCQUFrQixDQUV4QztJQUVNLFlBQVksSUFBSSxNQUFNLENBRTVCO0lBRU0sZ0JBQWdCLElBQUksTUFBTSxDQUVoQztJQUVELE9BQU8sQ0FBQyxHQUFHLENBNEJUO1lBRVksYUFBYTtDQWtGNUIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"proving_job_controller.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_job_controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAI9D,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,qBAAa,oBAAoB;IAO7B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IAZb,OAAO,CAAC,MAAM,CAA+D;IAC7E,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,MAAM,CAAC,CAAmD;IAElE,YACU,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,mBAAmB,EAClC,UAAU,EAAE,MAAM,IAAI,EACtB,GAAG,yCAA+F,EACxG;IAEG,KAAK,IAAI,IAAI,CAiBnB;IAEM,SAAS,IAAI,0BAA0B,CAE7C;IAEM,SAAS,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,GAAG,KAAK,GAAG,SAAS,CAE/E;IAEM,KAAK,IAAI,IAAI,CAanB;IAEM,QAAQ,IAAI,YAAY,CAE9B;IAEM,YAAY,IAAI,kBAAkB,CAExC;IAEM,YAAY,IAAI,MAAM,CAE5B;IAEM,gBAAgB,IAAI,MAAM,CAEhC;IAED,OAAO,CAAC,GAAG,CA4BT;YAEY,aAAa;CAkF5B"}
1
+ {"version":3,"file":"proving_job_controller.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_job_controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG9D,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,IAAI,SAAS;CACd;AAED,qBAAa,oBAAoB;IAQ7B,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,UAAU;IAZpB,OAAO,CAAC,MAAM,CAA+D;IAC7E,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,MAAM,CAAC,CAAmD;IAClE,OAAO,CAAC,GAAG,CAAS;IAEpB,YACU,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,mBAAmB,EAClC,UAAU,EAAE,MAAM,IAAI,EAC9B,QAAQ,CAAC,EAAE,cAAc,EAM1B;IAEM,KAAK,IAAI,IAAI,CAiBnB;IAEM,SAAS,IAAI,0BAA0B,CAE7C;IAEM,SAAS,IAAI,oBAAoB,CAAC,kBAAkB,CAAC,GAAG,KAAK,GAAG,SAAS,CAE/E;IAEM,KAAK,IAAI,IAAI,CAanB;IAEM,QAAQ,IAAI,YAAY,CAE9B;IAEM,YAAY,IAAI,kBAAkB,CAExC;IAEM,YAAY,IAAI,MAAM,CAE5B;IAEM,gBAAgB,IAAI,MAAM,CAEhC;IAED,OAAO,CAAC,GAAG,CA4BT;YAEY,aAAa;CAkF5B"}
@@ -15,19 +15,18 @@ export class ProvingJobController {
15
15
  startedAt;
16
16
  circuitProver;
17
17
  onComplete;
18
- log;
19
18
  status;
20
19
  promise;
21
20
  abortController;
22
21
  result;
23
- constructor(jobId, inputs, epochNumber, startedAt, circuitProver, onComplete, log = createLogger('prover-client:proving-agent:job-controller-' + randomBytes(4).toString('hex'))){
22
+ log;
23
+ constructor(jobId, inputs, epochNumber, startedAt, circuitProver, onComplete, bindings){
24
24
  this.jobId = jobId;
25
25
  this.inputs = inputs;
26
26
  this.epochNumber = epochNumber;
27
27
  this.startedAt = startedAt;
28
28
  this.circuitProver = circuitProver;
29
29
  this.onComplete = onComplete;
30
- this.log = log;
31
30
  this.status = "idle";
32
31
  this.abortController = new AbortController();
33
32
  this.run = async ()=>{
@@ -61,6 +60,10 @@ export class ProvingJobController {
61
60
  });
62
61
  }
63
62
  };
63
+ this.log = createLogger('prover-client:proving-agent:job-controller', {
64
+ instanceId: randomBytes(4).toString('hex'),
65
+ ...bindings
66
+ });
64
67
  }
65
68
  start() {
66
69
  if (this.status !== "idle") {
@@ -1,9 +1,13 @@
1
- import { type ProvingJobBroker, type ProvingJobConsumer, type ProvingJobProducer } from '@aztec/stdlib/interfaces/server';
1
+ import { type ProvingJobBroker, type ProvingJobBrokerDebug, type ProvingJobConsumer, type ProvingJobProducer } from '@aztec/stdlib/interfaces/server';
2
2
  import { type ApiSchemaFor } from '@aztec/stdlib/schemas';
3
3
  import { type ComponentsVersions } from '@aztec/stdlib/versioning';
4
+ /** Indefinite backoff for broker communication: 1, 1, 1, 2, 4, 4, 4, ... seconds. */
5
+ export declare function proverBrokerBackoff(): Generator<number, void, unknown>;
4
6
  export declare const ProvingJobProducerSchema: ApiSchemaFor<ProvingJobProducer>;
5
7
  export declare const ProvingJobConsumerSchema: ApiSchemaFor<ProvingJobConsumer>;
6
8
  export declare const ProvingJobBrokerSchema: ApiSchemaFor<ProvingJobBroker>;
9
+ export declare const ProvingJobBrokerDebugSchema: ApiSchemaFor<ProvingJobBrokerDebug>;
10
+ export declare const ProvingJobBrokerSchemaWithDebug: ApiSchemaFor<ProvingJobBroker & ProvingJobBrokerDebug>;
7
11
  export declare function createProvingJobBrokerClient(url: string, versions: Partial<ComponentsVersions>, fetch?: (host: string, body: unknown, extraHeaders?: Record<string, string> | undefined, noRetry?: boolean | undefined) => Promise<{
8
12
  response: any;
9
13
  headers: {
@@ -22,4 +26,4 @@ export declare function createProvingJobConsumerClient(url: string, versions: Pa
22
26
  get: (header: string) => string | null | undefined;
23
27
  };
24
28
  }>): ProvingJobConsumer;
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnBjLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmluZ19icm9rZXIvcnBjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFJTCxLQUFLLGdCQUFnQixFQUNyQixLQUFLLGtCQUFrQixFQUV2QixLQUFLLGtCQUFrQixFQUV4QixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBWSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUFnQyxNQUFNLDBCQUEwQixDQUFDO0FBY2pHLGVBQU8sTUFBTSx3QkFBd0IsRUFBRSxZQUFZLENBQUMsa0JBQWtCLENBS3JFLENBQUM7QUFFRixlQUFPLE1BQU0sd0JBQXdCLEVBQUUsWUFBWSxDQUFDLGtCQUFrQixDQWNyRSxDQUFDO0FBRUYsZUFBTyxNQUFNLHNCQUFzQixFQUFFLFlBQVksQ0FBQyxnQkFBZ0IsQ0FHakUsQ0FBQztBQUVGLHdCQUFnQiw0QkFBNEIsQ0FDMUMsR0FBRyxFQUFFLE1BQU0sRUFDWCxRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQ3JDLEtBQUs7Ozs7O0VBQW9DLEdBQ3hDLGdCQUFnQixDQU1sQjtBQUVELHdCQUFnQiw4QkFBOEIsQ0FDNUMsR0FBRyxFQUFFLE1BQU0sRUFDWCxRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQ3JDLEtBQUs7Ozs7O0VBQW9DLEdBQ3hDLGtCQUFrQixDQU1wQjtBQUVELHdCQUFnQiw4QkFBOEIsQ0FDNUMsR0FBRyxFQUFFLE1BQU0sRUFDWCxRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQ3JDLEtBQUs7Ozs7O0VBQW9DLEdBQ3hDLGtCQUFrQixDQU1wQiJ9
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnBjLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmluZ19icm9rZXIvcnBjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFJTCxLQUFLLGdCQUFnQixFQUNyQixLQUFLLHFCQUFxQixFQUMxQixLQUFLLGtCQUFrQixFQUV2QixLQUFLLGtCQUFrQixFQUV4QixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBWSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUFnQyxNQUFNLDBCQUEwQixDQUFDO0FBS2pHLHFGQUFxRjtBQUNyRix3QkFBaUIsbUJBQW1CLHFDQU1uQztBQVdELGVBQU8sTUFBTSx3QkFBd0IsRUFBRSxZQUFZLENBQUMsa0JBQWtCLENBS3JFLENBQUM7QUFFRixlQUFPLE1BQU0sd0JBQXdCLEVBQUUsWUFBWSxDQUFDLGtCQUFrQixDQWlCckUsQ0FBQztBQUVGLGVBQU8sTUFBTSxzQkFBc0IsRUFBRSxZQUFZLENBQUMsZ0JBQWdCLENBR2pFLENBQUM7QUFFRixlQUFPLE1BQU0sMkJBQTJCLEVBQUUsWUFBWSxDQUFDLHFCQUFxQixDQUszRSxDQUFDO0FBRUYsZUFBTyxNQUFNLCtCQUErQixFQUFFLFlBQVksQ0FBQyxnQkFBZ0IsR0FBRyxxQkFBcUIsQ0FHbEcsQ0FBQztBQUVGLHdCQUFnQiw0QkFBNEIsQ0FDMUMsR0FBRyxFQUFFLE1BQU0sRUFDWCxRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQ3JDLEtBQUs7Ozs7O0VBQThDLEdBQ2xELGdCQUFnQixDQU1sQjtBQUVELHdCQUFnQiw4QkFBOEIsQ0FDNUMsR0FBRyxFQUFFLE1BQU0sRUFDWCxRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQ3JDLEtBQUs7Ozs7O0VBQThDLEdBQ2xELGtCQUFrQixDQU1wQjtBQUVELHdCQUFnQiw4QkFBOEIsQ0FDNUMsR0FBRyxFQUFFLE1BQU0sRUFDWCxRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQ3JDLEtBQUs7Ozs7O0VBQThDLEdBQ2xELGtCQUFrQixDQU1wQiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/proving_broker/rpc.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAEvB,KAAK,kBAAkB,EAExB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,YAAY,EAAY,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,KAAK,kBAAkB,EAAgC,MAAM,0BAA0B,CAAC;AAcjG,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,kBAAkB,CAKrE,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,kBAAkB,CAcrE,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,YAAY,CAAC,gBAAgB,CAGjE,CAAC;AAEF,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,KAAK;;;;;EAAoC,GACxC,gBAAgB,CAMlB;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,KAAK;;;;;EAAoC,GACxC,kBAAkB,CAMpB;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,KAAK;;;;;EAAoC,GACxC,kBAAkB,CAMpB"}
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../src/proving_broker/rpc.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EAEvB,KAAK,kBAAkB,EAExB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,YAAY,EAAY,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,KAAK,kBAAkB,EAAgC,MAAM,0BAA0B,CAAC;AAKjG,qFAAqF;AACrF,wBAAiB,mBAAmB,qCAMnC;AAWD,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,kBAAkB,CAKrE,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,YAAY,CAAC,kBAAkB,CAiBrE,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,YAAY,CAAC,gBAAgB,CAGjE,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,YAAY,CAAC,qBAAqB,CAK3E,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,YAAY,CAAC,gBAAgB,GAAG,qBAAqB,CAGlG,CAAC;AAEF,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,KAAK;;;;;EAA8C,GAClD,gBAAgB,CAMlB;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,KAAK;;;;;EAA8C,GAClD,kBAAkB,CAMpB;AAED,wBAAgB,8BAA8B,CAC5C,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,KAAK;;;;;EAA8C,GAClD,kBAAkB,CAMpB"}