@aztec/end-to-end 3.0.0-nightly.20250912 → 3.0.0-nightly.20250913

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.
@@ -0,0 +1,28 @@
1
+ import type { AztecNodeService } from '@aztec/aztec-node';
2
+ import { EthAddress } from '@aztec/aztec.js';
3
+ import { RollupContract } from '@aztec/ethereum';
4
+ import 'jest-extended';
5
+ import { P2PNetworkTest } from './p2p_network.js';
6
+ export declare class P2PInactivityTest {
7
+ readonly test: P2PNetworkTest;
8
+ nodes: AztecNodeService[];
9
+ activeNodes: AztecNodeService[];
10
+ inactiveNodes: AztecNodeService[];
11
+ rollup: RollupContract;
12
+ offlineValidators: EthAddress[];
13
+ private dataDir;
14
+ private inactiveNodeCount;
15
+ constructor(test: P2PNetworkTest, opts: {
16
+ inactiveNodeCount: number;
17
+ });
18
+ static create(testName: string, opts: {
19
+ slashInactivityConsecutiveEpochThreshold: number;
20
+ inactiveNodeCount: number;
21
+ }): Promise<P2PInactivityTest>;
22
+ setup(): Promise<this>;
23
+ teardown(): Promise<void>;
24
+ get ctx(): import("../fixtures/snapshot_manager.js").SubsystemsContext;
25
+ get logger(): import("@aztec/aztec.js").Logger;
26
+ get slashingAmount(): bigint;
27
+ }
28
+ //# sourceMappingURL=inactivity_slash_test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inactivity_slash_test.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/inactivity_slash_test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,eAAe,CAAC;AAKvB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAclD,qBAAa,iBAAiB;aAYV,IAAI,EAAE,cAAc;IAX/B,KAAK,EAAG,gBAAgB,EAAE,CAAC;IAC3B,WAAW,EAAG,gBAAgB,EAAE,CAAC;IACjC,aAAa,EAAG,gBAAgB,EAAE,CAAC;IAEnC,MAAM,EAAG,cAAc,CAAC;IACxB,iBAAiB,EAAG,UAAU,EAAE,CAAC;IAExC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,iBAAiB,CAAS;gBAGhB,IAAI,EAAE,cAAc,EACpC,IAAI,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAA;KAAE;WAMxB,MAAM,CACjB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;QAAE,wCAAwC,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE;IAgC1E,KAAK;IA0DL,QAAQ;IAQrB,IAAW,GAAG,gEAEb;IAED,IAAW,MAAM,qCAEhB;IAED,IAAW,cAAc,WAExB;CACF"}
@@ -0,0 +1,119 @@
1
+ import fs from 'fs';
2
+ import 'jest-extended';
3
+ import os from 'os';
4
+ import path from 'path';
5
+ import { createNodes } from '../fixtures/setup_p2p_test.js';
6
+ import { P2PNetworkTest } from './p2p_network.js';
7
+ const NUM_NODES = 6;
8
+ const NUM_VALIDATORS = NUM_NODES;
9
+ const COMMITTEE_SIZE = NUM_VALIDATORS;
10
+ const SLASHING_QUORUM = 3;
11
+ const EPOCH_DURATION = 2;
12
+ const SLASHING_ROUND_SIZE_IN_EPOCHS = 2;
13
+ const BOOT_NODE_UDP_PORT = 4500;
14
+ const ETHEREUM_SLOT_DURATION = 4;
15
+ const AZTEC_SLOT_DURATION = 8;
16
+ const SLASHING_UNIT = BigInt(1e18);
17
+ const SLASHING_AMOUNT = SLASHING_UNIT * 3n;
18
+ export class P2PInactivityTest {
19
+ test;
20
+ nodes;
21
+ activeNodes;
22
+ inactiveNodes;
23
+ rollup;
24
+ offlineValidators;
25
+ dataDir;
26
+ inactiveNodeCount;
27
+ constructor(test, opts){
28
+ this.test = test;
29
+ this.dataDir = fs.mkdtempSync(path.join(os.tmpdir(), test.testName));
30
+ this.inactiveNodeCount = opts.inactiveNodeCount;
31
+ }
32
+ static async create(testName, opts) {
33
+ const test = await P2PNetworkTest.create({
34
+ testName,
35
+ numberOfNodes: 0,
36
+ numberOfValidators: NUM_VALIDATORS,
37
+ basePort: BOOT_NODE_UDP_PORT,
38
+ startProverNode: true,
39
+ initialConfig: {
40
+ proverNodeConfig: {
41
+ proverNodeEpochProvingDelayMs: AZTEC_SLOT_DURATION * 1000
42
+ },
43
+ aztecTargetCommitteeSize: COMMITTEE_SIZE,
44
+ aztecSlotDuration: AZTEC_SLOT_DURATION,
45
+ ethereumSlotDuration: ETHEREUM_SLOT_DURATION,
46
+ aztecProofSubmissionEpochs: 1024,
47
+ listenAddress: '127.0.0.1',
48
+ minTxsPerBlock: 0,
49
+ aztecEpochDuration: EPOCH_DURATION,
50
+ validatorReexecute: false,
51
+ sentinelEnabled: true,
52
+ slashingQuorum: SLASHING_QUORUM,
53
+ slashingRoundSizeInEpochs: SLASHING_ROUND_SIZE_IN_EPOCHS,
54
+ slashInactivityTargetPercentage: 0.5,
55
+ slashGracePeriodL2Slots: EPOCH_DURATION,
56
+ slashAmountSmall: SLASHING_UNIT,
57
+ slashAmountMedium: SLASHING_UNIT * 2n,
58
+ slashAmountLarge: SLASHING_UNIT * 3n,
59
+ ...opts
60
+ }
61
+ });
62
+ return new P2PInactivityTest(test, opts);
63
+ }
64
+ async setup() {
65
+ await this.test.applyBaseSnapshots();
66
+ await this.test.setup();
67
+ // Set slashing penalties for inactivity
68
+ const { rollup } = await this.test.getContracts();
69
+ const [activationThreshold, ejectionThreshold, localEjectionThreshold] = await Promise.all([
70
+ rollup.getActivationThreshold(),
71
+ rollup.getEjectionThreshold(),
72
+ rollup.getLocalEjectionThreshold()
73
+ ]);
74
+ const biggestEjection = ejectionThreshold > localEjectionThreshold ? ejectionThreshold : localEjectionThreshold;
75
+ expect(activationThreshold - SLASHING_AMOUNT).toBeLessThan(biggestEjection);
76
+ this.test.ctx.aztecNodeConfig.slashInactivityPenalty = SLASHING_AMOUNT;
77
+ this.rollup = rollup;
78
+ // The initial validator that ran on this node is picked up by the first new node started below
79
+ await this.test.removeInitialNode();
80
+ // Create all active nodes
81
+ this.activeNodes = await createNodes(this.test.ctx.aztecNodeConfig, this.test.ctx.dateProvider, this.test.bootstrapNodeEnr, NUM_NODES - this.inactiveNodeCount, BOOT_NODE_UDP_PORT, this.test.prefilledPublicData, this.dataDir);
82
+ // And the ones with an initially disabled sequencer
83
+ const inactiveConfig = {
84
+ ...this.test.ctx.aztecNodeConfig,
85
+ dontStartSequencer: true
86
+ };
87
+ this.inactiveNodes = await createNodes(inactiveConfig, this.test.ctx.dateProvider, this.test.bootstrapNodeEnr, this.inactiveNodeCount, BOOT_NODE_UDP_PORT, this.test.prefilledPublicData, this.dataDir, undefined, NUM_NODES - this.inactiveNodeCount);
88
+ this.nodes = [
89
+ ...this.activeNodes,
90
+ ...this.inactiveNodes
91
+ ];
92
+ this.offlineValidators = this.test.validators.slice(this.test.validators.length - this.inactiveNodeCount).map((a)=>a.attester);
93
+ this.test.logger.warn(`Setup complete. Offline validators are ${this.offlineValidators.join(', ')}.`, {
94
+ validators: this.test.validators,
95
+ offlineValidators: this.offlineValidators
96
+ });
97
+ return this;
98
+ }
99
+ async teardown() {
100
+ await this.test.stopNodes(this.nodes);
101
+ await this.test.teardown();
102
+ for(let i = 0; i < NUM_NODES; i++){
103
+ fs.rmSync(`${this.dataDir}-${i}`, {
104
+ recursive: true,
105
+ force: true,
106
+ maxRetries: 3
107
+ });
108
+ }
109
+ }
110
+ get ctx() {
111
+ return this.test.ctx;
112
+ }
113
+ get logger() {
114
+ return this.test.logger;
115
+ }
116
+ get slashingAmount() {
117
+ return SLASHING_AMOUNT;
118
+ }
119
+ }
@@ -1,5 +1,5 @@
1
1
  import type { InitialAccountData } from '@aztec/accounts/testing';
