@aztec/end-to-end 3.0.0-nightly.20250911 → 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.
- package/dest/e2e_epochs/epochs_test.d.ts +2 -0
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +5 -0
- package/dest/e2e_p2p/inactivity_slash_test.d.ts +28 -0
- package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -0
- package/dest/e2e_p2p/inactivity_slash_test.js +119 -0
- package/dest/e2e_p2p/p2p_network.d.ts +5 -3
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +3 -4
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +3 -9
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +2 -1
- package/dest/fixtures/setup_p2p_test.d.ts +6 -2
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +2 -1
- package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
- package/dest/fixtures/snapshot_manager.js +16 -12
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +3 -3
- package/package.json +37 -37
- package/src/e2e_epochs/epochs_test.ts +3 -0
- package/src/e2e_p2p/inactivity_slash_test.ts +155 -0
- package/src/e2e_p2p/p2p_network.ts +10 -9
- package/src/e2e_p2p/shared.ts +7 -5
- package/src/fixtures/e2e_prover_test.ts +1 -0
- package/src/fixtures/setup_p2p_test.ts +7 -3
- package/src/fixtures/snapshot_manager.ts +19 -10
- package/src/fixtures/utils.ts +5 -3
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type AztecNodeConfig, AztecNodeService } from '@aztec/aztec-node';
|
|
2
2
|
import { Fr, type Logger, type Wallet } from '@aztec/aztec.js';
|
|
3
|
+
import { EpochCache } from '@aztec/epoch-cache';
|
|
3
4
|
import { type ExtendedViemWalletClient } from '@aztec/ethereum';
|
|
4
5
|
import { RollupContract } from '@aztec/ethereum/contracts';
|
|
5
6
|
import { ChainMonitor, type Delayer } from '@aztec/ethereum/test';
|
|
@@ -35,6 +36,7 @@ export declare class EpochsTestContext {
|
|
|
35
36
|
constants: L1RollupConstants;
|
|
36
37
|
logger: Logger;
|
|
37
38
|
monitor: ChainMonitor;
|
|
39
|
+
epochCache: EpochCache;
|
|
38
40
|
proverDelayer: Delayer;
|
|
39
41
|
sequencerDelayer: Delayer;
|
|
40
42
|
proverNodes: ProverNode[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"epochs_test.d.ts","sourceRoot":"","sources":["../../src/e2e_epochs/epochs_test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EACL,EAAE,EACF,KAAK,MAAM,EAEX,KAAK,MAAM,EAKZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAA4B,KAAK,wBAAwB,EAA0B,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAkB,KAAK,OAAO,EAAqC,MAAM,sBAAsB,CAAC;AAIrH,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,UAAU,EAAuB,MAAM,oBAAoB,CAAC;AAErE,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,eAAe,EAGrB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,KAAK,iBAAiB,EAAuC,MAAM,6BAA6B,CAAC;AAO1G,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAIlB,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,gCAAgC,KAAK,CAAC;AACnD,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,qBAAqB,QAA0B,CAAC;AAE7D,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnF,MAAM,MAAM,qBAAqB,GAAG;KACjC,CAAC,IAAI,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;QAChE,IAAI,EAAE,CAAC,CAAC;QACR,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,UAAU,CAAC;KACvB;CACF,CAAC,MAAM,eAAe,CAAC,CAAC;AAEzB;;;;GAIG;AACH,qBAAa,iBAAiB;IACrB,OAAO,EAAG,eAAe,CAAC;IAC1B,QAAQ,EAAG,wBAAwB,CAAC;IACpC,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;IAEvB,kBAAkB,EAAG,MAAM,CAAC;IAC5B,qBAAqB,EAAG,MAAM,CAAC;WAElB,KAAK,CAAC,IAAI,GAAE,cAAmB;WAMrC,gBAAgB,CAAC,IAAI,GAAE,cAAmB;;;;;;IAW3C,KAAK,CAAC,IAAI,GAAE,cAAmB;
|
|
1
|
+
{"version":3,"file":"epochs_test.d.ts","sourceRoot":"","sources":["../../src/e2e_epochs/epochs_test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AztecNodeService } from '@aztec/aztec-node';
|
|
2
2
|
import { Fr, MerkleTreeId, getContractInstanceFromInstantiationParams, getTimestampRangeForEpoch, retryUntil, sleep } from '@aztec/aztec.js';
|
|
3
|
+
import { EpochCache } from '@aztec/epoch-cache';
|
|
3
4
|
import { DefaultL1ContractsConfig, createExtendedL1Client } from '@aztec/ethereum';
|
|
4
5
|
import { RollupContract } from '@aztec/ethereum/contracts';
|
|
5
6
|
import { ChainMonitor, DelayedTxUtils, waitUntilL1Timestamp, withDelayer } from '@aztec/ethereum/test';
|
|
@@ -30,6 +31,7 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
30
31
|
constants;
|
|
31
32
|
logger;
|
|
32
33
|
monitor;
|
|
34
|
+
epochCache;
|
|
33
35
|
proverDelayer;
|
|
34
36
|
sequencerDelayer;
|
|
35
37
|
proverNodes = [];
|
|
@@ -99,6 +101,9 @@ export const DEFAULT_L1_BLOCK_TIME = process.env.CI ? 12 : 8;
|
|
|
99
101
|
this.logger = context.logger;
|
|
100
102
|
this.l1Client = context.deployL1ContractsValues.l1Client;
|
|
101
103
|
this.rollup = RollupContract.getFromConfig(context.config);
|
|
104
|
+
this.epochCache = await EpochCache.create(this.rollup, context.config, {
|
|
105
|
+
dateProvider: context.dateProvider
|
|
106
|
+
});
|
|
102
107
|
// Loop that tracks L1 and L2 block numbers and logs whenever there's a new one.
|
|
103
108
|
this.monitor = new ChainMonitor(this.rollup, context.dateProvider, this.logger).start();
|
|
104
109
|
// This is hideous.
|
|
@@ -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 {
|
|
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:
|
|
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?:
|
|
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":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,
|
|
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;
|
|
@@ -189,14 +191,11 @@ export class P2PNetworkTest {
|
|
|
189
191
|
validatorTuples
|
|
190
192
|
])
|
|
191
193
|
});
|
|
192
|
-
|
|
194
|
+
await cheatCodes.rollup.advanceToEpoch(await cheatCodes.rollup.getEpoch() + await rollup.read.getLagInEpochs() + 1n, {
|
|
193
195
|
updateDateProvider: dateProvider
|
|
194
196
|
});
|
|
195
197
|
// Send and await a tx to make sure we mine a block for the warp to correctly progress.
|
|
196
198
|
await this._sendDummyTx(deployL1ContractsValues.l1Client);
|
|
197
|
-
// Set the system time in the node, only after we have warped the time and waited for a block
|
|
198
|
-
// Time is only set in the NEXT block
|
|
199
|
-
dateProvider.setTime(Number(timestamp) * 1000);
|
|
200
199
|
});
|
|
201
200
|
}
|
|
202
201
|
async setupAccount() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/shared.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/shared.ts"],"names":[],"mappings":"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"}
|
package/dest/e2e_p2p/shared.js
CHANGED
|
@@ -128,10 +128,7 @@ export async function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSiz
|
|
|
128
128
|
}
|
|
129
129
|
logger.info(`Advancing epochs so we start slashing`);
|
|
130
130
|
await cheatCodes.debugRollup();
|
|
131
|
-
await cheatCodes.
|
|
132
|
-
updateDateProvider: dateProvider
|
|
133
|
-
});
|
|
134
|
-
await cheatCodes.advanceToNextEpoch({
|
|
131
|
+
await cheatCodes.advanceToEpoch(await cheatCodes.getEpoch() + await rollup.getLagInEpochs() + 1n, {
|
|
135
132
|
updateDateProvider: dateProvider
|
|
136
133
|
});
|
|
137
134
|
// Await for the slash payload to be created if empire (no payload is created on tally until execution time)
|
|
@@ -163,12 +160,9 @@ export async function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSiz
|
|
|
163
160
|
const attesterInfo = await rollup.getAttesterView(attester);
|
|
164
161
|
expect(attesterInfo.status).toEqual(2); // Living
|
|
165
162
|
}
|
|
166
|
-
logger.info(`Advancing
|
|
163
|
+
logger.info(`Advancing to check current committee`);
|
|
167
164
|
await cheatCodes.debugRollup();
|
|
168
|
-
await cheatCodes.
|
|
169
|
-
updateDateProvider: dateProvider
|
|
170
|
-
});
|
|
171
|
-
await cheatCodes.advanceToNextEpoch({
|
|
165
|
+
await cheatCodes.advanceToEpoch(await cheatCodes.getEpoch() + await rollup.getLagInEpochs() + 1n, {
|
|
172
166
|
updateDateProvider: dateProvider
|
|
173
167
|
});
|
|
174
168
|
await cheatCodes.debugRollup();
|
|
@@ -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;
|
|
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
|
|
19
|
-
|
|
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,
|
|
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
|
-
|
|
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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"}
|
package/dest/fixtures/utils.js
CHANGED
|
@@ -412,9 +412,8 @@ export const setupL1Contracts = async (l1RpcUrls, account, logger, args = {}, ch
|
|
|
412
412
|
const { pxe, teardown: pxeTeardown } = await setupPXEService(aztecNode, pxeOpts, logger);
|
|
413
413
|
const cheatCodes = await CheatCodes.create(config.l1RpcUrls, pxe);
|
|
414
414
|
if (opts.aztecTargetCommitteeSize && opts.aztecTargetCommitteeSize > 0 || opts.initialValidators && opts.initialValidators.length > 0) {
|
|
415
|
-
// We need to advance
|
|
416
|
-
|
|
417
|
-
await cheatCodes.rollup.advanceToEpoch(2n, {
|
|
415
|
+
// We need to advance such that the committee is set up.
|
|
416
|
+
await cheatCodes.rollup.advanceToEpoch(await cheatCodes.rollup.getEpoch() + BigInt(config.lagInEpochs + 1), {
|
|
418
417
|
updateDateProvider: dateProvider
|
|
419
418
|
});
|
|
420
419
|
await cheatCodes.rollup.setupEpoch();
|
|
@@ -650,6 +649,7 @@ export function createAndSyncProverNode(proverNodePrivateKey, aztecNodeConfig, p
|
|
|
650
649
|
txGatheringTimeoutMs: 24_000,
|
|
651
650
|
proverNodeFailedEpochStore: undefined,
|
|
652
651
|
proverId: EthAddress.fromNumber(1),
|
|
652
|
+
proverNodeEpochProvingDelayMs: undefined,
|
|
653
653
|
...proverNodeConfig
|
|
654
654
|
};
|
|
655
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.
|
|
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.
|
|
29
|
-
"@aztec/archiver": "3.0.0-nightly.
|
|
30
|
-
"@aztec/aztec": "3.0.0-nightly.
|
|
31
|
-
"@aztec/aztec-node": "3.0.0-nightly.
|
|
32
|
-
"@aztec/aztec.js": "3.0.0-nightly.
|
|
33
|
-
"@aztec/bb-prover": "3.0.0-nightly.
|
|
34
|
-
"@aztec/blob-lib": "3.0.0-nightly.
|
|
35
|
-
"@aztec/blob-sink": "3.0.0-nightly.
|
|
36
|
-
"@aztec/bot": "3.0.0-nightly.
|
|
37
|
-
"@aztec/cli": "3.0.0-nightly.
|
|
38
|
-
"@aztec/constants": "3.0.0-nightly.
|
|
39
|
-
"@aztec/entrypoints": "3.0.0-nightly.
|
|
40
|
-
"@aztec/epoch-cache": "3.0.0-nightly.
|
|
41
|
-
"@aztec/ethereum": "3.0.0-nightly.
|
|
42
|
-
"@aztec/foundation": "3.0.0-nightly.
|
|
43
|
-
"@aztec/kv-store": "3.0.0-nightly.
|
|
44
|
-
"@aztec/l1-artifacts": "3.0.0-nightly.
|
|
45
|
-
"@aztec/merkle-tree": "3.0.0-nightly.
|
|
46
|
-
"@aztec/node-keystore": "3.0.0-nightly.
|
|
47
|
-
"@aztec/noir-contracts.js": "3.0.0-nightly.
|
|
48
|
-
"@aztec/noir-noirc_abi": "3.0.0-nightly.
|
|
49
|
-
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.
|
|
50
|
-
"@aztec/noir-test-contracts.js": "3.0.0-nightly.
|
|
51
|
-
"@aztec/p2p": "3.0.0-nightly.
|
|
52
|
-
"@aztec/protocol-contracts": "3.0.0-nightly.
|
|
53
|
-
"@aztec/prover-client": "3.0.0-nightly.
|
|
54
|
-
"@aztec/prover-node": "3.0.0-nightly.
|
|
55
|
-
"@aztec/pxe": "3.0.0-nightly.
|
|
56
|
-
"@aztec/sequencer-client": "3.0.0-nightly.
|
|
57
|
-
"@aztec/simulator": "3.0.0-nightly.
|
|
58
|
-
"@aztec/slasher": "3.0.0-nightly.
|
|
59
|
-
"@aztec/stdlib": "3.0.0-nightly.
|
|
60
|
-
"@aztec/telemetry-client": "3.0.0-nightly.
|
|
61
|
-
"@aztec/test-wallet": "3.0.0-nightly.
|
|
62
|
-
"@aztec/validator-client": "3.0.0-nightly.
|
|
63
|
-
"@aztec/world-state": "3.0.0-nightly.
|
|
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",
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
retryUntil,
|
|
10
10
|
sleep,
|
|
11
11
|
} from '@aztec/aztec.js';
|
|
12
|
+
import { EpochCache } from '@aztec/epoch-cache';
|
|
12
13
|
import { DefaultL1ContractsConfig, type ExtendedViemWalletClient, createExtendedL1Client } from '@aztec/ethereum';
|
|
13
14
|
import { RollupContract } from '@aztec/ethereum/contracts';
|
|
14
15
|
import { ChainMonitor, DelayedTxUtils, type Delayer, waitUntilL1Timestamp, withDelayer } from '@aztec/ethereum/test';
|
|
@@ -69,6 +70,7 @@ export class EpochsTestContext {
|
|
|
69
70
|
public constants!: L1RollupConstants;
|
|
70
71
|
public logger!: Logger;
|
|
71
72
|
public monitor!: ChainMonitor;
|
|
73
|
+
public epochCache!: EpochCache;
|
|
72
74
|
public proverDelayer!: Delayer;
|
|
73
75
|
public sequencerDelayer!: Delayer;
|
|
74
76
|
|
|
@@ -141,6 +143,7 @@ export class EpochsTestContext {
|
|
|
141
143
|
this.logger = context.logger;
|
|
142
144
|
this.l1Client = context.deployL1ContractsValues.l1Client;
|
|
143
145
|
this.rollup = RollupContract.getFromConfig(context.config);
|
|
146
|
+
this.epochCache = await EpochCache.create(this.rollup, context.config, { dateProvider: context.dateProvider });
|
|
144
147
|
|
|
145
148
|
// Loop that tracks L1 and L2 block numbers and logs whenever there's a new one.
|
|
146
149
|
this.monitor = new ChainMonitor(this.rollup, context.dateProvider, this.logger).start();
|
|
@@ -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:
|
|
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?:
|
|
165
|
+
initialConfig?: SetupOptions;
|
|
166
166
|
startProverNode?: boolean;
|
|
167
167
|
mockZkPassportVerifier?: boolean;
|
|
168
168
|
}) {
|
|
@@ -291,14 +291,15 @@ export class P2PNetworkTest {
|
|
|
291
291
|
hash: await multiAdder.write.addValidators([validatorTuples]),
|
|
292
292
|
});
|
|
293
293
|
|
|
294
|
-
|
|
294
|
+
await cheatCodes.rollup.advanceToEpoch(
|
|
295
|
+
(await cheatCodes.rollup.getEpoch()) + (await rollup.read.getLagInEpochs()) + 1n,
|
|
296
|
+
{
|
|
297
|
+
updateDateProvider: dateProvider,
|
|
298
|
+
},
|
|
299
|
+
);
|
|
295
300
|
|
|
296
301
|
// Send and await a tx to make sure we mine a block for the warp to correctly progress.
|
|
297
302
|
await this._sendDummyTx(deployL1ContractsValues.l1Client);
|
|
298
|
-
|
|
299
|
-
// Set the system time in the node, only after we have warped the time and waited for a block
|
|
300
|
-
// Time is only set in the NEXT block
|
|
301
|
-
dateProvider.setTime(Number(timestamp) * 1000);
|
|
302
303
|
},
|
|
303
304
|
);
|
|
304
305
|
}
|
package/src/e2e_p2p/shared.ts
CHANGED
|
@@ -210,8 +210,9 @@ export async function awaitCommitteeKicked({
|
|
|
210
210
|
|
|
211
211
|
logger.info(`Advancing epochs so we start slashing`);
|
|
212
212
|
await cheatCodes.debugRollup();
|
|
213
|
-
await cheatCodes.
|
|
214
|
-
|
|
213
|
+
await cheatCodes.advanceToEpoch((await cheatCodes.getEpoch()) + (await rollup.getLagInEpochs()) + 1n, {
|
|
214
|
+
updateDateProvider: dateProvider,
|
|
215
|
+
});
|
|
215
216
|
|
|
216
217
|
// Await for the slash payload to be created if empire (no payload is created on tally until execution time)
|
|
217
218
|
if (slashingProposer.type === 'empire') {
|
|
@@ -256,10 +257,11 @@ export async function awaitCommitteeKicked({
|
|
|
256
257
|
expect(attesterInfo.status).toEqual(2); // Living
|
|
257
258
|
}
|
|
258
259
|
|
|
259
|
-
logger.info(`Advancing
|
|
260
|
+
logger.info(`Advancing to check current committee`);
|
|
260
261
|
await cheatCodes.debugRollup();
|
|
261
|
-
await cheatCodes.
|
|
262
|
-
|
|
262
|
+
await cheatCodes.advanceToEpoch((await cheatCodes.getEpoch()) + (await rollup.getLagInEpochs()) + 1n, {
|
|
263
|
+
updateDateProvider: dateProvider,
|
|
264
|
+
});
|
|
263
265
|
await cheatCodes.debugRollup();
|
|
264
266
|
|
|
265
267
|
const committeeNextEpoch = await rollup.getCurrentEpochCommittee();
|
|
@@ -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(
|
|
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
|
-
{
|
|
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
|
-
{
|
|
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
|
);
|
package/src/fixtures/utils.ts
CHANGED
|
@@ -663,9 +663,10 @@ export async function setup(
|
|
|
663
663
|
(opts.aztecTargetCommitteeSize && opts.aztecTargetCommitteeSize > 0) ||
|
|
664
664
|
(opts.initialValidators && opts.initialValidators.length > 0)
|
|
665
665
|
) {
|
|
666
|
-
// We need to advance
|
|
667
|
-
|
|
668
|
-
|
|
666
|
+
// We need to advance such that the committee is set up.
|
|
667
|
+
await cheatCodes.rollup.advanceToEpoch((await cheatCodes.rollup.getEpoch()) + BigInt(config.lagInEpochs + 1), {
|
|
668
|
+
updateDateProvider: dateProvider,
|
|
669
|
+
});
|
|
669
670
|
await cheatCodes.rollup.setupEpoch();
|
|
670
671
|
await cheatCodes.rollup.debugRollup();
|
|
671
672
|
}
|
|
@@ -958,6 +959,7 @@ export function createAndSyncProverNode(
|
|
|
958
959
|
txGatheringTimeoutMs: 24_000,
|
|
959
960
|
proverNodeFailedEpochStore: undefined,
|
|
960
961
|
proverId: EthAddress.fromNumber(1),
|
|
962
|
+
proverNodeEpochProvingDelayMs: undefined,
|
|
961
963
|
...proverNodeConfig,
|
|
962
964
|
};
|
|
963
965
|
|