@aztec/prover-client 0.77.0-testnet-ignition.28 → 0.77.0-testnet-ignition.30

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 (77) hide show
  1. package/dest/bin/get-proof-inputs.d.ts +2 -0
  2. package/dest/bin/get-proof-inputs.d.ts.map +1 -0
  3. package/dest/block_builder/index.d.ts +6 -0
  4. package/dest/block_builder/index.d.ts.map +1 -0
  5. package/dest/block_builder/light.d.ts +33 -0
  6. package/dest/block_builder/light.d.ts.map +1 -0
  7. package/dest/config.d.ts +17 -0
  8. package/dest/config.d.ts.map +1 -0
  9. package/dest/index.d.ts +4 -0
  10. package/dest/index.d.ts.map +1 -0
  11. package/dest/mocks/fixtures.d.ts +20 -0
  12. package/dest/mocks/fixtures.d.ts.map +1 -0
  13. package/dest/mocks/test_context.d.ts +55 -0
  14. package/dest/mocks/test_context.d.ts.map +1 -0
  15. package/dest/orchestrator/block-building-helpers.d.ts +55 -0
  16. package/dest/orchestrator/block-building-helpers.d.ts.map +1 -0
  17. package/dest/orchestrator/block-proving-state.d.ts +76 -0
  18. package/dest/orchestrator/block-proving-state.d.ts.map +1 -0
  19. package/dest/orchestrator/epoch-proving-state.d.ts +60 -0
  20. package/dest/orchestrator/epoch-proving-state.d.ts.map +1 -0
  21. package/dest/orchestrator/index.d.ts +2 -0
  22. package/dest/orchestrator/index.d.ts.map +1 -0
  23. package/dest/orchestrator/orchestrator.d.ts +110 -0
  24. package/dest/orchestrator/orchestrator.d.ts.map +1 -0
  25. package/dest/orchestrator/orchestrator_metrics.d.ts +8 -0
  26. package/dest/orchestrator/orchestrator_metrics.d.ts.map +1 -0
  27. package/dest/orchestrator/tx-proving-state.d.ts +34 -0
  28. package/dest/orchestrator/tx-proving-state.d.ts.map +1 -0
  29. package/dest/prover-client/factory.d.ts +6 -0
  30. package/dest/prover-client/factory.d.ts.map +1 -0
  31. package/dest/prover-client/index.d.ts +3 -0
  32. package/dest/prover-client/index.d.ts.map +1 -0
  33. package/dest/prover-client/prover-client.d.ts +42 -0
  34. package/dest/prover-client/prover-client.d.ts.map +1 -0
  35. package/dest/prover-client/server-epoch-prover.d.ts +28 -0
  36. package/dest/prover-client/server-epoch-prover.d.ts.map +1 -0
  37. package/dest/proving_broker/broker_prover_facade.d.ts +46 -0
  38. package/dest/proving_broker/broker_prover_facade.d.ts.map +1 -0
  39. package/dest/proving_broker/config.d.ts +82 -0
  40. package/dest/proving_broker/config.d.ts.map +1 -0
  41. package/dest/proving_broker/factory.d.ts +5 -0
  42. package/dest/proving_broker/factory.d.ts.map +1 -0
  43. package/dest/proving_broker/fixtures.d.ts +5 -0
  44. package/dest/proving_broker/fixtures.d.ts.map +1 -0
  45. package/dest/proving_broker/index.d.ts +10 -0
  46. package/dest/proving_broker/index.d.ts.map +1 -0
  47. package/dest/proving_broker/proof_store/factory.d.ts +6 -0
  48. package/dest/proving_broker/proof_store/factory.d.ts.map +1 -0
  49. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts +14 -0
  50. package/dest/proving_broker/proof_store/gcs_proof_store.d.ts.map +1 -0
  51. package/dest/proving_broker/proof_store/index.d.ts +4 -0
  52. package/dest/proving_broker/proof_store/index.d.ts.map +1 -0
  53. package/dest/proving_broker/proof_store/inline_proof_store.d.ts +15 -0
  54. package/dest/proving_broker/proof_store/inline_proof_store.d.ts.map +1 -0
  55. package/dest/proving_broker/proof_store/proof_store.d.ts +36 -0
  56. package/dest/proving_broker/proof_store/proof_store.d.ts.map +1 -0
  57. package/dest/proving_broker/proving_agent.d.ts +46 -0
  58. package/dest/proving_broker/proving_agent.d.ts.map +1 -0
  59. package/dest/proving_broker/proving_agent_instrumentation.d.ts +8 -0
  60. package/dest/proving_broker/proving_agent_instrumentation.d.ts.map +1 -0
  61. package/dest/proving_broker/proving_broker.d.ts +64 -0
  62. package/dest/proving_broker/proving_broker.d.ts.map +1 -0
  63. package/dest/proving_broker/proving_broker_database/memory.d.ts +16 -0
  64. package/dest/proving_broker/proving_broker_database/memory.d.ts.map +1 -0
  65. package/dest/proving_broker/proving_broker_database/persisted.d.ts +25 -0
  66. package/dest/proving_broker/proving_broker_database/persisted.d.ts.map +1 -0
  67. package/dest/proving_broker/proving_broker_database.d.ts +39 -0
  68. package/dest/proving_broker/proving_broker_database.d.ts.map +1 -0
  69. package/dest/proving_broker/proving_broker_instrumentation.d.ts +29 -0
  70. package/dest/proving_broker/proving_broker_instrumentation.d.ts.map +1 -0
  71. package/dest/proving_broker/proving_job_controller.d.ts +32 -0
  72. package/dest/proving_broker/proving_job_controller.d.ts.map +1 -0
  73. package/dest/proving_broker/rpc.d.ts +27 -0
  74. package/dest/proving_broker/rpc.d.ts.map +1 -0
  75. package/dest/test/mock_prover.d.ts +35 -0
  76. package/dest/test/mock_prover.d.ts.map +1 -0
  77. package/package.json +14 -14
