@aztec/world-state 0.0.1-commit.2f68f620 → 0.0.1-commit.3100065

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.
Files changed (57) hide show
  1. package/dest/instrumentation/instrumentation.d.ts +3 -4
  2. package/dest/instrumentation/instrumentation.d.ts.map +1 -1
  3. package/dest/instrumentation/instrumentation.js +9 -4
  4. package/dest/native/ipc_world_state_instance.d.ts +22 -59
  5. package/dest/native/ipc_world_state_instance.d.ts.map +1 -1
  6. package/dest/native/ipc_world_state_instance.js +495 -520
  7. package/dest/native/merkle_trees_facade.d.ts +3 -4
  8. package/dest/native/merkle_trees_facade.d.ts.map +1 -1
  9. package/dest/native/merkle_trees_facade.js +109 -37
  10. package/dest/native/message.d.ts +233 -14
  11. package/dest/native/message.d.ts.map +1 -1
  12. package/dest/native/message.js +42 -0
  13. package/dest/native/native_world_state.d.ts +28 -14
  14. package/dest/native/native_world_state.d.ts.map +1 -1
  15. package/dest/native/native_world_state.js +102 -101
  16. package/dest/native/native_world_state_instance.d.ts +42 -58
  17. package/dest/native/native_world_state_instance.d.ts.map +1 -1
  18. package/dest/native/native_world_state_instance.js +222 -5
  19. package/dest/native/world_state_ops_queue.d.ts +19 -0
  20. package/dest/native/world_state_ops_queue.d.ts.map +1 -0
  21. package/dest/native/world_state_ops_queue.js +146 -0
  22. package/dest/synchronizer/errors.d.ts +8 -1
  23. package/dest/synchronizer/errors.d.ts.map +1 -1
  24. package/dest/synchronizer/errors.js +8 -1
  25. package/dest/synchronizer/factory.d.ts +1 -1
  26. package/dest/synchronizer/factory.d.ts.map +1 -1
  27. package/dest/synchronizer/factory.js +1 -1
  28. package/dest/synchronizer/index.d.ts +2 -1
  29. package/dest/synchronizer/index.d.ts.map +1 -1
  30. package/dest/synchronizer/index.js +1 -0
  31. package/dest/synchronizer/server_world_state_synchronizer.d.ts +11 -6
  32. package/dest/synchronizer/server_world_state_synchronizer.d.ts.map +1 -1
  33. package/dest/synchronizer/server_world_state_synchronizer.js +55 -43
  34. package/dest/test/utils.d.ts +1 -1
  35. package/dest/test/utils.d.ts.map +1 -1
  36. package/dest/test/utils.js +6 -1
  37. package/dest/testing.d.ts +2 -2
  38. package/dest/testing.d.ts.map +1 -1
  39. package/dest/testing.js +15 -4
  40. package/package.json +10 -12
  41. package/src/instrumentation/instrumentation.ts +18 -6
  42. package/src/native/ipc_world_state_instance.ts +503 -608
  43. package/src/native/merkle_trees_facade.ts +104 -59
  44. package/src/native/message.ts +300 -13
  45. package/src/native/native_world_state.ts +156 -121
  46. package/src/native/native_world_state_instance.ts +307 -96
  47. package/src/native/world_state_ops_queue.ts +190 -0
  48. package/src/synchronizer/errors.ts +8 -0
  49. package/src/synchronizer/factory.ts +1 -0
  50. package/src/synchronizer/index.ts +1 -0
  51. package/src/synchronizer/server_world_state_synchronizer.ts +63 -30
  52. package/src/test/utils.ts +10 -1
  53. package/src/testing.ts +14 -4
  54. package/dest/native/world_state_operation.d.ts +0 -7
  55. package/dest/native/world_state_operation.d.ts.map +0 -1
  56. package/dest/native/world_state_operation.js +0 -5
  57. package/src/native/world_state_operation.ts +0 -33
