diff --git a/yarn-project/native/src/native_module.ts b/yarn-project/native/src/native_module.ts index bcea92100216..6966e33193d7 100644 --- a/yarn-project/native/src/native_module.ts +++ b/yarn-project/native/src/native_module.ts @@ -131,7 +131,7 @@ export function cancelSimulation(token: CancellationToken): void { * Maximum number of concurrent AVM simulations. Each simulation spawns a dedicated OS thread, * so this controls resource usage. Defaults to 4. Set to 0 for unlimited. */ -const AVM_MAX_CONCURRENT_SIMULATIONS = parseInt(process.env.AVM_MAX_CONCURRENT_SIMULATIONS ?? '4', 10); +export const AVM_MAX_CONCURRENT_SIMULATIONS = parseInt(process.env.AVM_MAX_CONCURRENT_SIMULATIONS ?? '4', 10); const avmSimulationSemaphore = AVM_MAX_CONCURRENT_SIMULATIONS > 0 ? new Semaphore(AVM_MAX_CONCURRENT_SIMULATIONS) : null; diff --git a/yarn-project/prover-node/package.json b/yarn-project/prover-node/package.json index 38affb9d5405..ad69c6047308 100644 --- a/yarn-project/prover-node/package.json +++ b/yarn-project/prover-node/package.json @@ -66,6 +66,7 @@ "@aztec/foundation": "workspace:^", "@aztec/kv-store": "workspace:^", "@aztec/l1-artifacts": "workspace:^", + "@aztec/native": "workspace:^", "@aztec/node-keystore": "workspace:^", "@aztec/node-lib": "workspace:^", "@aztec/noir-protocol-circuits-types": "workspace:^", diff --git a/yarn-project/prover-node/src/config.ts b/yarn-project/prover-node/src/config.ts index 3a0919845bac..61a39d5d90e2 100644 --- a/yarn-project/prover-node/src/config.ts +++ b/yarn-project/prover-node/src/config.ts @@ -60,7 +60,7 @@ export const specificProverNodeConfigMappings: ConfigMappingsType { + + const parallelism = this.config.parallelBlockLimit + ? this.config.parallelBlockLimit + : AVM_MAX_CONCURRENT_SIMULATIONS > 0 + ? AVM_MAX_CONCURRENT_SIMULATIONS + : this.checkpoints.length; + + await asyncPool(parallelism, this.checkpoints, async checkpoint => { this.checkState(); const checkpointTimer = new Timer(); diff --git a/yarn-project/prover-node/src/prover-node.ts b/yarn-project/prover-node/src/prover-node.ts index aeb07e70587f..154602ae959d 100644 --- a/yarn-project/prover-node/src/prover-node.ts +++ b/yarn-project/prover-node/src/prover-node.ts @@ -84,7 +84,7 @@ export class ProverNode implements EpochMonitorHandler, ProverNodeApi, Traceable this.config = { proverNodePollingIntervalMs: 1_000, proverNodeMaxPendingJobs: 100, - proverNodeMaxParallelBlocksPerEpoch: 32, + proverNodeMaxParallelBlocksPerEpoch: 0, txGatheringIntervalMs: 1_000, txGatheringBatchSize: 10, txGatheringMaxParallelRequestsPerNode: 100, diff --git a/yarn-project/prover-node/tsconfig.json b/yarn-project/prover-node/tsconfig.json index 211b82a617cb..ef271c18a38a 100644 --- a/yarn-project/prover-node/tsconfig.json +++ b/yarn-project/prover-node/tsconfig.json @@ -36,6 +36,9 @@ { "path": "../l1-artifacts" }, + { + "path": "../native" + }, { "path": "../node-keystore" },