@aztec/pxe 0.66.0 → 0.67.1-devnet
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/bin/index.js +5 -6
- package/dest/config/index.d.ts +0 -9
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +1 -17
- package/dest/config/package_info.d.ts +5 -0
- package/dest/config/package_info.d.ts.map +1 -0
- package/dest/config/package_info.js +4 -0
- package/dest/contract_data_oracle/index.js +2 -2
- package/dest/database/incoming_note_dao.d.ts +1 -1
- package/dest/database/incoming_note_dao.d.ts.map +1 -1
- package/dest/database/incoming_note_dao.js +2 -2
- package/dest/database/kv_pxe_database.d.ts +10 -13
- package/dest/database/kv_pxe_database.d.ts.map +1 -1
- package/dest/database/kv_pxe_database.js +153 -230
- package/dest/database/outgoing_note_dao.js +2 -2
- package/dest/database/pxe_database.d.ts +7 -25
- package/dest/database/pxe_database.d.ts.map +1 -1
- package/dest/database/pxe_database_test_suite.d.ts.map +1 -1
- package/dest/database/pxe_database_test_suite.js +18 -59
- package/dest/index.d.ts +2 -0
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +3 -1
- package/dest/kernel_oracle/index.d.ts.map +1 -1
- package/dest/kernel_oracle/index.js +4 -4
- package/dest/kernel_prover/hints/build_private_kernel_reset_private_inputs.js +2 -2
- package/dest/kernel_prover/index.d.ts +1 -0
- package/dest/kernel_prover/index.d.ts.map +1 -1
- package/dest/kernel_prover/index.js +2 -1
- package/dest/kernel_prover/kernel_prover.d.ts +1 -0
- package/dest/kernel_prover/kernel_prover.d.ts.map +1 -1
- package/dest/kernel_prover/kernel_prover.js +42 -5
- package/dest/kernel_prover/test/test_circuit_prover.d.ts +1 -2
- package/dest/kernel_prover/test/test_circuit_prover.d.ts.map +1 -1
- package/dest/kernel_prover/test/test_circuit_prover.js +7 -13
- package/dest/note_decryption_utils/add_public_values_to_payload.js +2 -2
- package/dest/note_decryption_utils/brute_force_note_info.d.ts +3 -3
- package/dest/note_decryption_utils/brute_force_note_info.d.ts.map +1 -1
- package/dest/note_decryption_utils/brute_force_note_info.js +8 -8
- package/dest/note_decryption_utils/produce_note_daos.d.ts +3 -6
- package/dest/note_decryption_utils/produce_note_daos.d.ts.map +1 -1
- package/dest/note_decryption_utils/produce_note_daos.js +5 -19
- package/dest/note_decryption_utils/produce_note_daos_for_key.d.ts +1 -1
- package/dest/note_decryption_utils/produce_note_daos_for_key.d.ts.map +1 -1
- package/dest/pxe_service/error_enriching.d.ts +3 -3
- package/dest/pxe_service/error_enriching.d.ts.map +1 -1
- package/dest/pxe_service/error_enriching.js +10 -10
- package/dest/pxe_service/index.d.ts +0 -1
- package/dest/pxe_service/index.d.ts.map +1 -1
- package/dest/pxe_service/index.js +1 -2
- package/dest/pxe_service/pxe_service.d.ts +2 -16
- package/dest/pxe_service/pxe_service.d.ts.map +1 -1
- package/dest/pxe_service/pxe_service.js +74 -96
- package/dest/pxe_service/test/pxe_test_suite.d.ts.map +1 -1
- package/dest/pxe_service/test/pxe_test_suite.js +1 -3
- package/dest/simulator/index.d.ts +1 -1
- package/dest/simulator/index.d.ts.map +1 -1
- package/dest/simulator/index.js +2 -2
- package/dest/simulator_oracle/index.d.ts +14 -11
- package/dest/simulator_oracle/index.d.ts.map +1 -1
- package/dest/simulator_oracle/index.js +170 -140
- package/dest/simulator_oracle/tagging_utils.d.ts +15 -0
- package/dest/simulator_oracle/tagging_utils.d.ts.map +1 -0
- package/dest/simulator_oracle/tagging_utils.js +23 -0
- package/dest/synchronizer/synchronizer.d.ts +10 -40
- package/dest/synchronizer/synchronizer.d.ts.map +1 -1
- package/dest/synchronizer/synchronizer.js +35 -69
- package/dest/{pxe_service → utils}/create_pxe_service.d.ts +1 -1
- package/dest/utils/create_pxe_service.d.ts.map +1 -0
- package/dest/utils/create_pxe_service.js +52 -0
- package/package.json +31 -19
- package/src/bin/index.ts +4 -5
- package/src/config/index.ts +0 -21
- package/src/config/package_info.ts +3 -0
- package/src/contract_data_oracle/index.ts +1 -1
- package/src/database/incoming_note_dao.ts +2 -2
- package/src/database/kv_pxe_database.ts +214 -309
- package/src/database/outgoing_note_dao.ts +1 -1
- package/src/database/pxe_database.ts +7 -28
- package/src/database/pxe_database_test_suite.ts +20 -75
- package/src/index.ts +2 -0
- package/src/kernel_oracle/index.ts +3 -3
- package/src/kernel_prover/hints/build_private_kernel_reset_private_inputs.ts +1 -1
- package/src/kernel_prover/index.ts +2 -0
- package/src/kernel_prover/kernel_prover.ts +72 -3
- package/src/kernel_prover/test/test_circuit_prover.ts +11 -25
- package/src/note_decryption_utils/add_public_values_to_payload.ts +1 -1
- package/src/note_decryption_utils/brute_force_note_info.ts +9 -9
- package/src/note_decryption_utils/produce_note_daos.ts +5 -48
- package/src/note_decryption_utils/produce_note_daos_for_key.ts +1 -1
- package/src/pxe_service/error_enriching.ts +14 -12
- package/src/pxe_service/index.ts +0 -1
- package/src/pxe_service/pxe_service.ts +127 -174
- package/src/pxe_service/test/pxe_test_suite.ts +0 -3
- package/src/simulator/index.ts +1 -1
- package/src/simulator_oracle/index.ts +201 -188
- package/src/simulator_oracle/tagging_utils.ts +28 -0
- package/src/synchronizer/synchronizer.ts +37 -77
- package/src/{pxe_service → utils}/create_pxe_service.ts +16 -13
- package/dest/pxe_service/create_pxe_service.d.ts.map +0 -1
- package/dest/pxe_service/create_pxe_service.js +0 -49
|
@@ -3,57 +3,27 @@ import { type L2TipsStore } from '@aztec/kv-store/stores';
|
|
|
3
3
|
import { type PXEConfig } from '../config/index.js';
|
|
4
4
|
import { type PxeDatabase } from '../database/index.js';
|
|
5
5
|
/**
|
|
6
|
-
* The Synchronizer class manages the synchronization
|
|
7
|
-
*
|
|
8
|
-
* It provides methods to
|
|
9
|
-
* details, and fetch transactions by hash.
|
|
10
|
-
* in sync with the blockchain while handling retries and errors gracefully.
|
|
6
|
+
* The Synchronizer class manages the synchronization with the aztec node, allowing PXE to retrieve the
|
|
7
|
+
* latest block header and handle reorgs.
|
|
8
|
+
* It provides methods to trigger a sync and get the block number we are syncec to
|
|
9
|
+
* details, and fetch transactions by hash.
|
|
11
10
|
*/
|
|
12
11
|
export declare class Synchronizer implements L2BlockStreamEventHandler {
|
|
13
12
|
private node;
|
|
14
13
|
private db;
|
|
15
14
|
private l2TipsStore;
|
|
16
|
-
private running;
|
|
17
15
|
private initialSyncBlockNumber;
|
|
18
16
|
private log;
|
|
19
17
|
protected readonly blockStream: L2BlockStream;
|
|
20
|
-
constructor(node: AztecNode, db: PxeDatabase, l2TipsStore: L2TipsStore, config?: Partial<Pick<PXEConfig, '
|
|
21
|
-
protected createBlockStream(config: Partial<Pick<PXEConfig, '
|
|
18
|
+
constructor(node: AztecNode, db: PxeDatabase, l2TipsStore: L2TipsStore, config?: Partial<Pick<PXEConfig, 'l2StartingBlock'>>, logSuffix?: string);
|
|
19
|
+
protected createBlockStream(config: Partial<Pick<PXEConfig, 'l2StartingBlock'>>): L2BlockStream;
|
|
22
20
|
/** Handle events emitted by the block stream. */
|
|
23
21
|
handleBlockStreamEvent(event: L2BlockStreamEvent): Promise<void>;
|
|
24
22
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* available, it retries after a specified interval.
|
|
28
|
-
*
|
|
29
|
-
* @param limit - The maximum number of encrypted, unencrypted logs and blocks to fetch in each iteration.
|
|
30
|
-
* @param retryInterval - The time interval (in ms) to wait before retrying if no data is available.
|
|
23
|
+
* Syncs PXE and the node by dowloading the metadata of the latest blocks, allowing simulations to use
|
|
24
|
+
* recent data (e.g. notes), and handling any reorgs that might have occurred.
|
|
31
25
|
*/
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
* Stops the synchronizer gracefully, interrupting any ongoing sleep and waiting for the current
|
|
35
|
-
* iteration to complete before setting the running state to false. Once stopped, the synchronizer
|
|
36
|
-
* will no longer process blocks or encrypted logs and must be restarted using the start method.
|
|
37
|
-
*
|
|
38
|
-
* @returns A promise that resolves when the synchronizer has successfully stopped.
|
|
39
|
-
*/
|
|
40
|
-
stop(): Promise<void>;
|
|
41
|
-
/** Triggers a single run. */
|
|
42
|
-
trigger(): Promise<void>;
|
|
43
|
-
private getSynchedBlockNumber;
|
|
44
|
-
/**
|
|
45
|
-
* Checks whether all the blocks were processed (tree roots updated, txs updated with block info, etc.).
|
|
46
|
-
* @returns True if there are no outstanding blocks to be synched.
|
|
47
|
-
* @remarks This indicates that blocks and transactions are synched even if notes are not.
|
|
48
|
-
* @remarks Compares local block number with the block number from aztec node.
|
|
49
|
-
*/
|
|
50
|
-
isGlobalStateSynchronized(): Promise<boolean>;
|
|
51
|
-
/**
|
|
52
|
-
* Returns the latest block that has been synchronized by the synchronizer and each account.
|
|
53
|
-
* @returns The latest block synchronized for blocks, and the latest block synched for notes for each public key being tracked.
|
|
54
|
-
*/
|
|
55
|
-
getSyncStatus(): {
|
|
56
|
-
blocks: number;
|
|
57
|
-
};
|
|
26
|
+
sync(): Promise<void>;
|
|
27
|
+
getSynchedBlockNumber(): Promise<number>;
|
|
58
28
|
}
|
|
59
29
|
//# sourceMappingURL=synchronizer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synchronizer.d.ts","sourceRoot":"","sources":["../../src/synchronizer/synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC/B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD
|
|
1
|
+
{"version":3,"file":"synchronizer.d.ts","sourceRoot":"","sources":["../../src/synchronizer/synchronizer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EACd,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC/B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;;GAKG;AACH,qBAAa,YAAa,YAAW,yBAAyB;IAM1D,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,WAAW;IAPrB,OAAO,CAAC,sBAAsB,CAA4B;IAC1D,OAAO,CAAC,GAAG,CAAS;IACpB,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC;gBAGpC,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,WAAW,EACf,WAAW,EAAE,WAAW,EAChC,MAAM,GAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAM,EACxD,SAAS,CAAC,EAAE,MAAM;IAMpB,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAM/E,iDAAiD;IACpC,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B7E;;;OAGG;IACU,IAAI;IAeJ,qBAAqB;CAGnC"}
|
|
@@ -1,26 +1,23 @@
|
|
|
1
1
|
import { L2BlockStream, } from '@aztec/circuit-types';
|
|
2
2
|
import { INITIAL_L2_BLOCK_NUM } from '@aztec/circuits.js';
|
|
3
|
-
import {
|
|
3
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
/**
|
|
5
|
-
* The Synchronizer class manages the synchronization
|
|
6
|
-
*
|
|
7
|
-
* It provides methods to
|
|
8
|
-
* details, and fetch transactions by hash.
|
|
9
|
-
* in sync with the blockchain while handling retries and errors gracefully.
|
|
5
|
+
* The Synchronizer class manages the synchronization with the aztec node, allowing PXE to retrieve the
|
|
6
|
+
* latest block header and handle reorgs.
|
|
7
|
+
* It provides methods to trigger a sync and get the block number we are syncec to
|
|
8
|
+
* details, and fetch transactions by hash.
|
|
10
9
|
*/
|
|
11
10
|
export class Synchronizer {
|
|
12
11
|
constructor(node, db, l2TipsStore, config = {}, logSuffix) {
|
|
13
12
|
this.node = node;
|
|
14
13
|
this.db = db;
|
|
15
14
|
this.l2TipsStore = l2TipsStore;
|
|
16
|
-
this.running = false;
|
|
17
15
|
this.initialSyncBlockNumber = INITIAL_L2_BLOCK_NUM - 1;
|
|
18
|
-
this.log =
|
|
16
|
+
this.log = createLogger(logSuffix ? `pxe:synchronizer:${logSuffix}` : 'pxe:synchronizer');
|
|
19
17
|
this.blockStream = this.createBlockStream(config);
|
|
20
18
|
}
|
|
21
19
|
createBlockStream(config) {
|
|
22
|
-
return new L2BlockStream(this.node, this.l2TipsStore, this, {
|
|
23
|
-
pollIntervalMS: config.l2BlockPollingIntervalMS,
|
|
20
|
+
return new L2BlockStream(this.node, this.l2TipsStore, this, createLogger('pxe:block_stream'), {
|
|
24
21
|
startingBlock: config.l2StartingBlock,
|
|
25
22
|
});
|
|
26
23
|
}
|
|
@@ -28,12 +25,18 @@ export class Synchronizer {
|
|
|
28
25
|
async handleBlockStreamEvent(event) {
|
|
29
26
|
await this.l2TipsStore.handleBlockStreamEvent(event);
|
|
30
27
|
switch (event.type) {
|
|
31
|
-
case 'blocks-added':
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
case 'blocks-added': {
|
|
29
|
+
const lastBlock = event.blocks.at(-1);
|
|
30
|
+
this.log.verbose(`Updated pxe last block to ${lastBlock.number}`, {
|
|
31
|
+
blockHash: lastBlock.hash(),
|
|
32
|
+
archive: lastBlock.archive.root.toString(),
|
|
33
|
+
header: lastBlock.header.toInspect(),
|
|
34
|
+
});
|
|
35
|
+
await this.db.setHeader(lastBlock.header);
|
|
34
36
|
break;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
+
}
|
|
38
|
+
case 'chain-pruned': {
|
|
39
|
+
this.log.warn(`Pruning data after block ${event.blockNumber} due to reorg`);
|
|
37
40
|
// We first unnullify and then remove so that unnullified notes that were created after the block number end up deleted.
|
|
38
41
|
await this.db.unnullifyNotesAfter(event.blockNumber);
|
|
39
42
|
await this.db.removeNotesAfter(event.blockNumber);
|
|
@@ -43,66 +46,29 @@ export class Synchronizer {
|
|
|
43
46
|
// Update the header to the last block.
|
|
44
47
|
await this.db.setHeader(await this.node.getBlockHeader(event.blockNumber));
|
|
45
48
|
break;
|
|
49
|
+
}
|
|
46
50
|
}
|
|
47
51
|
}
|
|
48
52
|
/**
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
* available, it retries after a specified interval.
|
|
52
|
-
*
|
|
53
|
-
* @param limit - The maximum number of encrypted, unencrypted logs and blocks to fetch in each iteration.
|
|
54
|
-
* @param retryInterval - The time interval (in ms) to wait before retrying if no data is available.
|
|
53
|
+
* Syncs PXE and the node by dowloading the metadata of the latest blocks, allowing simulations to use
|
|
54
|
+
* recent data (e.g. notes), and handling any reorgs that might have occurred.
|
|
55
55
|
*/
|
|
56
|
-
async
|
|
57
|
-
|
|
58
|
-
|
|
56
|
+
async sync() {
|
|
57
|
+
let currentHeader;
|
|
58
|
+
try {
|
|
59
|
+
currentHeader = await this.db.getBlockHeader();
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
this.log.debug('Header is not set, requesting from the node');
|
|
63
|
+
}
|
|
64
|
+
if (!currentHeader) {
|
|
65
|
+
// REFACTOR: We should know the header of the genesis block without having to request it from the node.
|
|
66
|
+
await this.db.setHeader(await this.node.getBlockHeader(0));
|
|
59
67
|
}
|
|
60
|
-
this.running = true;
|
|
61
|
-
// REFACTOR: We should know the header of the genesis block without having to request it from the node.
|
|
62
|
-
await this.db.setHeader(await this.node.getBlockHeader(0));
|
|
63
|
-
await this.trigger();
|
|
64
|
-
this.log.info('Initial sync complete');
|
|
65
|
-
this.blockStream.start();
|
|
66
|
-
this.log.debug('Started loop');
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Stops the synchronizer gracefully, interrupting any ongoing sleep and waiting for the current
|
|
70
|
-
* iteration to complete before setting the running state to false. Once stopped, the synchronizer
|
|
71
|
-
* will no longer process blocks or encrypted logs and must be restarted using the start method.
|
|
72
|
-
*
|
|
73
|
-
* @returns A promise that resolves when the synchronizer has successfully stopped.
|
|
74
|
-
*/
|
|
75
|
-
async stop() {
|
|
76
|
-
this.running = false;
|
|
77
|
-
await this.blockStream.stop();
|
|
78
|
-
this.log.info('Stopped');
|
|
79
|
-
}
|
|
80
|
-
/** Triggers a single run. */
|
|
81
|
-
async trigger() {
|
|
82
68
|
await this.blockStream.sync();
|
|
83
69
|
}
|
|
84
|
-
getSynchedBlockNumber() {
|
|
85
|
-
return this.db.getBlockNumber() ?? this.initialSyncBlockNumber;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Checks whether all the blocks were processed (tree roots updated, txs updated with block info, etc.).
|
|
89
|
-
* @returns True if there are no outstanding blocks to be synched.
|
|
90
|
-
* @remarks This indicates that blocks and transactions are synched even if notes are not.
|
|
91
|
-
* @remarks Compares local block number with the block number from aztec node.
|
|
92
|
-
*/
|
|
93
|
-
async isGlobalStateSynchronized() {
|
|
94
|
-
const latest = await this.node.getBlockNumber();
|
|
95
|
-
return latest <= this.getSynchedBlockNumber();
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Returns the latest block that has been synchronized by the synchronizer and each account.
|
|
99
|
-
* @returns The latest block synchronized for blocks, and the latest block synched for notes for each public key being tracked.
|
|
100
|
-
*/
|
|
101
|
-
getSyncStatus() {
|
|
102
|
-
const lastBlockNumber = this.getSynchedBlockNumber();
|
|
103
|
-
return {
|
|
104
|
-
blocks: lastBlockNumber,
|
|
105
|
-
};
|
|
70
|
+
async getSynchedBlockNumber() {
|
|
71
|
+
return (await this.db.getBlockNumber()) ?? this.initialSyncBlockNumber;
|
|
106
72
|
}
|
|
107
73
|
}
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luY2hyb25pemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N5bmNocm9uaXplci9zeW5jaHJvbml6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGFBQWEsR0FHZCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFELE9BQU8sRUFBZSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU1sRTs7Ozs7R0FLRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBS3ZCLFlBQ1UsSUFBZSxFQUNmLEVBQWUsRUFDZixXQUF3QixFQUNoQyxTQUFzRCxFQUFFLEVBQ3hELFNBQWtCO1FBSlYsU0FBSSxHQUFKLElBQUksQ0FBVztRQUNmLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQVAxQiwyQkFBc0IsR0FBRyxvQkFBb0IsR0FBRyxDQUFDLENBQUM7UUFXeEQsSUFBSSxDQUFDLEdBQUcsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDMUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVTLGlCQUFpQixDQUFDLE1BQW1EO1FBQzdFLE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxZQUFZLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUM1RixhQUFhLEVBQUUsTUFBTSxDQUFDLGVBQWU7U0FDdEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlEQUFpRDtJQUMxQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsS0FBeUI7UUFDM0QsTUFBTSxJQUFJ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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type AztecNode, type PrivateKernelProver } from '@aztec/circuit-types';
|
|
2
2
|
import { type PXEServiceConfig } from '../config/index.js';
|
|
3
|
-
import { PXEService } from '
|
|
3
|
+
import { PXEService } from '../pxe_service/pxe_service.js';
|
|
4
4
|
/**
|
|
5
5
|
* Create and start an PXEService instance with the given AztecNode.
|
|
6
6
|
* If no keyStore or database is provided, it will use KeyStore and MemoryDB as default values.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_pxe_service.d.ts","sourceRoot":"","sources":["../../src/utils/create_pxe_service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAOhF,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,gBAAgB,EACxB,YAAY,GAAE,MAAM,GAAG,OAAO,GAAG,SAAqB,EACtD,YAAY,CAAC,EAAE,mBAAmB,uBAwBnC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { BBNativePrivateKernelProver } from '@aztec/bb-prover';
|
|
2
|
+
import { BBWasmPrivateKernelProver } from '@aztec/bb-prover/wasm';
|
|
3
|
+
import { randomBytes } from '@aztec/foundation/crypto';
|
|
4
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
5
|
+
import { KeyStore } from '@aztec/key-store';
|
|
6
|
+
import { createStore } from '@aztec/kv-store/lmdb';
|
|
7
|
+
import { L2TipsStore } from '@aztec/kv-store/stores';
|
|
8
|
+
import { KVPxeDatabase } from '../database/kv_pxe_database.js';
|
|
9
|
+
import { TestPrivateKernelProver } from '../kernel_prover/test/test_circuit_prover.js';
|
|
10
|
+
import { PXEService } from '../pxe_service/pxe_service.js';
|
|
11
|
+
/**
|
|
12
|
+
* Create and start an PXEService instance with the given AztecNode.
|
|
13
|
+
* If no keyStore or database is provided, it will use KeyStore and MemoryDB as default values.
|
|
14
|
+
* Returns a Promise that resolves to the started PXEService instance.
|
|
15
|
+
*
|
|
16
|
+
* @param aztecNode - The AztecNode instance to be used by the server.
|
|
17
|
+
* @param config - The PXE Service Config to use
|
|
18
|
+
* @param options - (Optional) Optional information for creating an PXEService.
|
|
19
|
+
* @param proofCreator - An optional proof creator to use in place of any other configuration
|
|
20
|
+
* @returns A Promise that resolves to the started PXEService instance.
|
|
21
|
+
*/
|
|
22
|
+
export async function createPXEService(aztecNode, config, useLogSuffix = undefined, proofCreator) {
|
|
23
|
+
const logSuffix = typeof useLogSuffix === 'boolean' ? (useLogSuffix ? randomBytes(3).toString('hex') : undefined) : useLogSuffix;
|
|
24
|
+
const l1Contracts = await aztecNode.getL1ContractAddresses();
|
|
25
|
+
const configWithContracts = {
|
|
26
|
+
...config,
|
|
27
|
+
l1Contracts,
|
|
28
|
+
};
|
|
29
|
+
const keyStore = new KeyStore(await createStore('pxe_key_store', configWithContracts, createLogger('pxe:keystore:lmdb')));
|
|
30
|
+
const store = await createStore('pxe_data', configWithContracts, createLogger('pxe:data:lmdb'));
|
|
31
|
+
const db = await KVPxeDatabase.create(store);
|
|
32
|
+
const tips = new L2TipsStore(store, 'pxe');
|
|
33
|
+
const prover = proofCreator ?? (await createProver(config, logSuffix));
|
|
34
|
+
const pxe = new PXEService(keyStore, aztecNode, db, tips, prover, config, logSuffix);
|
|
35
|
+
await pxe.init();
|
|
36
|
+
return pxe;
|
|
37
|
+
}
|
|
38
|
+
function createProver(config, logSuffix) {
|
|
39
|
+
if (!config.proverEnabled) {
|
|
40
|
+
return new TestPrivateKernelProver();
|
|
41
|
+
}
|
|
42
|
+
// (@PhilWindle) Temporary validation until WASM is implemented
|
|
43
|
+
if (!config.bbBinaryPath || !config.bbWorkingDirectory) {
|
|
44
|
+
return new BBWasmPrivateKernelProver(16);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
const bbConfig = config;
|
|
48
|
+
const log = createLogger('pxe:bb-native-prover' + (logSuffix ? `:${logSuffix}` : ''));
|
|
49
|
+
return BBNativePrivateKernelProver.new({ bbSkipCleanup: false, ...bbConfig }, log);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX3B4ZV9zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NyZWF0ZV9weGVfc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFM0Q7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsZ0JBQWdCLENBQ3BDLFNBQW9CLEVBQ3BCLE1BQXdCLEVBQ3hCLGVBQTZDLFNBQVMsRUFDdEQsWUFBa0M7SUFFbEMsTUFBTSxTQUFTLEdBQ2IsT0FBTyxZQUFZLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUVqSCxNQUFNLFdBQVcsR0FBRyxNQUFNLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQzdELE1BQU0sbUJBQW1CLEdBQUc7UUFDMUIsR0FBRyxNQUFNO1FBQ1QsV0FBVztLQUNRLENBQUM7SUFFdEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQzNCLE1BQU0sV0FBVyxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUMzRixDQUFDO0lBRUYsTUFBTSxLQUFLLEdBQUcsTUFBTSxXQUFXLENBQUMsVUFBVSxFQUFFLG1CQUFtQixFQUFFLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBRWhHLE1BQU0sRUFBRSxHQUFHLE1BQU0sYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxNQUFNLElBQUksR0FBRyxJQUFJLFdBQVcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFM0MsTUFBTSxNQUFNLEdBQUcsWUFBWSxJQUFJLENBQUMsTUFBTSxZQUFZLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDdkUsTUFBTSxHQUFHLEdBQUcsSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDckYsTUFBTSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsTUFBd0IsRUFBRSxTQUFrQjtJQUNoRSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFCLE9BQU8sSUFBSSx1QkFBdUIsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCwrREFBK0Q7SUFDL0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN2RCxPQUFPLElBQUkseUJBQXlCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLFFBQVEsR0FBRyxNQUNDLENBQUM7UUFDbkIsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLHNCQUFzQixHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLE9BQU8sMkJBQTJCLENBQUMsR0FBRyxDQUFDLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxHQUFHLFFBQVEsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7QUFDSCxDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/pxe",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.67.1-devnet",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"exports":
|
|
5
|
+
"exports": {
|
|
6
|
+
".": "./dest/index.js",
|
|
7
|
+
"./service": "./dest/pxe_service/index.js",
|
|
8
|
+
"./config": "./dest/config/index.js",
|
|
9
|
+
"./database": "./dest/database/index.js",
|
|
10
|
+
"./kernel_prover": "./dest/kernel_prover/index.js"
|
|
11
|
+
},
|
|
6
12
|
"bin": "./dest/bin/index.js",
|
|
7
13
|
"typedocOptions": {
|
|
8
14
|
"entryPoints": [
|
|
@@ -12,16 +18,18 @@
|
|
|
12
18
|
"tsconfig": "./tsconfig.json"
|
|
13
19
|
},
|
|
14
20
|
"scripts": {
|
|
15
|
-
"build": "yarn clean && tsc -b",
|
|
21
|
+
"build": "yarn clean && yarn generate && tsc -b",
|
|
16
22
|
"build:dev": "tsc -b --watch",
|
|
17
|
-
"clean": "rm -rf ./dest .tsbuildinfo",
|
|
23
|
+
"clean": "rm -rf ./dest .tsbuildinfo ./src/config/package_info.ts",
|
|
18
24
|
"formatting": "run -T prettier --check ./src && run -T eslint ./src",
|
|
19
25
|
"formatting:fix": "run -T eslint --fix ./src && run -T prettier -w ./src",
|
|
20
26
|
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests",
|
|
21
|
-
"start": "
|
|
27
|
+
"start": "LOG_LEVEL=${LOG_LEVEL:-debug} && node ./dest/bin/index.js",
|
|
28
|
+
"generate": "node ./scripts/generate_package_info.js"
|
|
22
29
|
},
|
|
23
30
|
"inherits": [
|
|
24
|
-
"../package.common.json"
|
|
31
|
+
"../package.common.json",
|
|
32
|
+
"./package.local.json"
|
|
25
33
|
],
|
|
26
34
|
"jest": {
|
|
27
35
|
"moduleNameMapper": {
|
|
@@ -56,22 +64,26 @@
|
|
|
56
64
|
"summaryThreshold": 9999
|
|
57
65
|
}
|
|
58
66
|
]
|
|
67
|
+
],
|
|
68
|
+
"testTimeout": 30000,
|
|
69
|
+
"setupFiles": [
|
|
70
|
+
"../../foundation/src/jest/setup.mjs"
|
|
59
71
|
]
|
|
60
72
|
},
|
|
61
73
|
"dependencies": {
|
|
62
|
-
"@aztec/bb-prover": "0.
|
|
63
|
-
"@aztec/bb.js": "0.
|
|
64
|
-
"@aztec/builder": "0.
|
|
65
|
-
"@aztec/circuit-types": "0.
|
|
66
|
-
"@aztec/circuits.js": "0.
|
|
67
|
-
"@aztec/ethereum": "0.
|
|
68
|
-
"@aztec/foundation": "0.
|
|
69
|
-
"@aztec/key-store": "0.
|
|
70
|
-
"@aztec/kv-store": "0.
|
|
71
|
-
"@aztec/noir-protocol-circuits-types": "0.
|
|
72
|
-
"@aztec/protocol-contracts": "0.
|
|
73
|
-
"@aztec/simulator": "0.
|
|
74
|
-
"@aztec/types": "0.
|
|
74
|
+
"@aztec/bb-prover": "0.67.1-devnet",
|
|
75
|
+
"@aztec/bb.js": "0.67.1-devnet",
|
|
76
|
+
"@aztec/builder": "0.67.1-devnet",
|
|
77
|
+
"@aztec/circuit-types": "0.67.1-devnet",
|
|
78
|
+
"@aztec/circuits.js": "0.67.1-devnet",
|
|
79
|
+
"@aztec/ethereum": "0.67.1-devnet",
|
|
80
|
+
"@aztec/foundation": "0.67.1-devnet",
|
|
81
|
+
"@aztec/key-store": "0.67.1-devnet",
|
|
82
|
+
"@aztec/kv-store": "0.67.1-devnet",
|
|
83
|
+
"@aztec/noir-protocol-circuits-types": "0.67.1-devnet",
|
|
84
|
+
"@aztec/protocol-contracts": "0.67.1-devnet",
|
|
85
|
+
"@aztec/simulator": "0.67.1-devnet",
|
|
86
|
+
"@aztec/types": "0.67.1-devnet",
|
|
75
87
|
"@msgpack/msgpack": "^3.0.0-beta2",
|
|
76
88
|
"@noir-lang/noirc_abi": "portal:../../noir/packages/noirc_abi",
|
|
77
89
|
"@noir-lang/types": "workspace:*",
|
package/src/bin/index.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env -S node --no-warnings
|
|
2
2
|
import { createAztecNodeClient } from '@aztec/circuit-types';
|
|
3
3
|
import { init } from '@aztec/foundation/crypto';
|
|
4
|
-
import {
|
|
4
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
5
5
|
|
|
6
6
|
import { getPXEServiceConfig } from '../config/index.js';
|
|
7
7
|
import { startPXEHttpServer } from '../pxe_http/index.js';
|
|
8
|
-
import { createPXEService } from '../
|
|
8
|
+
import { createPXEService } from '../utils/create_pxe_service.js';
|
|
9
9
|
|
|
10
10
|
const { PXE_PORT = 8080, AZTEC_NODE_URL = 'http://localhost:8079' } = process.env;
|
|
11
11
|
|
|
12
|
-
const logger =
|
|
12
|
+
const logger = createLogger('pxe:service');
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Create and start a new PXE HTTP Server
|
|
@@ -23,9 +23,8 @@ async function main() {
|
|
|
23
23
|
const nodeRpcClient = createAztecNodeClient(AZTEC_NODE_URL);
|
|
24
24
|
const pxeService = await createPXEService(nodeRpcClient, pxeConfig);
|
|
25
25
|
|
|
26
|
-
const shutdown =
|
|
26
|
+
const shutdown = () => {
|
|
27
27
|
logger.info('Shutting down...');
|
|
28
|
-
await pxeService.stop();
|
|
29
28
|
process.exit(0);
|
|
30
29
|
};
|
|
31
30
|
|
package/src/config/index.ts
CHANGED
|
@@ -8,10 +8,6 @@ import {
|
|
|
8
8
|
import { type DataStoreConfig, dataConfigMappings } from '@aztec/kv-store/config';
|
|
9
9
|
import { type Network } from '@aztec/types/network';
|
|
10
10
|
|
|
11
|
-
import { readFileSync } from 'fs';
|
|
12
|
-
import { dirname, resolve } from 'path';
|
|
13
|
-
import { fileURLToPath } from 'url';
|
|
14
|
-
|
|
15
11
|
/**
|
|
16
12
|
* Temporary configuration until WASM can be used instead of native
|
|
17
13
|
*/
|
|
@@ -32,8 +28,6 @@ export interface KernelProverConfig {
|
|
|
32
28
|
* Configuration settings for the PXE.
|
|
33
29
|
*/
|
|
34
30
|
export interface PXEConfig {
|
|
35
|
-
/** The interval to wait between polling for new blocks. */
|
|
36
|
-
l2BlockPollingIntervalMS: number;
|
|
37
31
|
/** L2 block to start scanning from for new accounts */
|
|
38
32
|
l2StartingBlock: number;
|
|
39
33
|
}
|
|
@@ -51,11 +45,6 @@ export type CliPXEOptions = {
|
|
|
51
45
|
|
|
52
46
|
export const pxeConfigMappings: ConfigMappingsType<PXEServiceConfig> = {
|
|
53
47
|
...dataConfigMappings,
|
|
54
|
-
l2BlockPollingIntervalMS: {
|
|
55
|
-
env: 'PXE_BLOCK_POLLING_INTERVAL_MS',
|
|
56
|
-
description: 'The interval to wait between polling for new blocks.',
|
|
57
|
-
...numberConfigHelper(1_000),
|
|
58
|
-
},
|
|
59
48
|
l2StartingBlock: {
|
|
60
49
|
env: 'PXE_L2_STARTING_BLOCK',
|
|
61
50
|
...numberConfigHelper(INITIAL_L2_BLOCK_NUM),
|
|
@@ -128,13 +117,3 @@ export function getCliPXEOptions(): CliPXEOptions & PXEServiceConfig {
|
|
|
128
117
|
proverEnabled: pxeConfig.proverEnabled || !!cliOptions.network,
|
|
129
118
|
};
|
|
130
119
|
}
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* Returns package name and version.
|
|
134
|
-
*/
|
|
135
|
-
export function getPackageInfo() {
|
|
136
|
-
const packageJsonPath = resolve(dirname(fileURLToPath(import.meta.url)), '../../package.json');
|
|
137
|
-
const { version, name } = JSON.parse(readFileSync(packageJsonPath).toString());
|
|
138
|
-
|
|
139
|
-
return { version, name };
|
|
140
|
-
}
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
getFunctionDebugMetadata,
|
|
8
8
|
} from '@aztec/foundation/abi';
|
|
9
9
|
import { type Fr } from '@aztec/foundation/fields';
|
|
10
|
-
import { ContractClassNotFoundError, ContractNotFoundError } from '@aztec/simulator';
|
|
10
|
+
import { ContractClassNotFoundError, ContractNotFoundError } from '@aztec/simulator/client';
|
|
11
11
|
|
|
12
12
|
import { type ContractArtifactDatabase } from '../database/contracts/contract_artifact_db.js';
|
|
13
13
|
import { type ContractInstanceDatabase } from '../database/contracts/contract_instance_db.js';
|
|
@@ -3,7 +3,7 @@ import { AztecAddress, Fr, Point, type PublicKey } from '@aztec/circuits.js';
|
|
|
3
3
|
import { NoteSelector } from '@aztec/foundation/abi';
|
|
4
4
|
import { toBigIntBE } from '@aztec/foundation/bigint-buffer';
|
|
5
5
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
6
|
-
import { type NoteData } from '@aztec/simulator';
|
|
6
|
+
import { type NoteData } from '@aztec/simulator/acvm';
|
|
7
7
|
|
|
8
8
|
import { type NoteInfo } from '../note_decryption_utils/index.js';
|
|
9
9
|
|
|
@@ -78,7 +78,7 @@ export class IncomingNoteDao implements NoteData {
|
|
|
78
78
|
this.noteTypeId,
|
|
79
79
|
this.txHash.buffer,
|
|
80
80
|
this.l2BlockNumber,
|
|
81
|
-
Fr.
|
|
81
|
+
Fr.fromHexString(this.l2BlockHash),
|
|
82
82
|
this.nonce,
|
|
83
83
|
this.noteHash,
|
|
84
84
|
this.siloedNullifier,
|