@aztec/end-to-end 0.85.0-alpha-testnet.1 → 0.85.0-alpha-testnet.3

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.
@@ -1,8 +1,8 @@
1
- import { BBNativePrivateKernelProver } from '@aztec/bb-prover';
2
- import { BBWASMBundlePrivateKernelProver } from '@aztec/bb-prover/wasm/bundle';
1
+ import { BBNativePrivateKernelProver } from '@aztec/bb-prover/client/native';
2
+ import { BBWASMBundlePrivateKernelProver } from '@aztec/bb-prover/client/wasm/bundle';
3
3
  import { createLogger, logger } from '@aztec/foundation/log';
4
4
  import { WASMSimulator } from '@aztec/simulator/client';
5
- import { decode } from '@msgpack/msgpack';
5
+ import { Decoder } from 'msgpackr';
6
6
  import assert from 'node:assert';
7
7
  import { readFile, readdir, writeFile } from 'node:fs/promises';
8
8
  import { join } from 'node:path';
@@ -131,8 +131,10 @@ async function main() {
131
131
  const userLog = createLogger('client_ivc_flows:data_processor');
132
132
  for (const flow of flows){
133
133
  userLog.info(`Processing flow ${flow}`);
134
- const bytecode = await readFile(join(ivcFolder, flow, 'acir.msgpack'));
135
- const acirStack = decode(bytecode);
134
+ const ivcInputs = await readFile(join(ivcFolder, flow, 'ivc-inputs.msgpack'));
135
+ const stepsFromFile = new Decoder({
136
+ useRecords: false
137
+ }).unpack(ivcInputs);
136
138
  const witnesses = await readFile(join(ivcFolder, flow, 'witnesses.json'));
137
139
  const witnessStack = JSON.parse(witnesses.toString()).map((witnessMap)=>{
138
140
  return new Map(Object.entries(witnessMap).map(([k, v])=>[
@@ -145,8 +147,11 @@ async function main() {
145
147
  const privateExecutionSteps = executionSteps.map((step, i)=>({
146
148
  functionName: step.fnName,
147
149
  gateCount: step.gateCount,
148
- bytecode: acirStack[i],
149
- witness: witnessStack[i]
150
+ bytecode: stepsFromFile[i].bytecode,
151
+ // TODO(AD) do we still want to take this from witness.json?
152
+ witness: witnessStack[i],
153
+ // This can be left empty. If so, the prover will generate a vk on the fly (~25% slower).
154
+ vk: Buffer.from([])
150
155
  }));
151
156
  let stats;
152
157
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -12,7 +12,7 @@ export declare const L2_SLOT_DURATION_IN_L1_SLOTS = 2;
12
12
  export declare const WORLD_STATE_BLOCK_HISTORY = 2;
13
13
  export declare const WORLD_STATE_BLOCK_CHECK_INTERVAL = 50;
14
14
  export declare const ARCHIVER_POLL_INTERVAL = 50;
15
- export type EpochsTestOpts = Partial<Pick<SetupOptions, 'startProverNode' | 'aztecProofSubmissionWindow' | 'aztecEpochDuration' | 'proverTestDelayMs'>>;
15
+ export type EpochsTestOpts = Partial<Pick<SetupOptions, 'startProverNode' | 'aztecProofSubmissionWindow' | 'aztecEpochDuration' | 'proverTestDelayMs' | 'proverNodeConfig'>>;
16
16
  /**
17
17
  * Tests building of epochs using fast block times and short epochs.
18
18
  * Spawns an aztec node and a prover node with fake proofs.
@@ -1 +1 @@
1
- {"version":3,"file":"epochs_test.d.ts","sourceRoot":"","sources":["../../src/e2e_epochs/epochs_test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAM,KAAK,MAAM,EAA8D,MAAM,iBAAiB,CAAC;AAC9G,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAkB,KAAK,OAAO,EAAwB,MAAM,sBAAsB,CAAC;AAGxG,OAAO,EAAE,UAAU,EAAuB,MAAM,oBAAoB,CAAC;AAIrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,KAAK,EAAO,YAAY,EAAE,MAAM,MAAM,CAAC;AAE9C,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAIlB,MAAM,sBAAsB,CAAC;AAG9B,eAAO,MAAM,kBAAkB,QAAsE,CAAC;AACtG,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,gCAAgC,KAAK,CAAC;AACnD,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG,OAAO,CAClC,IAAI,CAAC,YAAY,EAAE,iBAAiB,GAAG,4BAA4B,GAAG,oBAAoB,GAAG,mBAAmB,CAAC,CAClH,CAAC;AAEF;;;;GAIG;AACH,qBAAa,iBAAiB;IACrB,OAAO,EAAG,eAAe,CAAC;IAC1B,QAAQ,EAAG,YAAY,CAAC;IACxB,MAAM,EAAG,cAAc,CAAC;IACxB,SAAS,EAAG,iBAAiB,CAAC;IAC9B,MAAM,EAAG,MAAM,CAAC;IAChB,OAAO,EAAG,YAAY,CAAC;IACvB,aAAa,EAAG,OAAO,CAAC;IACxB,gBAAgB,EAAG,OAAO,CAAC;IAE3B,WAAW,EAAE,UAAU,EAAE,CAAM;IAC/B,KAAK,EAAE,gBAAgB,EAAE,CAAM;IAE/B,aAAa,EAAG,MAAM,CAAC;WAEV,KAAK,CAAC,IAAI,GAAE,cAAmB;IAMtC,KAAK,CAAC,IAAI,GAAE,cAAmB;IAoE/B,QAAQ;IAOR,gBAAgB;IAgBhB,sBAAsB;IAcnC,OAAO,CAAC,iBAAiB;IAKzB,0FAA0F;IAC7E,oBAAoB,CAAC,KAAK,EAAE,MAAM;IAO/C,sDAAsD;IACzC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,SAAK;IAShE,iEAAiE;IACpD,4BAA4B,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,SAAK;IASjE,mEAAmE;IACtD,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU;IAclF,0EAA0E;IAC7D,mBAAmB,CAAC,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO;CAUtF"}
1
+ {"version":3,"file":"epochs_test.d.ts","sourceRoot":"","sources":["../../src/e2e_epochs/epochs_test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAM,KAAK,MAAM,EAA8D,MAAM,iBAAiB,CAAC;AAC9G,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAkB,KAAK,OAAO,EAAwB,MAAM,sBAAsB,CAAC;AAGxG,OAAO,EAAE,UAAU,EAAuB,MAAM,oBAAoB,CAAC;AAIrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,KAAK,EAAO,YAAY,EAAE,MAAM,MAAM,CAAC;AAE9C,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAIlB,MAAM,sBAAsB,CAAC;AAG9B,eAAO,MAAM,kBAAkB,QAAsE,CAAC;AACtG,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,gCAAgC,KAAK,CAAC;AACnD,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG,OAAO,CAClC,IAAI,CACF,YAAY,EACZ,iBAAiB,GAAG,4BAA4B,GAAG,oBAAoB,GAAG,mBAAmB,GAAG,kBAAkB,CACnH,CACF,CAAC;AAEF;;;;GAIG;AACH,qBAAa,iBAAiB;IACrB,OAAO,EAAG,eAAe,CAAC;IAC1B,QAAQ,EAAG,YAAY,CAAC;IACxB,MAAM,EAAG,cAAc,CAAC;IACxB,SAAS,EAAG,iBAAiB,CAAC;IAC9B,MAAM,EAAG,MAAM,CAAC;IAChB,OAAO,EAAG,YAAY,CAAC;IACvB,aAAa,EAAG,OAAO,CAAC;IACxB,gBAAgB,EAAG,OAAO,CAAC;IAE3B,WAAW,EAAE,UAAU,EAAE,CAAM;IAC/B,KAAK,EAAE,gBAAgB,EAAE,CAAM;IAE/B,aAAa,EAAG,MAAM,CAAC;WAEV,KAAK,CAAC,IAAI,GAAE,cAAmB;IAMtC,KAAK,CAAC,IAAI,GAAE,cAAmB;IAoE/B,QAAQ;IAOR,gBAAgB;IAgBhB,sBAAsB;IAcnC,OAAO,CAAC,iBAAiB;IAKzB,0FAA0F;IAC7E,oBAAoB,CAAC,KAAK,EAAE,MAAM;IAO/C,sDAAsD;IACzC,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,SAAK;IAShE,iEAAiE;IACpD,4BAA4B,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,SAAK;IASjE,mEAAmE;IACtD,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU;IAclF,0EAA0E;IAC7D,mBAAmB,CAAC,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO;CAUtF"}
@@ -105,7 +105,9 @@ export const ARCHIVER_POLL_INTERVAL = 50;
105
105
  const proverNode = await withLogNameSuffix(suffix, ()=>createAndSyncProverNode(proverNodePrivateKey, {
106
106
  ...this.context.config,
107
107
  proverId: Fr.fromString(suffix)
108
- }, this.context.aztecNode, join(this.context.config.dataDirectory, randomBytes(8).toString('hex'))));
108
+ }, {
109
+ dataDirectory: join(this.context.config.dataDirectory, randomBytes(8).toString('hex'))
110
+ }, this.context.aztecNode));
109
111
  this.proverNodes.push(proverNode);
110
112
  return proverNode;
111
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"e2e_prover_test.d.ts","sourceRoot":"","sources":["../../src/e2e_prover/e2e_prover_test.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,UAAU,EACV,KAAK,MAAM,EAGZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAqB,KAAK,6BAA6B,EAAuB,MAAM,kBAAkB,CAAC;AAE9G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,KAAK,2BAA2B,EAAoB,MAAM,iBAAiB,CAAC;AAGrF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAQtE,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AASlE;;;;;GAKG;AAEH,qBAAa,cAAc;IA6BvB,OAAO,CAAC,sBAAsB;IAE9B,OAAO,CAAC,UAAU;IA9BpB,MAAM,CAAC,UAAU,SAAU;IAC3B,MAAM,CAAC,YAAY,SAAS;IAC5B,MAAM,CAAC,cAAc,SAAO;IAC5B,OAAO,CAAC,eAAe,CAAmB;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,kBAAkB,EAAE,CAAM;IAC5C,OAAO,EAAE,0BAA0B,EAAE,CAAM;IAC3C,QAAQ,EAAE,eAAe,EAAE,CAAM;IACjC,eAAe,EAAG,aAAa,CAAC;IAChC,QAAQ,EAAG,cAAc,CAAC;IAC1B,SAAS,EAAG,SAAS,CAAC;IACtB,cAAc,EAAG,cAAc,CAAC;IAChC,GAAG,EAAG,UAAU,CAAC;IACjB,UAAU,EAAG,UAAU,CAAC;IACxB,QAAQ,EAAG,cAAc,CAAC;IAC1B,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,eAAe,CAAC,CAAsB;IAC9C,OAAO,CAAC,iBAAiB,CAAC,CAAsB;IAChD,oBAAoB,CAAC,EAAE,6BAA6B,CAAC;IACrD,YAAY,EAAE,aAAa,EAAE,CAAM;IACnC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,mBAAmB,CAAc;IAClC,WAAW,EAAG,2BAA2B,CAAC;IAC1C,aAAa,EAAG,UAAU,CAAC;gBAGhC,QAAQ,EAAE,MAAM,EACR,sBAAsB,EAAE,MAAM,EACtC,QAAQ,EAAE,UAAU,EACZ,UAAU,UAAO;IAW3B;;;;OAIG;IACG,kBAAkB;IAqDlB,KAAK;YA8JG,WAAW;IAQzB,QAAQ,YACA,MAAM,SACL,CAAC,OAAO,EAAE,iBAAiB,KAAK,QAAQ,CAAC,CAAC,YACxC,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,QAAQ,IAAI,CAAC,KACtE,QAAQ,IAAI,CAAC,CAAwD;IAElE,QAAQ;IAeR,iBAAiB;IA+CjB,cAAc;CA4BrB"}
1
+ {"version":3,"file":"e2e_prover_test.d.ts","sourceRoot":"","sources":["../../src/e2e_prover/e2e_prover_test.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,UAAU,EACV,KAAK,MAAM,EAGZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAqB,KAAK,6BAA6B,EAAuB,MAAM,kBAAkB,CAAC;AAE9G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,KAAK,2BAA2B,EAAoB,MAAM,iBAAiB,CAAC;AAGrF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAQtE,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AASlE;;;;;GAKG;AAEH,qBAAa,cAAc;IA6BvB,OAAO,CAAC,sBAAsB;IAE9B,OAAO,CAAC,UAAU;IA9BpB,MAAM,CAAC,UAAU,SAAU;IAC3B,MAAM,CAAC,YAAY,SAAS;IAC5B,MAAM,CAAC,cAAc,SAAO;IAC5B,OAAO,CAAC,eAAe,CAAmB;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,kBAAkB,EAAE,CAAM;IAC5C,OAAO,EAAE,0BAA0B,EAAE,CAAM;IAC3C,QAAQ,EAAE,eAAe,EAAE,CAAM;IACjC,eAAe,EAAG,aAAa,CAAC;IAChC,QAAQ,EAAG,cAAc,CAAC;IAC1B,SAAS,EAAG,SAAS,CAAC;IACtB,cAAc,EAAG,cAAc,CAAC;IAChC,GAAG,EAAG,UAAU,CAAC;IACjB,UAAU,EAAG,UAAU,CAAC;IACxB,QAAQ,EAAG,cAAc,CAAC;IAC1B,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,eAAe,CAAC,CAAsB;IAC9C,OAAO,CAAC,iBAAiB,CAAC,CAAsB;IAChD,oBAAoB,CAAC,EAAE,6BAA6B,CAAC;IACrD,YAAY,EAAE,aAAa,EAAE,CAAM;IACnC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,mBAAmB,CAAc;IAClC,WAAW,EAAG,2BAA2B,CAAC;IAC1C,aAAa,EAAG,UAAU,CAAC;gBAGhC,QAAQ,EAAE,MAAM,EACR,sBAAsB,EAAE,MAAM,EACtC,QAAQ,EAAE,UAAU,EACZ,UAAU,UAAO;IAW3B;;;;OAIG;IACG,kBAAkB;IAqDlB,KAAK;YA+JG,WAAW;IAQzB,QAAQ,YACA,MAAM,SACL,CAAC,OAAO,EAAE,iBAAiB,KAAK,QAAQ,CAAC,CAAC,YACxC,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,QAAQ,IAAI,CAAC,KACtE,QAAQ,IAAI,CAAC,CAAwD;IAElE,QAAQ;IAeR,iBAAiB;IA+CjB,cAAc;CA4BrB"}
@@ -186,7 +186,7 @@ const { E2E_DATA_PATH: dataPath } = process.env;
186
186
  this.logger.verbose('Starting prover node');
187
187
  const proverConfig = {
188
188
  ...this.context.aztecNodeConfig,
189
- proverCoordinationNodeUrl: undefined,
189
+ proverCoordinationNodeUrls: [],
190
190
  dataDirectory: undefined,
191
191
  proverId: this.proverAddress.toField(),
192
192
  realProofs: this.realProofs,
@@ -195,9 +195,10 @@ const { E2E_DATA_PATH: dataPath } = process.env;
195
195
  proverNodeMaxPendingJobs: 100,
196
196
  proverNodeMaxParallelBlocksPerEpoch: 32,
197
197
  proverNodePollingIntervalMs: 100,
198
- txGatheringTimeoutMs: 60000,
199
198
  txGatheringIntervalMs: 1000,
200
- txGatheringMaxParallelRequests: 100
199
+ txGatheringBatchSize: 10,
200
+ txGatheringMaxParallelRequestsPerNode: 100,
201
+ proverNodeFailedEpochStore: undefined
201
202
  };
202
203
  const sponsoredFPCAddress = await getSponsoredFPCAddress();
203
204
  const { prefilledPublicData } = await getGenesisValues(this.context.initialFundedAccounts.map((a)=>a.address).concat(sponsoredFPCAddress));
@@ -208,7 +209,7 @@ const { E2E_DATA_PATH: dataPath } = process.env;
208
209
  }, {
209
210
  prefilledPublicData
210
211
  });
211
- this.proverNode.start();
212
+ await this.proverNode.start();
212
213
  this.logger.warn(`Proofs are now enabled`);
213
214
  return this;
214
215
  }
@@ -328,7 +328,9 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
328
328
  let proverNode = undefined;
329
329
  if (opts.startProverNode) {
330
330
  logger.verbose('Creating and syncing a simulated prover node...');
331
- proverNode = await createAndSyncProverNode(`0x${proverNodePrivateKey.toString('hex')}`, aztecNodeConfig, aztecNode, path.join(directoryToCleanup, randomBytes(8).toString('hex')), prefilledPublicData);
331
+ proverNode = await createAndSyncProverNode(`0x${proverNodePrivateKey.toString('hex')}`, aztecNodeConfig, {
332
+ dataDirectory: path.join(directoryToCleanup, randomBytes(8).toString('hex'))
333
+ }, aztecNode, prefilledPublicData);
332
334
  }
333
335
  logger.verbose('Creating pxe...');
334
336
  const pxeConfig = getPXEServiceConfig();
@@ -422,7 +424,9 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
422
424
  logger.verbose('Creating and syncing a simulated prover node...');
423
425
  const proverNodePrivateKey = getPrivateKeyFromIndex(2);
424
426
  const proverNodePrivateKeyHex = `0x${proverNodePrivateKey.toString('hex')}`;
425
- proverNode = await createAndSyncProverNode(proverNodePrivateKeyHex, aztecNodeConfig, aztecNode, path.join(directoryToCleanup, randomBytes(8).toString('hex')), prefilledPublicData);
427
+ proverNode = await createAndSyncProverNode(proverNodePrivateKeyHex, aztecNodeConfig, {
428
+ dataDirectory: path.join(directoryToCleanup, randomBytes(8).toString('hex'))
429
+ }, aztecNode, prefilledPublicData);
426
430
  }
427
431
  logger.verbose('Creating pxe...');
428
432
  const pxeConfig = getPXEServiceConfig();
@@ -10,8 +10,9 @@ import { startAnvil } from '@aztec/ethereum/test';
10
10
  import { EthAddress } from '@aztec/foundation/eth-address';
11
11
  import { Fr } from '@aztec/foundation/fields';
12
12
  import { TestDateProvider } from '@aztec/foundation/timer';
13
+ import type { DataStoreConfig } from '@aztec/kv-store/config';
13
14
  import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
14
- import { type ProverNode } from '@aztec/prover-node';
15
+ import { type ProverNode, type ProverNodeConfig } from '@aztec/prover-node';
15
16
  import { type PXEService, type PXEServiceConfig } from '@aztec/pxe/server';
16
17
  import type { SequencerClient } from '@aztec/sequencer-client';
17
18
  import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
@@ -78,6 +79,8 @@ export type SetupOptions = {
78
79
  };
79
80
  /** Public data that will be inserted in the tree in genesis */
80
81
  genesisPublicData?: PublicDataTreeLeaf[];
82
+ /** Specific config for the prover node, if set. */
83
+ proverNodeConfig?: Partial<ProverNodeConfig>;
81
84
  } & Partial<AztecNodeConfig>;
82
85
  /** Context for an end-to-end test as returned by the `setup` function */
83
86
  export type EndToEndContext = {
@@ -158,6 +161,6 @@ export declare function getSponsoredFPCAddress(): Promise<AztecAddress>;
158
161
  */
159
162
  export declare function setupSponsoredFPC(pxe: PXE): Promise<SponsoredFPCContract>;
160
163
  export declare function waitForProvenChain(node: AztecNode, targetBlock?: number, timeoutSec?: number, intervalSec?: number): Promise<void>;
161
- export declare function createAndSyncProverNode(proverNodePrivateKey: `0x${string}`, aztecNodeConfig: AztecNodeConfig, aztecNode: AztecNode, dataDirectory: string, prefilledPublicData?: PublicDataTreeLeaf[]): Promise<ProverNode>;
164
+ export declare function createAndSyncProverNode(proverNodePrivateKey: `0x${string}`, aztecNodeConfig: AztecNodeConfig, proverNodeConfig: Partial<ProverNodeConfig> & Pick<DataStoreConfig, 'dataDirectory'>, aztecNode: AztecNode, prefilledPublicData?: PublicDataTreeLeaf[]): Promise<ProverNode>;
162
165
  export declare function createForwarderContract(aztecNodeConfig: AztecNodeConfig, privateKey: `0x${string}`, rollupAddress: Hex): Promise<ForwarderContract>;
163
166
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":"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"}
@@ -337,7 +337,12 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
337
337
  logger.verbose('Creating and syncing a simulated prover node...');
338
338
  const proverNodePrivateKey = getPrivateKeyFromIndex(2);
339
339
  const proverNodePrivateKeyHex = `0x${proverNodePrivateKey.toString('hex')}`;
340
- proverNode = await createAndSyncProverNode(proverNodePrivateKeyHex, config, aztecNode, path.join(directoryToCleanup, randomBytes(8).toString('hex')));
340
+ const proverNodeDataDirectory = path.join(directoryToCleanup, randomBytes(8).toString('hex'));
341
+ const proverNodeConfig = {
342
+ ...config.proverNodeConfig,
343
+ dataDirectory: proverNodeDataDirectory
344
+ };
345
+ proverNode = await createAndSyncProverNode(proverNodePrivateKeyHex, config, proverNodeConfig, aztecNode);
341
346
  }
342
347
  logger.verbose('Creating a pxe...');
343
348
  const { pxe, teardown: pxeTeardown } = await setupPXEService(aztecNode, pxeOpts, logger);
@@ -513,10 +518,10 @@ export async function waitForProvenChain(node, targetBlock, timeoutSec = 60, int
513
518
  targetBlock ??= await node.getBlockNumber();
514
519
  await retryUntil(async ()=>await node.getProvenBlockNumber() >= targetBlock, 'proven chain status', timeoutSec, intervalSec);
515
520
  }
516
- export async function createAndSyncProverNode(proverNodePrivateKey, aztecNodeConfig, aztecNode, dataDirectory, prefilledPublicData = []) {
521
+ export async function createAndSyncProverNode(proverNodePrivateKey, aztecNodeConfig, proverNodeConfig, aztecNode, prefilledPublicData = []) {
517
522
  // Disable stopping the aztec node as the prover coordination test will kill it otherwise
518
523
  // This is only required when stopping the prover node for testing
519
- const aztecNodeWithoutStop = {
524
+ const aztecNodeTxProvider = {
520
525
  getTxByHash: aztecNode.getTxByHash.bind(aztecNode),
521
526
  getTxsByHash: aztecNode.getTxsByHash.bind(aztecNode),
522
527
  stop: ()=>Promise.resolve()
@@ -525,7 +530,7 @@ export async function createAndSyncProverNode(proverNodePrivateKey, aztecNodeCon
525
530
  // Creating temp store and archiver for simulated prover node
526
531
  const archiverConfig = {
527
532
  ...aztecNodeConfig,
528
- dataDirectory
533
+ dataDirectory: proverNodeConfig.dataDirectory
529
534
  };
530
535
  const archiver = await createArchiver(archiverConfig, blobSinkClient, {
531
536
  blockUntilSync: true
@@ -533,21 +538,22 @@ export async function createAndSyncProverNode(proverNodePrivateKey, aztecNodeCon
533
538
  // Prover node config is for simulated proofs
534
539
  const proverConfig = {
535
540
  ...aztecNodeConfig,
536
- proverCoordinationNodeUrl: undefined,
537
- dataDirectory: undefined,
541
+ proverCoordinationNodeUrls: [],
538
542
  realProofs: false,
539
543
  proverAgentCount: 2,
540
544
  publisherPrivateKey: proverNodePrivateKey,
541
545
  proverNodeMaxPendingJobs: 10,
542
546
  proverNodeMaxParallelBlocksPerEpoch: 32,
543
547
  proverNodePollingIntervalMs: 200,
544
- txGatheringTimeoutMs: 60000,
545
548
  txGatheringIntervalMs: 1000,
546
- txGatheringMaxParallelRequests: 100
549
+ txGatheringBatchSize: 10,
550
+ txGatheringMaxParallelRequestsPerNode: 10,
551
+ proverNodeFailedEpochStore: undefined,
552
+ ...proverNodeConfig
547
553
  };
548
554
  const l1TxUtils = createDelayedL1TxUtils(aztecNodeConfig, proverNodePrivateKey, 'prover-node');
549
555
  const proverNode = await createProverNode(proverConfig, {
550
- aztecNodeTxProvider: aztecNodeWithoutStop,
556
+ aztecNodeTxProvider,
551
557
  archiver: archiver,
552
558
  l1TxUtils
553
559
  }, {
@@ -556,7 +562,7 @@ export async function createAndSyncProverNode(proverNodePrivateKey, aztecNodeCon
556
562
  getLogger().info(`Created and synced prover node`, {
557
563
  publisherAddress: l1TxUtils.walletClient.account.address
558
564
  });
559
- proverNode.start();
565
+ await proverNode.start();
560
566
  return proverNode;
561
567
  }
562
568
  function createDelayedL1TxUtils(aztecNodeConfig, privateKey, logName) {
@@ -1 +1 @@
1
- {"version":3,"file":"capture_private_execution_steps.d.ts","sourceRoot":"","sources":["../../src/shared/capture_private_execution_steps.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EACV,2BAA2B,EAC3B,YAAY,EACZ,aAAa,EACb,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AA0BnC,wBAAsB,oCAAoC,CACxD,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,2BAA2B,GAAG,YAAY,EACvD,IAAI,CAAC,EAAE,IAAI,CAAC,oBAAoB,GAAG,aAAa,EAAE,aAAa,CAAC,EAChE,aAAa,CAAC,EAAE,MAAM,iBAqCvB"}
1
+ {"version":3,"file":"capture_private_execution_steps.d.ts","sourceRoot":"","sources":["../../src/shared/capture_private_execution_steps.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EACV,2BAA2B,EAC3B,YAAY,EACZ,aAAa,EACb,oBAAoB,EACrB,MAAM,2BAA2B,CAAC;AASnC,wBAAsB,oCAAoC,CACxD,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,2BAA2B,GAAG,YAAY,EACvD,IAAI,CAAC,EAAE,IAAI,CAAC,oBAAoB,GAAG,aAAa,EAAE,aAAa,CAAC,EAChE,aAAa,CAAC,EAAE,MAAM,iBAsCvB"}
@@ -2,25 +2,10 @@
2
2
  * This module exposes the ability to capture the private exection steps that go into our "Client IVC" prover.
3
3
  * These are used for debugging and benchmarking barretenberg (the prover component).
4
4
  */ import { createLogger } from '@aztec/foundation/log';
5
- import { serializeWitness } from '@aztec/noir-noirc_abi';
6
- import { encode } from '@msgpack/msgpack';
5
+ import { serializePrivateExecutionSteps } from '@aztec/stdlib/kernel';
7
6
  import { promises as fs } from 'fs';
8
7
  import path from 'path';
9
8
  const logger = createLogger('e2e:capture-private-execution-steps');
10
- // TODO(#7371): This is duplicated.
11
- // Longer term we won't use this hacked together msgpack format
12
- // Leaving duplicated as this eventually bb will provide a serialization
13
- // helper for passing to a generic msgpack RPC endpoint.
14
- async function _createClientIvcProofFiles(directory, executionSteps) {
15
- const acirPath = path.join(directory, 'acir.msgpack');
16
- const witnessPath = path.join(directory, 'witnesses.msgpack');
17
- await fs.writeFile(acirPath, encode(executionSteps.map((map)=>map.bytecode)));
18
- await fs.writeFile(witnessPath, encode(executionSteps.map((map)=>serializeWitness(map.witness))));
19
- return {
20
- acirPath,
21
- witnessPath
22
- };
23
- }
24
9
  export async function capturePrivateExecutionStepsIfEnvSet(label, interaction, opts, expectedSteps) {
25
10
  // Not included in env_var.ts as internal to e2e tests.
26
11
  const ivcFolder = process.env.CAPTURE_IVC_FOLDER;
@@ -45,7 +30,8 @@ export async function capturePrivateExecutionStepsIfEnvSet(label, interaction, o
45
30
  recursive: true
46
31
  });
47
32
  // Write the client IVC files read by the prover.
48
- await _createClientIvcProofFiles(resultsDirectory, result.executionSteps);
33
+ const ivcInputsPath = path.join(resultsDirectory, 'ivc-inputs.msgpack');
34
+ await fs.writeFile(ivcInputsPath, serializePrivateExecutionSteps(result.executionSteps));
49
35
  if (profileMode === 'full') {
50
36
  // If we have gate counts, write the steps in human-readable format.
51
37
  await fs.writeFile(path.join(resultsDirectory, 'steps.json'), JSON.stringify(result.executionSteps.map((step)=>({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/end-to-end",
3
- "version": "0.85.0-alpha-testnet.1",
3
+ "version": "0.85.0-alpha-testnet.3",
4
4
  "type": "module",
5
5
  "exports": "./dest/index.js",
6
6
  "inherits": [
@@ -26,41 +26,40 @@
26
26
  "formatting": "run -T prettier --check ./src && run -T eslint ./src"
27
27
  },
28
28
  "dependencies": {
29
- "@aztec/accounts": "0.85.0-alpha-testnet.1",
30
- "@aztec/archiver": "0.85.0-alpha-testnet.1",
31
- "@aztec/aztec": "0.85.0-alpha-testnet.1",
32
- "@aztec/aztec-node": "0.85.0-alpha-testnet.1",
33
- "@aztec/aztec.js": "0.85.0-alpha-testnet.1",
34
- "@aztec/bb-prover": "0.85.0-alpha-testnet.1",
35
- "@aztec/blob-lib": "0.85.0-alpha-testnet.1",
36
- "@aztec/blob-sink": "0.85.0-alpha-testnet.1",
37
- "@aztec/bot": "0.85.0-alpha-testnet.1",
38
- "@aztec/cli": "0.85.0-alpha-testnet.1",
39
- "@aztec/constants": "0.85.0-alpha-testnet.1",
40
- "@aztec/entrypoints": "0.85.0-alpha-testnet.1",
41
- "@aztec/epoch-cache": "0.85.0-alpha-testnet.1",
42
- "@aztec/ethereum": "0.85.0-alpha-testnet.1",
43
- "@aztec/foundation": "0.85.0-alpha-testnet.1",
44
- "@aztec/kv-store": "0.85.0-alpha-testnet.1",
45
- "@aztec/l1-artifacts": "0.85.0-alpha-testnet.1",
46
- "@aztec/merkle-tree": "0.85.0-alpha-testnet.1",
47
- "@aztec/noir-contracts.js": "0.85.0-alpha-testnet.1",
48
- "@aztec/noir-noirc_abi": "0.85.0-alpha-testnet.1",
49
- "@aztec/noir-protocol-circuits-types": "0.85.0-alpha-testnet.1",
50
- "@aztec/p2p": "0.85.0-alpha-testnet.1",
51
- "@aztec/protocol-contracts": "0.85.0-alpha-testnet.1",
52
- "@aztec/prover-client": "0.85.0-alpha-testnet.1",
53
- "@aztec/prover-node": "0.85.0-alpha-testnet.1",
54
- "@aztec/pxe": "0.85.0-alpha-testnet.1",
55
- "@aztec/sequencer-client": "0.85.0-alpha-testnet.1",
56
- "@aztec/simulator": "0.85.0-alpha-testnet.1",
57
- "@aztec/stdlib": "0.85.0-alpha-testnet.1",
58
- "@aztec/telemetry-client": "0.85.0-alpha-testnet.1",
59
- "@aztec/validator-client": "0.85.0-alpha-testnet.1",
60
- "@aztec/world-state": "0.85.0-alpha-testnet.1",
29
+ "@aztec/accounts": "0.85.0-alpha-testnet.3",
30
+ "@aztec/archiver": "0.85.0-alpha-testnet.3",
31
+ "@aztec/aztec": "0.85.0-alpha-testnet.3",
32
+ "@aztec/aztec-node": "0.85.0-alpha-testnet.3",
33
+ "@aztec/aztec.js": "0.85.0-alpha-testnet.3",
34
+ "@aztec/bb-prover": "0.85.0-alpha-testnet.3",
35
+ "@aztec/blob-lib": "0.85.0-alpha-testnet.3",
36
+ "@aztec/blob-sink": "0.85.0-alpha-testnet.3",
37
+ "@aztec/bot": "0.85.0-alpha-testnet.3",
38
+ "@aztec/cli": "0.85.0-alpha-testnet.3",
39
+ "@aztec/constants": "0.85.0-alpha-testnet.3",
40
+ "@aztec/entrypoints": "0.85.0-alpha-testnet.3",
41
+ "@aztec/epoch-cache": "0.85.0-alpha-testnet.3",
42
+ "@aztec/ethereum": "0.85.0-alpha-testnet.3",
43
+ "@aztec/foundation": "0.85.0-alpha-testnet.3",
44
+ "@aztec/kv-store": "0.85.0-alpha-testnet.3",
45
+ "@aztec/l1-artifacts": "0.85.0-alpha-testnet.3",
46
+ "@aztec/merkle-tree": "0.85.0-alpha-testnet.3",
47
+ "@aztec/noir-contracts.js": "0.85.0-alpha-testnet.3",
48
+ "@aztec/noir-noirc_abi": "0.85.0-alpha-testnet.3",
49
+ "@aztec/noir-protocol-circuits-types": "0.85.0-alpha-testnet.3",
50
+ "@aztec/p2p": "0.85.0-alpha-testnet.3",
51
+ "@aztec/protocol-contracts": "0.85.0-alpha-testnet.3",
52
+ "@aztec/prover-client": "0.85.0-alpha-testnet.3",
53
+ "@aztec/prover-node": "0.85.0-alpha-testnet.3",
54
+ "@aztec/pxe": "0.85.0-alpha-testnet.3",
55
+ "@aztec/sequencer-client": "0.85.0-alpha-testnet.3",
56
+ "@aztec/simulator": "0.85.0-alpha-testnet.3",
57
+ "@aztec/stdlib": "0.85.0-alpha-testnet.3",
58
+ "@aztec/telemetry-client": "0.85.0-alpha-testnet.3",
59
+ "@aztec/validator-client": "0.85.0-alpha-testnet.3",
60
+ "@aztec/world-state": "0.85.0-alpha-testnet.3",
61
61
  "@iarna/toml": "^2.2.5",
62
62
  "@jest/globals": "^29.5.0",
63
- "@msgpack/msgpack": "^3.0.0-beta2",
64
63
  "@noble/curves": "^1.0.0",
65
64
  "@swc/core": "^1.4.11",
66
65
  "@swc/jest": "^0.2.36",
@@ -85,6 +84,7 @@
85
84
  "lodash.compact": "^3.0.1",
86
85
  "lodash.every": "^4.6.0",
87
86
  "lodash.omit": "^4.5.0",
87
+ "msgpackr": "^1.11.2",
88
88
  "process": "^0.11.10",
89
89
  "stream-browserify": "^3.0.0",
90
90
  "string-argv": "^0.3.2",
@@ -1,11 +1,11 @@
1
1
  import type { Logger } from '@aztec/aztec.js';
2
- import { BBNativePrivateKernelProver } from '@aztec/bb-prover';
3
- import { BBWASMBundlePrivateKernelProver } from '@aztec/bb-prover/wasm/bundle';
2
+ import { BBNativePrivateKernelProver } from '@aztec/bb-prover/client/native';
3
+ import { BBWASMBundlePrivateKernelProver } from '@aztec/bb-prover/client/wasm/bundle';
4
4
  import { createLogger, logger } from '@aztec/foundation/log';
5
5
  import { WASMSimulator } from '@aztec/simulator/client';
6
6
  import type { PrivateExecutionStep } from '@aztec/stdlib/kernel';
7
7
 
8
- import { decode } from '@msgpack/msgpack';
8
+ import { Decoder } from 'msgpackr';
9
9
  import assert from 'node:assert';
10
10
  import { readFile, readdir, writeFile } from 'node:fs/promises';
11
11
  import { join } from 'node:path';
@@ -149,9 +149,10 @@ async function main() {
149
149
 
150
150
  for (const flow of flows) {
151
151
  userLog.info(`Processing flow ${flow}`);
152
- const bytecode = await readFile(join(ivcFolder, flow, 'acir.msgpack'));
153
- const acirStack = decode(bytecode) as Buffer[];
152
+ const ivcInputs = await readFile(join(ivcFolder, flow, 'ivc-inputs.msgpack'));
153
+ const stepsFromFile: PrivateExecutionStep[] = new Decoder({ useRecords: false }).unpack(ivcInputs);
154
154
  const witnesses = await readFile(join(ivcFolder, flow, 'witnesses.json'));
155
+
155
156
  const witnessStack = JSON.parse(witnesses.toString()).map((witnessMap: Record<string, string>) => {
156
157
  return new Map<number, string>(Object.entries(witnessMap).map(([k, v]) => [Number(k), v]));
157
158
  });
@@ -160,8 +161,11 @@ async function main() {
160
161
  const privateExecutionSteps: PrivateExecutionStep[] = executionSteps.map((step, i) => ({
161
162
  functionName: step.fnName,
162
163
  gateCount: step.gateCount,
163
- bytecode: acirStack[i],
164
+ bytecode: stepsFromFile[i].bytecode,
165
+ // TODO(AD) do we still want to take this from witness.json?
164
166
  witness: witnessStack[i],
167
+ // This can be left empty. If so, the prover will generate a vk on the fly (~25% slower).
168
+ vk: Buffer.from([]),
165
169
  }));
166
170
  let stats: { duration: number; eventName: string; proofSize: number } | undefined;
167
171
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -30,7 +30,10 @@ export const WORLD_STATE_BLOCK_CHECK_INTERVAL = 50;
30
30
  export const ARCHIVER_POLL_INTERVAL = 50;
31
31
 
32
32
  export type EpochsTestOpts = Partial<
33
- Pick<SetupOptions, 'startProverNode' | 'aztecProofSubmissionWindow' | 'aztecEpochDuration' | 'proverTestDelayMs'>
33
+ Pick<
34
+ SetupOptions,
35
+ 'startProverNode' | 'aztecProofSubmissionWindow' | 'aztecEpochDuration' | 'proverTestDelayMs' | 'proverNodeConfig'
36
+ >
34
37
  >;
35
38
 
36
39
  /**
@@ -142,8 +145,8 @@ export class EpochsTestContext {
142
145
  createAndSyncProverNode(
143
146
  proverNodePrivateKey,
144
147
  { ...this.context.config, proverId: Fr.fromString(suffix) },
148
+ { dataDirectory: join(this.context.config.dataDirectory!, randomBytes(8).toString('hex')) },
145
149
  this.context.aztecNode,
146
- join(this.context.config.dataDirectory!, randomBytes(8).toString('hex')),
147
150
  ),
148
151
  );
149
152
  this.proverNodes.push(proverNode);
@@ -282,7 +282,7 @@ export class FullProverTest {
282
282
  this.logger.verbose('Starting prover node');
283
283
  const proverConfig: ProverNodeConfig = {
284
284
  ...this.context.aztecNodeConfig,
285
- proverCoordinationNodeUrl: undefined,
285
+ proverCoordinationNodeUrls: [],
286
286
  dataDirectory: undefined,
287
287
  proverId: this.proverAddress.toField(),
288
288
  realProofs: this.realProofs,
@@ -291,9 +291,10 @@ export class FullProverTest {
291
291
  proverNodeMaxPendingJobs: 100,
292
292
  proverNodeMaxParallelBlocksPerEpoch: 32,
293
293
  proverNodePollingIntervalMs: 100,
294
- txGatheringTimeoutMs: 60000,
295
294
  txGatheringIntervalMs: 1000,
296
- txGatheringMaxParallelRequests: 100,
295
+ txGatheringBatchSize: 10,
296
+ txGatheringMaxParallelRequestsPerNode: 100,
297
+ proverNodeFailedEpochStore: undefined,
297
298
  };
298
299
  const sponsoredFPCAddress = await getSponsoredFPCAddress();
299
300
  const { prefilledPublicData } = await getGenesisValues(
@@ -308,7 +309,7 @@ export class FullProverTest {
308
309
  },
309
310
  { prefilledPublicData },
310
311
  );
311
- this.proverNode.start();
312
+ await this.proverNode.start();
312
313
 
313
314
  this.logger.warn(`Proofs are now enabled`);
314
315
  return this;
@@ -437,8 +437,8 @@ async function setupFromFresh(
437
437
  proverNode = await createAndSyncProverNode(
438
438
  `0x${proverNodePrivateKey!.toString('hex')}`,
439
439
  aztecNodeConfig,
440
+ { dataDirectory: path.join(directoryToCleanup, randomBytes(8).toString('hex')) },
440
441
  aztecNode,
441
- path.join(directoryToCleanup, randomBytes(8).toString('hex')),
442
442
  prefilledPublicData,
443
443
  );
444
444
  }
@@ -561,8 +561,8 @@ async function setupFromState(statePath: string, logger: Logger): Promise<Subsys
561
561
  proverNode = await createAndSyncProverNode(
562
562
  proverNodePrivateKeyHex,
563
563
  aztecNodeConfig,
564
+ { dataDirectory: path.join(directoryToCleanup, randomBytes(8).toString('hex')) },
564
565
  aztecNode,
565
- path.join(directoryToCleanup, randomBytes(8).toString('hex')),
566
566
  prefilledPublicData,
567
567
  );
568
568
  }
@@ -48,6 +48,7 @@ import { EthAddress } from '@aztec/foundation/eth-address';
48
48
  import { Fr } from '@aztec/foundation/fields';
49
49
  import { retryUntil } from '@aztec/foundation/retry';
50
50
  import { TestDateProvider } from '@aztec/foundation/timer';
51
+ import type { DataStoreConfig } from '@aztec/kv-store/config';
51
52
  import { SponsoredFPCContract } from '@aztec/noir-contracts.js/SponsoredFPC';
52
53
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
53
54
  import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
@@ -296,6 +297,8 @@ export type SetupOptions = {
296
297
  telemetryConfig?: Partial<TelemetryClientConfig> & { benchmark?: boolean };
297
298
  /** Public data that will be inserted in the tree in genesis */
298
299
  genesisPublicData?: PublicDataTreeLeaf[];
300
+ /** Specific config for the prover node, if set. */
301
+ proverNodeConfig?: Partial<ProverNodeConfig>;
299
302
  } & Partial<AztecNodeConfig>;
300
303
 
301
304
  /** Context for an end-to-end test as returned by the `setup` function */
@@ -534,12 +537,9 @@ export async function setup(
534
537
  logger.verbose('Creating and syncing a simulated prover node...');
535
538
  const proverNodePrivateKey = getPrivateKeyFromIndex(2);
536
539
  const proverNodePrivateKeyHex: Hex = `0x${proverNodePrivateKey!.toString('hex')}`;
537
- proverNode = await createAndSyncProverNode(
538
- proverNodePrivateKeyHex,
539
- config,
540
- aztecNode,
541
- path.join(directoryToCleanup, randomBytes(8).toString('hex')),
542
- );
540
+ const proverNodeDataDirectory = path.join(directoryToCleanup, randomBytes(8).toString('hex'));
541
+ const proverNodeConfig = { ...config.proverNodeConfig, dataDirectory: proverNodeDataDirectory };
542
+ proverNode = await createAndSyncProverNode(proverNodePrivateKeyHex, config, proverNodeConfig, aztecNode);
543
543
  }
544
544
 
545
545
  logger.verbose('Creating a pxe...');
@@ -779,54 +779,50 @@ export async function waitForProvenChain(node: AztecNode, targetBlock?: number,
779
779
  export async function createAndSyncProverNode(
780
780
  proverNodePrivateKey: `0x${string}`,
781
781
  aztecNodeConfig: AztecNodeConfig,
782
+ proverNodeConfig: Partial<ProverNodeConfig> & Pick<DataStoreConfig, 'dataDirectory'>,
782
783
  aztecNode: AztecNode,
783
- dataDirectory: string,
784
784
  prefilledPublicData: PublicDataTreeLeaf[] = [],
785
785
  ) {
786
786
  // Disable stopping the aztec node as the prover coordination test will kill it otherwise
787
787
  // This is only required when stopping the prover node for testing
788
- const aztecNodeWithoutStop = {
788
+ const aztecNodeTxProvider = {
789
789
  getTxByHash: aztecNode.getTxByHash.bind(aztecNode),
790
790
  getTxsByHash: aztecNode.getTxsByHash.bind(aztecNode),
791
791
  stop: () => Promise.resolve(),
792
792
  };
793
793
 
794
794
  const blobSinkClient = createBlobSinkClient(aztecNodeConfig);
795
+
795
796
  // Creating temp store and archiver for simulated prover node
796
- const archiverConfig = { ...aztecNodeConfig, dataDirectory };
797
- const archiver = await createArchiver(archiverConfig, blobSinkClient, {
798
- blockUntilSync: true,
799
- });
797
+ const archiverConfig = { ...aztecNodeConfig, dataDirectory: proverNodeConfig.dataDirectory };
798
+ const archiver = await createArchiver(archiverConfig, blobSinkClient, { blockUntilSync: true });
800
799
 
801
800
  // Prover node config is for simulated proofs
802
801
  const proverConfig: ProverNodeConfig = {
803
802
  ...aztecNodeConfig,
804
- proverCoordinationNodeUrl: undefined,
805
- dataDirectory: undefined,
803
+ proverCoordinationNodeUrls: [],
806
804
  realProofs: false,
807
805
  proverAgentCount: 2,
808
806
  publisherPrivateKey: proverNodePrivateKey,
809
807
  proverNodeMaxPendingJobs: 10,
810
808
  proverNodeMaxParallelBlocksPerEpoch: 32,
811
809
  proverNodePollingIntervalMs: 200,
812
- txGatheringTimeoutMs: 60000,
813
810
  txGatheringIntervalMs: 1000,
814
- txGatheringMaxParallelRequests: 100,
811
+ txGatheringBatchSize: 10,
812
+ txGatheringMaxParallelRequestsPerNode: 10,
813
+ proverNodeFailedEpochStore: undefined,
814
+ ...proverNodeConfig,
815
815
  };
816
816
 
817
817
  const l1TxUtils = createDelayedL1TxUtils(aztecNodeConfig, proverNodePrivateKey, 'prover-node');
818
818
 
819
819
  const proverNode = await createProverNode(
820
820
  proverConfig,
821
- {
822
- aztecNodeTxProvider: aztecNodeWithoutStop,
823
- archiver: archiver as Archiver,
824
- l1TxUtils,
825
- },
821
+ { aztecNodeTxProvider, archiver: archiver as Archiver, l1TxUtils },
826
822
  { prefilledPublicData },
827
823
  );
828
824
  getLogger().info(`Created and synced prover node`, { publisherAddress: l1TxUtils.walletClient.account.address });
829
- proverNode.start();
825
+ await proverNode.start();
830
826
  return proverNode;
831
827
  }
832
828
 
@@ -9,30 +9,13 @@ import type {
9
9
  ProfileMethodOptions,
10
10
  } from '@aztec/aztec.js/contracts';
11
11
  import { createLogger } from '@aztec/foundation/log';
12
- import { serializeWitness } from '@aztec/noir-noirc_abi';
13
- import type { PrivateExecutionStep } from '@aztec/stdlib/kernel';
12
+ import { serializePrivateExecutionSteps } from '@aztec/stdlib/kernel';
14
13
 
15
- import { encode } from '@msgpack/msgpack';
16
14
  import { promises as fs } from 'fs';
17
15
  import path from 'path';
18
16
 
19
17
  const logger = createLogger('e2e:capture-private-execution-steps');
20
18
 
21
- // TODO(#7371): This is duplicated.
22
- // Longer term we won't use this hacked together msgpack format
23
- // Leaving duplicated as this eventually bb will provide a serialization
24
- // helper for passing to a generic msgpack RPC endpoint.
25
- async function _createClientIvcProofFiles(directory: string, executionSteps: PrivateExecutionStep[]) {
26
- const acirPath = path.join(directory, 'acir.msgpack');
27
- const witnessPath = path.join(directory, 'witnesses.msgpack');
28
- await fs.writeFile(acirPath, encode(executionSteps.map(map => map.bytecode)));
29
- await fs.writeFile(witnessPath, encode(executionSteps.map(map => serializeWitness(map.witness))));
30
- return {
31
- acirPath,
32
- witnessPath,
33
- };
34
- }
35
-
36
19
  export async function capturePrivateExecutionStepsIfEnvSet(
37
20
  label: string,
38
21
  interaction: ContractFunctionInteraction | DeployMethod,
@@ -56,7 +39,8 @@ export async function capturePrivateExecutionStepsIfEnvSet(
56
39
  logger.info(`Writing private execution steps to ${resultsDirectory}`);
57
40
  await fs.mkdir(resultsDirectory, { recursive: true });
58
41
  // Write the client IVC files read by the prover.
59
- await _createClientIvcProofFiles(resultsDirectory, result.executionSteps);
42
+ const ivcInputsPath = path.join(resultsDirectory, 'ivc-inputs.msgpack');
43
+ await fs.writeFile(ivcInputsPath, serializePrivateExecutionSteps(result.executionSteps));
60
44
  if (profileMode === 'full') {
61
45
  // If we have gate counts, write the steps in human-readable format.
62
46
  await fs.writeFile(