@aztec/world-state 0.0.1-commit.3100065 → 0.0.1-commit.330febf
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/index.d.ts +2 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -0
- package/dest/instrumentation/instrumentation.d.ts +4 -3
- package/dest/instrumentation/instrumentation.d.ts.map +1 -1
- package/dest/instrumentation/instrumentation.js +4 -9
- package/dest/native/index.d.ts +2 -1
- package/dest/native/index.d.ts.map +1 -1
- package/dest/native/index.js +1 -0
- package/dest/native/ipc_world_state_instance.d.ts +61 -22
- package/dest/native/ipc_world_state_instance.d.ts.map +1 -1
- package/dest/native/ipc_world_state_instance.js +530 -495
- package/dest/native/merkle_trees_facade.d.ts +4 -3
- package/dest/native/merkle_trees_facade.d.ts.map +1 -1
- package/dest/native/merkle_trees_facade.js +37 -109
- package/dest/native/message.d.ts +14 -233
- package/dest/native/message.d.ts.map +1 -1
- package/dest/native/message.js +0 -42
- package/dest/native/native_world_state.d.ts +14 -28
- package/dest/native/native_world_state.d.ts.map +1 -1
- package/dest/native/native_world_state.js +105 -99
- package/dest/native/native_world_state_instance.d.ts +56 -43
- package/dest/native/native_world_state_instance.d.ts.map +1 -1
- package/dest/native/native_world_state_instance.js +1 -223
- package/dest/native/world_state_operation.d.ts +7 -0
- package/dest/native/world_state_operation.d.ts.map +1 -0
- package/dest/native/world_state_operation.js +5 -0
- package/dest/synchronizer/factory.d.ts +1 -1
- package/dest/synchronizer/factory.d.ts.map +1 -1
- package/dest/synchronizer/factory.js +1 -1
- package/package.json +11 -10
- package/src/index.ts +1 -0
- package/src/instrumentation/instrumentation.ts +6 -18
- package/src/native/index.ts +1 -0
- package/src/native/ipc_world_state_instance.ts +625 -503
- package/src/native/merkle_trees_facade.ts +59 -104
- package/src/native/message.ts +13 -300
- package/src/native/native_world_state.ts +136 -156
- package/src/native/native_world_state_instance.ts +94 -308
- package/src/native/world_state_operation.ts +33 -0
- package/src/synchronizer/factory.ts +0 -1
- package/dest/native/world_state_ops_queue.d.ts +0 -19
- package/dest/native/world_state_ops_queue.d.ts.map +0 -1
- package/dest/native/world_state_ops_queue.js +0 -146
- package/src/native/world_state_ops_queue.ts +0 -190
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/native/message.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/native/message.ts"],"names":[],"mappings":"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"}
|
package/dest/native/message.js
CHANGED
|
@@ -1,39 +1,6 @@
|
|
|
1
1
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
2
2
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
3
3
|
import { AppendOnlyTreeSnapshot, MerkleTreeId } from '@aztec/stdlib/trees';
|
|
4
|
-
export var WorldStateMessageType = /*#__PURE__*/ function(WorldStateMessageType) {
|
|
5
|
-
WorldStateMessageType[WorldStateMessageType["GET_TREE_INFO"] = 100] = "GET_TREE_INFO";
|
|
6
|
-
WorldStateMessageType[WorldStateMessageType["GET_STATE_REFERENCE"] = 101] = "GET_STATE_REFERENCE";
|
|
7
|
-
WorldStateMessageType[WorldStateMessageType["GET_INITIAL_STATE_REFERENCE"] = 102] = "GET_INITIAL_STATE_REFERENCE";
|
|
8
|
-
WorldStateMessageType[WorldStateMessageType["GET_LEAF_VALUE"] = 103] = "GET_LEAF_VALUE";
|
|
9
|
-
WorldStateMessageType[WorldStateMessageType["GET_LEAF_PREIMAGE"] = 104] = "GET_LEAF_PREIMAGE";
|
|
10
|
-
WorldStateMessageType[WorldStateMessageType["GET_SIBLING_PATH"] = 105] = "GET_SIBLING_PATH";
|
|
11
|
-
WorldStateMessageType[WorldStateMessageType["GET_BLOCK_NUMBERS_FOR_LEAF_INDICES"] = 106] = "GET_BLOCK_NUMBERS_FOR_LEAF_INDICES";
|
|
12
|
-
WorldStateMessageType[WorldStateMessageType["FIND_LEAF_INDICES"] = 107] = "FIND_LEAF_INDICES";
|
|
13
|
-
WorldStateMessageType[WorldStateMessageType["FIND_LOW_LEAF"] = 108] = "FIND_LOW_LEAF";
|
|
14
|
-
WorldStateMessageType[WorldStateMessageType["FIND_SIBLING_PATHS"] = 109] = "FIND_SIBLING_PATHS";
|
|
15
|
-
WorldStateMessageType[WorldStateMessageType["APPEND_LEAVES"] = 110] = "APPEND_LEAVES";
|
|
16
|
-
WorldStateMessageType[WorldStateMessageType["BATCH_INSERT"] = 111] = "BATCH_INSERT";
|
|
17
|
-
WorldStateMessageType[WorldStateMessageType["SEQUENTIAL_INSERT"] = 112] = "SEQUENTIAL_INSERT";
|
|
18
|
-
WorldStateMessageType[WorldStateMessageType["UPDATE_ARCHIVE"] = 113] = "UPDATE_ARCHIVE";
|
|
19
|
-
WorldStateMessageType[WorldStateMessageType["COMMIT"] = 114] = "COMMIT";
|
|
20
|
-
WorldStateMessageType[WorldStateMessageType["ROLLBACK"] = 115] = "ROLLBACK";
|
|
21
|
-
WorldStateMessageType[WorldStateMessageType["SYNC_BLOCK"] = 116] = "SYNC_BLOCK";
|
|
22
|
-
WorldStateMessageType[WorldStateMessageType["CREATE_FORK"] = 117] = "CREATE_FORK";
|
|
23
|
-
WorldStateMessageType[WorldStateMessageType["DELETE_FORK"] = 118] = "DELETE_FORK";
|
|
24
|
-
WorldStateMessageType[WorldStateMessageType["FINALIZE_BLOCKS"] = 119] = "FINALIZE_BLOCKS";
|
|
25
|
-
WorldStateMessageType[WorldStateMessageType["UNWIND_BLOCKS"] = 120] = "UNWIND_BLOCKS";
|
|
26
|
-
WorldStateMessageType[WorldStateMessageType["REMOVE_HISTORICAL_BLOCKS"] = 121] = "REMOVE_HISTORICAL_BLOCKS";
|
|
27
|
-
WorldStateMessageType[WorldStateMessageType["GET_STATUS"] = 122] = "GET_STATUS";
|
|
28
|
-
WorldStateMessageType[WorldStateMessageType["CREATE_CHECKPOINT"] = 123] = "CREATE_CHECKPOINT";
|
|
29
|
-
WorldStateMessageType[WorldStateMessageType["COMMIT_CHECKPOINT"] = 124] = "COMMIT_CHECKPOINT";
|
|
30
|
-
WorldStateMessageType[WorldStateMessageType["REVERT_CHECKPOINT"] = 125] = "REVERT_CHECKPOINT";
|
|
31
|
-
WorldStateMessageType[WorldStateMessageType["COMMIT_ALL_CHECKPOINTS"] = 126] = "COMMIT_ALL_CHECKPOINTS";
|
|
32
|
-
WorldStateMessageType[WorldStateMessageType["REVERT_ALL_CHECKPOINTS"] = 127] = "REVERT_ALL_CHECKPOINTS";
|
|
33
|
-
WorldStateMessageType[WorldStateMessageType["COPY_STORES"] = 128] = "COPY_STORES";
|
|
34
|
-
WorldStateMessageType[WorldStateMessageType["CLOSE"] = 999] = "CLOSE";
|
|
35
|
-
return WorldStateMessageType;
|
|
36
|
-
}({});
|
|
37
4
|
export function buildEmptyDBStats() {
|
|
38
5
|
return {
|
|
39
6
|
name: '',
|
|
@@ -152,15 +119,6 @@ export function sanitizeFullStatus(status) {
|
|
|
152
119
|
status.meta = sanitizeWorldStateTreeMeta(status.meta);
|
|
153
120
|
return status;
|
|
154
121
|
}
|
|
155
|
-
export function isWithForkId(body) {
|
|
156
|
-
return body && 'forkId' in body;
|
|
157
|
-
}
|
|
158
|
-
export function isWithRevision(body) {
|
|
159
|
-
return body && 'revision' in body;
|
|
160
|
-
}
|
|
161
|
-
export function isWithCanonical(body) {
|
|
162
|
-
return body && 'canonical' in body;
|
|
163
|
-
}
|
|
164
122
|
export function treeStateReferenceToSnapshot([root, size]) {
|
|
165
123
|
return new AppendOnlyTreeSnapshot(Fr.fromBuffer(root), Number(size));
|
|
166
124
|
}
|
|
@@ -11,47 +11,32 @@ import { type GenesisData } from '@aztec/stdlib/world-state';
|
|
|
11
11
|
import { WorldStateInstrumentation } from '../instrumentation/instrumentation.js';
|
|
12
12
|
import type { WorldStateTreeMapSizes } from '../synchronizer/factory.js';
|
|
13
13
|
import type { MerkleTreeAdminDatabase as MerkleTreeDatabase } from '../world-state-db/merkle_tree_db.js';
|
|
14
|
+
import { IpcWorldState } from './ipc_world_state_instance.js';
|
|
14
15
|
import { type WorldStateStatusFull, type WorldStateStatusSummary } from './message.js';
|
|
15
|
-
import {
|
|
16
|
+
import type { NativeWorldStateInstance } from './native_world_state_instance.js';
|
|
16
17
|
export declare const WORLD_STATE_DB_VERSION = 2;
|
|
17
18
|
export declare const WORLD_STATE_DIR = "world_state";
|
|
18
19
|
export declare class NativeWorldStateService implements MerkleTreeDatabase {
|
|
19
|
-
protected instance:
|
|
20
|
+
protected instance: NativeWorldStateInstance;
|
|
20
21
|
protected readonly worldStateInstrumentation: WorldStateInstrumentation;
|
|
21
22
|
protected readonly log: Logger;
|
|
22
23
|
private readonly genesis;
|
|
23
24
|
private readonly cleanup;
|
|
25
|
+
/** Factory to recreate a fresh IpcWorldState after clear(). */
|
|
26
|
+
private readonly recreateInstance?;
|
|
24
27
|
protected initialHeader: BlockHeader | undefined;
|
|
25
28
|
private cachedStatusSummary;
|
|
26
|
-
protected constructor(instance:
|
|
27
|
-
/**
|
|
28
|
-
|
|
29
|
-
* caller's rollup address is bound to the on-disk schema and incompatible versions surface
|
|
30
|
-
* loudly. The LMDB envs commit with full fsync.
|
|
31
|
-
*/
|
|
29
|
+
protected constructor(instance: NativeWorldStateInstance, worldStateInstrumentation: WorldStateInstrumentation, log: Logger, genesis?: GenesisData, cleanup?: () => Promise<void>,
|
|
30
|
+
/** Factory to recreate a fresh IpcWorldState after clear(). */
|
|
31
|
+
recreateInstance?: (() => Promise<NativeWorldStateInstance>) | undefined);
|
|
32
32
|
static new(rollupAddress: EthAddress, dataDir: string, wsTreeMapSizes: WorldStateTreeMapSizes, genesis?: GenesisData, instrumentation?: WorldStateInstrumentation, bindings?: LoggerBindings, cleanup?: () => Promise<void>): Promise<NativeWorldStateService>;
|
|
33
|
-
|
|
34
|
-
* Opens a world state in a fresh tmpdir with full fsync semantics. Use when you need the
|
|
35
|
-
* on-disk file to remain crash-recoverable (e.g. for snapshot/backup tests) but don't
|
|
36
|
-
* want a persistent dataDir. Pass `cleanupTmpDir=false` to keep the directory after
|
|
37
|
-
* close for inspection.
|
|
38
|
-
*
|
|
39
|
-
* If you don't care about crash-recoverability — i.e. you just want a fast scratch
|
|
40
|
-
* database for tests — use {@link ephemeral} instead.
|
|
41
|
-
*/
|
|
42
|
-
static tmp(rollupAddress?: EthAddress, cleanupTmpDir?: boolean, genesis?: GenesisData, instrumentation?: WorldStateInstrumentation, bindings?: LoggerBindings): Promise<NativeWorldStateService>;
|
|
43
|
-
/**
|
|
44
|
-
* Opens a fully-ephemeral world state. The directory is created in `os.tmpdir()`, the LMDB
|
|
45
|
-
* envs open with `MDB_NOSYNC | MDB_NOMETASYNC` so commits never block on fsync, and the
|
|
46
|
-
* directory is removed on dispose. A crash mid-write leaves the env unrecoverable.
|
|
47
|
-
*
|
|
48
|
-
* For unit tests and other isolated runs. Use {@link tmp} when you need fsync semantics in a
|
|
49
|
-
* tmp dir, and {@link new} for a persistent store. Skips {@link DatabaseVersionManager} —
|
|
50
|
-
* there is no on-disk schema to bind to and no rollup address is taken.
|
|
51
|
-
*/
|
|
33
|
+
static tmp(cleanupTmpDir?: boolean, genesis?: GenesisData, instrumentation?: WorldStateInstrumentation, bindings?: LoggerBindings, threads?: number): Promise<NativeWorldStateService>;
|
|
52
34
|
static ephemeral(genesis?: GenesisData, instrumentation?: WorldStateInstrumentation, bindings?: LoggerBindings): Promise<NativeWorldStateService>;
|
|
35
|
+
static fromIpc(wsdbBackend: ConstructorParameters<typeof IpcWorldState>[0], instrumentation?: WorldStateInstrumentation, bindings?: LoggerBindings, genesis?: GenesisData, cleanup?: () => Promise<void>, recreateInstance?: () => Promise<NativeWorldStateInstance>): Promise<NativeWorldStateService>;
|
|
53
36
|
protected init(): Promise<void>;
|
|
54
37
|
clear(): Promise<void>;
|
|
38
|
+
/** Returns the IPC path of the underlying IPC backend, if available. */
|
|
39
|
+
getIpcPath(): string;
|
|
55
40
|
getCommitted(): MerkleTreeReadOperations;
|
|
56
41
|
getSnapshot(blockNumber: BlockNumber): MerkleTreeReadOperations;
|
|
57
42
|
fork(blockNumber?: BlockNumber, opts?: {
|
|
@@ -60,6 +45,7 @@ export declare class NativeWorldStateService implements MerkleTreeDatabase {
|
|
|
60
45
|
getInitialHeader(): BlockHeader;
|
|
61
46
|
handleL2BlockAndMessages(l2Block: L2Block, l1ToL2Messages: Fr[]): Promise<WorldStateStatusFull>;
|
|
62
47
|
close(): Promise<void>;
|
|
48
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
63
49
|
private buildInitialHeader;
|
|
64
50
|
private sanitizeAndCacheSummaryFromFull;
|
|
65
51
|
private sanitizeAndCacheSummary;
|
|
@@ -88,4 +74,4 @@ export declare class NativeWorldStateService implements MerkleTreeDatabase {
|
|
|
88
74
|
backupTo(dstPath: string, compact?: boolean): Promise<Record<Exclude<SnapshotDataKeys, 'archiver'>, string>>;
|
|
89
75
|
}
|
|
90
76
|
export declare const NATIVE_WORLD_STATE_DBS: readonly [readonly ["l1-to-l2-message-tree", "L1ToL2MessageTree"], readonly ["archive-tree", "ArchiveTree"], readonly ["public-data-tree", "PublicDataTree"], readonly ["note-hash-tree", "NoteHashTree"], readonly ["nullifier-tree", "NullifierTree"]];
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlX3dvcmxkX3N0YXRlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlL25hdGl2ZV93b3JsZF9zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFOUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQUUsS0FBSyxjQUFjLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDdkYsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbkQsT0FBTyxLQUFLLEVBQ1YsYUFBYSxFQUNiLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDMUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBK0IsS0FBSyxxQkFBcUIsRUFBc0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNsSCxPQUFPLEVBQUUsV0FBVyxFQUEwRCxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZHLE9BQU8sRUFBc0IsS0FBSyxXQUFXLEVBQXNCLE1BQU0sMkJBQTJCLENBQUM7QUFRckcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbEYsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RSxPQUFPLEtBQUssRUFBRSx1QkFBdUIsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU5RCxPQUFPLEVBQ0wsS0FBSyxvQkFBb0IsRUFDekIsS0FBSyx1QkFBdUIsRUFLN0Is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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native_world_state.d.ts","sourceRoot":"","sources":["../../src/native/native_world_state.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"native_world_state.d.ts","sourceRoot":"","sources":["../../src/native/native_world_state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
+
var _computedKey;
|
|
1
2
|
import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
|
|
2
3
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
3
4
|
import { fromEntries, padArrayEnd } from '@aztec/foundation/collection';
|
|
4
5
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
5
|
-
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
6
|
-
import { tryRmDir } from '@aztec/foundation/fs';
|
|
7
6
|
import { createLogger } from '@aztec/foundation/log';
|
|
8
7
|
import { DatabaseVersionManager } from '@aztec/stdlib/database-version/manager';
|
|
9
8
|
import { MerkleTreeId, NullifierLeaf, PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
@@ -11,70 +10,63 @@ import { BlockHeader, GlobalVariables, PartialStateReference, StateReference } f
|
|
|
11
10
|
import { EMPTY_GENESIS_DATA, WorldStateRevision } from '@aztec/stdlib/world-state';
|
|
12
11
|
import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
13
12
|
import assert from 'assert/strict';
|
|
14
|
-
import { mkdtemp, rm } from 'fs/promises';
|
|
13
|
+
import { mkdir, mkdtemp, rm } from 'fs/promises';
|
|
15
14
|
import { tmpdir } from 'os';
|
|
16
15
|
import { join } from 'path';
|
|
17
16
|
import { WorldStateInstrumentation } from '../instrumentation/instrumentation.js';
|
|
17
|
+
import { IpcWorldState } from './ipc_world_state_instance.js';
|
|
18
18
|
import { MerkleTreesFacade, MerkleTreesForkFacade, serializeLeaf } from './merkle_trees_facade.js';
|
|
19
|
-
import {
|
|
20
|
-
import { NativeWorldState } from './native_world_state_instance.js';
|
|
19
|
+
import { blockStateReference, sanitizeFullStatus, sanitizeSummary, treeStateReferenceToSnapshot } from './message.js';
|
|
21
20
|
// The current version of the world state database schema
|
|
22
21
|
// Increment this when making incompatible changes to the database schema
|
|
23
22
|
export const WORLD_STATE_DB_VERSION = 2; // The initial version
|
|
24
23
|
export const WORLD_STATE_DIR = 'world_state';
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Sets up a fresh `mkdtemp` directory + default `WorldStateTreeMapSizes` shared by both
|
|
28
|
-
* the `.tmp` (fsync-on) and `.ephemeral` (fsync-off) factories. Returns the raw tmpdir,
|
|
29
|
-
* the tree map sizes, and the package logger.
|
|
30
|
-
*/ async function createTmpWorldStateDir(bindings) {
|
|
31
|
-
const log = createLogger('world-state:database', bindings);
|
|
32
|
-
const dataDir = await mkdtemp(join(tmpdir(), 'aztec-world-state-'));
|
|
33
|
-
const wsTreeMapSizes = {
|
|
34
|
-
archiveTreeMapSizeKb: DEFAULT_TMP_TREE_MAP_SIZE_KB,
|
|
35
|
-
nullifierTreeMapSizeKb: DEFAULT_TMP_TREE_MAP_SIZE_KB,
|
|
36
|
-
noteHashTreeMapSizeKb: DEFAULT_TMP_TREE_MAP_SIZE_KB,
|
|
37
|
-
messageTreeMapSizeKb: DEFAULT_TMP_TREE_MAP_SIZE_KB,
|
|
38
|
-
publicDataTreeMapSizeKb: DEFAULT_TMP_TREE_MAP_SIZE_KB
|
|
39
|
-
};
|
|
40
|
-
log.debug(`Created temporary world state database at: ${dataDir} (map size ${DEFAULT_TMP_TREE_MAP_SIZE_KB} KB)`);
|
|
41
|
-
return {
|
|
42
|
-
dataDir,
|
|
43
|
-
wsTreeMapSizes,
|
|
44
|
-
log
|
|
45
|
-
};
|
|
46
|
-
}
|
|
24
|
+
_computedKey = Symbol.asyncDispose;
|
|
47
25
|
export class NativeWorldStateService {
|
|
48
26
|
instance;
|
|
49
27
|
worldStateInstrumentation;
|
|
50
28
|
log;
|
|
51
29
|
genesis;
|
|
52
30
|
cleanup;
|
|
31
|
+
recreateInstance;
|
|
53
32
|
initialHeader;
|
|
54
33
|
// This is read heavily and only changes when data is persisted, so we cache it
|
|
55
34
|
cachedStatusSummary;
|
|
56
|
-
constructor(instance, worldStateInstrumentation, log, genesis = EMPTY_GENESIS_DATA, cleanup = ()=>Promise.resolve()){
|
|
35
|
+
constructor(instance, worldStateInstrumentation, log, genesis = EMPTY_GENESIS_DATA, cleanup = ()=>Promise.resolve(), /** Factory to recreate a fresh IpcWorldState after clear(). */ recreateInstance){
|
|
57
36
|
this.instance = instance;
|
|
58
37
|
this.worldStateInstrumentation = worldStateInstrumentation;
|
|
59
38
|
this.log = log;
|
|
60
39
|
this.genesis = genesis;
|
|
61
40
|
this.cleanup = cleanup;
|
|
41
|
+
this.recreateInstance = recreateInstance;
|
|
62
42
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
43
|
+
static async new(rollupAddress, dataDir, wsTreeMapSizes, genesis = EMPTY_GENESIS_DATA, instrumentation = new WorldStateInstrumentation(getTelemetryClient()), bindings, cleanup = ()=>Promise.resolve()) {
|
|
44
|
+
for (const [key, value] of Object.entries(wsTreeMapSizes)){
|
|
45
|
+
if (value <= 0) {
|
|
46
|
+
throw new Error(`Map size must be a positive number, got ${value} for ${key}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
68
49
|
const log = createLogger('world-state:database', bindings);
|
|
69
50
|
const worldStateDirectory = join(dataDir, WORLD_STATE_DIR);
|
|
70
51
|
const versionManager = new DatabaseVersionManager({
|
|
71
52
|
schemaVersion: WORLD_STATE_DB_VERSION,
|
|
72
53
|
rollupAddress,
|
|
73
54
|
dataDirectory: worldStateDirectory,
|
|
74
|
-
onOpen: (dir)=>
|
|
55
|
+
onOpen: (dir)=>IpcWorldState.spawn(dir, wsTreeMapSizes, genesis, instrumentation, bindings)
|
|
75
56
|
});
|
|
76
57
|
const [instance] = await versionManager.open();
|
|
77
|
-
const
|
|
58
|
+
const recreateInstance = async ()=>{
|
|
59
|
+
await rm(worldStateDirectory, {
|
|
60
|
+
recursive: true,
|
|
61
|
+
force: true,
|
|
62
|
+
maxRetries: 3
|
|
63
|
+
});
|
|
64
|
+
await mkdir(worldStateDirectory, {
|
|
65
|
+
recursive: true
|
|
66
|
+
});
|
|
67
|
+
return IpcWorldState.spawn(worldStateDirectory, wsTreeMapSizes, genesis, instrumentation, bindings);
|
|
68
|
+
};
|
|
69
|
+
const worldState = new this(instance, instrumentation, log, genesis, cleanup, recreateInstance);
|
|
78
70
|
try {
|
|
79
71
|
await worldState.init();
|
|
80
72
|
} catch (e) {
|
|
@@ -83,16 +75,23 @@ export class NativeWorldStateService {
|
|
|
83
75
|
}
|
|
84
76
|
return worldState;
|
|
85
77
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
78
|
+
static async tmp(cleanupTmpDir = true, genesis = EMPTY_GENESIS_DATA, instrumentation = new WorldStateInstrumentation(getTelemetryClient()), bindings, threads) {
|
|
79
|
+
const log = createLogger('world-state:database', bindings);
|
|
80
|
+
const dataDir = await mkdtemp(join(tmpdir(), 'aztec-world-state-'));
|
|
81
|
+
// Temporary (test/dev) world states are small and short-lived. Keep the LMDB
|
|
82
|
+
// map sizes in the MB range: with the IPC backend each tmp() spawns a separate
|
|
83
|
+
// aztec-wsdb that maps these per tree, and oversized maps add real cold-start
|
|
84
|
+
// I/O under parallel CI load. 256 MB/tree is ample for tests.
|
|
85
|
+
const dbMapSizeKb = 256 * 1024;
|
|
86
|
+
const worldStateTreeMapSizes = {
|
|
87
|
+
archiveTreeMapSizeKb: dbMapSizeKb,
|
|
88
|
+
nullifierTreeMapSizeKb: dbMapSizeKb,
|
|
89
|
+
noteHashTreeMapSizeKb: dbMapSizeKb,
|
|
90
|
+
messageTreeMapSizeKb: dbMapSizeKb,
|
|
91
|
+
publicDataTreeMapSizeKb: dbMapSizeKb
|
|
92
|
+
};
|
|
93
|
+
log.debug(`Created temporary world state database at: ${dataDir} with tree map size: ${dbMapSizeKb}`);
|
|
94
|
+
const instance = await IpcWorldState.spawn(dataDir, worldStateTreeMapSizes, genesis, instrumentation, bindings, threads);
|
|
96
95
|
const cleanup = async ()=>{
|
|
97
96
|
if (cleanupTmpDir) {
|
|
98
97
|
await rm(dataDir, {
|
|
@@ -105,36 +104,40 @@ export class NativeWorldStateService {
|
|
|
105
104
|
log.debug(`Leaving temporary world state database: ${dataDir}`);
|
|
106
105
|
}
|
|
107
106
|
};
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Opens a fully-ephemeral world state. The directory is created in `os.tmpdir()`, the LMDB
|
|
112
|
-
* envs open with `MDB_NOSYNC | MDB_NOMETASYNC` so commits never block on fsync, and the
|
|
113
|
-
* directory is removed on dispose. A crash mid-write leaves the env unrecoverable.
|
|
114
|
-
*
|
|
115
|
-
* For unit tests and other isolated runs. Use {@link tmp} when you need fsync semantics in a
|
|
116
|
-
* tmp dir, and {@link new} for a persistent store. Skips {@link DatabaseVersionManager} —
|
|
117
|
-
* there is no on-disk schema to bind to and no rollup address is taken.
|
|
118
|
-
*/ static async ephemeral(genesis = EMPTY_GENESIS_DATA, instrumentation = new WorldStateInstrumentation(getTelemetryClient()), bindings) {
|
|
119
|
-
const { dataDir, wsTreeMapSizes, log } = await createTmpWorldStateDir(bindings);
|
|
120
|
-
const cleanup = async ()=>{
|
|
107
|
+
const recreateInstance = async ()=>{
|
|
121
108
|
await rm(dataDir, {
|
|
122
109
|
recursive: true,
|
|
123
110
|
force: true,
|
|
124
111
|
maxRetries: 3
|
|
125
112
|
});
|
|
126
|
-
|
|
113
|
+
await mkdir(dataDir, {
|
|
114
|
+
recursive: true
|
|
115
|
+
});
|
|
116
|
+
return IpcWorldState.spawn(dataDir, worldStateTreeMapSizes, genesis, instrumentation, bindings, threads);
|
|
127
117
|
};
|
|
128
|
-
const
|
|
129
|
-
const worldState = new this(instance, instrumentation, log, genesis, cleanup);
|
|
118
|
+
const worldState = new this(instance, instrumentation, log, genesis, cleanup, recreateInstance);
|
|
130
119
|
try {
|
|
131
120
|
await worldState.init();
|
|
132
121
|
} catch (e) {
|
|
133
|
-
log.error(`Error initializing
|
|
122
|
+
log.error(`Error initializing tmp world state: ${e}`);
|
|
134
123
|
throw e;
|
|
135
124
|
}
|
|
136
125
|
return worldState;
|
|
137
126
|
}
|
|
127
|
+
static ephemeral(genesis = EMPTY_GENESIS_DATA, instrumentation = new WorldStateInstrumentation(getTelemetryClient()), bindings) {
|
|
128
|
+
// The TXE spins up one tiny, short-lived world state per test, many concurrently. Cap the wsdb thread
|
|
129
|
+
// usage to the minimum: a single tree-op thread instead of one per core (the C++ IPC dispatcher pool
|
|
130
|
+
// still floors at 2). This avoids ~32 threads per wsdb multiplied across dozens of concurrent test
|
|
131
|
+
// world states — the trees are cache-sized (see tmp's map-size note), so extra threads buy nothing.
|
|
132
|
+
return this.tmp(/*cleanupTmpDir=*/ true, genesis, instrumentation, bindings, /*threads=*/ 1);
|
|
133
|
+
}
|
|
134
|
+
static async fromIpc(wsdbBackend, instrumentation = new WorldStateInstrumentation(getTelemetryClient()), bindings, genesis = EMPTY_GENESIS_DATA, cleanup = ()=>Promise.resolve(), recreateInstance) {
|
|
135
|
+
const log = createLogger('world-state:database', bindings);
|
|
136
|
+
const instance = new IpcWorldState(wsdbBackend, instrumentation, bindings);
|
|
137
|
+
const worldState = new this(instance, instrumentation, log, genesis, cleanup, recreateInstance);
|
|
138
|
+
await worldState.init();
|
|
139
|
+
return worldState;
|
|
140
|
+
}
|
|
138
141
|
async init() {
|
|
139
142
|
const status = await this.getStatusSummary();
|
|
140
143
|
if (!status.treesAreSynched) {
|
|
@@ -156,10 +159,21 @@ export class NativeWorldStateService {
|
|
|
156
159
|
assert.strictEqual(initialHeaderIndex, 0n, 'Invalid initial archive state');
|
|
157
160
|
}
|
|
158
161
|
async clear() {
|
|
162
|
+
if (!this.recreateInstance) {
|
|
163
|
+
throw new Error('clear() is not available for externally-managed IPC backends');
|
|
164
|
+
}
|
|
165
|
+
this.log.warn('Clearing world state: shutting down WSDB, deleting data, and recreating');
|
|
159
166
|
await this.instance.close();
|
|
160
167
|
this.cachedStatusSummary = undefined;
|
|
161
|
-
|
|
162
|
-
|
|
168
|
+
this.instance = await this.recreateInstance();
|
|
169
|
+
await this.init();
|
|
170
|
+
this.log.info('World state cleared and reinitialized from genesis');
|
|
171
|
+
}
|
|
172
|
+
/** Returns the IPC path of the underlying IPC backend, if available. */ getIpcPath() {
|
|
173
|
+
if (this.instance instanceof IpcWorldState) {
|
|
174
|
+
return this.instance.getIpcPath();
|
|
175
|
+
}
|
|
176
|
+
throw new Error('getIpcPath() is only available with IPC world state');
|
|
163
177
|
}
|
|
164
178
|
getCommitted() {
|
|
165
179
|
return new MerkleTreesFacade(this.instance, this.initialHeader, WorldStateRevision.empty());
|
|
@@ -168,12 +182,11 @@ export class NativeWorldStateService {
|
|
|
168
182
|
return new MerkleTreesFacade(this.instance, this.initialHeader, new WorldStateRevision(/*forkId=*/ 0, /* blockNumber=*/ blockNumber, /* includeUncommitted=*/ false));
|
|
169
183
|
}
|
|
170
184
|
async fork(blockNumber, opts = {}) {
|
|
171
|
-
const
|
|
185
|
+
const forkId = await this.instance.createFork({
|
|
172
186
|
latest: blockNumber === undefined,
|
|
173
|
-
blockNumber: blockNumber ?? BlockNumber.ZERO
|
|
174
|
-
canonical: true
|
|
187
|
+
blockNumber: blockNumber ?? BlockNumber.ZERO
|
|
175
188
|
});
|
|
176
|
-
return new MerkleTreesForkFacade(this.instance, this.initialHeader, new WorldStateRevision(/*forkId=*/
|
|
189
|
+
return new MerkleTreesForkFacade(this.instance, this.initialHeader, new WorldStateRevision(/*forkId=*/ forkId, /* blockNumber=*/ WorldStateRevision.LATEST, /* includeUncommitted=*/ true), opts);
|
|
177
190
|
}
|
|
178
191
|
getInitialHeader() {
|
|
179
192
|
return this.initialHeader;
|
|
@@ -197,7 +210,7 @@ export class NativeWorldStateService {
|
|
|
197
210
|
});
|
|
198
211
|
});
|
|
199
212
|
try {
|
|
200
|
-
|
|
213
|
+
const status = await this.instance.syncBlock({
|
|
201
214
|
blockNumber: l2Block.number,
|
|
202
215
|
blockHeaderHash: (await l2Block.hash()).toBuffer(),
|
|
203
216
|
// Forwarded so the native sync verifies the archive root against canonical and rejects a divergent tree.
|
|
@@ -207,17 +220,24 @@ export class NativeWorldStateService {
|
|
|
207
220
|
paddedNoteHashes: paddedNoteHashes.map(serializeLeaf),
|
|
208
221
|
paddedNullifiers: paddedNullifiers.map(serializeLeaf),
|
|
209
222
|
publicDataWrites: publicDataWrites.map(serializeLeaf),
|
|
210
|
-
blockStateRef: blockStateReference(l2Block.header.state)
|
|
211
|
-
|
|
212
|
-
|
|
223
|
+
blockStateRef: blockStateReference(l2Block.header.state)
|
|
224
|
+
});
|
|
225
|
+
return this.sanitizeAndCacheSummaryFromFull(status);
|
|
213
226
|
} catch (err) {
|
|
227
|
+
this.deleteCachedSummary();
|
|
214
228
|
this.worldStateInstrumentation.incCriticalErrors('synch_pending_block');
|
|
215
229
|
throw err;
|
|
216
230
|
}
|
|
217
231
|
}
|
|
218
232
|
async close() {
|
|
219
|
-
|
|
220
|
-
|
|
233
|
+
try {
|
|
234
|
+
await this.instance.close();
|
|
235
|
+
} finally{
|
|
236
|
+
await this.cleanup();
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
async [_computedKey]() {
|
|
240
|
+
await this.close();
|
|
221
241
|
}
|
|
222
242
|
async buildInitialHeader() {
|
|
223
243
|
const state = await this.getInitialStateReference();
|
|
@@ -242,7 +262,7 @@ export class NativeWorldStateService {
|
|
|
242
262
|
};
|
|
243
263
|
return sanitized;
|
|
244
264
|
}
|
|
245
|
-
deleteCachedSummary(
|
|
265
|
+
deleteCachedSummary() {
|
|
246
266
|
this.cachedStatusSummary = undefined;
|
|
247
267
|
}
|
|
248
268
|
/**
|
|
@@ -251,11 +271,9 @@ export class NativeWorldStateService {
|
|
|
251
271
|
* @returns The new WorldStateStatus
|
|
252
272
|
*/ async setFinalized(toBlockNumber) {
|
|
253
273
|
try {
|
|
254
|
-
await this.instance.
|
|
255
|
-
toBlockNumber,
|
|
256
|
-
canonical: true
|
|
257
|
-
}, this.sanitizeAndCacheSummary.bind(this), this.deleteCachedSummary.bind(this));
|
|
274
|
+
this.sanitizeAndCacheSummary(await this.instance.finalizeBlocks(toBlockNumber));
|
|
258
275
|
} catch (err) {
|
|
276
|
+
this.deleteCachedSummary();
|
|
259
277
|
this.worldStateInstrumentation.incCriticalErrors('finalize_block');
|
|
260
278
|
throw err;
|
|
261
279
|
}
|
|
@@ -267,11 +285,9 @@ export class NativeWorldStateService {
|
|
|
267
285
|
* @returns The new WorldStateStatus
|
|
268
286
|
*/ async removeHistoricalBlocks(toBlockNumber) {
|
|
269
287
|
try {
|
|
270
|
-
return await this.instance.
|
|
271
|
-
toBlockNumber,
|
|
272
|
-
canonical: true
|
|
273
|
-
}, this.sanitizeAndCacheSummaryFromFull.bind(this), this.deleteCachedSummary.bind(this));
|
|
288
|
+
return this.sanitizeAndCacheSummaryFromFull(await this.instance.removeHistoricalBlocks(toBlockNumber));
|
|
274
289
|
} catch (err) {
|
|
290
|
+
this.deleteCachedSummary();
|
|
275
291
|
this.worldStateInstrumentation.incCriticalErrors('prune_historical_block');
|
|
276
292
|
throw err;
|
|
277
293
|
}
|
|
@@ -282,11 +298,9 @@ export class NativeWorldStateService {
|
|
|
282
298
|
* @returns The new WorldStateStatus
|
|
283
299
|
*/ async unwindBlocks(toBlockNumber) {
|
|
284
300
|
try {
|
|
285
|
-
return await this.instance.
|
|
286
|
-
toBlockNumber,
|
|
287
|
-
canonical: true
|
|
288
|
-
}, this.sanitizeAndCacheSummaryFromFull.bind(this), this.deleteCachedSummary.bind(this));
|
|
301
|
+
return this.sanitizeAndCacheSummaryFromFull(await this.instance.unwindBlocks(toBlockNumber));
|
|
289
302
|
} catch (err) {
|
|
303
|
+
this.deleteCachedSummary();
|
|
290
304
|
this.worldStateInstrumentation.incCriticalErrors('prune_pending_block');
|
|
291
305
|
throw err;
|
|
292
306
|
}
|
|
@@ -297,25 +311,17 @@ export class NativeWorldStateService {
|
|
|
297
311
|
...this.cachedStatusSummary
|
|
298
312
|
};
|
|
299
313
|
}
|
|
300
|
-
return await this.instance.
|
|
301
|
-
canonical: true
|
|
302
|
-
}, this.sanitizeAndCacheSummary.bind(this));
|
|
314
|
+
return this.sanitizeAndCacheSummary(await this.instance.getStatus());
|
|
303
315
|
}
|
|
304
316
|
updateLeaf(_treeId, _leaf, _index) {
|
|
305
317
|
return Promise.reject(new Error('Method not implemented'));
|
|
306
318
|
}
|
|
307
319
|
async getInitialStateReference() {
|
|
308
|
-
const
|
|
309
|
-
|
|
310
|
-
});
|
|
311
|
-
return new StateReference(treeStateReferenceToSnapshot(resp.state[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]), new PartialStateReference(treeStateReferenceToSnapshot(resp.state[MerkleTreeId.NOTE_HASH_TREE]), treeStateReferenceToSnapshot(resp.state[MerkleTreeId.NULLIFIER_TREE]), treeStateReferenceToSnapshot(resp.state[MerkleTreeId.PUBLIC_DATA_TREE])));
|
|
320
|
+
const state = await this.instance.getInitialStateReference();
|
|
321
|
+
return new StateReference(treeStateReferenceToSnapshot(state[MerkleTreeId.L1_TO_L2_MESSAGE_TREE]), new PartialStateReference(treeStateReferenceToSnapshot(state[MerkleTreeId.NOTE_HASH_TREE]), treeStateReferenceToSnapshot(state[MerkleTreeId.NULLIFIER_TREE]), treeStateReferenceToSnapshot(state[MerkleTreeId.PUBLIC_DATA_TREE])));
|
|
312
322
|
}
|
|
313
323
|
async backupTo(dstPath, compact = true) {
|
|
314
|
-
await this.instance.
|
|
315
|
-
dstPath,
|
|
316
|
-
compact,
|
|
317
|
-
canonical: true
|
|
318
|
-
});
|
|
324
|
+
await this.instance.copyStores(dstPath, compact);
|
|
319
325
|
return fromEntries(NATIVE_WORLD_STATE_DBS.map(([name, dir])=>[
|
|
320
326
|
name,
|
|
321
327
|
join(dstPath, dir, 'data.mdb')
|