@aztec/node-lib 0.0.1-commit.ec5f612 → 0.0.1-commit.ec7ac5448
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/actions/snapshot-sync.d.ts +5 -4
- package/dest/actions/snapshot-sync.d.ts.map +1 -1
- package/dest/actions/snapshot-sync.js +4 -7
- package/dest/actions/upload-snapshot.d.ts +2 -2
- package/dest/actions/upload-snapshot.d.ts.map +1 -1
- package/dest/config/index.d.ts +5 -5
- package/dest/config/index.d.ts.map +1 -1
- package/dest/config/index.js +11 -9
- package/dest/factories/l1_tx_utils.d.ts +2 -2
- package/dest/factories/l1_tx_utils.d.ts.map +1 -1
- package/package.json +20 -21
- package/src/actions/snapshot-sync.ts +8 -9
- package/src/actions/upload-snapshot.ts +1 -1
- package/src/config/index.ts +21 -15
- package/src/factories/l1_tx_utils.ts +1 -1
|
@@ -3,11 +3,12 @@ import { type EthereumClientConfig } from '@aztec/ethereum/client';
|
|
|
3
3
|
import type { L1ContractsConfig } from '@aztec/ethereum/config';
|
|
4
4
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
5
5
|
import type { Logger } from '@aztec/foundation/log';
|
|
6
|
-
import type { DataStoreConfig } from '@aztec/kv-store/config';
|
|
7
6
|
import type { ChainConfig } from '@aztec/stdlib/config';
|
|
7
|
+
import { type ReadOnlyFileStore } from '@aztec/stdlib/file-store';
|
|
8
|
+
import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
|
|
8
9
|
import { type SnapshotMetadata } from '@aztec/stdlib/snapshots';
|
|
9
10
|
import type { SharedNodeConfig } from '../config/index.js';
|
|
10
|
-
type SnapshotSyncConfig = Pick<SharedNodeConfig, 'syncMode'> & Pick<ChainConfig, 'l1ChainId' | 'rollupVersion'> & Pick<L1ContractsConfig, 'aztecEpochDuration'> & Pick<ArchiverConfig, 'archiverStoreMapSizeKb' | 'maxLogs'> & Required<DataStoreConfig
|
|
11
|
+
type SnapshotSyncConfig = Pick<SharedNodeConfig, 'syncMode'> & Pick<ChainConfig, 'l1ChainId' | 'rollupVersion'> & Pick<L1ContractsConfig, 'aztecEpochDuration'> & Pick<ArchiverConfig, 'archiverStoreMapSizeKb' | 'maxLogs'> & DataStoreConfig & Required<Pick<DataStoreConfig, 'l1Contracts'>> & EthereumClientConfig & {
|
|
11
12
|
snapshotsUrls?: string[];
|
|
12
13
|
minL1BlocksToTriggerReplace?: number;
|
|
13
14
|
};
|
|
@@ -22,7 +23,7 @@ export declare function trySnapshotSync(config: SnapshotSyncConfig, log: Logger)
|
|
|
22
23
|
export declare function snapshotSync(snapshot: Pick<SnapshotMetadata, 'dataUrls'>, log: Logger, config: {
|
|
23
24
|
dataDirectory: string;
|
|
24
25
|
rollupAddress: EthAddress;
|
|
25
|
-
|
|
26
|
+
fileStore: ReadOnlyFileStore;
|
|
26
27
|
}): Promise<void>;
|
|
27
28
|
export {};
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHNob3Qtc3luYy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FjdGlvbnMvc25hcHNob3Qtc3luYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRDLEtBQUssY0FBYyxFQUF1QixNQUFNLGlCQUFpQixDQUFDO0FBRXJILE9BQU8sRUFBRSxLQUFLLG9CQUFvQixFQUFtQixNQUFNLHdCQUF3QixDQUFDO0FBQ3BGLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsT0FBTyxFQUFFLEtBQUssaUJBQWlCLEVBQTJCLE1BQU0sMEJBQTBCLENBQUM7QUFDM0YsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBS3RCLE1BQU0seUJBQXlCLENBQUM7QUFNakMsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUszRCxLQUFLLGtCQUFrQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsR0FDMUQsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsZUFBZSxDQUFDLEdBQ2hELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxvQkFBb0IsQ0FBQyxHQUM3QyxJQUFJLENBQUMsY0FBYyxFQUFFLHdCQUF3QixHQUFHLFNBQVMsQ0FBQyxHQUMxRCxlQUFlLEdBQ2YsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUMsR0FDOUMsb0JBQW9CLEdBQUc7SUFDckIsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDekIsMkJBQTJCLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDdEMsQ0FBQztBQUVKOzs7R0FHRztBQUNILHdCQUFzQixlQUFlLENBQUMsTUFBTSxFQUFFLGtCQUFrQixFQUFFLEdBQUcsRUFBRSxNQUFNLG9CQXFLNUU7QUFFRDs7R0FFRztBQUNILHdCQUFzQixZQUFZLENBQ2hDLFFBQVEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLEVBQzVDLEdBQUcsRUFBRSxNQUFNLEVBQ1gsTUFBTSxFQUFFO0lBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUFDLGFBQWEsRUFBRSxVQUFVLENBQUM7SUFBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUE7Q0FBRSxpQkFtRDNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-sync.d.ts","sourceRoot":"","sources":["../../src/actions/snapshot-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,cAAc,EAAuB,MAAM,iBAAiB,CAAC;AAErH,OAAO,EAAE,KAAK,oBAAoB,EAAmB,MAAM,wBAAwB,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"snapshot-sync.d.ts","sourceRoot":"","sources":["../../src/actions/snapshot-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,cAAc,EAAuB,MAAM,iBAAiB,CAAC;AAErH,OAAO,EAAE,KAAK,oBAAoB,EAAmB,MAAM,wBAAwB,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,KAAK,iBAAiB,EAA2B,MAAM,0BAA0B,CAAC;AAC3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACL,KAAK,gBAAgB,EAKtB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAK3D,KAAK,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,GAC1D,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,eAAe,CAAC,GAChD,IAAI,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAC7C,IAAI,CAAC,cAAc,EAAE,wBAAwB,GAAG,SAAS,CAAC,GAC1D,eAAe,GACf,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,GAC9C,oBAAoB,GAAG;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC,CAAC;AAEJ;;;GAGG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,oBAqK5E;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAC5C,GAAG,EAAE,MAAM,EACX,MAAM,EAAE;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,iBAAiB,CAAA;CAAE,iBAmD3F"}
|
|
@@ -32,9 +32,7 @@ const MIN_L1_BLOCKS_TO_TRIGGER_REPLACE = 86400 / 2 / 12;
|
|
|
32
32
|
}
|
|
33
33
|
// Create an archiver store to check the current state (do this only once)
|
|
34
34
|
log.verbose(`Creating temporary archiver data store`);
|
|
35
|
-
const archiverStore = await createArchiverStore(config
|
|
36
|
-
epochDuration: config.aztecEpochDuration
|
|
37
|
-
});
|
|
35
|
+
const archiverStore = await createArchiverStore(config);
|
|
38
36
|
let archiverL1BlockNumber;
|
|
39
37
|
let archiverL2BlockNumber;
|
|
40
38
|
try {
|
|
@@ -134,7 +132,7 @@ const MIN_L1_BLOCKS_TO_TRIGGER_REPLACE = 86400 / 2 / 12;
|
|
|
134
132
|
// Sort candidates by L1 block number (highest first)
|
|
135
133
|
snapshotCandidates.sort((a, b)=>b.snapshot.l1BlockNumber - a.snapshot.l1BlockNumber);
|
|
136
134
|
// Try each candidate in order until one succeeds
|
|
137
|
-
for (const { snapshot, url } of snapshotCandidates){
|
|
135
|
+
for (const { snapshot, url, fileStore } of snapshotCandidates){
|
|
138
136
|
const { l1BlockNumber, l2BlockNumber } = snapshot;
|
|
139
137
|
log.info(`Attempting to sync from snapshot at L1 block ${l1BlockNumber} L2 block ${l2BlockNumber}`, {
|
|
140
138
|
snapshot,
|
|
@@ -144,7 +142,7 @@ const MIN_L1_BLOCKS_TO_TRIGGER_REPLACE = 86400 / 2 / 12;
|
|
|
144
142
|
await snapshotSync(snapshot, log, {
|
|
145
143
|
dataDirectory: config.dataDirectory,
|
|
146
144
|
rollupAddress: config.l1Contracts.rollupAddress,
|
|
147
|
-
|
|
145
|
+
fileStore
|
|
148
146
|
});
|
|
149
147
|
log.info(`Snapshot synced to L1 block ${l1BlockNumber} L2 block ${l2BlockNumber}`, {
|
|
150
148
|
snapshot,
|
|
@@ -167,11 +165,10 @@ const MIN_L1_BLOCKS_TO_TRIGGER_REPLACE = 86400 / 2 / 12;
|
|
|
167
165
|
/**
|
|
168
166
|
* Downloads the given snapshot replacing any local data stores.
|
|
169
167
|
*/ export async function snapshotSync(snapshot, log, config) {
|
|
170
|
-
const { dataDirectory, rollupAddress } = config;
|
|
168
|
+
const { dataDirectory, rollupAddress, fileStore } = config;
|
|
171
169
|
if (!dataDirectory) {
|
|
172
170
|
throw new Error(`No local data directory defined. Cannot sync snapshot.`);
|
|
173
171
|
}
|
|
174
|
-
const fileStore = await createReadOnlyFileStore(config.snapshotsUrl, log);
|
|
175
172
|
let downloadDir;
|
|
176
173
|
try {
|
|
177
174
|
// Download the snapshot to a temp location.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { type Archiver } from '@aztec/archiver';
|
|
2
2
|
import type { Logger } from '@aztec/foundation/log';
|
|
3
|
-
import type { DataStoreConfig } from '@aztec/kv-store/config';
|
|
4
3
|
import type { ChainConfig } from '@aztec/stdlib/config';
|
|
5
4
|
import type { WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
|
|
5
|
+
import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
|
|
6
6
|
export type UploadSnapshotConfig = Pick<ChainConfig, 'l1ChainId' | 'rollupVersion'> & Pick<DataStoreConfig, 'dataDirectory'>;
|
|
7
7
|
/**
|
|
8
8
|
* Pauses the archiver and world state sync, creates backups of the archiver and world state lmdb environments,
|
|
9
9
|
* and uploads them to the specified location. Location must be a URL supported by our file store (eg `gs://bucketname/path`).
|
|
10
10
|
*/
|
|
11
11
|
export declare function uploadSnapshot(location: string, archiver: Archiver, worldState: WorldStateSynchronizer, config: UploadSnapshotConfig, log: Logger): Promise<void>;
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLXNuYXBzaG90LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWN0aW9ucy91cGxvYWQtc25hcHNob3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixLQUFLLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXJFLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFXOUQsTUFBTSxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLGVBQWUsQ0FBQyxHQUNqRixJQUFJLENBQUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBRXpDOzs7R0FHRztBQUNILHdCQUFzQixjQUFjLENBQ2xDLFFBQVEsRUFBRSxNQUFNLEVBQ2hCLFFBQVEsRUFBRSxRQUFRLEVBQ2xCLFVBQVUsRUFBRSxzQkFBc0IsRUFDbEMsTUFBTSxFQUFFLG9CQUFvQixFQUM1QixHQUFHLEVBQUUsTUFBTSxpQkFvQloifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-snapshot.d.ts","sourceRoot":"","sources":["../../src/actions/upload-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"upload-snapshot.d.ts","sourceRoot":"","sources":["../../src/actions/upload-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAW9D,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,eAAe,CAAC,GACjF,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AAEzC;;;GAGG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,sBAAsB,EAClC,MAAM,EAAE,oBAAoB,EAC5B,GAAG,EAAE,MAAM,iBAoBZ"}
|
package/dest/config/index.d.ts
CHANGED
|
@@ -4,20 +4,20 @@ export type SharedNodeConfig = {
|
|
|
4
4
|
testAccounts: boolean;
|
|
5
5
|
/** Whether to populate the genesis state with initial fee juice for the sponsored FPC */
|
|
6
6
|
sponsoredFPC: boolean;
|
|
7
|
+
/** Additional addresses to prefund with fee juice at genesis */
|
|
8
|
+
prefundAddresses: string[];
|
|
7
9
|
/** Sync mode: full to always sync via L1, snapshot to download a snapshot if there is no local data, force-snapshot to download even if there is local data. */
|
|
8
10
|
syncMode: 'full' | 'snapshot' | 'force-snapshot';
|
|
9
11
|
/** Base URLs for snapshots index. Index file will be searched at `SNAPSHOTS_BASE_URL/aztec-L1_CHAIN_ID-VERSION-ROLLUP_ADDRESS/index.json` */
|
|
10
12
|
snapshotsUrls?: string[];
|
|
11
|
-
/** Auto update mode: disabled - to completely ignore remote signals to update the node. enabled - to respect the signals (potentially shutting this node down). log - check for updates but log a warning instead of applying them*/
|
|
12
|
-
autoUpdate?: 'disabled' | 'notify' | 'config' | 'config-and-version';
|
|
13
|
-
/** The base URL against which to check for updates */
|
|
14
|
-
autoUpdateUrl?: string;
|
|
15
13
|
/** URL of the Web3Signer instance */
|
|
16
14
|
web3SignerUrl?: string;
|
|
17
15
|
/** Whether to run in fisherman mode */
|
|
18
16
|
fishermanMode?: boolean;
|
|
19
17
|
/** Force verification of tx Chonk proofs. Only used for testnet */
|
|
20
18
|
debugForceTxProofVerification: boolean;
|
|
19
|
+
/** Check if the node version matches the latest version for the network */
|
|
20
|
+
enableVersionCheck: boolean;
|
|
21
21
|
};
|
|
22
22
|
export declare const sharedNodeConfigMappings: ConfigMappingsType<SharedNodeConfig>;
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQXVCLE1BQU0sMEJBQTBCLENBQUM7QUFFeEYsTUFBTSxNQUFNLGdCQUFnQixHQUFHO0lBQzdCLHlGQUF5RjtJQUN6RixZQUFZLEVBQUUsT0FBTyxDQUFDO0lBQ3RCLHlGQUF5RjtJQUN6RixZQUFZLEVBQUUsT0FBTyxDQUFDO0lBQ3RCLGdFQUFnRTtJQUNoRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUMzQixnS0FBZ0s7SUFDaEssUUFBUSxFQUFFLE1BQU0sR0FBRyxVQUFVLEdBQUcsZ0JBQWdCLENBQUM7SUFDakQsNklBQTZJO0lBQzdJLGFBQWEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3pCLHFDQUFxQztJQUNyQyxhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsdUNBQXVDO0lBQ3ZDLGFBQWEsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUV4QixtRUFBbUU7SUFDbkUsNkJBQTZCLEVBQUUsT0FBTyxDQUFDO0lBRXZDLDJFQUEyRTtJQUMzRSxrQkFBa0IsRUFBRSxPQUFPLENBQUM7Q0FDN0IsQ0FBQztBQUVGLGVBQU8sTUFBTSx3QkFBd0IsRUFBRSxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0EyRHpFLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAuB,MAAM,0BAA0B,CAAC;AAExF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;IACtB,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;IACtB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAuB,MAAM,0BAA0B,CAAC;AAExF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;IACtB,yFAAyF;IACzF,YAAY,EAAE,OAAO,CAAC;IACtB,gEAAgE;IAChE,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,gKAAgK;IAChK,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,gBAAgB,CAAC;IACjD,6IAA6I;IAC7I,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,qCAAqC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,mEAAmE;IACnE,6BAA6B,EAAE,OAAO,CAAC;IAEvC,2EAA2E;IAC3E,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,CAAC,gBAAgB,CA2DzE,CAAC"}
|
package/dest/config/index.js
CHANGED
|
@@ -10,6 +10,12 @@ export const sharedNodeConfigMappings = {
|
|
|
10
10
|
description: 'Whether to populate the genesis state with initial fee juice for the sponsored FPC.',
|
|
11
11
|
...booleanConfigHelper(false)
|
|
12
12
|
},
|
|
13
|
+
prefundAddresses: {
|
|
14
|
+
env: 'PREFUND_ADDRESSES',
|
|
15
|
+
description: 'Comma-separated list of Aztec addresses to prefund with fee juice at genesis (local network only).',
|
|
16
|
+
parseEnv: (val)=>val.split(',').map((a)=>a.trim()).filter((a)=>a.length > 0),
|
|
17
|
+
defaultValue: []
|
|
18
|
+
},
|
|
13
19
|
syncMode: {
|
|
14
20
|
env: 'SYNC_MODE',
|
|
15
21
|
description: 'Set sync mode to `full` to always sync via L1, `snapshot` to download a snapshot if there is no local data, `force-snapshot` to download even if there is local data.',
|
|
@@ -24,15 +30,6 @@ export const sharedNodeConfigMappings = {
|
|
|
24
30
|
],
|
|
25
31
|
defaultValue: []
|
|
26
32
|
},
|
|
27
|
-
autoUpdate: {
|
|
28
|
-
env: 'AUTO_UPDATE',
|
|
29
|
-
description: 'The auto update mode for this node',
|
|
30
|
-
defaultValue: 'disabled'
|
|
31
|
-
},
|
|
32
|
-
autoUpdateUrl: {
|
|
33
|
-
env: 'AUTO_UPDATE_URL',
|
|
34
|
-
description: 'Base URL to check for updates'
|
|
35
|
-
},
|
|
36
33
|
web3SignerUrl: {
|
|
37
34
|
env: 'WEB3_SIGNER_URL',
|
|
38
35
|
description: 'URL of the Web3Signer instance',
|
|
@@ -47,5 +44,10 @@ export const sharedNodeConfigMappings = {
|
|
|
47
44
|
env: 'DEBUG_FORCE_TX_PROOF_VERIFICATION',
|
|
48
45
|
description: 'Whether to force tx proof verification. Only has an effect if real proving is turned off',
|
|
49
46
|
...booleanConfigHelper(false)
|
|
47
|
+
},
|
|
48
|
+
enableVersionCheck: {
|
|
49
|
+
env: 'ENABLE_VERSION_CHECK',
|
|
50
|
+
description: 'Check if the node is running the latest version and is following the latest rollup',
|
|
51
|
+
...booleanConfigHelper(true)
|
|
50
52
|
}
|
|
51
53
|
};
|
|
@@ -5,7 +5,7 @@ import type { ExtendedViemWalletClient, ViemClient } from '@aztec/ethereum/types
|
|
|
5
5
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
6
6
|
import { createLogger } from '@aztec/foundation/log';
|
|
7
7
|
import type { DateProvider } from '@aztec/foundation/timer';
|
|
8
|
-
import type { DataStoreConfig } from '@aztec/kv-store
|
|
8
|
+
import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
|
|
9
9
|
import type { TelemetryClient } from '@aztec/telemetry-client';
|
|
10
10
|
import type { L1TxScope } from '../metrics/l1_tx_metrics.js';
|
|
11
11
|
/**
|
|
@@ -63,4 +63,4 @@ export declare function createForwarderL1TxUtilsFromSigners(client: ViemClient,
|
|
|
63
63
|
dateProvider: DateProvider;
|
|
64
64
|
kzg?: BlobKzgInstance;
|
|
65
65
|
}): Promise<import("@aztec/ethereum/l1-tx-utils-with-blobs").ForwarderL1TxUtils[]>;
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfdHhfdXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9mYWN0b3JpZXMvbDFfdHhfdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbkUsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEYsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTVELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRS9ELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBc0M3RDs7O0dBR0c7QUFDSCx3QkFBc0IsMEJBQTBCLENBQzlDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxFQUNuQyxNQUFNLEVBQUUsZUFBZSxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsR0FBRztJQUFFLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxDQUFBO0NBQUUsRUFDdEcsSUFBSSxFQUFFO0lBQ0osU0FBUyxFQUFFLGVBQWUsQ0FBQztJQUMzQixNQUFNLENBQUMsRUFBRSxVQUFVLENBQUMsT0FBTyxZQUFZLENBQUMsQ0FBQztJQUN6QyxZQUFZLEVBQUUsWUFBWSxDQUFDO0lBQzNCLEdBQUcsQ0FBQyxFQUFFLGVBQWUsQ0FBQztDQUN2Qiw4REFLRjtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBc0IsMEJBQTBCLENBQzlDLE1BQU0sRUFBRSxVQUFVLEVBQ2xCLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFDcEIsTUFBTSxFQUFFLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUc7SUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsQ0FBQTtDQUFFLEVBQ3RHLElBQUksRUFBRTtJQUNKLFNBQVMsRUFBRSxlQUFlLENBQUM7SUFDM0IsTUFBTSxDQUFDLEVBQUUsVUFBVSxDQUFDLE9BQU8sWUFBWSxDQUFDLENBQUM7SUFDekMsWUFBWSxFQUFFLFlBQVksQ0FBQztJQUMzQixHQUFHLENBQUMsRUFBRSxlQUFlLENBQUM7Q0FDdkIsOERBdUJGO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFzQixtQ0FBbUMsQ0FDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLEVBQ25DLGdCQUFnQixFQUFFLFVBQVUsRUFDNUIsTUFBTSxFQUFFLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUc7SUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsQ0FBQTtDQUFFLEVBQ3RHLElBQUksRUFBRTtJQUNKLFNBQVMsRUFBRSxlQUFlLENBQUM7SUFDM0IsTUFBTSxDQUFDLEVBQUUsVUFBVSxDQUFDLE9BQU8sWUFBWSxDQUFDLENBQUM7SUFDekMsWUFBWSxFQUFFLFlBQVksQ0FBQztJQUMzQixHQUFHLENBQUMsRUFBRSxlQUFlLENBQUM7Q0FDdkIsa0ZBT0Y7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQXNCLG1DQUFtQyxDQUN2RCxNQUFNLEVBQUUsVUFBVSxFQUNsQixPQUFPLEVBQUUsU0FBUyxFQUFFLEVBQ3BCLGdCQUFnQixFQUFFLFVBQVUsRUFDNUIsTUFBTSxFQUFFLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUc7SUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsQ0FBQTtDQUFFLEVBQ3RHLElBQUksRUFBRTtJQUNKLFNBQVMsRUFBRSxlQUFlLENBQUM7SUFDM0IsTUFBTSxDQUFDLEVBQUUsVUFBVSxDQUFDLE9BQU8sWUFBWSxDQUFDLENBQUM7SUFDekMsWUFBWSxFQUFFLFlBQVksQ0FBQztJQUMzQixHQUFHLENBQUMsRUFBRSxlQUFlLENBQUM7Q0FDdkIsa0ZBT0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l1_tx_utils.d.ts","sourceRoot":"","sources":["../../src/factories/l1_tx_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"l1_tx_utils.d.ts","sourceRoot":"","sources":["../../src/factories/l1_tx_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAsC7D;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,wBAAwB,EAAE,EACnC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,EACtG,IAAI,EAAE;IACJ,SAAS,EAAE,eAAe,CAAC;IAC3B,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IACzC,YAAY,EAAE,YAAY,CAAC;IAC3B,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB,8DAKF;AAED;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,SAAS,EAAE,EACpB,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,EACtG,IAAI,EAAE;IACJ,SAAS,EAAE,eAAe,CAAC;IAC3B,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IACzC,YAAY,EAAE,YAAY,CAAC;IAC3B,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB,8DAuBF;AAED;;;;GAIG;AACH,wBAAsB,mCAAmC,CACvD,OAAO,EAAE,wBAAwB,EAAE,EACnC,gBAAgB,EAAE,UAAU,EAC5B,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,EACtG,IAAI,EAAE;IACJ,SAAS,EAAE,eAAe,CAAC;IAC3B,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IACzC,YAAY,EAAE,YAAY,CAAC;IAC3B,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB,kFAOF;AAED;;;;GAIG;AACH,wBAAsB,mCAAmC,CACvD,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,SAAS,EAAE,EACpB,gBAAgB,EAAE,UAAU,EAC5B,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,EACtG,IAAI,EAAE;IACJ,SAAS,EAAE,eAAe,CAAC;IAC3B,MAAM,CAAC,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IACzC,YAAY,EAAE,YAAY,CAAC;IAC3B,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB,kFAOF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/node-lib",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.ec7ac5448",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"typedocOptions": {
|
|
6
6
|
"entryPoints": [
|
|
@@ -66,29 +66,28 @@
|
|
|
66
66
|
]
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|
|
69
|
-
"@aztec/archiver": "0.0.1-commit.
|
|
70
|
-
"@aztec/bb-prover": "0.0.1-commit.
|
|
71
|
-
"@aztec/blob-client": "0.0.1-commit.
|
|
72
|
-
"@aztec/constants": "0.0.1-commit.
|
|
73
|
-
"@aztec/epoch-cache": "0.0.1-commit.
|
|
74
|
-
"@aztec/ethereum": "0.0.1-commit.
|
|
75
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
76
|
-
"@aztec/kv-store": "0.0.1-commit.
|
|
77
|
-
"@aztec/
|
|
78
|
-
"@aztec/
|
|
79
|
-
"@aztec/
|
|
80
|
-
"@aztec/
|
|
81
|
-
"@aztec/
|
|
82
|
-
"@aztec/
|
|
83
|
-
"@aztec/
|
|
84
|
-
"@aztec/
|
|
85
|
-
"@aztec/
|
|
86
|
-
"@aztec/world-state": "0.0.1-commit.ec5f612",
|
|
69
|
+
"@aztec/archiver": "0.0.1-commit.ec7ac5448",
|
|
70
|
+
"@aztec/bb-prover": "0.0.1-commit.ec7ac5448",
|
|
71
|
+
"@aztec/blob-client": "0.0.1-commit.ec7ac5448",
|
|
72
|
+
"@aztec/constants": "0.0.1-commit.ec7ac5448",
|
|
73
|
+
"@aztec/epoch-cache": "0.0.1-commit.ec7ac5448",
|
|
74
|
+
"@aztec/ethereum": "0.0.1-commit.ec7ac5448",
|
|
75
|
+
"@aztec/foundation": "0.0.1-commit.ec7ac5448",
|
|
76
|
+
"@aztec/kv-store": "0.0.1-commit.ec7ac5448",
|
|
77
|
+
"@aztec/p2p": "0.0.1-commit.ec7ac5448",
|
|
78
|
+
"@aztec/protocol-contracts": "0.0.1-commit.ec7ac5448",
|
|
79
|
+
"@aztec/prover-client": "0.0.1-commit.ec7ac5448",
|
|
80
|
+
"@aztec/sequencer-client": "0.0.1-commit.ec7ac5448",
|
|
81
|
+
"@aztec/simulator": "0.0.1-commit.ec7ac5448",
|
|
82
|
+
"@aztec/stdlib": "0.0.1-commit.ec7ac5448",
|
|
83
|
+
"@aztec/telemetry-client": "0.0.1-commit.ec7ac5448",
|
|
84
|
+
"@aztec/validator-client": "0.0.1-commit.ec7ac5448",
|
|
85
|
+
"@aztec/world-state": "0.0.1-commit.ec7ac5448",
|
|
87
86
|
"tslib": "^2.4.0"
|
|
88
87
|
},
|
|
89
88
|
"devDependencies": {
|
|
90
|
-
"@aztec/blob-lib": "0.0.1-commit.
|
|
91
|
-
"@aztec/node-keystore": "0.0.1-commit.
|
|
89
|
+
"@aztec/blob-lib": "0.0.1-commit.ec7ac5448",
|
|
90
|
+
"@aztec/node-keystore": "0.0.1-commit.ec7ac5448",
|
|
92
91
|
"@jest/globals": "^30.0.0",
|
|
93
92
|
"@types/jest": "^30.0.0",
|
|
94
93
|
"@types/node": "^22.15.17",
|
|
@@ -5,11 +5,11 @@ import type { L1ContractsConfig } from '@aztec/ethereum/config';
|
|
|
5
5
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
6
6
|
import { tryRmDir } from '@aztec/foundation/fs';
|
|
7
7
|
import type { Logger } from '@aztec/foundation/log';
|
|
8
|
-
import type { DataStoreConfig } from '@aztec/kv-store/config';
|
|
9
8
|
import { P2P_STORE_NAME } from '@aztec/p2p';
|
|
10
9
|
import type { ChainConfig } from '@aztec/stdlib/config';
|
|
11
10
|
import { DatabaseVersionManager } from '@aztec/stdlib/database-version/manager';
|
|
12
11
|
import { type ReadOnlyFileStore, createReadOnlyFileStore } from '@aztec/stdlib/file-store';
|
|
12
|
+
import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
|
|
13
13
|
import {
|
|
14
14
|
type SnapshotMetadata,
|
|
15
15
|
type SnapshotsIndexMetadata,
|
|
@@ -31,7 +31,8 @@ type SnapshotSyncConfig = Pick<SharedNodeConfig, 'syncMode'> &
|
|
|
31
31
|
Pick<ChainConfig, 'l1ChainId' | 'rollupVersion'> &
|
|
32
32
|
Pick<L1ContractsConfig, 'aztecEpochDuration'> &
|
|
33
33
|
Pick<ArchiverConfig, 'archiverStoreMapSizeKb' | 'maxLogs'> &
|
|
34
|
-
|
|
34
|
+
DataStoreConfig &
|
|
35
|
+
Required<Pick<DataStoreConfig, 'l1Contracts'>> &
|
|
35
36
|
EthereumClientConfig & {
|
|
36
37
|
snapshotsUrls?: string[];
|
|
37
38
|
minL1BlocksToTriggerReplace?: number;
|
|
@@ -60,7 +61,7 @@ export async function trySnapshotSync(config: SnapshotSyncConfig, log: Logger) {
|
|
|
60
61
|
|
|
61
62
|
// Create an archiver store to check the current state (do this only once)
|
|
62
63
|
log.verbose(`Creating temporary archiver data store`);
|
|
63
|
-
const archiverStore = await createArchiverStore(config
|
|
64
|
+
const archiverStore = await createArchiverStore(config);
|
|
64
65
|
let archiverL1BlockNumber: bigint | undefined;
|
|
65
66
|
let archiverL2BlockNumber: number | undefined;
|
|
66
67
|
try {
|
|
@@ -177,7 +178,7 @@ export async function trySnapshotSync(config: SnapshotSyncConfig, log: Logger) {
|
|
|
177
178
|
snapshotCandidates.sort((a, b) => b.snapshot.l1BlockNumber - a.snapshot.l1BlockNumber);
|
|
178
179
|
|
|
179
180
|
// Try each candidate in order until one succeeds
|
|
180
|
-
for (const { snapshot, url } of snapshotCandidates) {
|
|
181
|
+
for (const { snapshot, url, fileStore } of snapshotCandidates) {
|
|
181
182
|
const { l1BlockNumber, l2BlockNumber } = snapshot;
|
|
182
183
|
log.info(`Attempting to sync from snapshot at L1 block ${l1BlockNumber} L2 block ${l2BlockNumber}`, {
|
|
183
184
|
snapshot,
|
|
@@ -188,7 +189,7 @@ export async function trySnapshotSync(config: SnapshotSyncConfig, log: Logger) {
|
|
|
188
189
|
await snapshotSync(snapshot, log, {
|
|
189
190
|
dataDirectory: config.dataDirectory!,
|
|
190
191
|
rollupAddress: config.l1Contracts.rollupAddress,
|
|
191
|
-
|
|
192
|
+
fileStore,
|
|
192
193
|
});
|
|
193
194
|
log.info(`Snapshot synced to L1 block ${l1BlockNumber} L2 block ${l2BlockNumber}`, {
|
|
194
195
|
snapshot,
|
|
@@ -214,15 +215,13 @@ export async function trySnapshotSync(config: SnapshotSyncConfig, log: Logger) {
|
|
|
214
215
|
export async function snapshotSync(
|
|
215
216
|
snapshot: Pick<SnapshotMetadata, 'dataUrls'>,
|
|
216
217
|
log: Logger,
|
|
217
|
-
config: { dataDirectory: string; rollupAddress: EthAddress;
|
|
218
|
+
config: { dataDirectory: string; rollupAddress: EthAddress; fileStore: ReadOnlyFileStore },
|
|
218
219
|
) {
|
|
219
|
-
const { dataDirectory, rollupAddress } = config;
|
|
220
|
+
const { dataDirectory, rollupAddress, fileStore } = config;
|
|
220
221
|
if (!dataDirectory) {
|
|
221
222
|
throw new Error(`No local data directory defined. Cannot sync snapshot.`);
|
|
222
223
|
}
|
|
223
224
|
|
|
224
|
-
const fileStore = await createReadOnlyFileStore(config.snapshotsUrl, log);
|
|
225
|
-
|
|
226
225
|
let downloadDir: string | undefined;
|
|
227
226
|
|
|
228
227
|
try {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ARCHIVER_DB_VERSION, type Archiver } from '@aztec/archiver';
|
|
2
2
|
import { tryRmDir } from '@aztec/foundation/fs';
|
|
3
3
|
import type { Logger } from '@aztec/foundation/log';
|
|
4
|
-
import type { DataStoreConfig } from '@aztec/kv-store/config';
|
|
5
4
|
import type { ChainConfig } from '@aztec/stdlib/config';
|
|
6
5
|
import { createFileStore } from '@aztec/stdlib/file-store';
|
|
7
6
|
import type { WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
|
|
7
|
+
import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
|
|
8
8
|
import { uploadSnapshotToIndex } from '@aztec/stdlib/snapshots';
|
|
9
9
|
import { WORLD_STATE_DB_VERSION } from '@aztec/world-state';
|
|
10
10
|
|
package/src/config/index.ts
CHANGED
|
@@ -5,16 +5,12 @@ export type SharedNodeConfig = {
|
|
|
5
5
|
testAccounts: boolean;
|
|
6
6
|
/** Whether to populate the genesis state with initial fee juice for the sponsored FPC */
|
|
7
7
|
sponsoredFPC: boolean;
|
|
8
|
+
/** Additional addresses to prefund with fee juice at genesis */
|
|
9
|
+
prefundAddresses: string[];
|
|
8
10
|
/** Sync mode: full to always sync via L1, snapshot to download a snapshot if there is no local data, force-snapshot to download even if there is local data. */
|
|
9
11
|
syncMode: 'full' | 'snapshot' | 'force-snapshot';
|
|
10
12
|
/** Base URLs for snapshots index. Index file will be searched at `SNAPSHOTS_BASE_URL/aztec-L1_CHAIN_ID-VERSION-ROLLUP_ADDRESS/index.json` */
|
|
11
13
|
snapshotsUrls?: string[];
|
|
12
|
-
|
|
13
|
-
/** Auto update mode: disabled - to completely ignore remote signals to update the node. enabled - to respect the signals (potentially shutting this node down). log - check for updates but log a warning instead of applying them*/
|
|
14
|
-
autoUpdate?: 'disabled' | 'notify' | 'config' | 'config-and-version';
|
|
15
|
-
/** The base URL against which to check for updates */
|
|
16
|
-
autoUpdateUrl?: string;
|
|
17
|
-
|
|
18
14
|
/** URL of the Web3Signer instance */
|
|
19
15
|
web3SignerUrl?: string;
|
|
20
16
|
/** Whether to run in fisherman mode */
|
|
@@ -22,6 +18,9 @@ export type SharedNodeConfig = {
|
|
|
22
18
|
|
|
23
19
|
/** Force verification of tx Chonk proofs. Only used for testnet */
|
|
24
20
|
debugForceTxProofVerification: boolean;
|
|
21
|
+
|
|
22
|
+
/** Check if the node version matches the latest version for the network */
|
|
23
|
+
enableVersionCheck: boolean;
|
|
25
24
|
};
|
|
26
25
|
|
|
27
26
|
export const sharedNodeConfigMappings: ConfigMappingsType<SharedNodeConfig> = {
|
|
@@ -35,6 +34,16 @@ export const sharedNodeConfigMappings: ConfigMappingsType<SharedNodeConfig> = {
|
|
|
35
34
|
description: 'Whether to populate the genesis state with initial fee juice for the sponsored FPC.',
|
|
36
35
|
...booleanConfigHelper(false),
|
|
37
36
|
},
|
|
37
|
+
prefundAddresses: {
|
|
38
|
+
env: 'PREFUND_ADDRESSES',
|
|
39
|
+
description: 'Comma-separated list of Aztec addresses to prefund with fee juice at genesis (local network only).',
|
|
40
|
+
parseEnv: (val: string) =>
|
|
41
|
+
val
|
|
42
|
+
.split(',')
|
|
43
|
+
.map(a => a.trim())
|
|
44
|
+
.filter(a => a.length > 0),
|
|
45
|
+
defaultValue: [],
|
|
46
|
+
},
|
|
38
47
|
syncMode: {
|
|
39
48
|
env: 'SYNC_MODE',
|
|
40
49
|
description:
|
|
@@ -52,15 +61,6 @@ export const sharedNodeConfigMappings: ConfigMappingsType<SharedNodeConfig> = {
|
|
|
52
61
|
fallback: ['SYNC_SNAPSHOTS_URL'],
|
|
53
62
|
defaultValue: [],
|
|
54
63
|
},
|
|
55
|
-
autoUpdate: {
|
|
56
|
-
env: 'AUTO_UPDATE',
|
|
57
|
-
description: 'The auto update mode for this node',
|
|
58
|
-
defaultValue: 'disabled',
|
|
59
|
-
},
|
|
60
|
-
autoUpdateUrl: {
|
|
61
|
-
env: 'AUTO_UPDATE_URL',
|
|
62
|
-
description: 'Base URL to check for updates',
|
|
63
|
-
},
|
|
64
64
|
web3SignerUrl: {
|
|
65
65
|
env: 'WEB3_SIGNER_URL',
|
|
66
66
|
description: 'URL of the Web3Signer instance',
|
|
@@ -76,4 +76,10 @@ export const sharedNodeConfigMappings: ConfigMappingsType<SharedNodeConfig> = {
|
|
|
76
76
|
description: 'Whether to force tx proof verification. Only has an effect if real proving is turned off',
|
|
77
77
|
...booleanConfigHelper(false),
|
|
78
78
|
},
|
|
79
|
+
|
|
80
|
+
enableVersionCheck: {
|
|
81
|
+
env: 'ENABLE_VERSION_CHECK',
|
|
82
|
+
description: 'Check if the node is running the latest version and is following the latest rollup',
|
|
83
|
+
...booleanConfigHelper(true),
|
|
84
|
+
},
|
|
79
85
|
};
|
|
@@ -8,8 +8,8 @@ import { omit } from '@aztec/foundation/collection';
|
|
|
8
8
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
9
9
|
import { createLogger } from '@aztec/foundation/log';
|
|
10
10
|
import type { DateProvider } from '@aztec/foundation/timer';
|
|
11
|
-
import type { DataStoreConfig } from '@aztec/kv-store/config';
|
|
12
11
|
import { createStore } from '@aztec/kv-store/lmdb-v2';
|
|
12
|
+
import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
|
|
13
13
|
import type { TelemetryClient } from '@aztec/telemetry-client';
|
|
14
14
|
|
|
15
15
|
import type { L1TxScope } from '../metrics/l1_tx_metrics.js';
|