@@ -0,0 +1,42 @@
1
+ import { type ACVMConfig, type BBConfig } from '@aztec/bb-prover';
2
+ import { Fr } from '@aztec/foundation/fields';
3
+ import type { ActualProverConfig, EpochProver, EpochProverManager, ForkMerkleTreeOperations, ProvingJobBroker, ProvingJobConsumer, ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
4
+ import { type TelemetryClient } from '@aztec/telemetry-client';
5
+ import type { ProverClientConfig } from '../config.js';
6
+ /** Manages proving of epochs by orchestrating the proving of individual blocks relying on a pool of prover agents. */
7
+ export declare class ProverClient implements EpochProverManager {
8
+ private config;
9
+ private worldState;
10
+ private orchestratorClient;
11
+ private agentClient?;
12
+ private telemetry;
13
+ private log;
14
+ private running;
15
+ private agents;
16
+ private proofStore;
17
+ private failedProofStore;
18
+ private constructor();
19
+ createEpochProver(): EpochProver;
20
+ getProverId(): Fr;
21
+ updateProverConfig(config: Partial<ProverClientConfig>): Promise<void>;
22
+ /**
23
+ * Starts the prover instance
24
+ */
25
+ start(): Promise<void>;
26
+ /**
27
+ * Stops the prover instance
28
+ */
29
+ stop(): Promise<void>;
30
+ /**
31
+ * Creates a new prover client and starts it
32
+ * @param config - The prover configuration.
33
+ * @param worldState - An instance of the world state
34
+ * @returns An instance of the prover, constructed and started.
35
+ */
36
+ static new(config: ProverClientConfig, worldState: ForkMerkleTreeOperations, broker: ProvingJobBroker, telemetry?: TelemetryClient): Promise<ProverClient>;
37
+ getProvingJobSource(): ProvingJobConsumer;
38
+ private createAndStartAgents;
39
+ private stopAgents;
40
+ }
41
+ export declare function buildServerCircuitProver(config: ActualProverConfig & ACVMConfig & BBConfig, telemetry: TelemetryClient): Promise<ServerCircuitProver>;
42
+ //# sourceMappingURL=prover-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prover-client.d.ts","sourceRoot":"","sources":["../../src/prover-client/prover-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAA2C,MAAM,kBAAkB,CAAC;AAE3G,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,KAAK,EACV,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EAElB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAOvD,sHAAsH;AACtH,qBAAa,YAAa,YAAW,kBAAkB;IAQnD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,WAAW,CAAC;IACpB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,GAAG;IAZb,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,gBAAgB,CAAyB;IAEjD,OAAO;IAYA,iBAAiB,IAAI,WAAW;IAMhC,WAAW,IAAI,EAAE;IAIlB,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAc5E;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IASnC;;OAEG;IACU,IAAI;IAQjB;;;;;OAKG;WACiB,GAAG,CACrB,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,wBAAwB,EACpC,MAAM,EAAE,gBAAgB,EACxB,SAAS,GAAE,eAAsC;IAO5C,mBAAmB,IAAI,kBAAkB;YAQlC,oBAAoB;YA2BpB,UAAU;CAGzB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,kBAAkB,GAAG,UAAU,GAAG,QAAQ,EAClD,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC,mBAAmB,CAAC,CAU9B"}
@@ -0,0 +1,28 @@
1
+ import type { Fr } from '@aztec/foundation/fields';
2
+ import type { L2Block } from '@aztec/stdlib/block';
3
+ import type { EpochProver } from '@aztec/stdlib/interfaces/server';
4
+ import type { Proof } from '@aztec/stdlib/proofs';
5
+ import type { RootRollupPublicInputs } from '@aztec/stdlib/rollup';
6
+ import type { BlockHeader, GlobalVariables, ProcessedTx, Tx } from '@aztec/stdlib/tx';
7
+ import type { ProvingOrchestrator } from '../orchestrator/orchestrator.js';
8
+ import type { BrokerCircuitProverFacade } from '../proving_broker/broker_prover_facade.js';
9
+ /** Encapsulates the proving orchestrator and the broker facade */
10
+ export declare class ServerEpochProver implements EpochProver {
11
+ private facade;
12
+ private orchestrator;
13
+ constructor(facade: BrokerCircuitProverFacade, orchestrator: ProvingOrchestrator);
14
+ startNewEpoch(epochNumber: number, firstBlockNumber: number, totalNumBlocks: number): void;
15
+ startTubeCircuits(txs: Tx[]): Promise<void>;
16
+ setBlockCompleted(blockNumber: number, expectedBlockHeader?: BlockHeader): Promise<L2Block>;
17
+ finaliseEpoch(): Promise<{
18
+ publicInputs: RootRollupPublicInputs;
19
+ proof: Proof;
20
+ }>;
21
+ cancel(): void;
22
+ getProverId(): Fr;
23
+ getBlock(index: number): L2Block;
24
+ stop(): Promise<void>;
25
+ startNewBlock(globalVariables: GlobalVariables, l1ToL2Messages: Fr[], previousBlockHeader: BlockHeader): Promise<void>;
26
+ addTxs(txs: ProcessedTx[]): Promise<void>;
27
+ }
28
+ //# sourceMappingURL=server-epoch-prover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-epoch-prover.d.ts","sourceRoot":"","sources":["../../src/prover-client/server-epoch-prover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEtF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAE3F,kEAAkE;AAClE,qBAAa,iBAAkB,YAAW,WAAW;IACvC,OAAO,CAAC,MAAM;IAA6B,OAAO,CAAC,YAAY;gBAAvD,MAAM,EAAE,yBAAyB,EAAU,YAAY,EAAE,mBAAmB;IAEhG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAI1F,iBAAiB,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAG3C,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAG3F,aAAa,IAAI,OAAO,CAAC;QAAE,YAAY,EAAE,sBAAsB,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC;IAGhF,MAAM,IAAI,IAAI;IAGd,WAAW,IAAI,EAAE;IAGjB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAG1B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,aAAa,CACX,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,EAAE,EAAE,EACpB,mBAAmB,EAAE,WAAW,GAC/B,OAAO,CAAC,IAAI,CAAC;IAGhB,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1C"}
@@ -0,0 +1,46 @@
1
+ import type { AVM_PROOF_LENGTH_IN_FIELDS, NESTED_RECURSIVE_PROOF_LENGTH, NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH, RECURSIVE_PROOF_LENGTH, TUBE_PROOF_LENGTH } from '@aztec/constants';
2
+ import type { AvmCircuitInputs } from '@aztec/stdlib/avm';
3
+ import { type ProofAndVerificationKey, type ProvingJobProducer, type PublicInputsAndRecursiveProof, type ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
4
+ import type { BaseParityInputs, ParityPublicInputs, RootParityInputs } from '@aztec/stdlib/parity';
5
+ import type { BaseOrMergeRollupPublicInputs, BlockMergeRollupInputs, BlockRootOrBlockMergePublicInputs, BlockRootRollupInputs, EmptyBlockRootRollupInputs, MergeRollupInputs, PrivateBaseRollupInputs, PublicBaseRollupInputs, RootRollupInputs, RootRollupPublicInputs, SingleTxBlockRootRollupInputs, TubeInputs } from '@aztec/stdlib/rollup';
6
+ import { type ProofStore } from './proof_store/index.js';
7
+ export declare class BrokerCircuitProverFacade implements ServerCircuitProver {
8
+ private broker;
9
+ private proofStore;
10
+ private failedProofStore?;
11
+ private pollIntervalMs;
12
+ private log;
13
+ private jobs;
14
+ private runningPromise?;
15
+ private timeOfLastSnapshotSync;
16
+ private jobsToRetrieve;
17
+ constructor(broker: ProvingJobProducer, proofStore?: ProofStore, failedProofStore?: ProofStore | undefined, pollIntervalMs?: number, log?: import("@aztec/foundation/log").Logger);
18
+ /**
19
+ * This is a critical section. This function can not be async since it writes
20
+ * to the jobs map which acts as a mutex, ensuring a job is only ever created once.
21
+ *
22
+ * This could be called in a SerialQueue if it needs to become async.
23
+ */
24
+ private getOrCreateProvingJob;
25
+ private enqueueJob;
26
+ start(): void;
27
+ stop(): Promise<void>;
28
+ private updateCompletedJobs;
29
+ private retrieveJobsThatShouldBeReady;
30
+ private backupFailedProofInputs;
31
+ private monitorForCompletedJobs;
32
+ getAvmProof(inputs: AvmCircuitInputs, signal?: AbortSignal, epochNumber?: number): Promise<ProofAndVerificationKey<typeof AVM_PROOF_LENGTH_IN_FIELDS>>;
33
+ getBaseParityProof(inputs: BaseParityInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
34
+ getBlockMergeRollupProof(input: BlockMergeRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
35
+ getBlockRootRollupProof(input: BlockRootRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
36
+ getSingleTxBlockRootRollupProof(input: SingleTxBlockRootRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
37
+ getEmptyBlockRootRollupProof(input: EmptyBlockRootRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BlockRootOrBlockMergePublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
38
+ getMergeRollupProof(input: MergeRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
39
+ getPrivateBaseRollupProof(baseRollupInput: PrivateBaseRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
40
+ getPublicBaseRollupProof(inputs: PublicBaseRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<BaseOrMergeRollupPublicInputs, typeof NESTED_RECURSIVE_ROLLUP_HONK_PROOF_LENGTH>>;
41
+ getRootParityProof(inputs: RootParityInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<ParityPublicInputs, typeof NESTED_RECURSIVE_PROOF_LENGTH>>;
42
+ getRootRollupProof(input: RootRollupInputs, signal?: AbortSignal, epochNumber?: number): Promise<PublicInputsAndRecursiveProof<RootRollupPublicInputs, typeof RECURSIVE_PROOF_LENGTH>>;
43
+ getTubeProof(tubeInput: TubeInputs, signal?: AbortSignal, epochNumber?: number): Promise<ProofAndVerificationKey<typeof TUBE_PROOF_LENGTH>>;
44
+ private generateId;
45
+ }
46
+ //# sourceMappingURL=broker_prover_facade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broker_prover_facade.d.ts","sourceRoot":"","sources":["../../src/proving_broker/broker_prover_facade.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import { type ConfigMappingsType } from '@aztec/foundation/config';
2
+ import { type DataStoreConfig } from '@aztec/kv-store/config';
3
+ import { ProvingRequestType } from '@aztec/stdlib/proofs';
4
+ import { z } from 'zod';
5
+ export declare const ProverBrokerConfig: z.ZodObject<{
6
+ /** If starting a prover broker locally, the max number of retries per proving job */
7
+ proverBrokerJobMaxRetries: z.ZodNumber;
8
+ /** If starting a prover broker locally, the time after which a job times out and gets assigned to a different agent */
9
+ proverBrokerJobTimeoutMs: z.ZodNumber;
10
+ /** If starting a prover broker locally, the interval the broker checks for timed out jobs */
11
+ proverBrokerPollIntervalMs: z.ZodNumber;
12
+ /** If starting a prover broker locally, the directory to store broker data */
13
+ dataDirectory: z.ZodOptional<z.ZodString>;
14
+ /** The size of the data store map */
15
+ dataStoreMapSizeKB: z.ZodNumber;
16
+ /** The prover broker may batch jobs together before writing to the database */
17
+ proverBrokerBatchSize: z.ZodNumber;
18
+ /** How often the job batches get flushed */
19
+ proverBrokerBatchIntervalMs: z.ZodNumber;
20
+ /** The maximum number of epochs to keep results for */
21
+ proverBrokerMaxEpochsToKeepResultsFor: z.ZodNumber;
22
+ }, "strip", z.ZodTypeAny, {
23
+ proverBrokerJobMaxRetries: number;
24
+ proverBrokerJobTimeoutMs: number;
25
+ proverBrokerPollIntervalMs: number;
26
+ dataStoreMapSizeKB: number;
27
+ proverBrokerBatchSize: number;
28
+ proverBrokerBatchIntervalMs: number;
29
+ proverBrokerMaxEpochsToKeepResultsFor: number;
30
+ dataDirectory?: string | undefined;
31
+ }, {
32
+ proverBrokerJobMaxRetries: number;
33
+ proverBrokerJobTimeoutMs: number;
34
+ proverBrokerPollIntervalMs: number;
35
+ dataStoreMapSizeKB: number;
36
+ proverBrokerBatchSize: number;
37
+ proverBrokerBatchIntervalMs: number;
38
+ proverBrokerMaxEpochsToKeepResultsFor: number;
39
+ dataDirectory?: string | undefined;
40
+ }>;
41
+ export type ProverBrokerConfig = z.infer<typeof ProverBrokerConfig> & Pick<DataStoreConfig, 'dataStoreMapSizeKB' | 'dataDirectory'>;
42
+ export declare const proverBrokerConfigMappings: ConfigMappingsType<ProverBrokerConfig>;
43
+ export declare const defaultProverBrokerConfig: ProverBrokerConfig;
44
+ export declare const ProverAgentConfig: z.ZodObject<{
45
+ /** The number of prover agents to start */
46
+ proverAgentCount: z.ZodNumber;
47
+ /** The types of proofs the prover agent can generate */
48
+ proverAgentProofTypes: z.ZodArray<z.ZodNativeEnum<typeof ProvingRequestType>, "many">;
49
+ /** How often the prover agents poll for jobs */
50
+ proverAgentPollIntervalMs: z.ZodNumber;
51
+ /** The URL where this agent takes jobs from */
52
+ proverBrokerUrl: z.ZodOptional<z.ZodString>;
53
+ /** Whether to construct real proofs */
54
+ realProofs: z.ZodBoolean;
55
+ /** The type of artificial delay to introduce */
56
+ proverTestDelayType: z.ZodEnum<["fixed", "realistic"]>;
57
+ /** If using fixed delay, the time each operation takes. */
58
+ proverTestDelayMs: z.ZodNumber;
59
+ /** If using realistic delays, what percentage of realistic times to apply. */
60
+ proverTestDelayFactor: z.ZodNumber;
61
+ }, "strip", z.ZodTypeAny, {
62
+ proverAgentCount: number;
63
+ proverAgentProofTypes: ProvingRequestType[];
64
+ proverAgentPollIntervalMs: number;
65
+ realProofs: boolean;
66
+ proverTestDelayType: "fixed" | "realistic";
67
+ proverTestDelayMs: number;
68
+ proverTestDelayFactor: number;
69
+ proverBrokerUrl?: string | undefined;
70
+ }, {
71
+ proverAgentCount: number;
72
+ proverAgentProofTypes: ProvingRequestType[];
73
+ proverAgentPollIntervalMs: number;
74
+ realProofs: boolean;
75
+ proverTestDelayType: "fixed" | "realistic";
76
+ proverTestDelayMs: number;
77
+ proverTestDelayFactor: number;
78
+ proverBrokerUrl?: string | undefined;
79
+ }>;
80
+ export type ProverAgentConfig = z.infer<typeof ProverAgentConfig>;
81
+ export declare const proverAgentConfigMappings: ConfigMappingsType<ProverAgentConfig>;
82
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/proving_broker/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;IAC7B,qFAAqF;;IAErF,uHAAuH;;IAEvH,6FAA6F;;IAE7F,8EAA8E;;IAE9E,qCAAqC;;IAErC,+EAA+E;;IAE/E,4CAA4C;;IAE5C,uDAAuD;;;;;;;;;;;;;;;;;;;;EAEvD,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,GACjE,IAAI,CAAC,eAAe,EAAE,oBAAoB,GAAG,eAAe,CAAC,CAAC;AAEhE,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CAAC,kBAAkB,CAgC7E,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,kBAAiE,CAAC;AAE1G,eAAO,MAAM,iBAAiB;IAC5B,2CAA2C;;IAE3C,wDAAwD;;IAExD,gDAAgD;;IAEhD,+CAA+C;;IAE/C,uCAAuC;;IAEvC,gDAAgD;;IAEhD,2DAA2D;;IAE3D,8EAA8E;;;;;;;;;;;;;;;;;;;;EAE9E,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,CAAC,iBAAiB,CA4C3E,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { TelemetryClient } from '@aztec/telemetry-client';
2
+ import type { ProverBrokerConfig } from './config.js';
3
+ import { ProvingBroker } from './proving_broker.js';
4
+ export declare function createAndStartProvingBroker(config: ProverBrokerConfig, client: TelemetryClient): Promise<ProvingBroker>;
5
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/proving_broker/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,aAAa,CAAC,CAOxB"}
@@ -0,0 +1,5 @@
1
+ import { type ProofUri, type ProvingJobId } from '@aztec/stdlib/interfaces/server';
2
+ export declare function makeRandomProvingJobId(epochNumber?: number): ProvingJobId;
3
+ export declare function makeInputsUri(): ProofUri;
4
+ export declare function makeOutputsUri(): ProofUri;
5
+ //# sourceMappingURL=fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/proving_broker/fixtures.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAoB,MAAM,iCAAiC,CAAC;AAGrG,wBAAgB,sBAAsB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,YAAY,CAEzE;AAED,wBAAgB,aAAa,IAAI,QAAQ,CAExC;AAED,wBAAgB,cAAc,IAAI,QAAQ,CAEzC"}
@@ -0,0 +1,10 @@
1
+ export * from './proving_agent.js';
2
+ export * from './proving_broker.js';
3
+ export * from './rpc.js';
4
+ export * from './proving_broker_database.js';
5
+ export * from './proving_broker_database/memory.js';
6
+ export * from './proving_broker_database/persisted.js';
7
+ export * from './proof_store/index.js';
8
+ export * from './factory.js';
9
+ export * from './config.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/proving_broker/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { GoogleCloudStorageProofStore } from './gcs_proof_store.js';
2
+ import { InlineProofStore } from './inline_proof_store.js';
3
+ import type { ProofStore } from './proof_store.js';
4
+ export declare function createProofStore(config: string | undefined, logger?: import("@aztec/foundation/log").Logger): InlineProofStore | GoogleCloudStorageProofStore;
5
+ export declare function createProofStoreForUri(uri: string, logger?: import("@aztec/foundation/log").Logger): Pick<ProofStore, 'getProofInput' | 'getProofOutput'>;
6
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/proving_broker/proof_store/factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,yCAA4C,mDAmB9G;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,MAAM,yCAA4C,GACjD,IAAI,CAAC,UAAU,EAAE,eAAe,GAAG,gBAAgB,CAAC,CAWtD"}
@@ -0,0 +1,14 @@
1
+ import { type ProofUri, type ProvingJobId, type ProvingJobInputs, type ProvingJobInputsMap, type ProvingJobResult, type ProvingJobResultsMap } from '@aztec/stdlib/interfaces/server';
2
+ import { ProvingRequestType } from '@aztec/stdlib/proofs';
3
+ import type { ProofStore } from './proof_store.js';
4
+ export declare class GoogleCloudStorageProofStore implements ProofStore {
5
+ private readonly bucketName;
6
+ private readonly path;
7
+ private readonly storage;
8
+ constructor(bucketName: string, path: string);
9
+ saveProofInput<T extends ProvingRequestType>(id: ProvingJobId, type: T, inputs: ProvingJobInputsMap[T]): Promise<ProofUri>;
10
+ saveProofOutput<T extends ProvingRequestType>(_id: ProvingJobId, _type: T, _result: ProvingJobResultsMap[T]): Promise<ProofUri>;
11
+ getProofInput(uri: ProofUri): Promise<ProvingJobInputs>;
12
+ getProofOutput(_uri: ProofUri): Promise<ProvingJobResult>;
13
+ }
14
+ //# sourceMappingURL=gcs_proof_store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gcs_proof_store.d.ts","sourceRoot":"","sources":["../../../src/proving_broker/proof_store/gcs_proof_store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EAE1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,qBAAa,4BAA6B,YAAW,UAAU;IAGjD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAAU,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFtE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAEL,UAAU,EAAE,MAAM,EAAmB,IAAI,EAAE,MAAM;IAIjE,cAAc,CAAC,CAAC,SAAS,kBAAkB,EACtD,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,QAAQ,CAAC;IAOpB,eAAe,CAAC,CAAC,SAAS,kBAAkB,EAC1C,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC/B,OAAO,CAAC,QAAQ,CAAC;IAIP,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAwBpE,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAG1D"}
@@ -0,0 +1,4 @@
1
+ export * from './proof_store.js';
2
+ export * from './inline_proof_store.js';
3
+ export * from './factory.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,15 @@
1
+ import { type ProofUri, type ProvingJobId, ProvingJobInputs, type ProvingJobInputsMap, ProvingJobResult, type ProvingJobResultsMap } from '@aztec/stdlib/interfaces/server';
2
+ import type { ProvingRequestType } from '@aztec/stdlib/proofs';
3
+ import type { ProofStore } from './proof_store.js';
4
+ /**
5
+ * An implementation of a proof input/output database that stores data inline in the URI.
6
+ */
7
+ export declare class InlineProofStore implements ProofStore {
8
+ saveProofInput<T extends ProvingRequestType>(_id: ProvingJobId, type: T, inputs: ProvingJobInputsMap[T]): Promise<ProofUri>;
9
+ saveProofOutput<T extends ProvingRequestType>(_id: ProvingJobId, type: T, result: ProvingJobResultsMap[T]): Promise<ProofUri>;
10
+ getProofInput(uri: ProofUri): Promise<ProvingJobInputs>;
11
+ getProofOutput(uri: ProofUri): Promise<ProvingJobResult>;
12
+ private encode;
13
+ private decode;
14
+ }
15
+ //# sourceMappingURL=inline_proof_store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline_proof_store.d.ts","sourceRoot":"","sources":["../../../src/proving_broker/proof_store/inline_proof_store.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,gBAAgB,EAChB,KAAK,mBAAmB,EACxB,gBAAgB,EAChB,KAAK,oBAAoB,EAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAOnD;;GAEG;AACH,qBAAa,gBAAiB,YAAW,UAAU;IACjD,cAAc,CAAC,CAAC,SAAS,kBAAkB,EACzC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,QAAQ,CAAC;IAKpB,eAAe,CAAC,CAAC,SAAS,kBAAkB,EAC1C,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,QAAQ,CAAC;IAKpB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIvD,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIxD,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,MAAM;CAQf"}
@@ -0,0 +1,36 @@
1
+ import type { ProofUri, ProvingJobId, ProvingJobInputs, ProvingJobInputsMap, ProvingJobResult, ProvingJobResultsMap } from '@aztec/stdlib/interfaces/server';
2
+ import type { ProvingRequestType } from '@aztec/stdlib/proofs';
3
+ /**
4
+ * A database for storing proof inputs and outputs.
5
+ */
6
+ export interface ProofStore {
7
+ /**
8
+ * Save a proof input to the database.
9
+ * @param jobId - The ID of the job the proof input is associated with.
10
+ * @param type - The type of the proving request.
11
+ * @param inputs - The proof input to save.
12
+ * @returns The URI of the saved proof input.
13
+ */
14
+ saveProofInput<T extends ProvingRequestType>(jobId: ProvingJobId, type: T, inputs: ProvingJobInputsMap[T]): Promise<ProofUri>;
15
+ /**
16
+ * Save a proof output to the database.
17
+ * @param jobId - The ID of the job the proof input is associated with.
18
+ * @param type - The type of the proving request.
19
+ * @param result - The proof output to save.
20
+ * @returns The URI of the saved proof output.
21
+ */
22
+ saveProofOutput<T extends ProvingRequestType>(id: ProvingJobId, type: T, result: ProvingJobResultsMap[T]): Promise<ProofUri>;
23
+ /**
24
+ * Retrieve a proof input from the database.
25
+ * @param uri - The URI of the proof input to retrieve.
26
+ * @returns The proof input.
27
+ */
28
+ getProofInput(uri: ProofUri): Promise<ProvingJobInputs>;
29
+ /**
30
+ * Retrieve a proof output from the database.
31
+ * @param uri - The URI of the proof output to retrieve.
32
+ * @returns The proof output.
33
+ */
34
+ getProofOutput(uri: ProofUri): Promise<ProvingJobResult>;
35
+ }
36
+ //# sourceMappingURL=proof_store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proof_store.d.ts","sourceRoot":"","sources":["../../../src/proving_broker/proof_store/proof_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;OAMG;IACH,cAAc,CAAC,CAAC,SAAS,kBAAkB,EACzC,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAC7B,OAAO,CAAC,QAAQ,CAAC,CAAC;IAErB;;;;;;OAMG;IACH,eAAe,CAAC,CAAC,SAAS,kBAAkB,EAC1C,EAAE,EAAE,YAAY,EAChB,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,QAAQ,CAAC,CAAC;IAErB;;;;OAIG;IACH,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAExD;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC1D"}
@@ -0,0 +1,46 @@
1
+ import type { ProvingJobConsumer, ProvingJobId, ProvingJobResultsMap, ServerCircuitProver } from '@aztec/stdlib/interfaces/server';
2
+ import { ProvingRequestType } from '@aztec/stdlib/proofs';
3
+ import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
4
+ import type { ProofStore } from './proof_store/index.js';
5
+ /**
6
+ * A helper class that encapsulates a circuit prover and connects it to a job source.
7
+ */
8
+ export declare class ProvingAgent implements Traceable {
9
+ /** The source of proving jobs */
10
+ private broker;
11
+ /** Database holding proof inputs and outputs */
12
+ private proofStore;
13
+ /** The prover implementation to defer jobs to */
14
+ private circuitProver;
15
+ /** Optional list of allowed proof types to build */
16
+ private proofAllowList;
17
+ /** How long to wait between jobs */
18
+ private pollIntervalMs;
19
+ private log;
20
+ private currentJobController?;
21
+ private runningPromise;
22
+ private instrumentation;
23
+ private idleTimer;
24
+ readonly tracer: Tracer;
25
+ constructor(
26
+ /** The source of proving jobs */
27
+ broker: ProvingJobConsumer,
28
+ /** Database holding proof inputs and outputs */
29
+ proofStore: ProofStore,
30
+ /** The prover implementation to defer jobs to */
31
+ circuitProver: ServerCircuitProver,
32
+ /** Optional list of allowed proof types to build */
33
+ proofAllowList?: Array<ProvingRequestType>,
34
+ /** How long to wait between jobs */
35
+ pollIntervalMs?: number,
36
+ /** A telemetry client through which to emit metrics */
37
+ client?: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
38
+ setCircuitProver(circuitProver: ServerCircuitProver): void;
39
+ isRunning(): boolean;
40
+ start(): void;
41
+ stop(): Promise<void>;
42
+ private work;
43
+ private startJob;
44
+ handleJobResult: <T extends ProvingRequestType>(jobId: ProvingJobId, type: T, err: Error | undefined, result: ProvingJobResultsMap[T] | undefined) => Promise<void>;
45
+ }
46
+ //# sourceMappingURL=proving_agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proving_agent.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_agent.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,kBAAkB,EAClB,YAAY,EAEZ,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAIzD;;GAEG;AACH,qBAAa,YAAa,YAAW,SAAS;IAS1C,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;IAGtB,OAAO,CAAC,GAAG;IApBb,OAAO,CAAC,oBAAoB,CAAC,CAAuB;IACpD,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,SAAS,CAAoB;IAErC,SAAgB,MAAM,EAAE,MAAM,CAAC;;IAG7B,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;IAC7B,uDAAuD;IACvD,MAAM,GAAE,eAAsC,EACtC,GAAG,yCAA8C;IAOpD,gBAAgB,CAAC,aAAa,EAAE,mBAAmB,GAAG,IAAI;IAI1D,SAAS,IAAI,OAAO;IAIpB,KAAK,IAAI,IAAI;IAKP,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAMpB,IAAI;YA6BJ,QAAQ;IAmDtB,eAAe,wCACN,YAAY,QACb,CAAC,OACF,KAAK,GAAG,SAAS,UACd,oBAAoB,CAAC,CAAC,CAAC,GAAG,SAAS,mBAmB3C;CACH"}
@@ -0,0 +1,8 @@
1
+ import type { Timer } from '@aztec/foundation/timer';
2
+ import { type TelemetryClient } from '@aztec/telemetry-client';
3
+ export declare class ProvingAgentInstrumentation {
4
+ private idleTime;
5
+ constructor(client: TelemetryClient, name?: string);
6
+ recordIdleTime(msOrTimer: Timer | number): void;
7
+ }
8
+ //# sourceMappingURL=proving_agent_instrumentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proving_agent_instrumentation.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_agent_instrumentation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAA2B,KAAK,eAAe,EAAa,MAAM,yBAAyB,CAAC;AAEnG,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAY;gBAEhB,MAAM,EAAE,eAAe,EAAE,IAAI,SAAiB;IAU1D,cAAc,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM;CAIzC"}
@@ -0,0 +1,64 @@
1
+ import type { GetProvingJobResponse, ProofUri, ProvingJob, ProvingJobConsumer, ProvingJobFilter, ProvingJobId, ProvingJobProducer, ProvingJobStatus } from '@aztec/stdlib/interfaces/server';
2
+ import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
3
+ import { type ProverBrokerConfig } from './config.js';
4
+ import type { ProvingBrokerDatabase } from './proving_broker_database.js';
5
+ /**
6
+ * A broker that manages proof requests and distributes them to workers based on their priority.
7
+ * It takes a backend that is responsible for storing and retrieving proof requests and results.
8
+ */
9
+ export declare class ProvingBroker implements ProvingJobProducer, ProvingJobConsumer, Traceable {
10
+ #private;
11
+ private database;
12
+ private logger;
13
+ private queues;
14
+ private jobsCache;
15
+ private resultsCache;
16
+ private enqueuedAt;
17
+ private inProgress;
18
+ private retries;
19
+ private promises;
20
+ private cleanupPromise;
21
+ private msTimeSource;
22
+ private jobTimeoutMs;
23
+ private maxRetries;
24
+ private instrumentation;
25
+ readonly tracer: Tracer;
26
+ private completedJobNotifications;
27
+ /**
28
+ * The broker keeps track of the highest epoch its seen.
29
+ * This information is used for garbage collection: once it reaches the next epoch, it can start pruning the database of old state.
30
+ * It is important that this value is initialised to zero. This ensures that we don't delete any old jobs until the current
31
+ * process instance receives a job request informing it of the actual current highest epoch
32
+ * Example:
33
+ * proving epoch 11 - the broker will wipe all jobs for epochs 9 and lower
34
+ * finished proving epoch 11 and got first job for epoch 12 -> the broker will wipe all settled jobs for epochs 10 and lower
35
+ * reorged back to end of epoch 10 -> epoch 11 is skipped and epoch 12 starts -> the broker will wipe all settled jobs for epochs 10 and lower
36
+ */
37
+ private epochHeight;
38
+ private maxEpochsToKeepResultsFor;
39
+ private started;
40
+ constructor(database: ProvingBrokerDatabase, { proverBrokerJobTimeoutMs, proverBrokerPollIntervalMs, proverBrokerJobMaxRetries, proverBrokerMaxEpochsToKeepResultsFor, }?: Required<Pick<ProverBrokerConfig, 'proverBrokerJobTimeoutMs' | 'proverBrokerPollIntervalMs' | 'proverBrokerJobMaxRetries' | 'proverBrokerMaxEpochsToKeepResultsFor'>>, client?: TelemetryClient, logger?: import("@aztec/foundation/log").Logger);
41
+ private measureQueueDepth;
42
+ private countActiveJobs;
43
+ start(): Promise<void>;
44
+ stop(): Promise<void>;
45
+ enqueueProvingJob(job: ProvingJob): Promise<ProvingJobStatus>;
46
+ cancelProvingJob(id: ProvingJobId): Promise<void>;
47
+ getProvingJobStatus(id: ProvingJobId): Promise<ProvingJobStatus>;
48
+ getCompletedJobs(ids: ProvingJobId[]): Promise<ProvingJobId[]>;
49
+ getProvingJob(filter?: ProvingJobFilter): Promise<GetProvingJobResponse | undefined>;
50
+ reportProvingJobSuccess(id: ProvingJobId, value: ProofUri, filter?: ProvingJobFilter): Promise<GetProvingJobResponse | undefined>;
51
+ reportProvingJobError(id: ProvingJobId, err: string, retry?: boolean, filter?: ProvingJobFilter): Promise<GetProvingJobResponse | undefined>;
52
+ reportProvingJobProgress(id: ProvingJobId, startedAt: number, filter?: ProvingJobFilter): Promise<{
53
+ job: ProvingJob;
54
+ time: number;
55
+ } | undefined>;
56
+ private cleanUpProvingJobState;
57
+ private cleanupPass;
58
+ private cleanupStaleJobs;
59
+ private reEnqueueExpiredJobs;
60
+ private enqueueJobInternal;
61
+ private isJobStale;
62
+ private oldestEpochToKeep;
63
+ }
64
+ //# sourceMappingURL=proving_broker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proving_broker.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_broker.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,qBAAqB,EACrB,QAAQ,EACR,UAAU,EACV,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAElB,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,KAAK,kBAAkB,EAA6B,MAAM,aAAa,CAAC;AACjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAW1E;;;GAGG;AACH,qBAAa,aAAc,YAAW,kBAAkB,EAAE,kBAAkB,EAAE,SAAS;;IAkEnF,OAAO,CAAC,QAAQ;IAgBhB,OAAO,CAAC,MAAM;IAjFhB,OAAO,CAAC,MAAM,CAgBZ;IAIF,OAAO,CAAC,SAAS,CAAuC;IAExD,OAAO,CAAC,YAAY,CAAoD;IAGxE,OAAO,CAAC,UAAU,CAAkC;IAMpD,OAAO,CAAC,UAAU,CAA+C;IAGjE,OAAO,CAAC,OAAO,CAAmC;IAGlD,OAAO,CAAC,QAAQ,CAA0E;IAE1F,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,eAAe,CAA+B;IACtD,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO,CAAC,yBAAyB,CAAsB;IAEvD;;;;;;;;;OASG;IACH,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,yBAAyB,CAAK;IAEtC,OAAO,CAAC,OAAO,CAAS;gBAGd,QAAQ,EAAE,qBAAqB,EACvC,EACE,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,EACzB,qCAAqC,GACtC,GAAE,QAAQ,CACT,IAAI,CACF,kBAAkB,EAChB,0BAA0B,GAC1B,4BAA4B,GAC5B,2BAA2B,GAC3B,uCAAuC,CAC1C,CAC0B,EAC7B,MAAM,GAAE,eAAsC,EACtC,MAAM,yCAA+C;IAU/D,OAAO,CAAC,iBAAiB,CAEvB;IAEF,OAAO,CAAC,eAAe,CAUrB;IAEW,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI7D,gBAAgB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,mBAAmB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIhE,gBAAgB,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAI9D,aAAa,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAIpF,uBAAuB,CAC5B,EAAE,EAAE,YAAY,EAChB,KAAK,EAAE,QAAQ,EACf,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAItC,qBAAqB,CAC1B,EAAE,EAAE,YAAY,EAChB,GAAG,EAAE,MAAM,EACX,KAAK,UAAQ,EACb,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAItC,wBAAwB,CAC7B,EAAE,EAAE,YAAY,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,gBAAgB,GACxB,OAAO,CAAC;QAAE,GAAG,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAoDzD,OAAO,CAAC,sBAAsB;YA6QhB,WAAW;IAUzB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,iBAAiB;CAG1B"}
@@ -0,0 +1,16 @@
1
+ import { type ProofUri, type ProvingJob, type ProvingJobId, type ProvingJobSettledResult } from '@aztec/stdlib/interfaces/server';
2
+ import type { ProvingBrokerDatabase } from '../proving_broker_database.js';
3
+ export declare class InMemoryBrokerDatabase implements ProvingBrokerDatabase {
4
+ private jobs;
5
+ private results;
6
+ getProvingJob(id: ProvingJobId): ProvingJob | undefined;
7
+ getProvingJobResult(id: ProvingJobId): ProvingJobSettledResult | undefined;
8
+ addProvingJob(job: ProvingJob): Promise<void>;
9
+ setProvingJobResult(id: ProvingJobId, value: ProofUri): Promise<void>;
10
+ setProvingJobError(id: ProvingJobId, reason: string): Promise<void>;
11
+ deleteProvingJobs(ids: ProvingJobId[]): Promise<void>;
12
+ deleteAllProvingJobsOlderThanEpoch(epochNumber: number): Promise<void>;
13
+ allProvingJobs(): AsyncIterableIterator<[ProvingJob, ProvingJobSettledResult | undefined]>;
14
+ close(): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/proving_broker/proving_broker_database/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAE7B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,qBAAa,sBAAuB,YAAW,qBAAqB;IAClE,OAAO,CAAC,IAAI,CAAuC;IACnD,OAAO,CAAC,OAAO,CAAoD;IAEnE,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS;IAIvD,mBAAmB,CAAC,EAAE,EAAE,YAAY,GAAG,uBAAuB,GAAG,SAAS;IAI1E,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7C,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnE,iBAAiB,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrD,kCAAkC,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/D,cAAc,IAAI,qBAAqB,CAAC,CAAC,UAAU,EAAE,uBAAuB,GAAG,SAAS,CAAC,CAAC;IAMjG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvB"}
@@ -0,0 +1,25 @@
1
+ import { type Logger } from '@aztec/foundation/log';
2
+ import { type ProofUri, ProvingJob, type ProvingJobId, ProvingJobSettledResult } from '@aztec/stdlib/interfaces/server';
3
+ import { type TelemetryClient } from '@aztec/telemetry-client';
4
+ import type { ProverBrokerConfig } from '../config.js';
5
+ import type { ProvingBrokerDatabase } from '../proving_broker_database.js';
6
+ export declare class KVBrokerDatabase implements ProvingBrokerDatabase {
7
+ private epochs;
8
+ private config;
9
+ private logger;
10
+ private metrics;
11
+ private batchQueue;
12
+ private constructor();
13
+ commitWrites(items: Array<ProvingJob | [ProvingJobId, ProvingJobSettledResult]>, epochNumber: number): Promise<void>;
14
+ private estimateSize;
15
+ static new(config: ProverBrokerConfig, client?: TelemetryClient, logger?: Logger): Promise<KVBrokerDatabase>;
16
+ private start;
17
+ close(): Promise<void>;
18
+ deleteAllProvingJobsOlderThanEpoch(epochNumber: number): Promise<void>;
19
+ addProvingJob(job: ProvingJob): Promise<void>;
20
+ allProvingJobs(): AsyncIterableIterator<[ProvingJob, ProvingJobSettledResult | undefined]>;
21
+ setProvingJobError(id: ProvingJobId, reason: string): Promise<void>;
22
+ setProvingJobResult(id: ProvingJobId, value: ProofUri): Promise<void>;
23
+ private getEpochDatabase;
24
+ }
25
+ //# sourceMappingURL=persisted.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persisted.d.ts","sourceRoot":"","sources":["../../../src/proving_broker/proving_broker_database/persisted.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,OAAO,EACL,KAAK,QAAQ,EACb,UAAU,EACV,KAAK,YAAY,EACjB,uBAAuB,EAExB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAA2B,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAK5G,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAsD3E,qBAAa,gBAAiB,YAAW,qBAAqB;IAM1D,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,MAAM;IARhB,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO,CAAC,UAAU,CAA2E;IAE7F,OAAO;IAuBM,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM;YAQnG,YAAY;WASN,GAAG,CACrB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,GAAE,eAAsC,EAC9C,MAAM,SAAwD;IA2BhE,OAAO,CAAC,KAAK;IAIP,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtB,kCAAkC,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5E,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,cAAc,IAAI,qBAAqB,CAAC,CAAC,UAAU,EAAE,uBAAuB,GAAG,SAAS,CAAC,CAAC;IAOjG,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;YAIvD,gBAAgB;CAe/B"}
@@ -0,0 +1,39 @@
1
+ import type { ProofUri, ProvingJob, ProvingJobId, ProvingJobSettledResult } from '@aztec/stdlib/interfaces/server';
2
+ /**
3
+ * A database for storing proof requests and their results
4
+ */
5
+ export interface ProvingBrokerDatabase {
6
+ /**
7
+ * Saves a proof request so it can be retrieved later
8
+ * @param job - The proof request to save
9
+ */
10
+ addProvingJob(job: ProvingJob): Promise<void>;
11
+ /**
12
+ * Deletes all proving jobs belonging to epochs older than the given epoch
13
+ * @param epochNumber - The epoch number beyond which jobs should be deleted
14
+ */
15
+ deleteAllProvingJobsOlderThanEpoch(epochNumber: number): Promise<void>;
16
+ /**
17
+ * Returns an iterator over all saved proving jobs
18
+ */
19
+ allProvingJobs(): AsyncIterableIterator<[ProvingJob, ProvingJobSettledResult | undefined]>;
20
+ /**
21
+ * Saves the result of a proof request
22
+ * @param id - The ID of the proof request to save the result for
23
+ * @param ProvingRequestType - The type of proof that was requested
24
+ * @param value - The result of the proof request
25
+ */
26
+ setProvingJobResult(id: ProvingJobId, value: ProofUri): Promise<void>;
27
+ /**
28
+ * Saves an error that occurred while processing a proof request
29
+ * @param id - The ID of the proof request to save the error for
30
+ * @param ProvingRequestType - The type of proof that was requested
31
+ * @param err - The error that occurred while processing the proof request
32
+ */
33
+ setProvingJobError(id: ProvingJobId, err: string): Promise<void>;
34
+ /**
35
+ * Closes the database
36
+ */
37
+ close(): Promise<void>;
38
+ }
39
+ //# sourceMappingURL=proving_broker_database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proving_broker_database.d.ts","sourceRoot":"","sources":["../../src/proving_broker/proving_broker_database.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAEnH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;;OAGG;IACH,kCAAkC,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvE;;OAEG;IACH,cAAc,IAAI,qBAAqB,CAAC,CAAC,UAAU,EAAE,uBAAuB,GAAG,SAAS,CAAC,CAAC,CAAC;IAE3F;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtE;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjE;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}