@aztec/archiver 0.0.1-commit.3100065 → 0.0.1-commit.321f6a9
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/README.md
CHANGED
|
@@ -103,7 +103,7 @@ Blocks added via `addBlock()` are considered "provisional" until they appear in
|
|
|
103
103
|
- **Slot expiration**: An L2 slot ends without any checkpoint being mined on L1
|
|
104
104
|
- **Orphan proposed block**: Under proposer pipelining, a proposer can broadcast a block-only proposal but never the matching `CheckpointProposal` (e.g. it crashes before assembling the checkpoint). The provisional block then has no proposed checkpoint backing it.
|
|
105
105
|
|
|
106
|
-
When `handleCheckpoints()` processes incoming checkpoints, it compares archive roots of local blocks against the checkpoint's blocks. If they differ, local blocks are pruned and replaced with the checkpoint's blocks. After checkpoint sync, `pruneUncheckpointedBlocks()` removes any remaining provisional blocks from slots that have ended. Independently, `pruneOrphanProposedBlocks()` runs on wall-clock time (so it fires during quiet L1 periods) and removes a block-only tip
|
|
106
|
+
When `handleCheckpoints()` processes incoming checkpoints, it compares archive roots of local blocks against the checkpoint's blocks. If they differ, local blocks are pruned and replaced with the checkpoint's blocks. After checkpoint sync, `pruneUncheckpointedBlocks()` removes any remaining provisional blocks from slots that have ended. Independently, `pruneOrphanProposedBlocks()` runs on wall-clock time (so it fires during quiet L1 periods) and removes a block-only tip once its build slot ended without a matching proposed checkpoint, plus a grace window configured via `orphanProposedBlockPruneGraceSeconds`. All three cases emit `L2PruneUncheckpointed`.
|
|
107
107
|
|
|
108
108
|
### Querying Block Data
|
|
109
109
|
|
|
@@ -175,3 +175,5 @@ The archiver exposes `pendingChainValidationStatus` for the sequencer to know if
|
|
|
175
175
|
2. Checkpoint 11 purged, new invalid checkpoint 11 posted → status updates to new checkpoint 11
|
|
176
176
|
3. Checkpoint 12 with invalid attestations posted → no change (status still points to 11)
|
|
177
177
|
4. Checkpoint 11 purged and reposted with valid attestations → archiver syncs checkpoint 11, status becomes valid
|
|
178
|
+
|
|
179
|
+
|
|
@@ -102,4 +102,4 @@ export declare class ArchiverDataStoreUpdater {
|
|
|
102
102
|
private updateUpdatedContractInstances;
|
|
103
103
|
}
|
|
104
104
|
export {};
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9zdG9yZV91cGRhdGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9kdWxlcy9kYXRhX3N0b3JlX3VwZGF0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBUWhGLE9BQU8sS0FBSyxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25HLE9BQU8sRUFDTCxLQUFLLGVBQWUsRUFDcEIsS0FBSyx1QkFBdUIsRUFDNUIsS0FBSyxtQkFBbUIsRUFFekIsTUFBTSwwQkFBMEIsQ0FBQztBQVNsQyxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xFLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBUTdELDZFQUE2RTtBQUM3RSxLQUFLLDBCQUEwQixHQUFHO0lBQ2hDLG1FQUFtRTtJQUNuRSxZQUFZLEVBQUUsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDO0lBQ3BDLGlGQUFpRjtJQUNqRiw4QkFBOEIsRUFBRSxXQUFXLEdBQUcsU0FBUyxDQUFDO0NBQ3pELENBQUM7QUFFRixrRUFBa0U7QUFDbEUscUJBQWEsd0JBQXdCO0lBSWpDLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxDQUFDLFdBQVcsQ0FBQztJQUNwQixPQUFPLENBQUMsSUFBSTtJQUxkLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUEwQztJQUU5RCxZQUNVLE1BQU0sRUFBRSxrQkFBa0IsRUFDMUIsV0FBVyxDQUFDLHlCQUFhLEVBQ3pCLElBQUksR0FBRTtRQUFFLGVBQWUsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFPLEVBQzdDO0lBRUo7Ozs7Ozs7O09BUUc7SUFDVSxnQkFBZ0IsQ0FDM0IsS0FBSyxFQUFFLE9BQU8sRUFDZCw0QkFBNEIsQ0FBQyxFQUFFLHdCQUF3QixHQUN0RCxPQUFPLENBQUMsT0FBTyxDQUFDLENBa0JsQjtJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNVLGNBQWMsQ0FDekIsV0FBVyxFQUFFLG1CQUFtQixFQUFFLEVBQ2xDLDRCQUE0QixDQUFDLEVBQUUsd0JBQXdCLEVBQ3ZELGVBQWUsQ0FBQyxFQUFFO1FBQ2hCLEVBQUUsRUFBRSxlQUFlLENBQUM7UUFDcEIsWUFBWSxFQUFFLG9CQUFvQixFQUFFLENBQUM7UUFDckMsVUFBVSxFQUFFLG1CQUFtQixDQUFDO0tBQ2pDLEVBQ0QsaUJBQWlCLENBQUMsRUFBRSxnQkFBZ0IsR0FDbkMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLENBK0NyQztJQUVZLHFCQUFxQixDQUFDLGtCQUFrQixFQUFFLHVCQUF1QixpQkFNN0U7WUFnQmEsMkJBQTJCO0lBdUV6Qzs7Ozs7Ozs7T0FRRztJQUNVLCtCQUErQixDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBaUJ6RjtJQUVEOzs7Ozs7Ozs7T0FTRztJQUNVLDBDQUEwQyxDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBY3BHO1lBT2EsdUNBQXVDO1lBWXZDLGlCQUFpQjtJQWEvQjs7Ozs7Ozs7T0FRRztJQUNVLHNCQUFzQixDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FnQnhGO0lBRUQ7OztPQUdHO0lBQ1UseUJBQXlCLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUt4RjtJQUVEOzs7T0FHRztJQUNVLDRCQUE0QixDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FLM0Y7SUFFRCw2REFBNkQ7SUFDN0QsT0FBTyxDQUFDLG1CQUFtQjtJQUkzQixxREFBcUQ7SUFDckQsT0FBTyxDQUFDLHdCQUF3QjtZQUtsQixzQkFBc0I7WUFpQnRCLDhCQUE4QjtZQStDOUIsK0JBQStCO1lBMEMvQiw4QkFBOEI7Q0FzQjdDIn0=
|
|
@@ -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;AAQhF,OAAO,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACnG,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAEzB,MAAM,0BAA0B,CAAC;
|
|
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;AAQhF,OAAO,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AACnG,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EAEzB,MAAM,0BAA0B,CAAC;AASlC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,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,MAAM;IACd,OAAO,CAAC,WAAW,CAAC;IACpB,OAAO,CAAC,IAAI;IALd,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA0C;IAE9D,YACU,MAAM,EAAE,kBAAkB,EAC1B,WAAW,CAAC,yBAAa,EACzB,IAAI,GAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAO,EAC7C;IAEJ;;;;;;;;OAQG;IACU,gBAAgB,CAC3B,KAAK,EAAE,OAAO,EACd,4BAA4B,CAAC,EAAE,wBAAwB,GACtD,OAAO,CAAC,OAAO,CAAC,CAkBlB;IAED;;;;;;;;;;;;OAYG;IACU,cAAc,CACzB,WAAW,EAAE,mBAAmB,EAAE,EAClC,4BAA4B,CAAC,EAAE,wBAAwB,EACvD,eAAe,CAAC,EAAE;QAChB,EAAE,EAAE,eAAe,CAAC;QACpB,YAAY,EAAE,oBAAoB,EAAE,CAAC;QACrC,UAAU,EAAE,mBAAmB,CAAC;KACjC,EACD,iBAAiB,CAAC,EAAE,gBAAgB,GACnC,OAAO,CAAC,0BAA0B,CAAC,CA+CrC;IAEY,qBAAqB,CAAC,kBAAkB,EAAE,uBAAuB,iBAM7E;YAgBa,2BAA2B;IAuEzC;;;;;;;;OAQG;IACU,+BAA+B,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAiBzF;IAED;;;;;;;;;OASG;IACU,0CAA0C,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAcpG;YAOa,uCAAuC;YAYvC,iBAAiB;IAa/B;;;;;;;;OAQG;IACU,sBAAsB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAgBxF;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;YAiBtB,8BAA8B;YA+C9B,+BAA+B;YA0C/B,8BAA8B;CAsB7C"}
|
|
@@ -5,7 +5,6 @@ import { ContractClassPublishedEvent } from '@aztec/protocol-contracts/class-reg
|
|
|
5
5
|
import { ContractInstancePublishedEvent, ContractInstanceUpdatedEvent } from '@aztec/protocol-contracts/instance-registry';
|
|
6
6
|
import { validateCheckpoint } from '@aztec/stdlib/checkpoint';
|
|
7
7
|
import { computeContractAddressFromInstance, computeContractClassId } from '@aztec/stdlib/contract';
|
|
8
|
-
import { MAX_CAPACITY_BLOCKS_PER_CHECKPOINT } from '@aztec/stdlib/deserialization';
|
|
9
8
|
/** Operation type for contract data updates. */ var Operation = /*#__PURE__*/ function(Operation) {
|
|
10
9
|
Operation[Operation["Store"] = 0] = "Store";
|
|
11
10
|
Operation[Operation["Delete"] = 1] = "Delete";
|
|
@@ -61,18 +60,14 @@ import { MAX_CAPACITY_BLOCKS_PER_CHECKPOINT } from '@aztec/stdlib/deserializatio
|
|
|
61
60
|
* @param promoteProposed - Optional promotion of the current proposed checkpoint (fast path when blocks are already local).
|
|
62
61
|
* @returns Result with information about any pruned blocks.
|
|
63
62
|
*/ async addCheckpoints(checkpoints, pendingChainValidationStatus, promoteProposed, evictProposedFrom) {
|
|
64
|
-
// Checkpoints here are already accepted by L1, so tolerate up to the physical blob-capacity
|
|
65
|
-
// ceiling rather than the conservative attestable limit used when building/attesting.
|
|
66
63
|
for (const checkpoint of checkpoints){
|
|
67
64
|
validateCheckpoint(checkpoint.checkpoint, {
|
|
68
|
-
rollupManaLimit: this.opts?.rollupManaLimit
|
|
69
|
-
maxBlocksPerCheckpoint: MAX_CAPACITY_BLOCKS_PER_CHECKPOINT
|
|
65
|
+
rollupManaLimit: this.opts?.rollupManaLimit
|
|
70
66
|
});
|
|
71
67
|
}
|
|
72
68
|
if (promoteProposed) {
|
|
73
69
|
validateCheckpoint(promoteProposed.checkpoint.checkpoint, {
|
|
74
|
-
rollupManaLimit: this.opts?.rollupManaLimit
|
|
75
|
-
maxBlocksPerCheckpoint: MAX_CAPACITY_BLOCKS_PER_CHECKPOINT
|
|
70
|
+
rollupManaLimit: this.opts?.rollupManaLimit
|
|
76
71
|
});
|
|
77
72
|
}
|
|
78
73
|
const result = await this.stores.db.transactionAsync(async ()=>{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/archiver",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.321f6a9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -65,19 +65,19 @@
|
|
|
65
65
|
]
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@aztec/blob-client": "0.0.1-commit.
|
|
69
|
-
"@aztec/blob-lib": "0.0.1-commit.
|
|
70
|
-
"@aztec/constants": "0.0.1-commit.
|
|
71
|
-
"@aztec/epoch-cache": "0.0.1-commit.
|
|
72
|
-
"@aztec/ethereum": "0.0.1-commit.
|
|
73
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
74
|
-
"@aztec/kv-store": "0.0.1-commit.
|
|
75
|
-
"@aztec/l1-artifacts": "0.0.1-commit.
|
|
76
|
-
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.
|
|
77
|
-
"@aztec/protocol-contracts": "0.0.1-commit.
|
|
78
|
-
"@aztec/standard-contracts": "0.0.1-commit.
|
|
79
|
-
"@aztec/stdlib": "0.0.1-commit.
|
|
80
|
-
"@aztec/telemetry-client": "0.0.1-commit.
|
|
68
|
+
"@aztec/blob-client": "0.0.1-commit.321f6a9",
|
|
69
|
+
"@aztec/blob-lib": "0.0.1-commit.321f6a9",
|
|
70
|
+
"@aztec/constants": "0.0.1-commit.321f6a9",
|
|
71
|
+
"@aztec/epoch-cache": "0.0.1-commit.321f6a9",
|
|
72
|
+
"@aztec/ethereum": "0.0.1-commit.321f6a9",
|
|
73
|
+
"@aztec/foundation": "0.0.1-commit.321f6a9",
|
|
74
|
+
"@aztec/kv-store": "0.0.1-commit.321f6a9",
|
|
75
|
+
"@aztec/l1-artifacts": "0.0.1-commit.321f6a9",
|
|
76
|
+
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.321f6a9",
|
|
77
|
+
"@aztec/protocol-contracts": "0.0.1-commit.321f6a9",
|
|
78
|
+
"@aztec/standard-contracts": "0.0.1-commit.321f6a9",
|
|
79
|
+
"@aztec/stdlib": "0.0.1-commit.321f6a9",
|
|
80
|
+
"@aztec/telemetry-client": "0.0.1-commit.321f6a9",
|
|
81
81
|
"lodash.groupby": "^4.6.0",
|
|
82
82
|
"lodash.omit": "^4.5.0",
|
|
83
83
|
"tslib": "^2.5.0",
|
|
@@ -18,7 +18,6 @@ import {
|
|
|
18
18
|
computeContractAddressFromInstance,
|
|
19
19
|
computeContractClassId,
|
|
20
20
|
} from '@aztec/stdlib/contract';
|
|
21
|
-
import { MAX_CAPACITY_BLOCKS_PER_CHECKPOINT } from '@aztec/stdlib/deserialization';
|
|
22
21
|
import type { ContractClassLog, PrivateLog, PublicLog } from '@aztec/stdlib/logs';
|
|
23
22
|
import type { UInt64 } from '@aztec/stdlib/types';
|
|
24
23
|
|
|
@@ -104,19 +103,11 @@ export class ArchiverDataStoreUpdater {
|
|
|
104
103
|
},
|
|
105
104
|
evictProposedFrom?: CheckpointNumber,
|
|
106
105
|
): Promise<ReconcileCheckpointsResult> {
|
|
107
|
-
// Checkpoints here are already accepted by L1, so tolerate up to the physical blob-capacity
|
|
108
|
-
// ceiling rather than the conservative attestable limit used when building/attesting.
|
|
109
106
|
for (const checkpoint of checkpoints) {
|
|
110
|
-
validateCheckpoint(checkpoint.checkpoint, {
|
|
111
|
-
rollupManaLimit: this.opts?.rollupManaLimit,
|
|
112
|
-
maxBlocksPerCheckpoint: MAX_CAPACITY_BLOCKS_PER_CHECKPOINT,
|
|
113
|
-
});
|
|
107
|
+
validateCheckpoint(checkpoint.checkpoint, { rollupManaLimit: this.opts?.rollupManaLimit });
|
|
114
108
|
}
|
|
115
109
|
if (promoteProposed) {
|
|
116
|
-
validateCheckpoint(promoteProposed.checkpoint.checkpoint, {
|
|
117
|
-
rollupManaLimit: this.opts?.rollupManaLimit,
|
|
118
|
-
maxBlocksPerCheckpoint: MAX_CAPACITY_BLOCKS_PER_CHECKPOINT,
|
|
119
|
-
});
|
|
110
|
+
validateCheckpoint(promoteProposed.checkpoint.checkpoint, { rollupManaLimit: this.opts?.rollupManaLimit });
|
|
120
111
|
}
|
|
121
112
|
|
|
122
113
|
const result = await this.stores.db.transactionAsync(async () => {
|