2
- import type { AztecNodeConfig, AztecNodeService } from '@aztec/aztec-node';
2
+ import type { AztecNodeService } from '@aztec/aztec-node';
3
3
  import { AztecAddress } from '@aztec/aztec.js';
4
4
  import { type EmpireSlashingProposerContract, type Operator, RollupContract, type TallySlashingProposerContract, type ViemClient } from '@aztec/ethereum';
5
5
  import { ChainMonitor } from '@aztec/ethereum/test';
@@ -12,6 +12,7 @@ import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
12
12
  import type { TestWallet } from '@aztec/test-wallet';
13
13
  import { type GetContractReturnType } from 'viem';
14
14
  import { type SubsystemsContext } from '../fixtures/snapshot_manager.js';
15
+ import { type SetupOptions } from '../fixtures/utils.js';
15
16
  export declare const WAIT_FOR_TX_TIMEOUT: number;
16
17
  export declare const SHORTENED_BLOCK_TIME_CONFIG_NO_PRUNES: {
17
18
  aztecSlotDuration: number;
@@ -19,6 +20,7 @@ export declare const SHORTENED_BLOCK_TIME_CONFIG_NO_PRUNES: {
19
20
  aztecProofSubmissionWindow: number;
20
21
  };
21
22
  export declare class P2PNetworkTest {
23
+ readonly testName: string;
22
24
  bootstrapNodeEnr: string;
23
25
  bootNodePort: number;
24
26
  numberOfValidators: number;
@@ -57,14 +59,14 @@ export declare class P2PNetworkTest {
57
59
  defaultAccountAddress?: AztecAddress;
58
60
  spamContract?: SpamContract;
59
61
  bootstrapNode?: BootstrapNode;
60
- constructor(testName: string, bootstrapNodeEnr: string, bootNodePort: number, numberOfValidators: number, initialValidatorConfig: AztecNodeConfig, numberOfNodes?: number, metricsPort?: number | undefined, startProverNode?: boolean, mockZkPassportVerifier?: boolean);
62
+ constructor(testName: string, bootstrapNodeEnr: string, bootNodePort: number, numberOfValidators: number, initialValidatorConfig: SetupOptions, numberOfNodes?: number, metricsPort?: number | undefined, startProverNode?: boolean, mockZkPassportVerifier?: boolean);
61
63
  static create({ testName, numberOfNodes, numberOfValidators, basePort, metricsPort, initialConfig, startProverNode, mockZkPassportVerifier, }: {
62
64
  testName: string;
63
65
  numberOfNodes: number;
64
66
  numberOfValidators: number;
65
67
  basePort?: number;
66
68
  metricsPort?: number;
67
- initialConfig?: Partial<AztecNodeConfig>;
69
+ initialConfig?: SetupOptions;
68
70
  startProverNode?: boolean;
69
71
  mockZkPassportVerifier?: boolean;
70
72
  }): Promise<P2PNetworkTest>;
@@ -1 +1 @@
1
- {"version":3,"file":"p2p_network.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/p2p_network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p2p_network.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/p2p_network.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ export const SHORTENED_BLOCK_TIME_CONFIG_NO_PRUNES = {
27
27
  aztecProofSubmissionWindow: 640
28
28
  };
29
29
  export class P2PNetworkTest {
30
+ testName;
30
31
  bootstrapNodeEnr;
31
32
  bootNodePort;
32
33
  numberOfValidators;
@@ -51,6 +52,7 @@ export class P2PNetworkTest {
51
52
  bootstrapNode;
52
53
  constructor(testName, bootstrapNodeEnr, bootNodePort, numberOfValidators, initialValidatorConfig, numberOfNodes = 0, // If set enable metrics collection
53
54
  metricsPort, startProverNode, mockZkPassportVerifier){
55
+ this.testName = testName;
54
56
  this.bootstrapNodeEnr = bootstrapNodeEnr;
55
57
  this.bootNodePort = bootNodePort;
56
58
  this.numberOfValidators = numberOfValidators;
@@ -1 +1 @@
1
- {"version":3,"file":"e2e_prover_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/e2e_prover_test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,UAAU,EAAE,KAAK,MAAM,EAA0B,MAAM,iBAAiB,CAAC;AAChH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAEL,KAAK,6BAA6B,EAGnC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAInE,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;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMhD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAGlE,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,uBAAuB,CAAC;AAU/B;;;;;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,MAAM,EAAG,UAAU,CAAC;IACpB,QAAQ,EAAE,YAAY,EAAE,CAAM;IAC9B,gBAAgB,EAAG,kBAAkB,EAAE,CAAC;IACxC,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;IAa3B;;;;OAIG;IACG,kBAAkB;IAsDlB,KAAK;YAgJG,YAAY;IAS1B,QAAQ,GAAI,CAAC,EACX,MAAM,MAAM,EACZ,OAAO,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,UAAS,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAA2B,KAChG,OAAO,CAAC,IAAI,CAAC,CAAwD;IAElE,QAAQ;IAeR,iBAAiB;CA8CxB"}
1
+ {"version":3,"file":"e2e_prover_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/e2e_prover_test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,UAAU,EAAE,KAAK,MAAM,EAA0B,MAAM,iBAAiB,CAAC;AAChH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAEL,KAAK,6BAA6B,EAGnC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAInE,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;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMhD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAGlE,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,uBAAuB,CAAC;AAU/B;;;;;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,MAAM,EAAG,UAAU,CAAC;IACpB,QAAQ,EAAE,YAAY,EAAE,CAAM;IAC9B,gBAAgB,EAAG,kBAAkB,EAAE,CAAC;IACxC,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;IAa3B;;;;OAIG;IACG,kBAAkB;IAsDlB,KAAK;YAiJG,YAAY;IAS1B,QAAQ,GAAI,CAAC,EACX,MAAM,MAAM,EACZ,OAAO,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,UAAS,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAA2B,KAChG,OAAO,CAAC,IAAI,CAAC,CAAwD;IAElE,QAAQ;IAeR,iBAAiB;CA8CxB"}
@@ -203,7 +203,8 @@ const { E2E_DATA_PATH: dataPath } = process.env;
203
203
  txGatheringBatchSize: 10,
204
204
  txGatheringMaxParallelRequestsPerNode: 100,
205
205
  txGatheringTimeoutMs: 24_000,
206
- proverNodeFailedEpochStore: undefined
206
+ proverNodeFailedEpochStore: undefined,
207
+ proverNodeEpochProvingDelayMs: undefined
207
208
  };
208
209
  const sponsoredFPCAddress = await getSponsoredFPCAddress();
209
210
  const { prefilledPublicData } = await getGenesisValues(this.context.initialFundedAccounts.map((a)=>a.address).concat(sponsoredFPCAddress));
@@ -15,8 +15,12 @@ export interface NodeContext {
15
15
  txs: SentTx[];
16
16
  }
17
17
  export declare function generatePrivateKeys(startIndex: number, numberOfKeys: number): `0x${string}`[];
18
- export declare function createNodes(config: AztecNodeConfig, dateProvider: DateProvider, bootstrapNodeEnr: string, numNodes: number, bootNodePort: number, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, indexOffset?: number): Promise<AztecNodeService[]>;
19
- export declare function createNode(config: AztecNodeConfig, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, loggerIdStorage?: AsyncLocalStorage<string>): Promise<AztecNodeService>;
18
+ export declare function createNodes(config: AztecNodeConfig & {
19
+ dontStartSequencer?: boolean;
20
+ }, dateProvider: DateProvider, bootstrapNodeEnr: string, numNodes: number, bootNodePort: number, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, indexOffset?: number): Promise<AztecNodeService[]>;
21
+ export declare function createNode(config: AztecNodeConfig & {
22
+ dontStartSequencer?: boolean;
23
+ }, dateProvider: DateProvider, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, loggerIdStorage?: AsyncLocalStorage<string>): Promise<AztecNodeService>;
20
24
  export declare function createProverNode(config: AztecNodeConfig, tcpPort: number, bootstrapNode: string | undefined, addressIndex: number, proverNodeDeps: ProverNodeDeps & Required<Pick<ProverNodeDeps, 'dateProvider'>>, prefilledPublicData?: PublicDataTreeLeaf[], dataDirectory?: string, metricsPort?: number, loggerIdStorage?: AsyncLocalStorage<string>): Promise<import("@aztec/prover-node").ProverNode>;
21
25
  export declare function createValidatorConfig(config: AztecNodeConfig, bootstrapNodeEnr?: string, port?: number, addressIndex?: number, dataDirectory?: string): Promise<AztecNodeConfig>;
22
26
  //# sourceMappingURL=setup_p2p_test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup_p2p_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/setup_p2p_test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAI9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AASrD,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,gBAAgB,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,EAAE,CAAC;CACf;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,EAAE,CAO7F;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,eAAe,EACvB,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,SAAI,GACd,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAoC7B;AAGD,wBAAsB,UAAU,CAC9B,MAAM,EAAE,eAAe,EACvB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,EACpB,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,6BAQ5C;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,EAC/E,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,oDAyB5C;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,eAAe,EACvB,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,CAAC,EAAE,MAAM,EACb,YAAY,GAAE,MAAU,EACxB,aAAa,CAAC,EAAE,MAAM,4BAqBvB"}
1
+ {"version":3,"file":"setup_p2p_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/setup_p2p_test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAI9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AASrD,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,gBAAgB,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,EAAE,CAAC;CACf;AAED,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,EAAE,CAO7F;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,eAAe,GAAG;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1D,YAAY,EAAE,YAAY,EAC1B,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,SAAI,GACd,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAoC7B;AAGD,wBAAsB,UAAU,CAC9B,MAAM,EAAE,eAAe,GAAG;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1D,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,EACpB,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,6BAY5C;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,EAC/E,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,EAC1C,aAAa,CAAC,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,MAAM,EACpB,eAAe,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,oDAyB5C;AAED,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,eAAe,EACvB,gBAAgB,CAAC,EAAE,MAAM,EACzB,IAAI,CAAC,EAAE,MAAM,EACb,YAAY,GAAE,MAAU,EACxB,aAAa,CAAC,EAAE,MAAM,4BAqBvB"}
@@ -52,7 +52,8 @@ export async function createNode(config, dateProvider, tcpPort, bootstrapNode, a
52
52
  telemetry,
53
53
  dateProvider
54
54
  }, {
55
- prefilledPublicData
55
+ prefilledPublicData,
56
+ dontStartSequencer: config.dontStartSequencer
56
57
  });
57
58
  };
58
59
  return loggerIdStorage ? await loggerIdStorage.run(tcpPort.toString(), createNode) : createNode();
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot_manager.d.ts","sourceRoot":"","sources":["../../src/fixtures/snapshot_manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot_manager.d.ts","sourceRoot":"","sources":["../../src/fixtures/snapshot_manager.ts"],"names":[],"mappings":"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"}
@@ -235,17 +235,6 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
235
235
  aztecNodeConfig.dataDirectory = statePath;
236
236
  }
237
237
  aztecNodeConfig.blobSinkUrl = `http://127.0.0.1:${blobSinkPort}`;
238
- // Start anvil. We go via a wrapper script to ensure if the parent dies, anvil dies.
239
- logger.verbose('Starting anvil...');
240
- const res = await startAnvil({
241
- l1BlockTime: opts.ethereumSlotDuration
242
- });
243
- const anvil = res.anvil;
244
- aztecNodeConfig.l1RpcUrls = [
245
- res.rpcUrl
246
- ];
247
- // Deploy our L1 contracts.
248
- logger.verbose('Deploying L1 contracts...');
249
238
  const hdAccount = mnemonicToAccount(MNEMONIC, {
250
239
  addressIndex: 0
251
240
  });
@@ -263,7 +252,19 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
263
252
  `0x${validatorPrivKey.toString('hex')}`
264
253
  ]);
