@aztec/archiver 0.82.2-alpha-testnet.4 → 0.82.3
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/archiver/archiver.d.ts +6 -0
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +28 -2
- package/dest/archiver/archiver_store.d.ts +4 -0
- package/dest/archiver/archiver_store.d.ts.map +1 -1
- package/dest/archiver/index.d.ts +1 -1
- package/dest/archiver/index.d.ts.map +1 -1
- package/dest/archiver/index.js +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts +3 -0
- package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -1
- package/dest/archiver/kv_archiver_store/kv_archiver_store.js +10 -1
- package/dest/factory.d.ts +5 -1
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +12 -8
- package/package.json +12 -12
- package/src/archiver/archiver.ts +34 -1
- package/src/archiver/archiver_store.ts +6 -0
- package/src/archiver/index.ts +1 -1
- package/src/archiver/kv_archiver_store/kv_archiver_store.ts +14 -1
- package/src/factory.ts +17 -10
|
@@ -47,6 +47,7 @@ export declare class Archiver extends EventEmitter implements ArchiveSource, Tra
|
|
|
47
47
|
private store;
|
|
48
48
|
private l1BlockNumber;
|
|
49
49
|
private l1Timestamp;
|
|
50
|
+
private initialSyncComplete;
|
|
50
51
|
readonly tracer: Tracer;
|
|
51
52
|
/**
|
|
52
53
|
* Creates a new instance of the Archiver.
|
|
@@ -94,11 +95,14 @@ export declare class Archiver extends EventEmitter implements ArchiveSource, Tra
|
|
|
94
95
|
private nextRange;
|
|
95
96
|
private handleL1ToL2Messages;
|
|
96
97
|
private handleL2blocks;
|
|
98
|
+
/** Resumes the archiver after a stop. */
|
|
99
|
+
resume(): void;
|
|
97
100
|
/**
|
|
98
101
|
* Stops the archiver.
|
|
99
102
|
* @returns A promise signalling completion of the stop process.
|
|
100
103
|
*/
|
|
101
104
|
stop(): Promise<void>;
|
|
105
|
+
backupTo(destPath: string): Promise<string>;
|
|
102
106
|
getL1Constants(): Promise<L1RollupConstants>;
|
|
103
107
|
getRollupAddress(): Promise<EthAddress>;
|
|
104
108
|
getRegistryAddress(): Promise<EthAddress>;
|
|
@@ -109,6 +113,8 @@ export declare class Archiver extends EventEmitter implements ArchiveSource, Tra
|
|
|
109
113
|
getBlocksForEpoch(epochNumber: bigint): Promise<L2Block[]>;
|
|
110
114
|
getBlockHeadersForEpoch(epochNumber: bigint): Promise<BlockHeader[]>;
|
|
111
115
|
isEpochComplete(epochNumber: bigint): Promise<boolean>;
|
|
116
|
+
/** Returns whether the archiver has completed an initial sync run successfully. */
|
|
117
|
+
isInitialSyncComplete(): boolean;
|
|
112
118
|
/**
|
|
113
119
|
* Gets up to `limit` amount of L2 blocks starting from `from`.
|
|
114
120
|
* @param from - Number of the first block to return (inclusive).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAkB,KAAK,gBAAgB,EAAuB,MAAM,iBAAiB,CAAC;AAC7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAclE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,EAEZ,KAAK,aAAa,EAElB,KAAK,MAAM,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EAMjC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,iBAAiB,EAMvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC3G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAoB,KAAK,SAAS,EAAE,KAAK,UAAU,EAAkB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACtH,OAAO,KAAK,EAAa,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,KAAK,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,SAAS,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AAEnH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,KAAK,EAAE,iBAAiB,EAAwB,MAAM,qBAAqB,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,YAAY,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;AAEpG;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,YAAa,YAAW,aAAa,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,7 @@ import { ArchiverInstrumentation } from './instrumentation.js';
|
|
|
44
44
|
store;
|
|
45
45
|
l1BlockNumber;
|
|
46
46
|
l1Timestamp;
|
|
47
|
+
initialSyncComplete;
|
|
47
48
|
tracer;
|
|
48
49
|
/**
|
|
49
50
|
* Creates a new instance of the Archiver.
|
|
@@ -55,7 +56,7 @@ import { ArchiverInstrumentation } from './instrumentation.js';
|
|
|
55
56
|
* @param store - An archiver data store for storage & retrieval of blocks, encrypted logs & contract data.
|
|
56
57
|
* @param log - A logger.
|
|
57
58
|
*/ constructor(publicClient, l1Addresses, dataStore, config, blobSinkClient, instrumentation, l1constants, log = createLogger('archiver')){
|
|
58
|
-
super(), this.publicClient = publicClient, this.l1Addresses = l1Addresses, this.dataStore = dataStore, this.config = config, this.blobSinkClient = blobSinkClient, this.instrumentation = instrumentation, this.l1constants = l1constants, this.log = log;
|
|
59
|
+
super(), this.publicClient = publicClient, this.l1Addresses = l1Addresses, this.dataStore = dataStore, this.config = config, this.blobSinkClient = blobSinkClient, this.instrumentation = instrumentation, this.l1constants = l1constants, this.log = log, this.initialSyncComplete = false;
|
|
59
60
|
this.tracer = instrumentation.tracer;
|
|
60
61
|
this.store = new ArchiverStoreHelper(dataStore);
|
|
61
62
|
this.rollup = new RollupContract(publicClient, l1Addresses.rollupAddress);
|
|
@@ -180,6 +181,7 @@ import { ArchiverInstrumentation } from './instrumentation.js';
|
|
|
180
181
|
// but the corresponding blocks have not been processed (see #12631).
|
|
181
182
|
this.l1Timestamp = currentL1Timestamp;
|
|
182
183
|
this.l1BlockNumber = currentL1BlockNumber;
|
|
184
|
+
this.initialSyncComplete = true;
|
|
183
185
|
if (initialRun) {
|
|
184
186
|
this.log.info(`Initial archiver sync to L1 block ${currentL1BlockNumber} complete.`, {
|
|
185
187
|
l1BlockNumber: currentL1BlockNumber,
|
|
@@ -190,9 +192,17 @@ import { ArchiverInstrumentation } from './instrumentation.js';
|
|
|
190
192
|
}
|
|
191
193
|
/** Queries the rollup contract on whether a prune can be executed on the immediatenext L1 block. */ async canPrune(currentL1BlockNumber, currentL1Timestamp) {
|
|
192
194
|
const time = (currentL1Timestamp ?? 0n) + BigInt(this.l1constants.ethereumSlotDuration);
|
|
193
|
-
|
|
195
|
+
const result = await this.rollup.canPruneAtTime(time, {
|
|
194
196
|
blockNumber: currentL1BlockNumber
|
|
195
197
|
});
|
|
198
|
+
if (result) {
|
|
199
|
+
this.log.debug(`Rollup contract allows pruning at L1 block ${currentL1BlockNumber} time ${time}`, {
|
|
200
|
+
currentL1Timestamp,
|
|
201
|
+
pruneTime: time,
|
|
202
|
+
currentL1BlockNumber
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
return result;
|
|
196
206
|
}
|
|
197
207
|
/** Checks if there'd be a reorg for the next block submission and start pruning now. */ async handleEpochPrune(provenBlockNumber, currentL1BlockNumber, currentL1Timestamp) {
|
|
198
208
|
const localPendingBlockNumber = BigInt(await this.getBlockNumber());
|
|
@@ -384,6 +394,16 @@ import { ArchiverInstrumentation } from './instrumentation.js';
|
|
|
384
394
|
provenBlockNumber
|
|
385
395
|
};
|
|
386
396
|
}
|
|
397
|
+
/** Resumes the archiver after a stop. */ resume() {
|
|
398
|
+
if (!this.runningPromise) {
|
|
399
|
+
throw new Error(`Archiver was never started`);
|
|
400
|
+
}
|
|
401
|
+
if (this.runningPromise.isRunning()) {
|
|
402
|
+
this.log.warn(`Archiver already running`);
|
|
403
|
+
}
|
|
404
|
+
this.log.info(`Restarting archiver`);
|
|
405
|
+
this.runningPromise.start();
|
|
406
|
+
}
|
|
387
407
|
/**
|
|
388
408
|
* Stops the archiver.
|
|
389
409
|
* @returns A promise signalling completion of the stop process.
|
|
@@ -393,6 +413,9 @@ import { ArchiverInstrumentation } from './instrumentation.js';
|
|
|
393
413
|
this.log.info('Stopped.');
|
|
394
414
|
return Promise.resolve();
|
|
395
415
|
}
|
|
416
|
+
backupTo(destPath) {
|
|
417
|
+
return this.dataStore.backupTo(destPath);
|
|
418
|
+
}
|
|
396
419
|
getL1Constants() {
|
|
397
420
|
return Promise.resolve(this.l1constants);
|
|
398
421
|
}
|
|
@@ -477,6 +500,9 @@ import { ArchiverInstrumentation } from './instrumentation.js';
|
|
|
477
500
|
const leeway = 1n;
|
|
478
501
|
return l1Timestamp + leeway >= endTimestamp;
|
|
479
502
|
}
|
|
503
|
+
/** Returns whether the archiver has completed an initial sync run successfully. */ isInitialSyncComplete() {
|
|
504
|
+
return this.initialSyncComplete;
|
|
505
|
+
}
|
|
480
506
|
/**
|
|
481
507
|
* Gets up to `limit` amount of L2 blocks starting from `from`.
|
|
482
508
|
* @param from - Number of the first block to return (inclusive).
|
|
@@ -202,5 +202,9 @@ export interface ArchiverDataStore {
|
|
|
202
202
|
actualSize: number;
|
|
203
203
|
numItems: number;
|
|
204
204
|
}>;
|
|
205
|
+
/** Backups the archiver db to the target folder. Returns the path to the db file. */
|
|
206
|
+
backupTo(path: string): Promise<string>;
|
|
207
|
+
/** Closes the underlying data store. */
|
|
208
|
+
close(): Promise<void>;
|
|
205
209
|
}
|
|
206
210
|
//# sourceMappingURL=archiver_store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver_store.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"archiver_store.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver_store.ts"],"names":[],"mappings":"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"}
|
package/dest/archiver/index.d.ts
CHANGED
|
@@ -2,6 +2,6 @@ export * from './archiver.js';
|
|
|
2
2
|
export * from './config.js';
|
|
3
3
|
export { type PublishedL2Block, type L1PublishedData } from './structs/published.js';
|
|
4
4
|
export type { ArchiverDataStore } from './archiver_store.js';
|
|
5
|
-
export { KVArchiverDataStore } from './kv_archiver_store/kv_archiver_store.js';
|
|
5
|
+
export { KVArchiverDataStore, ARCHIVER_DB_VERSION } from './kv_archiver_store/kv_archiver_store.js';
|
|
6
6
|
export { ContractInstanceStore } from './kv_archiver_store/contract_instance_store.js';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/archiver/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACrF,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/archiver/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACrF,YAAY,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC"}
|
package/dest/archiver/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './archiver.js';
|
|
2
2
|
export * from './config.js';
|
|
3
|
-
export { KVArchiverDataStore } from './kv_archiver_store/kv_archiver_store.js';
|
|
3
|
+
export { KVArchiverDataStore, ARCHIVER_DB_VERSION } from './kv_archiver_store/kv_archiver_store.js';
|
|
4
4
|
export { ContractInstanceStore } from './kv_archiver_store/contract_instance_store.js';
|
|
@@ -11,6 +11,7 @@ import type { BlockHeader, TxHash, TxReceipt } from '@aztec/stdlib/tx';
|
|
|
11
11
|
import type { ArchiverDataStore, ArchiverL1SynchPoint } from '../archiver_store.js';
|
|
12
12
|
import type { DataRetrieval } from '../structs/data_retrieval.js';
|
|
13
13
|
import type { PublishedL2Block } from '../structs/published.js';
|
|
14
|
+
export declare const ARCHIVER_DB_VERSION = 1;
|
|
14
15
|
/**
|
|
15
16
|
* LMDB implementation of the ArchiverDataStore interface.
|
|
16
17
|
*/
|
|
@@ -20,6 +21,8 @@ export declare class KVArchiverDataStore implements ArchiverDataStore {
|
|
|
20
21
|
static readonly SCHEMA_VERSION = 1;
|
|
21
22
|
private functionNames;
|
|
22
23
|
constructor(db: AztecAsyncKVStore, logsMaxPageSize?: number);
|
|
24
|
+
backupTo(path: string, compress?: boolean): Promise<string>;
|
|
25
|
+
close(): Promise<void>;
|
|
23
26
|
getDebugFunctionName(_address: AztecAddress, selector: FunctionSelector): Promise<string | undefined>;
|
|
24
27
|
registerContractFunctionSignatures(_address: AztecAddress, signatures: string[]): Promise<void>;
|
|
25
28
|
getContractClass(id: Fr): Promise<ContractClassPublic | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kv_archiver_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/kv_archiver_store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAGnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EACV,mBAAmB,EACnB,iCAAiC,EACjC,2BAA2B,EAC3B,4CAA4C,EAC5C,wCAAwC,EACzC,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC3G,OAAO,EAAE,KAAK,SAAS,EAAE,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"kv_archiver_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/kv_archiver_store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { toArray } from '@aztec/foundation/iterable';
|
|
2
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
3
|
import { FunctionSelector } from '@aztec/stdlib/abi';
|
|
4
|
+
import { join } from 'path';
|
|
4
5
|
import { BlockStore } from './block_store.js';
|
|
5
6
|
import { ContractClassStore } from './contract_class_store.js';
|
|
6
7
|
import { ContractInstanceStore } from './contract_instance_store.js';
|
|
7
8
|
import { LogStore } from './log_store.js';
|
|
8
9
|
import { MessageStore } from './message_store.js';
|
|
10
|
+
export const ARCHIVER_DB_VERSION = 1;
|
|
9
11
|
/**
|
|
10
12
|
* LMDB implementation of the ArchiverDataStore interface.
|
|
11
13
|
*/ export class KVArchiverDataStore {
|
|
12
14
|
db;
|
|
13
|
-
static SCHEMA_VERSION =
|
|
15
|
+
static SCHEMA_VERSION = ARCHIVER_DB_VERSION;
|
|
14
16
|
#blockStore;
|
|
15
17
|
#logStore;
|
|
16
18
|
#messageStore;
|
|
@@ -28,6 +30,13 @@ import { MessageStore } from './message_store.js';
|
|
|
28
30
|
this.#contractClassStore = new ContractClassStore(db);
|
|
29
31
|
this.#contractInstanceStore = new ContractInstanceStore(db);
|
|
30
32
|
}
|
|
33
|
+
async backupTo(path, compress = true) {
|
|
34
|
+
await this.db.backupTo(path, compress);
|
|
35
|
+
return join(path, 'data.mdb');
|
|
36
|
+
}
|
|
37
|
+
close() {
|
|
38
|
+
return this.db.close();
|
|
39
|
+
}
|
|
31
40
|
// TODO: These function names are in memory only as they are for development/debugging. They require the full contract
|
|
32
41
|
// artifact supplied to the node out of band. This should be reviewed and potentially removed as part of
|
|
33
42
|
// the node api cleanup process.
|
package/dest/factory.d.ts
CHANGED
|
@@ -4,6 +4,10 @@ import type { L2BlockSourceEventEmitter } from '@aztec/stdlib/block';
|
|
|
4
4
|
import type { ArchiverApi, Service } from '@aztec/stdlib/interfaces/server';
|
|
5
5
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
6
6
|
import type { ArchiverConfig } from './archiver/config.js';
|
|
7
|
+
import { KVArchiverDataStore } from './archiver/kv_archiver_store/kv_archiver_store.js';
|
|
8
|
+
export declare const ARCHIVER_STORE_NAME = "archiver";
|
|
9
|
+
/** Creates an archiver store. */
|
|
10
|
+
export declare function createArchiverStore(userConfig: Pick<ArchiverConfig, 'archiverStoreMapSizeKb' | 'maxLogs'> & DataStoreConfig): Promise<KVArchiverDataStore>;
|
|
7
11
|
/**
|
|
8
12
|
* Creates a local archiver.
|
|
9
13
|
* @param config - The archiver configuration.
|
|
@@ -12,7 +16,7 @@ import type { ArchiverConfig } from './archiver/config.js';
|
|
|
12
16
|
* @param telemetry - The telemetry client.
|
|
13
17
|
* @returns The local archiver.
|
|
14
18
|
*/
|
|
15
|
-
export declare function createArchiver(
|
|
19
|
+
export declare function createArchiver(config: ArchiverConfig & DataStoreConfig, blobSinkClient: BlobSinkClientInterface, opts?: {
|
|
16
20
|
blockUntilSync: boolean;
|
|
17
21
|
}, telemetry?: TelemetryClient): Promise<ArchiverApi & Service & L2BlockSourceEventEmitter>;
|
|
18
22
|
/**
|
package/dest/factory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAE5E,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAGnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iCAAiC,CAAC;AAE5E,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAGnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAuB,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AAG7G,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAE9C,iCAAiC;AACjC,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,wBAAwB,GAAG,SAAS,CAAC,GAAG,eAAe,gCAQzF;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,GAAG,eAAe,EACxC,cAAc,EAAE,uBAAuB,EACvC,IAAI,GAAE;IAAE,cAAc,EAAE,OAAO,CAAA;CAA6B,EAC5D,SAAS,GAAE,eAAsC,GAChD,OAAO,CAAC,WAAW,GAAG,OAAO,GAAG,yBAAyB,CAAC,CAI5D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,WAAW,CASxE"}
|
package/dest/factory.js
CHANGED
|
@@ -8,8 +8,17 @@ import { computePublicBytecodeCommitment } from '@aztec/stdlib/contract';
|
|
|
8
8
|
import { getComponentsVersionsFromConfig } from '@aztec/stdlib/versioning';
|
|
9
9
|
import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
10
10
|
import { Archiver } from './archiver/archiver.js';
|
|
11
|
-
import { KVArchiverDataStore } from './archiver/
|
|
11
|
+
import { ARCHIVER_DB_VERSION, KVArchiverDataStore } from './archiver/kv_archiver_store/kv_archiver_store.js';
|
|
12
12
|
import { createArchiverClient } from './rpc/index.js';
|
|
13
|
+
export const ARCHIVER_STORE_NAME = 'archiver';
|
|
14
|
+
/** Creates an archiver store. */ export async function createArchiverStore(userConfig) {
|
|
15
|
+
const config = {
|
|
16
|
+
...userConfig,
|
|
17
|
+
dataStoreMapSizeKB: userConfig.archiverStoreMapSizeKb ?? userConfig.dataStoreMapSizeKB
|
|
18
|
+
};
|
|
19
|
+
const store = await createStore(ARCHIVER_STORE_NAME, ARCHIVER_DB_VERSION, config, createLogger('archiver:lmdb'));
|
|
20
|
+
return new KVArchiverDataStore(store, config.maxLogs);
|
|
21
|
+
}
|
|
13
22
|
/**
|
|
14
23
|
* Creates a local archiver.
|
|
15
24
|
* @param config - The archiver configuration.
|
|
@@ -17,15 +26,10 @@ import { createArchiverClient } from './rpc/index.js';
|
|
|
17
26
|
* @param opts - The options.
|
|
18
27
|
* @param telemetry - The telemetry client.
|
|
19
28
|
* @returns The local archiver.
|
|
20
|
-
*/ export async function createArchiver(
|
|
29
|
+
*/ export async function createArchiver(config, blobSinkClient, opts = {
|
|
21
30
|
blockUntilSync: true
|
|
22
31
|
}, telemetry = getTelemetryClient()) {
|
|
23
|
-
const
|
|
24
|
-
..._config,
|
|
25
|
-
dataStoreMapSizeKB: _config.archiverStoreMapSizeKb ?? _config.dataStoreMapSizeKB
|
|
26
|
-
};
|
|
27
|
-
const store = await createStore('archiver', KVArchiverDataStore.SCHEMA_VERSION, config, createLogger('archiver:lmdb'));
|
|
28
|
-
const archiverStore = new KVArchiverDataStore(store, config.maxLogs);
|
|
32
|
+
const archiverStore = await createArchiverStore(config);
|
|
29
33
|
await registerProtocolContracts(archiverStore);
|
|
30
34
|
return Archiver.createAndSync(config, archiverStore, {
|
|
31
35
|
telemetry,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/archiver",
|
|
3
|
-
"version": "0.82.
|
|
3
|
+
"version": "0.82.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -64,17 +64,17 @@
|
|
|
64
64
|
]
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
|
-
"@aztec/blob-lib": "0.82.
|
|
68
|
-
"@aztec/blob-sink": "0.82.
|
|
69
|
-
"@aztec/constants": "0.82.
|
|
70
|
-
"@aztec/ethereum": "0.82.
|
|
71
|
-
"@aztec/foundation": "0.82.
|
|
72
|
-
"@aztec/kv-store": "0.82.
|
|
73
|
-
"@aztec/l1-artifacts": "0.82.
|
|
74
|
-
"@aztec/noir-protocol-circuits-types": "0.82.
|
|
75
|
-
"@aztec/protocol-contracts": "0.82.
|
|
76
|
-
"@aztec/stdlib": "0.82.
|
|
77
|
-
"@aztec/telemetry-client": "0.82.
|
|
67
|
+
"@aztec/blob-lib": "0.82.3",
|
|
68
|
+
"@aztec/blob-sink": "0.82.3",
|
|
69
|
+
"@aztec/constants": "0.82.3",
|
|
70
|
+
"@aztec/ethereum": "0.82.3",
|
|
71
|
+
"@aztec/foundation": "0.82.3",
|
|
72
|
+
"@aztec/kv-store": "0.82.3",
|
|
73
|
+
"@aztec/l1-artifacts": "0.82.3",
|
|
74
|
+
"@aztec/noir-protocol-circuits-types": "0.82.3",
|
|
75
|
+
"@aztec/protocol-contracts": "0.82.3",
|
|
76
|
+
"@aztec/stdlib": "0.82.3",
|
|
77
|
+
"@aztec/telemetry-client": "0.82.3",
|
|
78
78
|
"debug": "^4.3.4",
|
|
79
79
|
"lodash.groupby": "^4.6.0",
|
|
80
80
|
"lodash.omit": "^4.5.0",
|
package/src/archiver/archiver.ts
CHANGED
|
@@ -86,6 +86,7 @@ export class Archiver extends EventEmitter implements ArchiveSource, Traceable {
|
|
|
86
86
|
|
|
87
87
|
private l1BlockNumber: bigint | undefined;
|
|
88
88
|
private l1Timestamp: bigint | undefined;
|
|
89
|
+
private initialSyncComplete: boolean = false;
|
|
89
90
|
|
|
90
91
|
public readonly tracer: Tracer;
|
|
91
92
|
|
|
@@ -280,6 +281,7 @@ export class Archiver extends EventEmitter implements ArchiveSource, Traceable {
|
|
|
280
281
|
// but the corresponding blocks have not been processed (see #12631).
|
|
281
282
|
this.l1Timestamp = currentL1Timestamp;
|
|
282
283
|
this.l1BlockNumber = currentL1BlockNumber;
|
|
284
|
+
this.initialSyncComplete = true;
|
|
283
285
|
|
|
284
286
|
if (initialRun) {
|
|
285
287
|
this.log.info(`Initial archiver sync to L1 block ${currentL1BlockNumber} complete.`, {
|
|
@@ -293,7 +295,15 @@ export class Archiver extends EventEmitter implements ArchiveSource, Traceable {
|
|
|
293
295
|
/** Queries the rollup contract on whether a prune can be executed on the immediatenext L1 block. */
|
|
294
296
|
private async canPrune(currentL1BlockNumber: bigint, currentL1Timestamp: bigint) {
|
|
295
297
|
const time = (currentL1Timestamp ?? 0n) + BigInt(this.l1constants.ethereumSlotDuration);
|
|
296
|
-
|
|
298
|
+
const result = await this.rollup.canPruneAtTime(time, { blockNumber: currentL1BlockNumber });
|
|
299
|
+
if (result) {
|
|
300
|
+
this.log.debug(`Rollup contract allows pruning at L1 block ${currentL1BlockNumber} time ${time}`, {
|
|
301
|
+
currentL1Timestamp,
|
|
302
|
+
pruneTime: time,
|
|
303
|
+
currentL1BlockNumber,
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
return result;
|
|
297
307
|
}
|
|
298
308
|
|
|
299
309
|
/** Checks if there'd be a reorg for the next block submission and start pruning now. */
|
|
@@ -542,6 +552,18 @@ export class Archiver extends EventEmitter implements ArchiveSource, Traceable {
|
|
|
542
552
|
return { provenBlockNumber };
|
|
543
553
|
}
|
|
544
554
|
|
|
555
|
+
/** Resumes the archiver after a stop. */
|
|
556
|
+
public resume() {
|
|
557
|
+
if (!this.runningPromise) {
|
|
558
|
+
throw new Error(`Archiver was never started`);
|
|
559
|
+
}
|
|
560
|
+
if (this.runningPromise.isRunning()) {
|
|
561
|
+
this.log.warn(`Archiver already running`);
|
|
562
|
+
}
|
|
563
|
+
this.log.info(`Restarting archiver`);
|
|
564
|
+
this.runningPromise.start();
|
|
565
|
+
}
|
|
566
|
+
|
|
545
567
|
/**
|
|
546
568
|
* Stops the archiver.
|
|
547
569
|
* @returns A promise signalling completion of the stop process.
|
|
@@ -554,6 +576,10 @@ export class Archiver extends EventEmitter implements ArchiveSource, Traceable {
|
|
|
554
576
|
return Promise.resolve();
|
|
555
577
|
}
|
|
556
578
|
|
|
579
|
+
public backupTo(destPath: string): Promise<string> {
|
|
580
|
+
return this.dataStore.backupTo(destPath);
|
|
581
|
+
}
|
|
582
|
+
|
|
557
583
|
public getL1Constants(): Promise<L1RollupConstants> {
|
|
558
584
|
return Promise.resolve(this.l1constants);
|
|
559
585
|
}
|
|
@@ -654,6 +680,11 @@ export class Archiver extends EventEmitter implements ArchiveSource, Traceable {
|
|
|
654
680
|
return l1Timestamp + leeway >= endTimestamp;
|
|
655
681
|
}
|
|
656
682
|
|
|
683
|
+
/** Returns whether the archiver has completed an initial sync run successfully. */
|
|
684
|
+
public isInitialSyncComplete(): boolean {
|
|
685
|
+
return this.initialSyncComplete;
|
|
686
|
+
}
|
|
687
|
+
|
|
657
688
|
/**
|
|
658
689
|
* Gets up to `limit` amount of L2 blocks starting from `from`.
|
|
659
690
|
* @param from - Number of the first block to return (inclusive).
|
|
@@ -874,6 +905,8 @@ class ArchiverStoreHelper
|
|
|
874
905
|
| 'addContractInstanceUpdates'
|
|
875
906
|
| 'deleteContractInstanceUpdates'
|
|
876
907
|
| 'addFunctions'
|
|
908
|
+
| 'backupTo'
|
|
909
|
+
| 'close'
|
|
877
910
|
>
|
|
878
911
|
{
|
|
879
912
|
#log = createLogger('archiver:block-helper');
|
|
@@ -244,4 +244,10 @@ export interface ArchiverDataStore {
|
|
|
244
244
|
* Estimates the size of the store in bytes.
|
|
245
245
|
*/
|
|
246
246
|
estimateSize(): Promise<{ mappingSize: number; actualSize: number; numItems: number }>;
|
|
247
|
+
|
|
248
|
+
/** Backups the archiver db to the target folder. Returns the path to the db file. */
|
|
249
|
+
backupTo(path: string): Promise<string>;
|
|
250
|
+
|
|
251
|
+
/** Closes the underlying data store. */
|
|
252
|
+
close(): Promise<void>;
|
|
247
253
|
}
|
package/src/archiver/index.ts
CHANGED
|
@@ -2,5 +2,5 @@ export * from './archiver.js';
|
|
|
2
2
|
export * from './config.js';
|
|
3
3
|
export { type PublishedL2Block, type L1PublishedData } from './structs/published.js';
|
|
4
4
|
export type { ArchiverDataStore } from './archiver_store.js';
|
|
5
|
-
export { KVArchiverDataStore } from './kv_archiver_store/kv_archiver_store.js';
|
|
5
|
+
export { KVArchiverDataStore, ARCHIVER_DB_VERSION } from './kv_archiver_store/kv_archiver_store.js';
|
|
6
6
|
export { ContractInstanceStore } from './kv_archiver_store/contract_instance_store.js';
|
|
@@ -17,6 +17,8 @@ import { type LogFilter, PrivateLog, type TxScopedL2Log } from '@aztec/stdlib/lo
|
|
|
17
17
|
import type { InboxLeaf } from '@aztec/stdlib/messaging';
|
|
18
18
|
import type { BlockHeader, TxHash, TxReceipt } from '@aztec/stdlib/tx';
|
|
19
19
|
|
|
20
|
+
import { join } from 'path';
|
|
21
|
+
|
|
20
22
|
import type { ArchiverDataStore, ArchiverL1SynchPoint } from '../archiver_store.js';
|
|
21
23
|
import type { DataRetrieval } from '../structs/data_retrieval.js';
|
|
22
24
|
import type { PublishedL2Block } from '../structs/published.js';
|
|
@@ -26,11 +28,13 @@ import { ContractInstanceStore } from './contract_instance_store.js';
|
|
|
26
28
|
import { LogStore } from './log_store.js';
|
|
27
29
|
import { MessageStore } from './message_store.js';
|
|
28
30
|
|
|
31
|
+
export const ARCHIVER_DB_VERSION = 1;
|
|
32
|
+
|
|
29
33
|
/**
|
|
30
34
|
* LMDB implementation of the ArchiverDataStore interface.
|
|
31
35
|
*/
|
|
32
36
|
export class KVArchiverDataStore implements ArchiverDataStore {
|
|
33
|
-
public static readonly SCHEMA_VERSION =
|
|
37
|
+
public static readonly SCHEMA_VERSION = ARCHIVER_DB_VERSION;
|
|
34
38
|
|
|
35
39
|
#blockStore: BlockStore;
|
|
36
40
|
#logStore: LogStore;
|
|
@@ -49,6 +53,15 @@ export class KVArchiverDataStore implements ArchiverDataStore {
|
|
|
49
53
|
this.#contractInstanceStore = new ContractInstanceStore(db);
|
|
50
54
|
}
|
|
51
55
|
|
|
56
|
+
public async backupTo(path: string, compress = true): Promise<string> {
|
|
57
|
+
await this.db.backupTo(path, compress);
|
|
58
|
+
return join(path, 'data.mdb');
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
public close() {
|
|
62
|
+
return this.db.close();
|
|
63
|
+
}
|
|
64
|
+
|
|
52
65
|
// TODO: These function names are in memory only as they are for development/debugging. They require the full contract
|
|
53
66
|
// artifact supplied to the node out of band. This should be reviewed and potentially removed as part of
|
|
54
67
|
// the node api cleanup process.
|
package/src/factory.ts
CHANGED
|
@@ -14,9 +14,23 @@ import { type TelemetryClient, getTelemetryClient } from '@aztec/telemetry-clien
|
|
|
14
14
|
|
|
15
15
|
import { Archiver } from './archiver/archiver.js';
|
|
16
16
|
import type { ArchiverConfig } from './archiver/config.js';
|
|
17
|
-
import { KVArchiverDataStore } from './archiver/
|
|
17
|
+
import { ARCHIVER_DB_VERSION, KVArchiverDataStore } from './archiver/kv_archiver_store/kv_archiver_store.js';
|
|
18
18
|
import { createArchiverClient } from './rpc/index.js';
|
|
19
19
|
|
|
20
|
+
export const ARCHIVER_STORE_NAME = 'archiver';
|
|
21
|
+
|
|
22
|
+
/** Creates an archiver store. */
|
|
23
|
+
export async function createArchiverStore(
|
|
24
|
+
userConfig: Pick<ArchiverConfig, 'archiverStoreMapSizeKb' | 'maxLogs'> & DataStoreConfig,
|
|
25
|
+
) {
|
|
26
|
+
const config = {
|
|
27
|
+
...userConfig,
|
|
28
|
+
dataStoreMapSizeKB: userConfig.archiverStoreMapSizeKb ?? userConfig.dataStoreMapSizeKB,
|
|
29
|
+
};
|
|
30
|
+
const store = await createStore(ARCHIVER_STORE_NAME, ARCHIVER_DB_VERSION, config, createLogger('archiver:lmdb'));
|
|
31
|
+
return new KVArchiverDataStore(store, config.maxLogs);
|
|
32
|
+
}
|
|
33
|
+
|
|
20
34
|
/**
|
|
21
35
|
* Creates a local archiver.
|
|
22
36
|
* @param config - The archiver configuration.
|
|
@@ -26,19 +40,12 @@ import { createArchiverClient } from './rpc/index.js';
|
|
|
26
40
|
* @returns The local archiver.
|
|
27
41
|
*/
|
|
28
42
|
export async function createArchiver(
|
|
29
|
-
|
|
43
|
+
config: ArchiverConfig & DataStoreConfig,
|
|
30
44
|
blobSinkClient: BlobSinkClientInterface,
|
|
31
45
|
opts: { blockUntilSync: boolean } = { blockUntilSync: true },
|
|
32
46
|
telemetry: TelemetryClient = getTelemetryClient(),
|
|
33
47
|
): Promise<ArchiverApi & Service & L2BlockSourceEventEmitter> {
|
|
34
|
-
const
|
|
35
|
-
const store = await createStore(
|
|
36
|
-
'archiver',
|
|
37
|
-
KVArchiverDataStore.SCHEMA_VERSION,
|
|
38
|
-
config,
|
|
39
|
-
createLogger('archiver:lmdb'),
|
|
40
|
-
);
|
|
41
|
-
const archiverStore = new KVArchiverDataStore(store, config.maxLogs);
|
|
48
|
+
const archiverStore = await createArchiverStore(config);
|
|
42
49
|
await registerProtocolContracts(archiverStore);
|
|
43
50
|
return Archiver.createAndSync(config, archiverStore, { telemetry, blobSinkClient }, opts.blockUntilSync);
|
|
44
51
|
}
|