@@ -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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"}
@@ -1,6 +1,39 @@
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
+ }({});
4
37
  export function buildEmptyDBStats() {
5
38
  return {
6
39
  name: '',
@@ -119,6 +152,15 @@ export function sanitizeFullStatus(status) {
119
152
  status.meta = sanitizeWorldStateTreeMeta(status.meta);
120
153
  return status;
121
154
  }
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
+ }
122
164
  export function treeStateReferenceToSnapshot([root, size]) {
123
165
  return new AppendOnlyTreeSnapshot(Fr.fromBuffer(root), Number(size));
124
166
  }
@@ -11,32 +11,47 @@ 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';
15
14
  import { type WorldStateStatusFull, type WorldStateStatusSummary } from './message.js';
16
- import type { NativeWorldStateInstance } from './native_world_state_instance.js';
15
+ import { NativeWorldState } from './native_world_state_instance.js';
17
16
  export declare const WORLD_STATE_DB_VERSION = 2;
18
17
  export declare const WORLD_STATE_DIR = "world_state";
19
18
  export declare class NativeWorldStateService implements MerkleTreeDatabase {
20
- protected instance: NativeWorldStateInstance;
19
+ protected instance: NativeWorldState;
21
20
  protected readonly worldStateInstrumentation: WorldStateInstrumentation;
22
21
  protected readonly log: Logger;
23
22
  private readonly genesis;
24
23
  private readonly cleanup;
25
- /** Factory to recreate a fresh IpcWorldState after clear(). */
26
- private readonly recreateInstance?;
27
24
  protected initialHeader: BlockHeader | undefined;
28
25
  private cachedStatusSummary;
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);
26
+ protected constructor(instance: NativeWorldState, worldStateInstrumentation: WorldStateInstrumentation, log: Logger, genesis?: GenesisData, cleanup?: () => Promise<void>);
27
+ /**
28
+ * Opens a persistent world state at `dataDir`. Goes through `DatabaseVersionManager` so the
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
+ */
32
32
  static new(rollupAddress: EthAddress, dataDir: string, wsTreeMapSizes: WorldStateTreeMapSizes, genesis?: GenesisData, instrumentation?: WorldStateInstrumentation, bindings?: LoggerBindings, cleanup?: () => Promise<void>): Promise<NativeWorldStateService>;
33
- static tmp(cleanupTmpDir?: boolean, genesis?: GenesisData, instrumentation?: WorldStateInstrumentation, bindings?: LoggerBindings): 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
+ */
34
52
  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>;
36
53
  protected init(): Promise<void>;
37
54
  clear(): Promise<void>;
38
- /** Returns the IPC path of the underlying IPC backend, if available. */
39
- getIpcPath(): string;
40
55
  getCommitted(): MerkleTreeReadOperations;
41
56
  getSnapshot(blockNumber: BlockNumber): MerkleTreeReadOperations;
42
57
  fork(blockNumber?: BlockNumber, opts?: {
@@ -45,7 +60,6 @@ export declare class NativeWorldStateService implements MerkleTreeDatabase {
45
60
  getInitialHeader(): BlockHeader;
46
61
  handleL2BlockAndMessages(l2Block: L2Block, l1ToL2Messages: Fr[]): Promise<WorldStateStatusFull>;
47
62
  close(): Promise<void>;
48
- [Symbol.asyncDispose](): Promise<void>;
49
63
  private buildInitialHeader;
50
64
  private sanitizeAndCacheSummaryFromFull;
51
65
  private sanitizeAndCacheSummary;
@@ -74,4 +88,4 @@ export declare class NativeWorldStateService implements MerkleTreeDatabase {
74
88
  backupTo(dstPath: string, compact?: boolean): Promise<Record<Exclude<SnapshotDataKeys, 'archiver'>, string>>;
75
89
  }
76
90
  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"]];
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlX3dvcmxkX3N0YXRlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlL25hdGl2ZV93b3JsZF9zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFOUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQUUsS0FBSyxjQUFjLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDdkYsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbkQsT0FBTyxLQUFLLEVBQ1YsYUFBYSxFQUNiLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDMUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBK0IsS0FBSyxxQkFBcUIsRUFBc0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNsSCxPQUFPLEVBQUUsV0FBVyxFQUEwRCxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZHLE9BQU8sRUFBc0IsS0FBSyxXQUFXLEVBQXNCLE1BQU0sMkJBQTJCLENBQUM7QUFRckcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbEYsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RSxPQUFPLEtBQUssRUFBRSx1QkFBdUIsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU5RCxPQUFPLEVBQ0wsS0FBSyxvQkFBb0IsRUFDekIsS0FBSyx1QkFBdUIsRUFLN0Is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
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlX3dvcmxkX3N0YXRlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlL25hdGl2ZV93b3JsZF9zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFOUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQUUsS0FBSyxjQUFjLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDdkYsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbkQsT0FBTyxLQUFLLEVBQ1YsYUFBYSxFQUNiLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDMUIsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBK0IsS0FBSyxxQkFBcUIsRUFBc0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNsSCxPQUFPLEVBQUUsV0FBVyxFQUEwRCxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZHLE9BQU8sRUFBc0IsS0FBSyxXQUFXLEVBQXNCLE1BQU0sMkJBQTJCLENBQUM7QUFRckcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbEYsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RSxPQUFPLEtBQUssRUFBRSx1QkFBdUIsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXpHLE9BQU8sRUFFTCxLQUFLLG9CQUFvQixFQUN6QixLQUFLLHVCQUF1QixFQUs3QixNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUs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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":"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"}
1
+ {"version":3,"file":"native_world_state.d.ts","sourceRoot":"","sources":["../../src/native/native_world_state.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
- var _computedKey;
2
1
  import { MAX_NOTE_HASHES_PER_TX, MAX_NULLIFIERS_PER_TX, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP } from '@aztec/constants';
3
2
  import { BlockNumber } from '@aztec/foundation/branded-types';
4
3
  import { fromEntries, padArrayEnd } from '@aztec/foundation/collection';
5
4
  import { Fr } from '@aztec/foundation/curves/bn254';
5
+ import { EthAddress } from '@aztec/foundation/eth-address';
6
+ import { tryRmDir } from '@aztec/foundation/fs';
6
7
  import { createLogger } from '@aztec/foundation/log';
7
8
  import { DatabaseVersionManager } from '@aztec/stdlib/database-version/manager';
8
9
  import { MerkleTreeId, NullifierLeaf, PublicDataTreeLeaf } from '@aztec/stdlib/trees';
@@ -10,63 +11,70 @@ import { BlockHeader, GlobalVariables, PartialStateReference, StateReference } f
10
11
  import { EMPTY_GENESIS_DATA, WorldStateRevision } from '@aztec/stdlib/world-state';
11
12
  import { getTelemetryClient } from '@aztec/telemetry-client';
12
13
  import assert from 'assert/strict';
13
- import { mkdir, mkdtemp, rm } from 'fs/promises';
14
+ import { mkdtemp, rm } from 'fs/promises';
14
15
  import { tmpdir } from 'os';
15
16
  import { join } from 'path';
16
17
  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 { blockStateReference, sanitizeFullStatus, sanitizeSummary, treeStateReferenceToSnapshot } from './message.js';
19
+ import { WorldStateMessageType, blockStateReference, sanitizeFullStatus, sanitizeSummary, treeStateReferenceToSnapshot } from './message.js';
20
+ import { NativeWorldState } from './native_world_state_instance.js';
20
21
  // The current version of the world state database schema
21
22
  // Increment this when making incompatible changes to the database schema
22
23
  export const WORLD_STATE_DB_VERSION = 2; // The initial version
23
24
  export const WORLD_STATE_DIR = 'world_state';
24
- _computedKey = Symbol.asyncDispose;
25
+ const DEFAULT_TMP_TREE_MAP_SIZE_KB = 10 * 1024 * 1024;
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
+ }
25
47
  export class NativeWorldStateService {
26
48
  instance;
27
49
  worldStateInstrumentation;
28
50
  log;
29
51
  genesis;
30
52
  cleanup;
31
- recreateInstance;
32
53
  initialHeader;
33
54
  // This is read heavily and only changes when data is persisted, so we cache it
34
55
  cachedStatusSummary;
35
- constructor(instance, worldStateInstrumentation, log, genesis = EMPTY_GENESIS_DATA, cleanup = ()=>Promise.resolve(), /** Factory to recreate a fresh IpcWorldState after clear(). */ recreateInstance){
56
+ constructor(instance, worldStateInstrumentation, log, genesis = EMPTY_GENESIS_DATA, cleanup = ()=>Promise.resolve()){
36
57
  this.instance = instance;
37
58
  this.worldStateInstrumentation = worldStateInstrumentation;
38
59
  this.log = log;
39
60
  this.genesis = genesis;
40
61
  this.cleanup = cleanup;
41
- this.recreateInstance = recreateInstance;
42
62
  }
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
- }
63
+ /**
64
+ * Opens a persistent world state at `dataDir`. Goes through `DatabaseVersionManager` so the
65
+ * caller's rollup address is bound to the on-disk schema and incompatible versions surface
66
+ * loudly. The LMDB envs commit with full fsync.
67
+ */ static async new(rollupAddress, dataDir, wsTreeMapSizes, genesis = EMPTY_GENESIS_DATA, instrumentation = new WorldStateInstrumentation(getTelemetryClient()), bindings, cleanup = ()=>Promise.resolve()) {
49
68
  const log = createLogger('world-state:database', bindings);
50
69
  const worldStateDirectory = join(dataDir, WORLD_STATE_DIR);
51
70
  const versionManager = new DatabaseVersionManager({
52
71
  schemaVersion: WORLD_STATE_DB_VERSION,
53
72
  rollupAddress,
54
73
  dataDirectory: worldStateDirectory,
55
- onOpen: (dir)=>IpcWorldState.spawn(dir, wsTreeMapSizes, genesis, instrumentation, bindings)
74
+ onOpen: (dir)=>Promise.resolve(new NativeWorldState(dir, wsTreeMapSizes, genesis, instrumentation, bindings, undefined, /*ephemeral=*/ false))
56
75
  });
57
76
  const [instance] = await versionManager.open();
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);
77
+ const worldState = new this(instance, instrumentation, log, genesis, cleanup);
70
78
  try {
71
79
  await worldState.init();
72
80
  } catch (e) {
@@ -75,23 +83,16 @@ export class NativeWorldStateService {
75
83
  }
76
84
  return worldState;
77
85
  }
78
- static async tmp(cleanupTmpDir = true, genesis = EMPTY_GENESIS_DATA, instrumentation = new WorldStateInstrumentation(getTelemetryClient()), bindings) {
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);
86
+ /**
87
+ * Opens a world state in a fresh tmpdir with full fsync semantics. Use when you need the
88
+ * on-disk file to remain crash-recoverable (e.g. for snapshot/backup tests) but don't
89
+ * want a persistent dataDir. Pass `cleanupTmpDir=false` to keep the directory after
90
+ * close for inspection.
91
+ *
92
+ * If you don't care about crash-recoverability — i.e. you just want a fast scratch
93
+ * database for tests use {@link ephemeral} instead.
94
+ */ static async tmp(rollupAddress = EthAddress.ZERO, cleanupTmpDir = true, genesis = EMPTY_GENESIS_DATA, instrumentation = new WorldStateInstrumentation(getTelemetryClient()), bindings) {
95
+ const { dataDir, wsTreeMapSizes, log } = await createTmpWorldStateDir(bindings);
95
96
  const cleanup = async ()=>{
96
97
  if (cleanupTmpDir) {
97
98
  await rm(dataDir, {
@@ -104,36 +105,36 @@ export class NativeWorldStateService {
104
105
  log.debug(`Leaving temporary world state database: ${dataDir}`);
105
106
  }
106
107
  };
107
- const recreateInstance = async ()=>{
108
+ return this.new(rollupAddress, dataDir, wsTreeMapSizes, genesis, instrumentation, bindings, cleanup);
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 ()=>{
108
121
  await rm(dataDir, {
109
122
  recursive: true,
110
123
  force: true,
111
124
  maxRetries: 3
112
125
  });
113
- await mkdir(dataDir, {
114
- recursive: true
115
- });
116
- return IpcWorldState.spawn(dataDir, worldStateTreeMapSizes, genesis, instrumentation, bindings);
126
+ log.debug(`Deleted ephemeral world state database: ${dataDir}`);
117
127
  };
118
- const worldState = new this(instance, instrumentation, log, genesis, cleanup, recreateInstance);
128
+ const instance = new NativeWorldState(join(dataDir, WORLD_STATE_DIR), wsTreeMapSizes, genesis, instrumentation, bindings, undefined, /*ephemeral=*/ true);
129
+ const worldState = new this(instance, instrumentation, log, genesis, cleanup);
119
130
  try {
120
131
  await worldState.init();
121
132
  } catch (e) {
122
- log.error(`Error initializing tmp world state: ${e}`);
133
+ log.error(`Error initializing ephemeral world state: ${e}`);
123
134
  throw e;
124
135
  }
125
136
  return worldState;
126
137
  }
127
- static ephemeral(genesis = EMPTY_GENESIS_DATA, instrumentation = new WorldStateInstrumentation(getTelemetryClient()), bindings) {
128
- return this.tmp(/*cleanupTmpDir=*/ true, genesis, instrumentation, bindings);
129
- }
130
- static async fromIpc(wsdbBackend, instrumentation = new WorldStateInstrumentation(getTelemetryClient()), bindings, genesis = EMPTY_GENESIS_DATA, cleanup = ()=>Promise.resolve(), recreateInstance) {
131
- const log = createLogger('world-state:database', bindings);
132
- const instance = new IpcWorldState(wsdbBackend, instrumentation, bindings);
133
- const worldState = new this(instance, instrumentation, log, genesis, cleanup, recreateInstance);
134
- await worldState.init();
135
- return worldState;
136
- }
137
138
  async init() {
138
139
  const status = await this.getStatusSummary();
139
140
  if (!status.treesAreSynched) {
@@ -155,21 +156,10 @@ export class NativeWorldStateService {
155
156
  assert.strictEqual(initialHeaderIndex, 0n, 'Invalid initial archive state');
156
157
  }
157
158
  async clear() {
158
- if (!this.recreateInstance) {
159
- throw new Error('clear() is not available for externally-managed IPC backends');
160
- }
161
- this.log.warn('Clearing world state: shutting down WSDB, deleting data, and recreating');
162
159
  await this.instance.close();
163
160
  this.cachedStatusSummary = undefined;
164
- this.instance = await this.recreateInstance();
165
- await this.init();
166
- this.log.info('World state cleared and reinitialized from genesis');
167
- }
168
- /** Returns the IPC path of the underlying IPC backend, if available. */ getIpcPath() {
169
- if (this.instance instanceof IpcWorldState) {
170
- return this.instance.getIpcPath();
171
- }
172
- throw new Error('getIpcPath() is only available with IPC world state');
161
+ await tryRmDir(this.instance.getDataDir(), this.log);
162
+ this.instance = this.instance.clone();
173
163
  }
174
164
  getCommitted() {
175
165
  return new MerkleTreesFacade(this.instance, this.initialHeader, WorldStateRevision.empty());
@@ -178,11 +168,12 @@ export class NativeWorldStateService {
178
168
  return new MerkleTreesFacade(this.instance, this.initialHeader, new WorldStateRevision(/*forkId=*/ 0, /* blockNumber=*/ blockNumber, /* includeUncommitted=*/ false));
179
169
  }
180
170
  async fork(blockNumber, opts = {}) {
181
- const forkId = await this.instance.createFork({
171
+ const resp = await this.instance.call(WorldStateMessageType.CREATE_FORK, {
182
172
  latest: blockNumber === undefined,
183
- blockNumber: blockNumber ?? BlockNumber.ZERO
173
+ blockNumber: blockNumber ?? BlockNumber.ZERO,
174
+ canonical: true
184
175
  });
185
- return new MerkleTreesForkFacade(this.instance, this.initialHeader, new WorldStateRevision(/*forkId=*/ forkId, /* blockNumber=*/ WorldStateRevision.LATEST, /* includeUncommitted=*/ true), opts);
176
+ return new MerkleTreesForkFacade(this.instance, this.initialHeader, new WorldStateRevision(/*forkId=*/ resp.forkId, /* blockNumber=*/ WorldStateRevision.LATEST, /* includeUncommitted=*/ true), opts);
186
177
  }
187
178
  getInitialHeader() {
188
179
  return this.initialHeader;
@@ -206,31 +197,27 @@ export class NativeWorldStateService {
206
197
  });
207
198
  });
208
199
  try {
209
- const status = await this.instance.syncBlock({
200
+ return await this.instance.call(WorldStateMessageType.SYNC_BLOCK, {
210
201
  blockNumber: l2Block.number,
211
202
  blockHeaderHash: (await l2Block.hash()).toBuffer(),
203
+ // Forwarded so the native sync verifies the archive root against canonical and rejects a divergent tree.
204
+ expectedArchiveRoot: l2Block.archive.root.toBuffer(),
205
+ expectedPreviousArchiveRoot: l2Block.header.lastArchive.root.toBuffer(),
212
206
  paddedL1ToL2Messages: paddedL1ToL2Messages.map(serializeLeaf),
213
207
  paddedNoteHashes: paddedNoteHashes.map(serializeLeaf),
214
208
  paddedNullifiers: paddedNullifiers.map(serializeLeaf),
215
209
  publicDataWrites: publicDataWrites.map(serializeLeaf),
216
- blockStateRef: blockStateReference(l2Block.header.state)
217
- });
218
- return this.sanitizeAndCacheSummaryFromFull(status);
210
+ blockStateRef: blockStateReference(l2Block.header.state),
211
+ canonical: true
212
+ }, this.sanitizeAndCacheSummaryFromFull.bind(this), this.deleteCachedSummary.bind(this));
219
213
  } catch (err) {
220
- this.deleteCachedSummary();
221
214
  this.worldStateInstrumentation.incCriticalErrors('synch_pending_block');
222
215
  throw err;
223
216
  }
224
217
  }
225
218
  async close() {
226
- try {
227
- await this.instance.close();
228
- } finally{
229
- await this.cleanup();
230
- }
231
- }
232
- async [_computedKey]() {
233
- await this.close();
219
+ await this.instance.close();
220
+ await this.cleanup();
234
221
  }
235
222
  async buildInitialHeader() {
236
223
  const state = await this.getInitialStateReference();
@@ -255,7 +242,7 @@ export class NativeWorldStateService {
255
242
  };
256
243
  return sanitized;
257
244
  }
258
- deleteCachedSummary() {
245
+ deleteCachedSummary(_) {
259
246
  this.cachedStatusSummary = undefined;
260
247
  }
261
248
  /**
@@ -264,9 +251,11 @@ export class NativeWorldStateService {
264
251
  * @returns The new WorldStateStatus
265
252
  */ async setFinalized(toBlockNumber) {
266
253
  try {
267
- this.sanitizeAndCacheSummary(await this.instance.finalizeBlocks(toBlockNumber));
254
+ await this.instance.call(WorldStateMessageType.FINALIZE_BLOCKS, {
255
+ toBlockNumber,
256
+ canonical: true
257
+ }, this.sanitizeAndCacheSummary.bind(this), this.deleteCachedSummary.bind(this));
268
258
  } catch (err) {
269
- this.deleteCachedSummary();
270
259
  this.worldStateInstrumentation.incCriticalErrors('finalize_block');
271
260
  throw err;
272
261
  }
@@ -278,9 +267,11 @@ export class NativeWorldStateService {
278
267
  * @returns The new WorldStateStatus
279
268
  */ async removeHistoricalBlocks(toBlockNumber) {
280
269
  try {
281
- return this.sanitizeAndCacheSummaryFromFull(await this.instance.removeHistoricalBlocks(toBlockNumber));
270
+ return await this.instance.call(WorldStateMessageType.REMOVE_HISTORICAL_BLOCKS, {
271
+ toBlockNumber,
272
+ canonical: true
273
+ }, this.sanitizeAndCacheSummaryFromFull.bind(this), this.deleteCachedSummary.bind(this));
282
274
  } catch (err) {
283
- this.deleteCachedSummary();
284
275
  this.worldStateInstrumentation.incCriticalErrors('prune_historical_block');
285
276
  throw err;
286
277
  }
@@ -291,9 +282,11 @@ export class NativeWorldStateService {
291
282
  * @returns The new WorldStateStatus
292
283
  */ async unwindBlocks(toBlockNumber) {
293
284
  try {
294
- return this.sanitizeAndCacheSummaryFromFull(await this.instance.unwindBlocks(toBlockNumber));
285
+ return await this.instance.call(WorldStateMessageType.UNWIND_BLOCKS, {
286
+ toBlockNumber,
287
+ canonical: true
288
+ }, this.sanitizeAndCacheSummaryFromFull.bind(this), this.deleteCachedSummary.bind(this));
295
289
  } catch (err) {
296
- this.deleteCachedSummary();
297
290
  this.worldStateInstrumentation.incCriticalErrors('prune_pending_block');
298
291
  throw err;
299
292
  }
@@ -304,17 +297,25 @@ export class NativeWorldStateService {
304
297
  ...this.cachedStatusSummary
305
298
  };
306
299
  }
307
- return this.sanitizeAndCacheSummary(await this.instance.getStatus());
300
+ return await this.instance.call(WorldStateMessageType.GET_STATUS, {
301
+ canonical: true
302
+ }, this.sanitizeAndCacheSummary.bind(this));
308
303
  }
309
304
  updateLeaf(_treeId, _leaf, _index) {
310
305
  return Promise.reject(new Error('Method not implemented'));
311
306
  }
312
307
  async getInitialStateReference() {
313
- const state = await this.instance.getInitialStateReference();
314
- 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])));
308
+ const resp = await this.instance.call(WorldStateMessageType.GET_INITIAL_STATE_REFERENCE, {
309
+ canonical: true
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])));
315
312
  }
316
313
  async backupTo(dstPath, compact = true) {
317
- await this.instance.copyStores(dstPath, compact);
314
+ await this.instance.call(WorldStateMessageType.COPY_STORES, {
315
+ dstPath,
316
+ compact,
317
+ canonical: true
318
+ });
318
319
  return fromEntries(NATIVE_WORLD_STATE_DBS.map(([name, dir])=>[
319
320
  name,
320
321
  join(dstPath, dir, 'data.mdb')