@aztec/pxe 0.84.0-nightly.20250409 → 0.84.0-nightly.20250412
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/config/index.d.ts +2 -0
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +5 -0
- package/dest/config/package_info.js +1 -1
- package/dest/entrypoints/client/bundle/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/bundle/utils.js +2 -1
- package/dest/entrypoints/client/lazy/utils.d.ts.map +1 -1
- package/dest/entrypoints/client/lazy/utils.js +1 -0
- package/dest/entrypoints/server/utils.d.ts.map +1 -1
- package/dest/entrypoints/server/utils.js +5 -2
- package/dest/synchronizer/synchronizer.d.ts +2 -2
- package/dest/synchronizer/synchronizer.d.ts.map +1 -1
- package/dest/synchronizer/synchronizer.js +5 -1
- package/package.json +16 -16
- package/src/config/index.ts +7 -0
- package/src/config/package_info.ts +1 -1
- package/src/entrypoints/client/bundle/utils.ts +1 -0
- package/src/entrypoints/client/lazy/utils.ts +1 -0
- package/src/entrypoints/server/utils.ts +4 -1
- package/src/synchronizer/synchronizer.ts +6 -2
package/dest/config/index.d.ts
CHANGED
|
@@ -24,6 +24,8 @@ export interface KernelProverConfig {
|
|
|
24
24
|
export interface PXEConfig {
|
|
25
25
|
/** L2 block to start scanning from for new accounts */
|
|
26
26
|
l2StartingBlock: number;
|
|
27
|
+
/** Maximum amount of blocks to pull from the stream in one request when synchronizing */
|
|
28
|
+
l2BlockBatchSize: number;
|
|
27
29
|
}
|
|
28
30
|
export type PXEServiceConfig = PXEConfig & KernelProverConfig & BBProverConfig & DataStoreConfig & ChainConfig;
|
|
29
31
|
export type CliPXEOptions = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,KAAK,WAAW,EAAuB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AACD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,uDAAuD;IACvD,eAAe,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,KAAK,WAAW,EAAuB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,8CAA8C;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AACD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,uDAAuD;IACvD,eAAe,EAAE,MAAM,CAAC;IACxB,yFAAyF;IACzF,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,kBAAkB,GAAG,cAAc,GAAG,eAAe,GAAG,WAAW,CAAC;AAE/G,MAAM,MAAM,aAAa,GAAG;IAC1B,wDAAwD;IACxD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,gBAAgB,CA+BlE,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAEtD;AAED,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,CAAC,aAAa,CAclE,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,CAAC,aAAa,GAAG,gBAAgB,CAWrF,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,gBAAgB,CAQnE"}
|
package/dest/config/index.js
CHANGED
|
@@ -11,6 +11,11 @@ export const pxeConfigMappings = {
|
|
|
11
11
|
...numberConfigHelper(INITIAL_L2_BLOCK_NUM),
|
|
12
12
|
description: 'L2 block to start scanning from for new accounts'
|
|
13
13
|
},
|
|
14
|
+
l2BlockBatchSize: {
|
|
15
|
+
env: 'PXE_L2_BLOCK_BATCH_SIZE',
|
|
16
|
+
...numberConfigHelper(200),
|
|
17
|
+
description: 'Maximum amount of blocks to pull from the stream in one request when synchronizing'
|
|
18
|
+
},
|
|
14
19
|
bbBinaryPath: {
|
|
15
20
|
env: 'BB_BINARY_PATH',
|
|
16
21
|
description: 'Path to the BB binary'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/entrypoints/client/bundle/utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,kBAAoC,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/entrypoints/client/bundle/utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,kBAAoC,uBAkC9C"}
|
|
@@ -19,7 +19,8 @@ import { PXEService } from '../../../pxe_service/pxe_service.js';
|
|
|
19
19
|
const l1Contracts = await aztecNode.getL1ContractAddresses();
|
|
20
20
|
const configWithContracts = {
|
|
21
21
|
...config,
|
|
22
|
-
l1Contracts
|
|
22
|
+
l1Contracts,
|
|
23
|
+
l2BlockBatchSize: 200
|
|
23
24
|
};
|
|
24
25
|
const store = await createStore('pxe_data', configWithContracts, options.loggers.store ?? createLogger('pxe:data:indexeddb'));
|
|
25
26
|
const simulationProvider = new WASMSimulator();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/entrypoints/client/lazy/utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,kBAAoC,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/entrypoints/client/lazy/utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE,kBAAoC,uBA8B9C"}
|
|
@@ -18,6 +18,7 @@ import { PXEService } from '../../../pxe_service/pxe_service.js';
|
|
|
18
18
|
const l1Contracts = await aztecNode.getL1ContractAddresses();
|
|
19
19
|
const configWithContracts = {
|
|
20
20
|
...config,
|
|
21
|
+
l2BlockBatchSize: 200,
|
|
21
22
|
l1Contracts
|
|
22
23
|
};
|
|
23
24
|
const store = await createStore('pxe_data', configWithContracts, options.loggers.store ?? createLogger('pxe:data:indexeddb'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/server/utils.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,kBAAkB,EAAiB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/entrypoints/server/utils.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,kBAAkB,EAAiB,MAAM,yBAAyB,CAAC;AAEjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAG9D;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,EACxB,YAAY,GAAE,MAAM,GAAG,OAAO,GAAG,SAAqB,uBAKvD;AAED;;;;;;;;GAQG;AACH,wBAAsB,sCAAsC,CAC1D,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,kBAAkB,EACtC,MAAM,EAAE,gBAAgB,EACxB,YAAY,GAAE,MAAM,GAAG,OAAO,GAAG,SAAqB,uBA+BvD"}
|
|
@@ -5,6 +5,7 @@ import { createLogger } from '@aztec/foundation/log';
|
|
|
5
5
|
import { createStore } from '@aztec/kv-store/lmdb-v2';
|
|
6
6
|
import { BundledProtocolContractsProvider } from '@aztec/protocol-contracts/providers/bundle';
|
|
7
7
|
import { WASMSimulator } from '@aztec/simulator/client';
|
|
8
|
+
import { SimulationProviderRecorderWrapper } from '@aztec/simulator/testing';
|
|
8
9
|
import { PXEService } from '../../pxe_service/pxe_service.js';
|
|
9
10
|
import { PXE_DATA_SCHEMA_VERSION } from '../../storage/index.js';
|
|
10
11
|
/**
|
|
@@ -16,7 +17,8 @@ import { PXE_DATA_SCHEMA_VERSION } from '../../storage/index.js';
|
|
|
16
17
|
* @returns A Promise that resolves to the started PXEService instance.
|
|
17
18
|
*/ export function createPXEService(aztecNode, config, useLogSuffix = undefined) {
|
|
18
19
|
const simulationProvider = new WASMSimulator();
|
|
19
|
-
|
|
20
|
+
const simulationProviderWithRecorder = new SimulationProviderRecorderWrapper(simulationProvider);
|
|
21
|
+
return createPXEServiceWithSimulationProvider(aztecNode, simulationProviderWithRecorder, config, useLogSuffix);
|
|
20
22
|
}
|
|
21
23
|
/**
|
|
22
24
|
* Create and start an PXEService instance with the given AztecNode, SimulationProvider and config.
|
|
@@ -31,7 +33,8 @@ import { PXE_DATA_SCHEMA_VERSION } from '../../storage/index.js';
|
|
|
31
33
|
const l1Contracts = await aztecNode.getL1ContractAddresses();
|
|
32
34
|
const configWithContracts = {
|
|
33
35
|
...config,
|
|
34
|
-
l1Contracts
|
|
36
|
+
l1Contracts,
|
|
37
|
+
l2BlockBatchSize: 200
|
|
35
38
|
};
|
|
36
39
|
const store = await createStore('pxe_data', PXE_DATA_SCHEMA_VERSION, configWithContracts, createLogger('pxe:data:lmdb'));
|
|
37
40
|
const prover = await createProver(config, simulationProvider, logSuffix);
|
|
@@ -20,8 +20,8 @@ export declare class Synchronizer implements L2BlockStreamEventHandler {
|
|
|
20
20
|
private log;
|
|
21
21
|
private isSyncing;
|
|
22
22
|
protected readonly blockStream: L2BlockStream;
|
|
23
|
-
constructor(node: AztecNode, syncDataProvider: SyncDataProvider, noteDataProvider: NoteDataProvider, taggingDataProvider: TaggingDataProvider, l2TipsStore: L2TipsKVStore, config?: Partial<Pick<PXEConfig, 'l2StartingBlock'>>, loggerOrSuffix?: string | Logger);
|
|
24
|
-
protected createBlockStream(config: Partial<Pick<PXEConfig, 'l2StartingBlock'>>): L2BlockStream;
|
|
23
|
+
constructor(node: AztecNode, syncDataProvider: SyncDataProvider, noteDataProvider: NoteDataProvider, taggingDataProvider: TaggingDataProvider, l2TipsStore: L2TipsKVStore, config?: Partial<Pick<PXEConfig, 'l2StartingBlock' | 'l2BlockBatchSize'>>, loggerOrSuffix?: string | Logger);
|
|
24
|
+
protected createBlockStream(config: Partial<Pick<PXEConfig, 'l2StartingBlock' | 'l2BlockBatchSize'>>): L2BlockStream;
|
|
25
25
|
/** Handle events emitted by the block stream. */
|
|
26
26
|
handleBlockStreamEvent(event: L2BlockStreamEvent): Promise<void>;
|
|
27
27
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synchronizer.d.ts","sourceRoot":"","sources":["../../src/synchronizer/synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAC7G,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AAC5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAC;AAErG;;;;GAIG;AACH,qBAAa,YAAa,YAAW,yBAAyB;IAM1D,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,WAAW;IATrB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,SAAS,CAA4B;IAC7C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;gBAGpC,IAAI,EAAE,SAAS,EACf,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,WAAW,EAAE,aAAa,EAClC,MAAM,GAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAM,
|
|
1
|
+
{"version":3,"file":"synchronizer.d.ts","sourceRoot":"","sources":["../../src/synchronizer/synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAC7G,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AAC5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAC;AAErG;;;;GAIG;AACH,qBAAa,YAAa,YAAW,yBAAyB;IAM1D,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,mBAAmB;IAC3B,OAAO,CAAC,WAAW;IATrB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,SAAS,CAA4B;IAC7C,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;gBAGpC,IAAI,EAAE,SAAS,EACf,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,WAAW,EAAE,aAAa,EAClC,MAAM,GAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,GAAG,kBAAkB,CAAC,CAAM,EAC7E,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM;IASlC,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,GAAG,kBAAkB,CAAC,CAAC;IAUpG,iDAAiD;IACpC,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmC7E;;;OAGG;IACU,IAAI;YAiBH,MAAM;IAeb,qBAAqB;CAG7B"}
|
|
@@ -24,7 +24,11 @@ import { L2BlockStream } from '@aztec/stdlib/block';
|
|
|
24
24
|
}
|
|
25
25
|
createBlockStream(config) {
|
|
26
26
|
return new L2BlockStream(this.node, this.l2TipsStore, this, createLogger('pxe:block_stream'), {
|
|
27
|
-
startingBlock: config.l2StartingBlock
|
|
27
|
+
startingBlock: config.l2StartingBlock,
|
|
28
|
+
batchSize: config.l2BlockBatchSize,
|
|
29
|
+
// Skipping finalized blocks makes us sync much faster - we only need to download blocks other than the latest one
|
|
30
|
+
// in order to detect reorgs, and there can be no reorgs on finalized block, making this safe.
|
|
31
|
+
skipFinalized: true
|
|
28
32
|
});
|
|
29
33
|
}
|
|
30
34
|
/** Handle events emitted by the block stream. */ async handleBlockStreamEvent(event) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/pxe",
|
|
3
|
-
"version": "0.84.0-nightly.
|
|
3
|
+
"version": "0.84.0-nightly.20250412",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
"./server": "./dest/entrypoints/server/index.js",
|
|
@@ -59,21 +59,21 @@
|
|
|
59
59
|
]
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|
|
62
|
-
"@aztec/bb-prover": "0.84.0-nightly.
|
|
63
|
-
"@aztec/bb.js": "0.84.0-nightly.
|
|
64
|
-
"@aztec/builder": "0.84.0-nightly.
|
|
65
|
-
"@aztec/constants": "0.84.0-nightly.
|
|
66
|
-
"@aztec/ethereum": "0.84.0-nightly.
|
|
67
|
-
"@aztec/foundation": "0.84.0-nightly.
|
|
68
|
-
"@aztec/key-store": "0.84.0-nightly.
|
|
69
|
-
"@aztec/kv-store": "0.84.0-nightly.
|
|
70
|
-
"@aztec/noir-protocol-circuits-types": "0.84.0-nightly.
|
|
71
|
-
"@aztec/noir-types": "0.84.0-nightly.
|
|
72
|
-
"@aztec/protocol-contracts": "0.84.0-nightly.
|
|
73
|
-
"@aztec/simulator": "0.84.0-nightly.
|
|
74
|
-
"@aztec/stdlib": "0.84.0-nightly.
|
|
62
|
+
"@aztec/bb-prover": "0.84.0-nightly.20250412",
|
|
63
|
+
"@aztec/bb.js": "0.84.0-nightly.20250412",
|
|
64
|
+
"@aztec/builder": "0.84.0-nightly.20250412",
|
|
65
|
+
"@aztec/constants": "0.84.0-nightly.20250412",
|
|
66
|
+
"@aztec/ethereum": "0.84.0-nightly.20250412",
|
|
67
|
+
"@aztec/foundation": "0.84.0-nightly.20250412",
|
|
68
|
+
"@aztec/key-store": "0.84.0-nightly.20250412",
|
|
69
|
+
"@aztec/kv-store": "0.84.0-nightly.20250412",
|
|
70
|
+
"@aztec/noir-protocol-circuits-types": "0.84.0-nightly.20250412",
|
|
71
|
+
"@aztec/noir-types": "0.84.0-nightly.20250412",
|
|
72
|
+
"@aztec/protocol-contracts": "0.84.0-nightly.20250412",
|
|
73
|
+
"@aztec/simulator": "0.84.0-nightly.20250412",
|
|
74
|
+
"@aztec/stdlib": "0.84.0-nightly.20250412",
|
|
75
75
|
"@msgpack/msgpack": "^3.0.0-beta2",
|
|
76
|
-
"koa": "^2.
|
|
76
|
+
"koa": "^2.16.1",
|
|
77
77
|
"koa-router": "^12.0.0",
|
|
78
78
|
"lodash.omit": "^4.5.0",
|
|
79
79
|
"sha3": "^2.1.4",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"viem": "2.23.7"
|
|
82
82
|
},
|
|
83
83
|
"devDependencies": {
|
|
84
|
-
"@aztec/noir-contracts.js": "0.84.0-nightly.
|
|
84
|
+
"@aztec/noir-contracts.js": "0.84.0-nightly.20250412",
|
|
85
85
|
"@jest/globals": "^29.5.0",
|
|
86
86
|
"@types/jest": "^29.5.0",
|
|
87
87
|
"@types/lodash.omit": "^4.5.7",
|
package/src/config/index.ts
CHANGED
|
@@ -34,6 +34,8 @@ export interface KernelProverConfig {
|
|
|
34
34
|
export interface PXEConfig {
|
|
35
35
|
/** L2 block to start scanning from for new accounts */
|
|
36
36
|
l2StartingBlock: number;
|
|
37
|
+
/** Maximum amount of blocks to pull from the stream in one request when synchronizing */
|
|
38
|
+
l2BlockBatchSize: number;
|
|
37
39
|
}
|
|
38
40
|
|
|
39
41
|
export type PXEServiceConfig = PXEConfig & KernelProverConfig & BBProverConfig & DataStoreConfig & ChainConfig;
|
|
@@ -55,6 +57,11 @@ export const pxeConfigMappings: ConfigMappingsType<PXEServiceConfig> = {
|
|
|
55
57
|
...numberConfigHelper(INITIAL_L2_BLOCK_NUM),
|
|
56
58
|
description: 'L2 block to start scanning from for new accounts',
|
|
57
59
|
},
|
|
60
|
+
l2BlockBatchSize: {
|
|
61
|
+
env: 'PXE_L2_BLOCK_BATCH_SIZE',
|
|
62
|
+
...numberConfigHelper(200),
|
|
63
|
+
description: 'Maximum amount of blocks to pull from the stream in one request when synchronizing',
|
|
64
|
+
},
|
|
58
65
|
bbBinaryPath: {
|
|
59
66
|
env: 'BB_BINARY_PATH',
|
|
60
67
|
description: 'Path to the BB binary',
|
|
@@ -5,6 +5,7 @@ import { createLogger } from '@aztec/foundation/log';
|
|
|
5
5
|
import { createStore } from '@aztec/kv-store/lmdb-v2';
|
|
6
6
|
import { BundledProtocolContractsProvider } from '@aztec/protocol-contracts/providers/bundle';
|
|
7
7
|
import { type SimulationProvider, WASMSimulator } from '@aztec/simulator/client';
|
|
8
|
+
import { SimulationProviderRecorderWrapper } from '@aztec/simulator/testing';
|
|
8
9
|
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
9
10
|
|
|
10
11
|
import type { PXEServiceConfig } from '../../config/index.js';
|
|
@@ -25,7 +26,8 @@ export function createPXEService(
|
|
|
25
26
|
useLogSuffix: string | boolean | undefined = undefined,
|
|
26
27
|
) {
|
|
27
28
|
const simulationProvider = new WASMSimulator();
|
|
28
|
-
|
|
29
|
+
const simulationProviderWithRecorder = new SimulationProviderRecorderWrapper(simulationProvider);
|
|
30
|
+
return createPXEServiceWithSimulationProvider(aztecNode, simulationProviderWithRecorder, config, useLogSuffix);
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
/**
|
|
@@ -50,6 +52,7 @@ export async function createPXEServiceWithSimulationProvider(
|
|
|
50
52
|
const configWithContracts = {
|
|
51
53
|
...config,
|
|
52
54
|
l1Contracts,
|
|
55
|
+
l2BlockBatchSize: 200,
|
|
53
56
|
} as PXEServiceConfig;
|
|
54
57
|
|
|
55
58
|
const store = await createStore(
|
|
@@ -24,7 +24,7 @@ export class Synchronizer implements L2BlockStreamEventHandler {
|
|
|
24
24
|
private noteDataProvider: NoteDataProvider,
|
|
25
25
|
private taggingDataProvider: TaggingDataProvider,
|
|
26
26
|
private l2TipsStore: L2TipsKVStore,
|
|
27
|
-
config: Partial<Pick<PXEConfig, 'l2StartingBlock'>> = {},
|
|
27
|
+
config: Partial<Pick<PXEConfig, 'l2StartingBlock' | 'l2BlockBatchSize'>> = {},
|
|
28
28
|
loggerOrSuffix?: string | Logger,
|
|
29
29
|
) {
|
|
30
30
|
this.log =
|
|
@@ -34,9 +34,13 @@ export class Synchronizer implements L2BlockStreamEventHandler {
|
|
|
34
34
|
this.blockStream = this.createBlockStream(config);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
protected createBlockStream(config: Partial<Pick<PXEConfig, 'l2StartingBlock'>>) {
|
|
37
|
+
protected createBlockStream(config: Partial<Pick<PXEConfig, 'l2StartingBlock' | 'l2BlockBatchSize'>>) {
|
|
38
38
|
return new L2BlockStream(this.node, this.l2TipsStore, this, createLogger('pxe:block_stream'), {
|
|
39
39
|
startingBlock: config.l2StartingBlock,
|
|
40
|
+
batchSize: config.l2BlockBatchSize,
|
|
41
|
+
// Skipping finalized blocks makes us sync much faster - we only need to download blocks other than the latest one
|
|
42
|
+
// in order to detect reorgs, and there can be no reorgs on finalized block, making this safe.
|
|
43
|
+
skipFinalized: true,
|
|
40
44
|
});
|
|
41
45
|
}
|
|
42
46
|
|