265
254
  aztecNodeConfig.coinbase = opts.coinbase ?? EthAddress.fromString(`${hdAccount.address}`);
255
+ logger.info(`Setting up environment with config`, aztecNodeConfig);
256
+ // Start anvil. We go via a wrapper script to ensure if the parent dies, anvil dies.
257
+ logger.verbose('Starting anvil...');
258
+ const res = await startAnvil({
259
+ l1BlockTime: opts.ethereumSlotDuration
260
+ });
261
+ const anvil = res.anvil;
262
+ aztecNodeConfig.l1RpcUrls = [
263
+ res.rpcUrl
264
+ ];
266
265
  const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls);
266
+ // Deploy our L1 contracts.
267
+ logger.verbose('Deploying L1 contracts...');
267
268
  if (opts.l1StartTime) {
268
269
  await ethCheatCodes.warp(opts.l1StartTime, {
269
270
  resetBlockInterval: true
@@ -319,6 +320,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
319
320
  if (opts.startProverNode) {
320
321
  logger.verbose('Creating and syncing a simulated prover node with p2p disabled...');
321
322
  proverNode = await createAndSyncProverNode(`0x${proverNodePrivateKey.toString('hex')}`, aztecNodeConfig, {
323
+ ...aztecNodeConfig.proverNodeConfig,
322
324
  dataDirectory: path.join(directoryToCleanup, randomBytes(8).toString('hex')),
323
325
  p2pEnabled: false
324
326
  }, aztecNode, prefilledPublicData);
@@ -419,7 +421,9 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
419
421
  const proverNodePrivateKey = getPrivateKeyFromIndex(2);
420
422
  const proverNodePrivateKeyHex = `0x${proverNodePrivateKey.toString('hex')}`;
421
423
  proverNode = await createAndSyncProverNode(proverNodePrivateKeyHex, aztecNodeConfig, {
422
- dataDirectory: path.join(directoryToCleanup, randomBytes(8).toString('hex'))
424
+ ...aztecNodeConfig.proverNodeConfig,
425
+ dataDirectory: path.join(directoryToCleanup, randomBytes(8).toString('hex')),
426
+ p2pEnabled: false
423
427
  }, aztecNode, prefilledPublicData);
424
428
  }
425
429
  logger.verbose('Creating pxe...');
@@ -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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"}
@@ -649,6 +649,7 @@ export function createAndSyncProverNode(proverNodePrivateKey, aztecNodeConfig, p
649
649
  txGatheringTimeoutMs: 24_000,
650
650
  proverNodeFailedEpochStore: undefined,
651
651
  proverId: EthAddress.fromNumber(1),
652
+ proverNodeEpochProvingDelayMs: undefined,
652
653
  ...proverNodeConfig
653
654
  };
654
655
  const l1TxUtils = createDelayedL1TxUtils(aztecNodeConfig, proverNodePrivateKey, 'prover-node', proverNodeDeps.dateProvider);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/end-to-end",
3
- "version": "3.0.0-nightly.20250912",
3
+ "version": "3.0.0-nightly.20250913",
4
4
  "type": "module",
5
5
  "exports": "./dest/index.js",
6
6
  "inherits": [
@@ -25,42 +25,42 @@
25
25
  "formatting": "run -T prettier --check ./src && run -T eslint ./src"
26
26
  },
27
27
  "dependencies": {
28
- "@aztec/accounts": "3.0.0-nightly.20250912",
29
- "@aztec/archiver": "3.0.0-nightly.20250912",
30
- "@aztec/aztec": "3.0.0-nightly.20250912",
31
- "@aztec/aztec-node": "3.0.0-nightly.20250912",
32
- "@aztec/aztec.js": "3.0.0-nightly.20250912",
33
- "@aztec/bb-prover": "3.0.0-nightly.20250912",
34
- "@aztec/blob-lib": "3.0.0-nightly.20250912",
35
- "@aztec/blob-sink": "3.0.0-nightly.20250912",
36
- "@aztec/bot": "3.0.0-nightly.20250912",
37
- "@aztec/cli": "3.0.0-nightly.20250912",
38
- "@aztec/constants": "3.0.0-nightly.20250912",
39
- "@aztec/entrypoints": "3.0.0-nightly.20250912",
40
- "@aztec/epoch-cache": "3.0.0-nightly.20250912",
41
- "@aztec/ethereum": "3.0.0-nightly.20250912",
42
- "@aztec/foundation": "3.0.0-nightly.20250912",
43
- "@aztec/kv-store": "3.0.0-nightly.20250912",
44
- "@aztec/l1-artifacts": "3.0.0-nightly.20250912",
45
- "@aztec/merkle-tree": "3.0.0-nightly.20250912",
46
- "@aztec/node-keystore": "3.0.0-nightly.20250912",
47
- "@aztec/noir-contracts.js": "3.0.0-nightly.20250912",
48
- "@aztec/noir-noirc_abi": "3.0.0-nightly.20250912",
49
- "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20250912",
50
- "@aztec/noir-test-contracts.js": "3.0.0-nightly.20250912",
51
- "@aztec/p2p": "3.0.0-nightly.20250912",
52
- "@aztec/protocol-contracts": "3.0.0-nightly.20250912",
53
- "@aztec/prover-client": "3.0.0-nightly.20250912",
54
- "@aztec/prover-node": "3.0.0-nightly.20250912",
55
- "@aztec/pxe": "3.0.0-nightly.20250912",
56
- "@aztec/sequencer-client": "3.0.0-nightly.20250912",
57
- "@aztec/simulator": "3.0.0-nightly.20250912",
58
- "@aztec/slasher": "3.0.0-nightly.20250912",
59
- "@aztec/stdlib": "3.0.0-nightly.20250912",
60
- "@aztec/telemetry-client": "3.0.0-nightly.20250912",
61
- "@aztec/test-wallet": "3.0.0-nightly.20250912",
62
- "@aztec/validator-client": "3.0.0-nightly.20250912",
63
- "@aztec/world-state": "3.0.0-nightly.20250912",
28
+ "@aztec/accounts": "3.0.0-nightly.20250913",
29
+ "@aztec/archiver": "3.0.0-nightly.20250913",
30
+ "@aztec/aztec": "3.0.0-nightly.20250913",
31
+ "@aztec/aztec-node": "3.0.0-nightly.20250913",
32
+ "@aztec/aztec.js": "3.0.0-nightly.20250913",
33
+ "@aztec/bb-prover": "3.0.0-nightly.20250913",
34
+ "@aztec/blob-lib": "3.0.0-nightly.20250913",
35
+ "@aztec/blob-sink": "3.0.0-nightly.20250913",
36
+ "@aztec/bot": "3.0.0-nightly.20250913",
37
+ "@aztec/cli": "3.0.0-nightly.20250913",
38
+ "@aztec/constants": "3.0.0-nightly.20250913",
39
+ "@aztec/entrypoints": "3.0.0-nightly.20250913",
40
+ "@aztec/epoch-cache": "3.0.0-nightly.20250913",
41
+ "@aztec/ethereum": "3.0.0-nightly.20250913",
42
+ "@aztec/foundation": "3.0.0-nightly.20250913",
43
+ "@aztec/kv-store": "3.0.0-nightly.20250913",
44
+ "@aztec/l1-artifacts": "3.0.0-nightly.20250913",
45
+ "@aztec/merkle-tree": "3.0.0-nightly.20250913",
46
+ "@aztec/node-keystore": "3.0.0-nightly.20250913",
47
+ "@aztec/noir-contracts.js": "3.0.0-nightly.20250913",
48
+ "@aztec/noir-noirc_abi": "3.0.0-nightly.20250913",
49
+ "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20250913",
50
+ "@aztec/noir-test-contracts.js": "3.0.0-nightly.20250913",
51
+ "@aztec/p2p": "3.0.0-nightly.20250913",
52
+ "@aztec/protocol-contracts": "3.0.0-nightly.20250913",
53
+ "@aztec/prover-client": "3.0.0-nightly.20250913",
54
+ "@aztec/prover-node": "3.0.0-nightly.20250913",
55
+ "@aztec/pxe": "3.0.0-nightly.20250913",
56
+ "@aztec/sequencer-client": "3.0.0-nightly.20250913",
57
+ "@aztec/simulator": "3.0.0-nightly.20250913",
58
+ "@aztec/slasher": "3.0.0-nightly.20250913",
59
+ "@aztec/stdlib": "3.0.0-nightly.20250913",
60
+ "@aztec/telemetry-client": "3.0.0-nightly.20250913",
61
+ "@aztec/test-wallet": "3.0.0-nightly.20250913",
62
+ "@aztec/validator-client": "3.0.0-nightly.20250913",
63
+ "@aztec/world-state": "3.0.0-nightly.20250913",
64
64
  "@iarna/toml": "^2.2.5",
65
65
  "@jest/globals": "^30.0.0",
66
66
  "@noble/curves": "=1.0.0",
@@ -0,0 +1,155 @@
1
+ import type { AztecNodeService } from '@aztec/aztec-node';
2
+ import { EthAddress } from '@aztec/aztec.js';
3
+ import { RollupContract } from '@aztec/ethereum';
4
+
5
+ import fs from 'fs';
6
+ import 'jest-extended';
7
+ import os from 'os';
8
+ import path from 'path';
9
+
10
+ import { createNodes } from '../fixtures/setup_p2p_test.js';
11
+ import { P2PNetworkTest } from './p2p_network.js';
12
+
13
+ const NUM_NODES = 6;
14
+ const NUM_VALIDATORS = NUM_NODES;
15
+ const COMMITTEE_SIZE = NUM_VALIDATORS;
16
+ const SLASHING_QUORUM = 3;
17
+ const EPOCH_DURATION = 2;
18
+ const SLASHING_ROUND_SIZE_IN_EPOCHS = 2;
19
+ const BOOT_NODE_UDP_PORT = 4500;
20
+ const ETHEREUM_SLOT_DURATION = 4;
21
+ const AZTEC_SLOT_DURATION = 8;
22
+ const SLASHING_UNIT = BigInt(1e18);
23
+ const SLASHING_AMOUNT = SLASHING_UNIT * 3n;
24
+
25
+ export class P2PInactivityTest {
26
+ public nodes!: AztecNodeService[];
27
+ public activeNodes!: AztecNodeService[];
28
+ public inactiveNodes!: AztecNodeService[];
29
+
30
+ public rollup!: RollupContract;
31
+ public offlineValidators!: EthAddress[];
32
+
33
+ private dataDir: string;
34
+ private inactiveNodeCount: number;
35
+
36
+ constructor(
37
+ public readonly test: P2PNetworkTest,
38
+ opts: { inactiveNodeCount: number },
39
+ ) {
40
+ this.dataDir = fs.mkdtempSync(path.join(os.tmpdir(), test.testName));
41
+ this.inactiveNodeCount = opts.inactiveNodeCount;
42
+ }
43
+
44
+ static async create(
45
+ testName: string,
46
+ opts: { slashInactivityConsecutiveEpochThreshold: number; inactiveNodeCount: number },
47
+ ) {
48
+ const test = await P2PNetworkTest.create({
49
+ testName,
50
+ numberOfNodes: 0,
51
+ numberOfValidators: NUM_VALIDATORS,
52
+ basePort: BOOT_NODE_UDP_PORT,
53
+ startProverNode: true,
54
+ initialConfig: {
55
+ proverNodeConfig: { proverNodeEpochProvingDelayMs: AZTEC_SLOT_DURATION * 1000 },
56
+ aztecTargetCommitteeSize: COMMITTEE_SIZE,
57
+ aztecSlotDuration: AZTEC_SLOT_DURATION,
58
+ ethereumSlotDuration: ETHEREUM_SLOT_DURATION,
59
+ aztecProofSubmissionEpochs: 1024, // effectively do not reorg
60
+ listenAddress: '127.0.0.1',
61
+ minTxsPerBlock: 0,
62
+ aztecEpochDuration: EPOCH_DURATION,
63
+ validatorReexecute: false,
64
+ sentinelEnabled: true,
65
+ slashingQuorum: SLASHING_QUORUM,
66
+ slashingRoundSizeInEpochs: SLASHING_ROUND_SIZE_IN_EPOCHS,
67
+ slashInactivityTargetPercentage: 0.5,
68
+ slashGracePeriodL2Slots: EPOCH_DURATION, // do not slash during the first epoch
69
+ slashAmountSmall: SLASHING_UNIT,
70
+ slashAmountMedium: SLASHING_UNIT * 2n,
71
+ slashAmountLarge: SLASHING_UNIT * 3n,
72
+ ...opts,
73
+ },
74
+ });
75
+ return new P2PInactivityTest(test, opts);
76
+ }
77
+
78
+ public async setup() {
79
+ await this.test.applyBaseSnapshots();
80
+ await this.test.setup();
81
+
82
+ // Set slashing penalties for inactivity
83
+ const { rollup } = await this.test.getContracts();
84
+ const [activationThreshold, ejectionThreshold, localEjectionThreshold] = await Promise.all([
85
+ rollup.getActivationThreshold(),
86
+ rollup.getEjectionThreshold(),
87
+ rollup.getLocalEjectionThreshold(),
88
+ ]);
89
+ const biggestEjection = ejectionThreshold > localEjectionThreshold ? ejectionThreshold : localEjectionThreshold;
90
+ expect(activationThreshold - SLASHING_AMOUNT).toBeLessThan(biggestEjection);
91
+ this.test.ctx.aztecNodeConfig.slashInactivityPenalty = SLASHING_AMOUNT;
92
+ this.rollup = rollup;
93
+
94
+ // The initial validator that ran on this node is picked up by the first new node started below
95
+ await this.test.removeInitialNode();
96
+
97
+ // Create all active nodes
98
+ this.activeNodes = await createNodes(
99
+ this.test.ctx.aztecNodeConfig,
100
+ this.test.ctx.dateProvider,
101
+ this.test.bootstrapNodeEnr,
102
+ NUM_NODES - this.inactiveNodeCount,
103
+ BOOT_NODE_UDP_PORT,
104
+ this.test.prefilledPublicData,
105
+ this.dataDir,
106
+ );
107
+
108
+ // And the ones with an initially disabled sequencer
109
+ const inactiveConfig = { ...this.test.ctx.aztecNodeConfig, dontStartSequencer: true };
110
+ this.inactiveNodes = await createNodes(
111
+ inactiveConfig,
112
+ this.test.ctx.dateProvider,
113
+ this.test.bootstrapNodeEnr,
114
+ this.inactiveNodeCount,
115
+ BOOT_NODE_UDP_PORT,
116
+ this.test.prefilledPublicData,
117
+ this.dataDir,
118
+ undefined,
119
+ NUM_NODES - this.inactiveNodeCount,
120
+ );
121
+
122
+ this.nodes = [...this.activeNodes, ...this.inactiveNodes];
123
+
124
+ this.offlineValidators = this.test.validators
125
+ .slice(this.test.validators.length - this.inactiveNodeCount)
126
+ .map(a => a.attester);
127
+
128
+ this.test.logger.warn(`Setup complete. Offline validators are ${this.offlineValidators.join(', ')}.`, {
129
+ validators: this.test.validators,
130
+ offlineValidators: this.offlineValidators,
131
+ });
132
+
133
+ return this;
134
+ }
135
+
136
+ public async teardown() {
137
+ await this.test.stopNodes(this.nodes);
138
+ await this.test.teardown();
139
+ for (let i = 0; i < NUM_NODES; i++) {
140
+ fs.rmSync(`${this.dataDir}-${i}`, { recursive: true, force: true, maxRetries: 3 });
141
+ }
142
+ }
143
+
144
+ public get ctx() {
145
+ return this.test.ctx;
146
+ }
147
+
148
+ public get logger() {
149
+ return this.test.logger;
150
+ }
151
+
152
+ public get slashingAmount() {
153
+ return SLASHING_AMOUNT;
154
+ }
155
+ }
@@ -43,7 +43,7 @@ import {
43
43
  createSnapshotManager,
44
44
  deployAccounts,
45
45
  } from '../fixtures/snapshot_manager.js';
46
- import { getPrivateKeyFromIndex, getSponsoredFPCAddress } from '../fixtures/utils.js';
46
+ import { type SetupOptions, getPrivateKeyFromIndex, getSponsoredFPCAddress } from '../fixtures/utils.js';
47
47
  import { getEndToEndTestTelemetryClient } from '../fixtures/with_telemetry_utils.js';
48
48
 
49
49
  // Use a fixed bootstrap node private key so that we can re-use the same snapshot and the nodes can find each other
@@ -82,11 +82,11 @@ export class P2PNetworkTest {
82
82
  public bootstrapNode?: BootstrapNode;
83
83
 
84
84
  constructor(
85
- testName: string,
85
+ public readonly testName: string,
86
86
  public bootstrapNodeEnr: string,
87
87
  public bootNodePort: number,
88
88
  public numberOfValidators: number,
89
- initialValidatorConfig: AztecNodeConfig,
89
+ initialValidatorConfig: SetupOptions,
90
90
  public numberOfNodes = 0,
91
91
  // If set enable metrics collection
92
92
  private metricsPort?: number,
@@ -162,7 +162,7 @@ export class P2PNetworkTest {
162
162
  numberOfValidators: number;
163
163
  basePort?: number;
164
164
  metricsPort?: number;
165
- initialConfig?: Partial<AztecNodeConfig>;
165
+ initialConfig?: SetupOptions;
166
166
  startProverNode?: boolean;
167
167
  mockZkPassportVerifier?: boolean;
168
168
  }) {
@@ -277,6 +277,7 @@ export class FullProverTest {
277
277
  txGatheringMaxParallelRequestsPerNode: 100,
278
278
  txGatheringTimeoutMs: 24_000,
279
279
  proverNodeFailedEpochStore: undefined,
280
+ proverNodeEpochProvingDelayMs: undefined,
280
281
  };
281
282
  const sponsoredFPCAddress = await getSponsoredFPCAddress();
282
283
  const { prefilledPublicData } = await getGenesisValues(
@@ -39,7 +39,7 @@ export function generatePrivateKeys(startIndex: number, numberOfKeys: number): `
39
39
  }
40
40
 
41
41
  export async function createNodes(
42
- config: AztecNodeConfig,
42
+ config: AztecNodeConfig & { dontStartSequencer?: boolean },
43
43
  dateProvider: DateProvider,
44
44
  bootstrapNodeEnr: string,
45
45
  numNodes: number,
@@ -88,7 +88,7 @@ export async function createNodes(
88
88
 
89
89
  // creates a P2P enabled instance of Aztec Node Service
90
90
  export async function createNode(
91
- config: AztecNodeConfig,
91
+ config: AztecNodeConfig & { dontStartSequencer?: boolean },
92
92
  dateProvider: DateProvider,
93
93
  tcpPort: number,
94
94
  bootstrapNode: string | undefined,
@@ -101,7 +101,11 @@ export async function createNode(
101
101
  const createNode = async () => {
102
102
  const validatorConfig = await createValidatorConfig(config, bootstrapNode, tcpPort, addressIndex, dataDirectory);
103
103
  const telemetry = getEndToEndTestTelemetryClient(metricsPort);
104
- return await AztecNodeService.createAndSync(validatorConfig, { telemetry, dateProvider }, { prefilledPublicData });
104
+ return await AztecNodeService.createAndSync(
105
+ validatorConfig,
106
+ { telemetry, dateProvider },
107
+ { prefilledPublicData, dontStartSequencer: config.dontStartSequencer },
108
+ );
105
109
  };
106
110
  return loggerIdStorage ? await loggerIdStorage.run(tcpPort.toString(), createNode) : createNode();
107
111
  }
@@ -333,14 +333,6 @@ async function setupFromFresh(
333
333
  }
334
334
  aztecNodeConfig.blobSinkUrl = `http://127.0.0.1:${blobSinkPort}`;
335
335
 
336
- // Start anvil. We go via a wrapper script to ensure if the parent dies, anvil dies.
337
- logger.verbose('Starting anvil...');
338
- const res = await startAnvil({ l1BlockTime: opts.ethereumSlotDuration });
339
- const anvil = res.anvil;
340
- aztecNodeConfig.l1RpcUrls = [res.rpcUrl];
341
-
342
- // Deploy our L1 contracts.
343
- logger.verbose('Deploying L1 contracts...');
344
336
  const hdAccount = mnemonicToAccount(MNEMONIC, { addressIndex: 0 });
345
337
  const publisherPrivKeyRaw = hdAccount.getHdKey().privateKey;
346
338
  const publisherPrivKey = publisherPrivKeyRaw === null ? null : Buffer.from(publisherPrivKeyRaw);
@@ -354,8 +346,17 @@ async function setupFromFresh(
354
346
  aztecNodeConfig.validatorPrivateKeys = new SecretValue([`0x${validatorPrivKey!.toString('hex')}`]);
355
347
  aztecNodeConfig.coinbase = opts.coinbase ?? EthAddress.fromString(`${hdAccount.address}`);
356
348
 
349
+ logger.info(`Setting up environment with config`, aztecNodeConfig);
350
+
351
+ // Start anvil. We go via a wrapper script to ensure if the parent dies, anvil dies.
352
+ logger.verbose('Starting anvil...');
353
+ const res = await startAnvil({ l1BlockTime: opts.ethereumSlotDuration });
354
+ const anvil = res.anvil;
355
+ aztecNodeConfig.l1RpcUrls = [res.rpcUrl];
357
356
  const ethCheatCodes = new EthCheatCodesWithState(aztecNodeConfig.l1RpcUrls);
358
357
 
358
+ // Deploy our L1 contracts.
359
+ logger.verbose('Deploying L1 contracts...');
359
360
  if (opts.l1StartTime) {
360
361
  await ethCheatCodes.warp(opts.l1StartTime, { resetBlockInterval: true });
361
362
  }
@@ -432,7 +433,11 @@ async function setupFromFresh(
432
433
  proverNode = await createAndSyncProverNode(
433
434
  `0x${proverNodePrivateKey!.toString('hex')}`,
434
435
  aztecNodeConfig,
435
- { dataDirectory: path.join(directoryToCleanup, randomBytes(8).toString('hex')), p2pEnabled: false },
436
+ {
437
+ ...aztecNodeConfig.proverNodeConfig,
438
+ dataDirectory: path.join(directoryToCleanup, randomBytes(8).toString('hex')),
439
+ p2pEnabled: false,
440
+ },
436
441
  aztecNode,
437
442
  prefilledPublicData,
438
443
  );
@@ -559,7 +564,11 @@ async function setupFromState(statePath: string, logger: Logger): Promise<Subsys
559
564
  proverNode = await createAndSyncProverNode(
560
565
  proverNodePrivateKeyHex,
561
566
  aztecNodeConfig,
562
- { dataDirectory: path.join(directoryToCleanup, randomBytes(8).toString('hex')) },
567
+ {
568
+ ...aztecNodeConfig.proverNodeConfig,
569
+ dataDirectory: path.join(directoryToCleanup, randomBytes(8).toString('hex')),
570
+ p2pEnabled: false,
571
+ },
563
572
  aztecNode,
564
573
  prefilledPublicData,
565
574
  );
@@ -959,6 +959,7 @@ export function createAndSyncProverNode(
959
959
  txGatheringTimeoutMs: 24_000,
960
960
  proverNodeFailedEpochStore: undefined,
961
961
  proverId: EthAddress.fromNumber(1),
962
+ proverNodeEpochProvingDelayMs: undefined,
962
963
  ...proverNodeConfig,
963
964
  };
964
965