@aztec/archiver 0.0.1-commit.181e2d196 → 0.0.1-commit.1a421b1a1
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.d.ts +3 -3
- package/dest/archiver.d.ts.map +1 -1
- package/dest/archiver.js +43 -18
- package/dest/errors.d.ts +7 -9
- package/dest/errors.d.ts.map +1 -1
- package/dest/errors.js +9 -14
- package/dest/factory.d.ts +3 -4
- package/dest/factory.d.ts.map +1 -1
- package/dest/factory.js +8 -8
- package/dest/modules/data_source_base.d.ts +3 -3
- package/dest/modules/data_source_base.d.ts.map +1 -1
- package/dest/modules/data_store_updater.d.ts +15 -7
- package/dest/modules/data_store_updater.d.ts.map +1 -1
- package/dest/modules/data_store_updater.js +31 -12
- package/dest/modules/l1_synchronizer.d.ts +2 -1
- package/dest/modules/l1_synchronizer.d.ts.map +1 -1
- package/dest/modules/l1_synchronizer.js +28 -2
- package/dest/store/block_store.d.ts +10 -12
- package/dest/store/block_store.d.ts.map +1 -1
- package/dest/store/block_store.js +54 -57
- package/dest/store/kv_archiver_store.d.ts +16 -8
- package/dest/store/kv_archiver_store.d.ts.map +1 -1
- package/dest/store/kv_archiver_store.js +19 -7
- package/dest/store/message_store.js +1 -1
- package/dest/test/fake_l1_state.d.ts +8 -1
- package/dest/test/fake_l1_state.d.ts.map +1 -1
- package/dest/test/fake_l1_state.js +28 -2
- package/dest/test/mock_l2_block_source.d.ts +4 -3
- package/dest/test/mock_l2_block_source.d.ts.map +1 -1
- package/dest/test/mock_l2_block_source.js +5 -2
- package/dest/test/mock_structs.d.ts +4 -1
- package/dest/test/mock_structs.d.ts.map +1 -1
- package/dest/test/mock_structs.js +13 -1
- package/dest/test/noop_l1_archiver.d.ts +4 -1
- package/dest/test/noop_l1_archiver.d.ts.map +1 -1
- package/dest/test/noop_l1_archiver.js +5 -1
- package/package.json +13 -13
- package/src/archiver.ts +46 -19
- package/src/errors.ts +10 -24
- package/src/factory.ts +6 -5
- package/src/modules/data_source_base.ts +2 -2
- package/src/modules/data_store_updater.ts +29 -13
- package/src/modules/l1_synchronizer.ts +32 -3
- package/src/store/block_store.ts +61 -67
- package/src/store/kv_archiver_store.ts +22 -8
- package/src/store/message_store.ts +1 -1
- package/src/test/fake_l1_state.ts +35 -4
- package/src/test/mock_l2_block_source.ts +8 -2
- package/src/test/mock_structs.ts +20 -6
- package/src/test/noop_l1_archiver.ts +7 -1
package/dest/archiver.d.ts
CHANGED
|
@@ -125,8 +125,8 @@ export declare class Archiver extends ArchiverDataSourceBase implements L2BlockS
|
|
|
125
125
|
getRegistryAddress(): Promise<EthAddress>;
|
|
126
126
|
getL1BlockNumber(): bigint | undefined;
|
|
127
127
|
getL1Timestamp(): Promise<bigint | undefined>;
|
|
128
|
-
|
|
129
|
-
|
|
128
|
+
getSyncedL2SlotNumber(): Promise<SlotNumber | undefined>;
|
|
129
|
+
getSyncedL2EpochNumber(): Promise<EpochNumber | undefined>;
|
|
130
130
|
isEpochComplete(epochNumber: EpochNumber): Promise<boolean>;
|
|
131
131
|
/** Returns whether the archiver has completed an initial sync run successfully. */
|
|
132
132
|
isInitialSyncComplete(): boolean;
|
|
@@ -136,4 +136,4 @@ export declare class Archiver extends ArchiverDataSourceBase implements L2BlockS
|
|
|
136
136
|
getL2Tips(): Promise<L2Tips>;
|
|
137
137
|
rollbackTo(targetL2BlockNumber: BlockNumber): Promise<void>;
|
|
138
138
|
}
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjaGl2ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hcmNoaXZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQXVCLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hGLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFcEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGNBQWMsRUFBMkIsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUNMLEtBQUssZUFBZSxFQUNwQixPQUFPLEVBQ1AsS0FBSyxXQUFXLEVBQ2hCLEtBQUssTUFBTSxFQUNYLEtBQUssd0JBQXdCLEVBQzlCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUNMLEtBQUssaUJBQWlCLEVBS3ZCLE1BQU0sNkJBQTZCLENBQUM7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
|
package/dest/archiver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../src/archiver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAuB,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,cAAc,EAA2B,MAAM,mCAAmC,CAAC;AAC5F,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EACL,KAAK,eAAe,EACpB,OAAO,EACP,KAAK,WAAW,EAChB,KAAK,MAAM,EACX,KAAK,wBAAwB,EAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EACL,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../src/archiver.ts"],"names":[],"mappings":"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"}
|
package/dest/archiver.js
CHANGED
|
@@ -372,17 +372,17 @@ function _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass) {
|
|
|
372
372
|
}
|
|
373
373
|
var _dec, _initProto;
|
|
374
374
|
import { BlockTagTooOldError } from '@aztec/ethereum/contracts';
|
|
375
|
-
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
375
|
+
import { BlockNumber, EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
376
376
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
377
377
|
import { merge } from '@aztec/foundation/collection';
|
|
378
378
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
379
379
|
import { createLogger } from '@aztec/foundation/log';
|
|
380
380
|
import { promiseWithResolvers } from '@aztec/foundation/promise';
|
|
381
381
|
import { RunningPromise, makeLoggingErrorHandler } from '@aztec/foundation/running-promise';
|
|
382
|
-
import {
|
|
382
|
+
import { getEpochAtSlot, getSlotAtNextL1Block, getSlotRangeForEpoch, getTimestampRangeForEpoch } from '@aztec/stdlib/epoch-helpers';
|
|
383
383
|
import { trackSpan } from '@aztec/telemetry-client';
|
|
384
384
|
import { mapArchiverConfig } from './config.js';
|
|
385
|
-
import { NoBlobBodiesFoundError } from './errors.js';
|
|
385
|
+
import { BlockAlreadyCheckpointedError, NoBlobBodiesFoundError } from './errors.js';
|
|
386
386
|
import { validateAndLogTraceAvailability } from './l1/validate_trace.js';
|
|
387
387
|
import { ArchiverDataSourceBase } from './modules/data_source_base.js';
|
|
388
388
|
import { ArchiverDataStoreUpdater } from './modules/data_store_updater.js';
|
|
@@ -442,7 +442,9 @@ _dec = trackSpan('Archiver.sync');
|
|
|
442
442
|
this.synchronizer = synchronizer;
|
|
443
443
|
this.events = events;
|
|
444
444
|
this.l2TipsCache = l2TipsCache ?? new L2TipsCache(this.dataStore.blockStore);
|
|
445
|
-
this.updater = new ArchiverDataStoreUpdater(this.dataStore, this.l2TipsCache
|
|
445
|
+
this.updater = new ArchiverDataStoreUpdater(this.dataStore, this.l2TipsCache, {
|
|
446
|
+
rollupManaLimit: l1Constants.rollupManaLimit
|
|
447
|
+
});
|
|
446
448
|
// Running promise starts with a small interval inbetween runs, so all iterations needed for the initial sync
|
|
447
449
|
// are done as fast as possible. This then gets updated once the initial sync completes.
|
|
448
450
|
this.runningPromise = new RunningPromise(()=>this.sync(), this.log, this.config.pollingIntervalMs / 10, makeLoggingErrorHandler(this.log, NoBlobBodiesFoundError, BlockTagTooOldError));
|
|
@@ -526,12 +528,15 @@ _dec = trackSpan('Archiver.sync');
|
|
|
526
528
|
continue;
|
|
527
529
|
}
|
|
528
530
|
try {
|
|
529
|
-
await this.updater.
|
|
530
|
-
block
|
|
531
|
-
]);
|
|
531
|
+
await this.updater.addProposedBlock(block);
|
|
532
532
|
this.log.debug(`Added block ${block.number} to store`);
|
|
533
533
|
resolve();
|
|
534
534
|
} catch (err) {
|
|
535
|
+
if (err instanceof BlockAlreadyCheckpointedError) {
|
|
536
|
+
this.log.debug(`Proposed block ${block.number} matches already checkpointed block, ignoring late proposal`);
|
|
537
|
+
resolve();
|
|
538
|
+
continue;
|
|
539
|
+
}
|
|
535
540
|
this.log.error(`Failed to add block ${block.number} to store: ${err.message}`);
|
|
536
541
|
reject(err);
|
|
537
542
|
}
|
|
@@ -606,13 +611,34 @@ _dec = trackSpan('Archiver.sync');
|
|
|
606
611
|
getL1Timestamp() {
|
|
607
612
|
return Promise.resolve(this.synchronizer.getL1Timestamp());
|
|
608
613
|
}
|
|
609
|
-
|
|
614
|
+
getSyncedL2SlotNumber() {
|
|
610
615
|
const l1Timestamp = this.synchronizer.getL1Timestamp();
|
|
611
|
-
|
|
616
|
+
if (l1Timestamp === undefined) {
|
|
617
|
+
return Promise.resolve(undefined);
|
|
618
|
+
}
|
|
619
|
+
// The synced slot is the last L2 slot whose all L1 blocks have been processed.
|
|
620
|
+
// If the next L1 block (at l1Timestamp + ethereumSlotDuration) falls in slot N,
|
|
621
|
+
// then we've fully synced slot N-1.
|
|
622
|
+
const nextL1BlockSlot = getSlotAtNextL1Block(l1Timestamp, this.l1Constants);
|
|
623
|
+
if (Number(nextL1BlockSlot) === 0) {
|
|
624
|
+
return Promise.resolve(undefined);
|
|
625
|
+
}
|
|
626
|
+
return Promise.resolve(SlotNumber(nextL1BlockSlot - 1));
|
|
612
627
|
}
|
|
613
|
-
|
|
614
|
-
const
|
|
615
|
-
|
|
628
|
+
async getSyncedL2EpochNumber() {
|
|
629
|
+
const syncedSlot = await this.getSyncedL2SlotNumber();
|
|
630
|
+
if (syncedSlot === undefined) {
|
|
631
|
+
return undefined;
|
|
632
|
+
}
|
|
633
|
+
// An epoch is fully synced when all its slots are synced.
|
|
634
|
+
// We check if syncedSlot is the last slot of its epoch; if so, that epoch is fully synced.
|
|
635
|
+
// Otherwise, only the previous epoch is fully synced.
|
|
636
|
+
const epoch = getEpochAtSlot(syncedSlot, this.l1Constants);
|
|
637
|
+
const [, endSlot] = getSlotRangeForEpoch(epoch, this.l1Constants);
|
|
638
|
+
if (syncedSlot >= endSlot) {
|
|
639
|
+
return epoch;
|
|
640
|
+
}
|
|
641
|
+
return Number(epoch) > 0 ? EpochNumber(Number(epoch) - 1) : undefined;
|
|
616
642
|
}
|
|
617
643
|
async isEpochComplete(epochNumber) {
|
|
618
644
|
// The epoch is complete if the current checkpointed L2 block is the last one in the epoch (or later).
|
|
@@ -698,11 +724,10 @@ _dec = trackSpan('Archiver.sync');
|
|
|
698
724
|
this.log.info(`Rolling back proven L2 checkpoint to ${targetCheckpointNumber}`);
|
|
699
725
|
await this.updater.setProvenCheckpointNumber(targetCheckpointNumber);
|
|
700
726
|
}
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
// }
|
|
727
|
+
const currentFinalizedBlock = currentBlocks.finalized.block.number;
|
|
728
|
+
if (targetL2BlockNumber < currentFinalizedBlock) {
|
|
729
|
+
this.log.info(`Rolling back finalized L2 checkpoint to ${targetCheckpointNumber}`);
|
|
730
|
+
await this.updater.setFinalizedCheckpointNumber(targetCheckpointNumber);
|
|
731
|
+
}
|
|
707
732
|
}
|
|
708
733
|
}
|
package/dest/errors.d.ts
CHANGED
|
@@ -2,11 +2,6 @@ import type { Fr } from '@aztec/foundation/schemas';
|
|
|
2
2
|
export declare class NoBlobBodiesFoundError extends Error {
|
|
3
3
|
constructor(l2BlockNum: number);
|
|
4
4
|
}
|
|
5
|
-
export declare class InitialBlockNumberNotSequentialError extends Error {
|
|
6
|
-
readonly newBlockNumber: number;
|
|
7
|
-
readonly previousBlockNumber: number | undefined;
|
|
8
|
-
constructor(newBlockNumber: number, previousBlockNumber: number | undefined);
|
|
9
|
-
}
|
|
10
5
|
export declare class BlockNumberNotSequentialError extends Error {
|
|
11
6
|
constructor(newBlockNumber: number, previous: number | undefined);
|
|
12
7
|
}
|
|
@@ -18,9 +13,6 @@ export declare class InitialCheckpointNumberNotSequentialError extends Error {
|
|
|
18
13
|
export declare class CheckpointNumberNotSequentialError extends Error {
|
|
19
14
|
constructor(newCheckpointNumber: number, previous: number | undefined);
|
|
20
15
|
}
|
|
21
|
-
export declare class CheckpointNumberNotConsistentError extends Error {
|
|
22
|
-
constructor(newCheckpointNumber: number, previous: number | undefined);
|
|
23
|
-
}
|
|
24
16
|
export declare class BlockIndexNotSequentialError extends Error {
|
|
25
17
|
constructor(newBlockIndex: number, previousBlockIndex: number | undefined);
|
|
26
18
|
}
|
|
@@ -33,9 +25,15 @@ export declare class CheckpointNotFoundError extends Error {
|
|
|
33
25
|
export declare class BlockNotFoundError extends Error {
|
|
34
26
|
constructor(blockNumber: number);
|
|
35
27
|
}
|
|
28
|
+
/** Thrown when a proposed block matches a block that was already checkpointed. This is expected for late proposals. */
|
|
29
|
+
export declare class BlockAlreadyCheckpointedError extends Error {
|
|
30
|
+
readonly blockNumber: number;
|
|
31
|
+
constructor(blockNumber: number);
|
|
32
|
+
}
|
|
33
|
+
/** Thrown when a proposed block conflicts with an already checkpointed block (different content). */
|
|
36
34
|
export declare class CannotOverwriteCheckpointedBlockError extends Error {
|
|
37
35
|
readonly blockNumber: number;
|
|
38
36
|
readonly lastCheckpointedBlock: number;
|
|
39
37
|
constructor(blockNumber: number, lastCheckpointedBlock: number);
|
|
40
38
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBELHFCQUFhLHNCQUF1QixTQUFRLEtBQUs7SUFDL0MsWUFBWSxVQUFVLEVBQUUsTUFBTSxFQUU3QjtDQUNGO0FBRUQscUJBQWEsNkJBQThCLFNBQVEsS0FBSztJQUN0RCxZQUFZLGNBQWMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBRS9EO0NBQ0Y7QUFFRCxxQkFBYSx5Q0FBMEMsU0FBUSxLQUFLO2FBRWhELG1CQUFtQixFQUFFLE1BQU07YUFDM0Isd0JBQXdCLEVBQUUsTUFBTSxHQUFHLFNBQVM7SUFGOUQsWUFDa0IsbUJBQW1CLEVBQUUsTUFBTSxFQUMzQix3QkFBd0IsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQU83RDtDQUNGO0FBRUQscUJBQWEsa0NBQW1DLFNBQVEsS0FBSztJQUMzRCxZQUFZLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFJcEU7Q0FDRjtBQUVELHFCQUFhLDRCQUE2QixTQUFRLEtBQUs7SUFDckQsWUFBWSxhQUFhLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sR0FBRyxTQUFTLEVBSXhFO0NBQ0Y7QUFFRCxxQkFBYSw4QkFBK0IsU0FBUSxLQUFLO0lBQ3ZELFlBQ0UsY0FBYyxFQUFFLE1BQU0sRUFDdEIsbUJBQW1CLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDdkMsZUFBZSxFQUFFLEVBQUUsRUFDbkIsb0JBQW9CLEVBQUUsRUFBRSxFQUt6QjtDQUNGO0FBRUQscUJBQWEsdUJBQXdCLFNBQVEsS0FBSztJQUNoRCxZQUFZLGdCQUFnQixFQUFFLE1BQU0sRUFFbkM7Q0FDRjtBQUVELHFCQUFhLGtCQUFtQixTQUFRLEtBQUs7SUFDM0MsWUFBWSxXQUFXLEVBQUUsTUFBTSxFQUU5QjtDQUNGO0FBRUQsdUhBQXVIO0FBQ3ZILHFCQUFhLDZCQUE4QixTQUFRLEtBQUs7YUFDMUIsV0FBVyxFQUFFLE1BQU07SUFBL0MsWUFBNEIsV0FBVyxFQUFFLE1BQU0sRUFHOUM7Q0FDRjtBQUVELHFHQUFxRztBQUNyRyxxQkFBYSxxQ0FBc0MsU0FBUSxLQUFLO2FBRTVDLFdBQVcsRUFBRSxNQUFNO2FBQ25CLHFCQUFxQixFQUFFLE1BQU07SUFGL0MsWUFDa0IsV0FBVyxFQUFFLE1BQU0sRUFDbkIscUJBQXFCLEVBQUUsTUFBTSxFQU05QztDQUNGIn0=
|
package/dest/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAEpD,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,UAAU,EAAE,MAAM,EAE7B;CACF;AAED,qBAAa,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAEpD,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,UAAU,EAAE,MAAM,EAE7B;CACF;AAED,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,YAAY,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAE/D;CACF;AAED,qBAAa,yCAA0C,SAAQ,KAAK;aAEhD,mBAAmB,EAAE,MAAM;aAC3B,wBAAwB,EAAE,MAAM,GAAG,SAAS;IAF9D,YACkB,mBAAmB,EAAE,MAAM,EAC3B,wBAAwB,EAAE,MAAM,GAAG,SAAS,EAO7D;CACF;AAED,qBAAa,kCAAmC,SAAQ,KAAK;IAC3D,YAAY,mBAAmB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAIpE;CACF;AAED,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,YAAY,aAAa,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,SAAS,EAIxE;CACF;AAED,qBAAa,8BAA+B,SAAQ,KAAK;IACvD,YACE,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,MAAM,GAAG,SAAS,EACvC,eAAe,EAAE,EAAE,EACnB,oBAAoB,EAAE,EAAE,EAKzB;CACF;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,YAAY,gBAAgB,EAAE,MAAM,EAEnC;CACF;AAED,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,WAAW,EAAE,MAAM,EAE9B;CACF;AAED,uHAAuH;AACvH,qBAAa,6BAA8B,SAAQ,KAAK;aAC1B,WAAW,EAAE,MAAM;IAA/C,YAA4B,WAAW,EAAE,MAAM,EAG9C;CACF;AAED,qGAAqG;AACrG,qBAAa,qCAAsC,SAAQ,KAAK;aAE5C,WAAW,EAAE,MAAM;aACnB,qBAAqB,EAAE,MAAM;IAF/C,YACkB,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,MAAM,EAM9C;CACF"}
|
package/dest/errors.js
CHANGED
|
@@ -3,16 +3,9 @@ export class NoBlobBodiesFoundError extends Error {
|
|
|
3
3
|
super(`No blob bodies found for block ${l2BlockNum}`);
|
|
4
4
|
}
|
|
5
5
|
}
|
|
6
|
-
export class InitialBlockNumberNotSequentialError extends Error {
|
|
7
|
-
newBlockNumber;
|
|
8
|
-
previousBlockNumber;
|
|
9
|
-
constructor(newBlockNumber, previousBlockNumber){
|
|
10
|
-
super(`Cannot insert new block ${newBlockNumber} given previous block number in store is ${previousBlockNumber ?? 'undefined'}`), this.newBlockNumber = newBlockNumber, this.previousBlockNumber = previousBlockNumber;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
6
|
export class BlockNumberNotSequentialError extends Error {
|
|
14
7
|
constructor(newBlockNumber, previous){
|
|
15
|
-
super(`Cannot insert new block ${newBlockNumber} given previous block number
|
|
8
|
+
super(`Cannot insert new block ${newBlockNumber} given previous block number is ${previous ?? 'undefined'}`);
|
|
16
9
|
}
|
|
17
10
|
}
|
|
18
11
|
export class InitialCheckpointNumberNotSequentialError extends Error {
|
|
@@ -27,11 +20,6 @@ export class CheckpointNumberNotSequentialError extends Error {
|
|
|
27
20
|
super(`Cannot insert new checkpoint ${newCheckpointNumber} given previous checkpoint number in batch is ${previous ?? 'undefined'}`);
|
|
28
21
|
}
|
|
29
22
|
}
|
|
30
|
-
export class CheckpointNumberNotConsistentError extends Error {
|
|
31
|
-
constructor(newCheckpointNumber, previous){
|
|
32
|
-
super(`Cannot insert block for new checkpoint ${newCheckpointNumber} given previous block was checkpoint ${previous ?? 'undefined'}`);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
23
|
export class BlockIndexNotSequentialError extends Error {
|
|
36
24
|
constructor(newBlockIndex, previousBlockIndex){
|
|
37
25
|
super(`Cannot insert new block at checkpoint index ${newBlockIndex} given previous block index is ${previousBlockIndex ?? 'undefined'}`);
|
|
@@ -52,7 +40,14 @@ export class BlockNotFoundError extends Error {
|
|
|
52
40
|
super(`Failed to find expected block number ${blockNumber}`);
|
|
53
41
|
}
|
|
54
42
|
}
|
|
55
|
-
export class
|
|
43
|
+
/** Thrown when a proposed block matches a block that was already checkpointed. This is expected for late proposals. */ export class BlockAlreadyCheckpointedError extends Error {
|
|
44
|
+
blockNumber;
|
|
45
|
+
constructor(blockNumber){
|
|
46
|
+
super(`Block ${blockNumber} has already been checkpointed with the same content`), this.blockNumber = blockNumber;
|
|
47
|
+
this.name = 'BlockAlreadyCheckpointedError';
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/** Thrown when a proposed block conflicts with an already checkpointed block (different content). */ export class CannotOverwriteCheckpointedBlockError extends Error {
|
|
56
51
|
blockNumber;
|
|
57
52
|
lastCheckpointedBlock;
|
|
58
53
|
constructor(blockNumber, lastCheckpointedBlock){
|
package/dest/factory.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import type { DataStoreConfig } from '@aztec/kv-store
|
|
2
|
-
import type { L1RollupConstants } from '@aztec/stdlib/epoch-helpers';
|
|
1
|
+
import type { DataStoreConfig } from '@aztec/stdlib/kv-store';
|
|
3
2
|
import { Archiver, type ArchiverDeps } from './archiver.js';
|
|
4
3
|
import { type ArchiverConfig } from './config.js';
|
|
5
4
|
import { KVArchiverDataStore } from './store/kv_archiver_store.js';
|
|
6
5
|
export declare const ARCHIVER_STORE_NAME = "archiver";
|
|
7
6
|
/** Creates an archiver store. */
|
|
8
|
-
export declare function createArchiverStore(userConfig: Pick<ArchiverConfig, 'archiverStoreMapSizeKb' | 'maxLogs'> & DataStoreConfig
|
|
7
|
+
export declare function createArchiverStore(userConfig: Pick<ArchiverConfig, 'archiverStoreMapSizeKb' | 'maxLogs'> & DataStoreConfig): Promise<KVArchiverDataStore>;
|
|
9
8
|
/**
|
|
10
9
|
* Creates a local archiver.
|
|
11
10
|
* @param config - The archiver configuration.
|
|
@@ -18,4 +17,4 @@ export declare function createArchiver(config: ArchiverConfig & DataStoreConfig,
|
|
|
18
17
|
}): Promise<Archiver>;
|
|
19
18
|
/** Registers protocol contracts in the archiver store. */
|
|
20
19
|
export declare function registerProtocolContracts(store: KVArchiverDataStore): Promise<void>;
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZUEsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFNOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQXFCLE1BQU0sYUFBYSxDQUFDO0FBR3JFLE9BQU8sRUFBdUIsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUd4RixlQUFPLE1BQU0sbUJBQW1CLGFBQWEsQ0FBQztBQUU5QyxpQ0FBaUM7QUFDakMsd0JBQXNCLG1CQUFtQixDQUN2QyxVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSx3QkFBd0IsR0FBRyxTQUFTLENBQUMsR0FBRyxlQUFlLGdDQVF6RjtBQUVEOzs7Ozs7R0FNRztBQUNILHdCQUFzQixjQUFjLENBQ2xDLE1BQU0sRUFBRSxjQUFjLEdBQUcsZUFBZSxFQUN4QyxJQUFJLEVBQUUsWUFBWSxFQUNsQixJQUFJLEdBQUU7SUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFBO0NBQTZCLEdBQzNELE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FzSG5CO0FBRUQsMERBQTBEO0FBQzFELHdCQUFzQix5QkFBeUIsQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLGlCQW9CekUifQ==
|
package/dest/factory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,KAAK,cAAc,EAAqB,MAAM,aAAa,CAAC;AAGrE,OAAO,EAAuB,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGxF,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;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,GAAG,eAAe,EACxC,IAAI,EAAE,YAAY,EAClB,IAAI,GAAE;IAAE,cAAc,EAAE,OAAO,CAAA;CAA6B,GAC3D,OAAO,CAAC,QAAQ,CAAC,CAsHnB;AAED,0DAA0D;AAC1D,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,mBAAmB,iBAoBzE"}
|
package/dest/factory.js
CHANGED
|
@@ -21,13 +21,13 @@ import { ArchiverL1Synchronizer } from './modules/l1_synchronizer.js';
|
|
|
21
21
|
import { ARCHIVER_DB_VERSION, KVArchiverDataStore } from './store/kv_archiver_store.js';
|
|
22
22
|
import { L2TipsCache } from './store/l2_tips_cache.js';
|
|
23
23
|
export const ARCHIVER_STORE_NAME = 'archiver';
|
|
24
|
-
/** Creates an archiver store. */ export async function createArchiverStore(userConfig
|
|
24
|
+
/** Creates an archiver store. */ export async function createArchiverStore(userConfig) {
|
|
25
25
|
const config = {
|
|
26
26
|
...userConfig,
|
|
27
27
|
dataStoreMapSizeKb: userConfig.archiverStoreMapSizeKb ?? userConfig.dataStoreMapSizeKb
|
|
28
28
|
};
|
|
29
29
|
const store = await createStore(ARCHIVER_STORE_NAME, ARCHIVER_DB_VERSION, config);
|
|
30
|
-
return new KVArchiverDataStore(store, config.maxLogs
|
|
30
|
+
return new KVArchiverDataStore(store, config.maxLogs);
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
33
|
* Creates a local archiver.
|
|
@@ -38,9 +38,7 @@ export const ARCHIVER_STORE_NAME = 'archiver';
|
|
|
38
38
|
*/ export async function createArchiver(config, deps, opts = {
|
|
39
39
|
blockUntilSync: true
|
|
40
40
|
}) {
|
|
41
|
-
const archiverStore = await createArchiverStore(config
|
|
42
|
-
epochDuration: config.aztecEpochDuration
|
|
43
|
-
});
|
|
41
|
+
const archiverStore = await createArchiverStore(config);
|
|
44
42
|
await registerProtocolContracts(archiverStore);
|
|
45
43
|
// Create Ethereum clients
|
|
46
44
|
const chain = createEthereumChain(config.l1RpcUrls, config.l1ChainId);
|
|
@@ -64,13 +62,14 @@ export const ARCHIVER_STORE_NAME = 'archiver';
|
|
|
64
62
|
const rollup = new RollupContract(publicClient, config.l1Contracts.rollupAddress);
|
|
65
63
|
const inbox = new InboxContract(publicClient, config.l1Contracts.inboxAddress);
|
|
66
64
|
// Fetch L1 constants from rollup contract
|
|
67
|
-
const [l1StartBlock, l1GenesisTime, proofSubmissionEpochs, genesisArchiveRoot, slashingProposerAddress, targetCommitteeSize] = await Promise.all([
|
|
65
|
+
const [l1StartBlock, l1GenesisTime, proofSubmissionEpochs, genesisArchiveRoot, slashingProposerAddress, targetCommitteeSize, rollupManaLimit] = await Promise.all([
|
|
68
66
|
rollup.getL1StartBlock(),
|
|
69
67
|
rollup.getL1GenesisTime(),
|
|
70
68
|
rollup.getProofSubmissionEpochs(),
|
|
71
69
|
rollup.getGenesisArchiveTreeRoot(),
|
|
72
70
|
rollup.getSlashingProposerAddress(),
|
|
73
|
-
rollup.getTargetCommitteeSize()
|
|
71
|
+
rollup.getTargetCommitteeSize(),
|
|
72
|
+
rollup.getManaLimit()
|
|
74
73
|
]);
|
|
75
74
|
const l1StartBlockHash = await publicClient.getBlock({
|
|
76
75
|
blockNumber: l1StartBlock,
|
|
@@ -86,7 +85,8 @@ export const ARCHIVER_STORE_NAME = 'archiver';
|
|
|
86
85
|
ethereumSlotDuration,
|
|
87
86
|
proofSubmissionEpochs: Number(proofSubmissionEpochs),
|
|
88
87
|
targetCommitteeSize,
|
|
89
|
-
genesisArchiveRoot: Fr.fromString(genesisArchiveRoot.toString())
|
|
88
|
+
genesisArchiveRoot: Fr.fromString(genesisArchiveRoot.toString()),
|
|
89
|
+
rollupManaLimit: Number(rollupManaLimit)
|
|
90
90
|
};
|
|
91
91
|
const archiverConfig = merge({
|
|
92
92
|
pollingIntervalMs: 10_000,
|
|
@@ -34,8 +34,8 @@ export declare abstract class ArchiverDataSourceBase implements ArchiverDataSour
|
|
|
34
34
|
}>;
|
|
35
35
|
abstract getL1Timestamp(): Promise<bigint | undefined>;
|
|
36
36
|
abstract getL2Tips(): Promise<L2Tips>;
|
|
37
|
-
abstract
|
|
38
|
-
abstract
|
|
37
|
+
abstract getSyncedL2SlotNumber(): Promise<SlotNumber | undefined>;
|
|
38
|
+
abstract getSyncedL2EpochNumber(): Promise<EpochNumber | undefined>;
|
|
39
39
|
abstract isEpochComplete(epochNumber: EpochNumber): Promise<boolean>;
|
|
40
40
|
abstract syncImmediate(): Promise<void>;
|
|
41
41
|
getCheckpointNumber(): Promise<CheckpointNumber>;
|
|
@@ -86,4 +86,4 @@ export declare abstract class ArchiverDataSourceBase implements ArchiverDataSour
|
|
|
86
86
|
getL2BlockByHash(blockHash: BlockHash): Promise<L2Block | undefined>;
|
|
87
87
|
getL2BlockByArchive(archive: Fr): Promise<L2Block | undefined>;
|
|
88
88
|
}
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9zb3VyY2VfYmFzZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZHVsZXMvZGF0YV9zb3VyY2VfYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLEtBQUssV0FBVyxFQUFFLEtBQUssVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkgsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFaEUsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsS0FBSyxTQUFTLEVBQUUsS0FBSyxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEgsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hHLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkgsT0FBTyxFQUFFLEtBQUssaUJBQWlCLEVBQXdCLE1BQU0sNkJBQTZCLENBQUM7QUFDM0YsT0FBTyxLQUFLLEVBQUUsNEJBQTRCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRyxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNu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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data_source_base.d.ts","sourceRoot":"","sources":["../../src/modules/data_source_base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AACnH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAChH,OAAO,EAAE,UAAU,EAAE,KAAK,cAAc,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACnH,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,6BAA6B,CAAC;AAC3F,OAAO,KAAK,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC3G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAEhE;;;;GAIG;AACH,8BAAsB,sBACpB,YAAW,kBAAkB,EAAE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB;IAGlF,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,mBAAmB;IAC7C,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;IAFjC,YACqB,KAAK,EAAE,mBAAmB,EAC1B,WAAW,CAAC,+BAAmB,EAChD;IAEJ,QAAQ,CAAC,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAEjD,QAAQ,CAAC,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAEnD,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEtD,QAAQ,CAAC,gBAAgB,IAAI,OAAO,CAAC;QAAE,kBAAkB,EAAE,EAAE,CAAA;KAAE,CAAC,CAAC;IAEjE,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAEvD,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEtC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"data_source_base.d.ts","sourceRoot":"","sources":["../../src/modules/data_source_base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
2
2
|
import type { L2Block, ValidateCheckpointResult } from '@aztec/stdlib/block';
|
|
3
|
-
import type
|
|
3
|
+
import { type PublishedCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
4
4
|
import type { KVArchiverDataStore } from '../store/kv_archiver_store.js';
|
|
5
5
|
import type { L2TipsCache } from '../store/l2_tips_cache.js';
|
|
6
6
|
/** Result of adding checkpoints with information about any pruned blocks. */
|
|
@@ -14,19 +14,22 @@ type ReconcileCheckpointsResult = {
|
|
|
14
14
|
export declare class ArchiverDataStoreUpdater {
|
|
15
15
|
private store;
|
|
16
16
|
private l2TipsCache?;
|
|
17
|
+
private opts;
|
|
17
18
|
private readonly log;
|
|
18
|
-
constructor(store: KVArchiverDataStore, l2TipsCache?: L2TipsCache | undefined
|
|
19
|
+
constructor(store: KVArchiverDataStore, l2TipsCache?: L2TipsCache | undefined, opts?: {
|
|
20
|
+
rollupManaLimit?: number;
|
|
21
|
+
});
|
|
19
22
|
/**
|
|
20
|
-
* Adds proposed
|
|
21
|
-
*
|
|
23
|
+
* Adds a proposed block to the store with contract class/instance extraction from logs.
|
|
24
|
+
* This is an uncheckpointed block that has been proposed by the sequencer but not yet included in a checkpoint on L1.
|
|
22
25
|
* Extracts ContractClassPublished, ContractInstancePublished, ContractInstanceUpdated events,
|
|
23
26
|
* and individually broadcasted functions from the block logs.
|
|
24
27
|
*
|
|
25
|
-
* @param
|
|
28
|
+
* @param block - The proposed L2 block to add.
|
|
26
29
|
* @param pendingChainValidationStatus - Optional validation status to set.
|
|
27
30
|
* @returns True if the operation is successful.
|
|
28
31
|
*/
|
|
29
|
-
|
|
32
|
+
addProposedBlock(block: L2Block, pendingChainValidationStatus?: ValidateCheckpointResult): Promise<boolean>;
|
|
30
33
|
/**
|
|
31
34
|
* Reconciles local blocks with incoming checkpoints from L1.
|
|
32
35
|
* Adds new checkpoints to the store with contract class/instance extraction from logs.
|
|
@@ -66,6 +69,11 @@ export declare class ArchiverDataStoreUpdater {
|
|
|
66
69
|
* @param checkpointNumber - The checkpoint number to set as proven.
|
|
67
70
|
*/
|
|
68
71
|
setProvenCheckpointNumber(checkpointNumber: CheckpointNumber): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Updates the finalized checkpoint number and refreshes the L2 tips cache.
|
|
74
|
+
* @param checkpointNumber - The checkpoint number to set as finalized.
|
|
75
|
+
*/
|
|
76
|
+
setFinalizedCheckpointNumber(checkpointNumber: CheckpointNumber): Promise<void>;
|
|
69
77
|
/** Extracts and stores contract data from a single block. */
|
|
70
78
|
private addContractDataToDb;
|
|
71
79
|
/** Removes contract data associated with a block. */
|
|
@@ -77,4 +85,4 @@ export declare class ArchiverDataStoreUpdater {
|
|
|
77
85
|
private storeBroadcastedIndividualFunctions;
|
|
78
86
|
}
|
|
79
87
|
export {};
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9zdG9yZV91cGRhdGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kdWxlcy9kYXRhX3N0b3JlX3VwZGF0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBWWhGLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxLQUFLLG1CQUFtQixFQUFzQixNQUFNLDBCQUEwQixDQUFDO0FBYXhGLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFRN0QsNkVBQTZFO0FBQzdFLEtBQUssMEJBQTBCLEdBQUc7SUFDaEMsbUVBQW1FO0lBQ25FLFlBQVksRUFBRSxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFDcEMsaUZBQWlGO0lBQ2pGLDhCQUE4QixFQUFFLFdBQVcsR0FBRyxTQUFTLENBQUM7Q0FDekQsQ0FBQztBQUVGLGtFQUFrRTtBQUNsRSxxQkFBYSx3QkFBd0I7SUFJakMsT0FBTyxDQUFDLEtBQUs7SUFDYixPQUFPLENBQUMsV0FBVyxDQUFDO0lBQ3BCLE9BQU8sQ0FBQyxJQUFJO0lBTGQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQTBDO0lBRTlELFlBQ1UsS0FBSyxFQUFFLG1CQUFtQixFQUMxQixXQUFXLENBQUMseUJBQWEsRUFDekIsSUFBSSxHQUFFO1FBQUUsZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUFBO0tBQU8sRUFDN0M7SUFFSjs7Ozs7Ozs7O09BU0c7SUFDVSxnQkFBZ0IsQ0FDM0IsS0FBSyxFQUFFLE9BQU8sRUFDZCw0QkFBNEIsQ0FBQyxFQUFFLHdCQUF3QixHQUN0RCxPQUFPLENBQUMsT0FBTyxDQUFDLENBaUJsQjtJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDVSxjQUFjLENBQ3pCLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxFQUNsQyw0QkFBNEIsQ0FBQyxFQUFFLHdCQUF3QixHQUN0RCxPQUFPLENBQUMsMEJBQTBCLENBQUMsQ0E2QnJDO1lBUWEsMkJBQTJCO0lBbUV6Qzs7Ozs7Ozs7T0FRRztJQUNVLCtCQUErQixDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBZXpGO1lBTWEsaUJBQWlCO0lBYS9COzs7Ozs7OztPQVFHO0lBQ1Usc0JBQXNCLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQWV4RjtJQUVEOzs7T0FHRztJQUNVLHlCQUF5QixDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FLeEY7SUFFRDs7O09BR0c7SUFDVSw0QkFBNEIsQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBSzNGO0lBRUQsNkRBQTZEO0lBQzdELE9BQU8sQ0FBQyxtQkFBbUI7SUFJM0IscURBQXFEO0lBQ3JELE9BQU8sQ0FBQyx3QkFBd0I7WUFLbEIsc0JBQXNCO1lBb0J0Qiw4QkFBOEI7WUE0QjlCLCtCQUErQjtZQXlCL0IsOEJBQThCO1lBNkI5QixtQ0FBbUM7Q0F3RGxEIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data_store_updater.d.ts","sourceRoot":"","sources":["../../src/modules/data_store_updater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAYhF,OAAO,KAAK,EAAE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"data_store_updater.d.ts","sourceRoot":"","sources":["../../src/modules/data_store_updater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAYhF,OAAO,KAAK,EAAE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,KAAK,mBAAmB,EAAsB,MAAM,0BAA0B,CAAC;AAaxF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAQ7D,6EAA6E;AAC7E,KAAK,0BAA0B,GAAG;IAChC,mEAAmE;IACnE,YAAY,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;IACpC,iFAAiF;IACjF,8BAA8B,EAAE,WAAW,GAAG,SAAS,CAAC;CACzD,CAAC;AAEF,kEAAkE;AAClE,qBAAa,wBAAwB;IAIjC,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,WAAW,CAAC;IACpB,OAAO,CAAC,IAAI;IALd,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA0C;IAE9D,YACU,KAAK,EAAE,mBAAmB,EAC1B,WAAW,CAAC,yBAAa,EACzB,IAAI,GAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAO,EAC7C;IAEJ;;;;;;;;;OASG;IACU,gBAAgB,CAC3B,KAAK,EAAE,OAAO,EACd,4BAA4B,CAAC,EAAE,wBAAwB,GACtD,OAAO,CAAC,OAAO,CAAC,CAiBlB;IAED;;;;;;;;;;OAUG;IACU,cAAc,CACzB,WAAW,EAAE,mBAAmB,EAAE,EAClC,4BAA4B,CAAC,EAAE,wBAAwB,GACtD,OAAO,CAAC,0BAA0B,CAAC,CA6BrC;YAQa,2BAA2B;IAmEzC;;;;;;;;OAQG;IACU,+BAA+B,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAezF;YAMa,iBAAiB;IAa/B;;;;;;;;OAQG;IACU,sBAAsB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAexF;IAED;;;OAGG;IACU,yBAAyB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxF;IAED;;;OAGG;IACU,4BAA4B,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAK3F;IAED,6DAA6D;IAC7D,OAAO,CAAC,mBAAmB;IAI3B,qDAAqD;IACrD,OAAO,CAAC,wBAAwB;YAKlB,sBAAsB;YAoBtB,8BAA8B;YA4B9B,+BAA+B;YAyB/B,8BAA8B;YA6B9B,mCAAmC;CAwDlD"}
|
|
@@ -3,6 +3,7 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { ContractClassPublishedEvent, PrivateFunctionBroadcastedEvent, UtilityFunctionBroadcastedEvent } from '@aztec/protocol-contracts/class-registry';
|
|
5
5
|
import { ContractInstancePublishedEvent, ContractInstanceUpdatedEvent } from '@aztec/protocol-contracts/instance-registry';
|
|
6
|
+
import { validateCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
6
7
|
import { computePublicBytecodeCommitment, isValidPrivateFunctionMembershipProof, isValidUtilityFunctionMembershipProof } from '@aztec/stdlib/contract';
|
|
7
8
|
import groupBy from 'lodash.groupby';
|
|
8
9
|
/** Operation type for contract data updates. */ var Operation = /*#__PURE__*/ function(Operation) {
|
|
@@ -13,31 +14,35 @@ import groupBy from 'lodash.groupby';
|
|
|
13
14
|
/** Archiver helper module to handle updates to the data store. */ export class ArchiverDataStoreUpdater {
|
|
14
15
|
store;
|
|
15
16
|
l2TipsCache;
|
|
17
|
+
opts;
|
|
16
18
|
log;
|
|
17
|
-
constructor(store, l2TipsCache){
|
|
19
|
+
constructor(store, l2TipsCache, opts = {}){
|
|
18
20
|
this.store = store;
|
|
19
21
|
this.l2TipsCache = l2TipsCache;
|
|
22
|
+
this.opts = opts;
|
|
20
23
|
this.log = createLogger('archiver:store_updater');
|
|
21
24
|
}
|
|
22
25
|
/**
|
|
23
|
-
* Adds proposed
|
|
24
|
-
*
|
|
26
|
+
* Adds a proposed block to the store with contract class/instance extraction from logs.
|
|
27
|
+
* This is an uncheckpointed block that has been proposed by the sequencer but not yet included in a checkpoint on L1.
|
|
25
28
|
* Extracts ContractClassPublished, ContractInstancePublished, ContractInstanceUpdated events,
|
|
26
29
|
* and individually broadcasted functions from the block logs.
|
|
27
30
|
*
|
|
28
|
-
* @param
|
|
31
|
+
* @param block - The proposed L2 block to add.
|
|
29
32
|
* @param pendingChainValidationStatus - Optional validation status to set.
|
|
30
33
|
* @returns True if the operation is successful.
|
|
31
|
-
*/ async
|
|
34
|
+
*/ async addProposedBlock(block, pendingChainValidationStatus) {
|
|
32
35
|
const result = await this.store.transactionAsync(async ()=>{
|
|
33
|
-
await this.store.
|
|
36
|
+
await this.store.addProposedBlock(block);
|
|
34
37
|
const opResults = await Promise.all([
|
|
35
38
|
// Update the pending chain validation status if provided
|
|
36
39
|
pendingChainValidationStatus && this.store.setPendingChainValidationStatus(pendingChainValidationStatus),
|
|
37
|
-
// Add any logs emitted during the retrieved
|
|
38
|
-
this.store.addLogs(
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
// Add any logs emitted during the retrieved block
|
|
41
|
+
this.store.addLogs([
|
|
42
|
+
block
|
|
43
|
+
]),
|
|
44
|
+
// Unroll all logs emitted during the retrieved block and extract any contract classes and instances from it
|
|
45
|
+
this.addContractDataToDb(block)
|
|
41
46
|
]);
|
|
42
47
|
await this.l2TipsCache?.refresh();
|
|
43
48
|
return opResults.every(Boolean);
|
|
@@ -55,11 +60,16 @@ import groupBy from 'lodash.groupby';
|
|
|
55
60
|
* @param pendingChainValidationStatus - Optional validation status to set.
|
|
56
61
|
* @returns Result with information about any pruned blocks.
|
|
57
62
|
*/ async addCheckpoints(checkpoints, pendingChainValidationStatus) {
|
|
63
|
+
for (const checkpoint of checkpoints){
|
|
64
|
+
validateCheckpoint(checkpoint.checkpoint, {
|
|
65
|
+
rollupManaLimit: this.opts?.rollupManaLimit
|
|
66
|
+
});
|
|
67
|
+
}
|
|
58
68
|
const result = await this.store.transactionAsync(async ()=>{
|
|
59
69
|
// Before adding checkpoints, check for conflicts with local blocks if any
|
|
60
70
|
const { prunedBlocks, lastAlreadyInsertedBlockNumber } = await this.pruneMismatchingLocalBlocks(checkpoints);
|
|
61
71
|
await this.store.addCheckpoints(checkpoints);
|
|
62
|
-
// Filter out blocks that were already inserted via
|
|
72
|
+
// Filter out blocks that were already inserted via addProposedBlock() to avoid duplicating logs/contract data
|
|
63
73
|
const newBlocks = checkpoints.flatMap((ch)=>ch.checkpoint.blocks).filter((b)=>lastAlreadyInsertedBlockNumber === undefined || b.number > lastAlreadyInsertedBlockNumber);
|
|
64
74
|
await Promise.all([
|
|
65
75
|
// Update the pending chain validation status if provided
|
|
@@ -119,7 +129,7 @@ import groupBy from 'lodash.groupby';
|
|
|
119
129
|
this.log.verbose(`Block number ${blockNumber} already inserted and matches checkpoint`, blockInfos);
|
|
120
130
|
lastAlreadyInsertedBlockNumber = blockNumber;
|
|
121
131
|
} else {
|
|
122
|
-
this.log.
|
|
132
|
+
this.log.info(`Conflict detected at block ${blockNumber} between checkpointed and local block`, blockInfos);
|
|
123
133
|
const prunedBlocks = await this.removeBlocksAfter(BlockNumber(blockNumber - 1));
|
|
124
134
|
return {
|
|
125
135
|
prunedBlocks,
|
|
@@ -212,6 +222,15 @@ import groupBy from 'lodash.groupby';
|
|
|
212
222
|
await this.l2TipsCache?.refresh();
|
|
213
223
|
});
|
|
214
224
|
}
|
|
225
|
+
/**
|
|
226
|
+
* Updates the finalized checkpoint number and refreshes the L2 tips cache.
|
|
227
|
+
* @param checkpointNumber - The checkpoint number to set as finalized.
|
|
228
|
+
*/ async setFinalizedCheckpointNumber(checkpointNumber) {
|
|
229
|
+
await this.store.transactionAsync(async ()=>{
|
|
230
|
+
await this.store.setFinalizedCheckpointNumber(checkpointNumber);
|
|
231
|
+
await this.l2TipsCache?.refresh();
|
|
232
|
+
});
|
|
233
|
+
}
|
|
215
234
|
/** Extracts and stores contract data from a single block. */ addContractDataToDb(block) {
|
|
216
235
|
return this.updateContractDataOnDb(block, 0);
|
|
217
236
|
}
|