@aztec/kv-store 0.0.1-commit.bf2612ae → 0.0.1-commit.c80b6263
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/interfaces/utils.d.ts +2 -1
- package/dest/interfaces/utils.d.ts.map +1 -1
- package/dest/interfaces/utils.js +2 -1
- package/dest/lmdb-v2/factory.d.ts +6 -6
- package/dest/lmdb-v2/factory.d.ts.map +1 -1
- package/dest/lmdb-v2/factory.js +13 -9
- package/dest/lmdb-v2/store.d.ts +3 -3
- package/dest/lmdb-v2/store.d.ts.map +1 -1
- package/dest/lmdb-v2/store.js +2 -1
- package/package.json +6 -6
- package/src/interfaces/utils.ts +1 -0
- package/src/lmdb-v2/factory.ts +14 -10
- package/src/lmdb-v2/store.ts +3 -2
|
@@ -12,6 +12,7 @@ export declare const mockLogger: {
|
|
|
12
12
|
isLevelEnabled: (_level: string) => boolean;
|
|
13
13
|
module: string;
|
|
14
14
|
createChild: () => /*elided*/ any;
|
|
15
|
+
getBindings: () => {};
|
|
15
16
|
};
|
|
16
17
|
export declare function isSyncStore(store: AztecKVStore | AztecAsyncKVStore): store is AztecAsyncKVStore;
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbnRlcmZhY2VzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUdsRSxlQUFPLE1BQU0sVUFBVTs7Ozs7Ozs7Ozs7Ozs7Q0FjdEIsQ0FBQztBQUdGLHdCQUFnQixXQUFXLENBQUMsS0FBSyxFQUFFLFlBQVksR0FBRyxpQkFBaUIsR0FBRyxLQUFLLElBQUksaUJBQWlCLENBRS9GIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/interfaces/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGlE,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/interfaces/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGlE,eAAO,MAAM,UAAU;;;;;;;;;;;;;;CActB,CAAC;AAGF,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,iBAAiB,GAAG,KAAK,IAAI,iBAAiB,CAE/F"}
|
package/dest/interfaces/utils.js
CHANGED
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
level: 'trace',
|
|
11
11
|
isLevelEnabled: (_level)=>true,
|
|
12
12
|
module: 'kv-store:mock-logger',
|
|
13
|
-
createChild: ()=>mockLogger
|
|
13
|
+
createChild: ()=>mockLogger,
|
|
14
|
+
getBindings: ()=>({})
|
|
14
15
|
};
|
|
15
16
|
/* eslint-enable no-console */ export function isSyncStore(store) {
|
|
16
17
|
return store.syncGetters === true;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
-
import { type
|
|
2
|
+
import { type LoggerBindings } from '@aztec/foundation/log';
|
|
3
3
|
import type { DataStoreConfig } from '../config.js';
|
|
4
4
|
import { AztecLMDBStoreV2 } from './store.js';
|
|
5
|
-
export declare function createStore(name: string, schemaVersion: number, config: DataStoreConfig,
|
|
6
|
-
export declare function openTmpStore(name: string, ephemeral?: boolean, dbMapSizeKb?: number, maxReaders?: number,
|
|
7
|
-
export declare function openStoreAt(dataDir: string, dbMapSizeKb?: number, maxReaders?: number,
|
|
8
|
-
export declare function openVersionedStoreAt(dataDirectory: string, schemaVersion: number, rollupAddress: EthAddress, dbMapSizeKb?: number, maxReaders?: number,
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export declare function createStore(name: string, schemaVersion: number, config: DataStoreConfig, bindings?: LoggerBindings): Promise<AztecLMDBStoreV2>;
|
|
6
|
+
export declare function openTmpStore(name: string, ephemeral?: boolean, dbMapSizeKb?: number, maxReaders?: number, bindings?: LoggerBindings): Promise<AztecLMDBStoreV2>;
|
|
7
|
+
export declare function openStoreAt(dataDir: string, dbMapSizeKb?: number, maxReaders?: number, bindings?: LoggerBindings): Promise<AztecLMDBStoreV2>;
|
|
8
|
+
export declare function openVersionedStoreAt(dataDirectory: string, schemaVersion: number, rollupAddress: EthAddress, dbMapSizeKb?: number, maxReaders?: number, bindings?: LoggerBindings): Promise<AztecLMDBStoreV2>;
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xtZGItdjIvZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEtBQUssY0FBYyxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBTzFFLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFJOUMsd0JBQXNCLFdBQVcsQ0FDL0IsSUFBSSxFQUFFLE1BQU0sRUFDWixhQUFhLEVBQUUsTUFBTSxFQUNyQixNQUFNLEVBQUUsZUFBZSxFQUN2QixRQUFRLENBQUMsRUFBRSxjQUFjLEdBQ3hCLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQThCM0I7QUFFRCx3QkFBc0IsWUFBWSxDQUNoQyxJQUFJLEVBQUUsTUFBTSxFQUNaLFNBQVMsR0FBRSxPQUFjLEVBQ3pCLFdBQVcsU0FBcUIsRUFDaEMsVUFBVSxTQUFjLEVBQ3hCLFFBQVEsQ0FBQyxFQUFFLGNBQWMsR0FDeEIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBc0IzQjtBQUVELHdCQUFzQixXQUFXLENBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQ2YsV0FBVyxTQUFxQixFQUNoQyxVQUFVLFNBQWMsRUFDeEIsUUFBUSxDQUFDLEVBQUUsY0FBYyxHQUN4QixPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FJM0I7QUFFRCx3QkFBc0Isb0JBQW9CLENBQ3hDLGFBQWEsRUFBRSxNQUFNLEVBQ3JCLGFBQWEsRUFBRSxNQUFNLEVBQ3JCLGFBQWEsRUFBRSxVQUFVLEVBQ3pCLFdBQVcsU0FBcUIsRUFDaEMsVUFBVSxTQUFjLEVBQ3hCLFFBQVEsQ0FBQyxFQUFFLGNBQWMsR0FDeEIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBVTNCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AAO1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAI9C,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,eAAe,EACvB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,gBAAgB,CAAC,CA8B3B;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,OAAc,EACzB,WAAW,SAAqB,EAChC,UAAU,SAAc,EACxB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAsB3B;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,WAAW,SAAqB,EAChC,UAAU,SAAc,EACxB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAI3B;AAED,wBAAsB,oBAAoB,CACxC,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,UAAU,EACzB,WAAW,SAAqB,EAChC,UAAU,SAAc,EACxB,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,gBAAgB,CAAC,CAU3B"}
|
package/dest/lmdb-v2/factory.js
CHANGED
|
@@ -6,7 +6,8 @@ import { tmpdir } from 'os';
|
|
|
6
6
|
import { join } from 'path';
|
|
7
7
|
import { AztecLMDBStoreV2 } from './store.js';
|
|
8
8
|
const MAX_READERS = 16;
|
|
9
|
-
export async function createStore(name, schemaVersion, config,
|
|
9
|
+
export async function createStore(name, schemaVersion, config, bindings) {
|
|
10
|
+
const log = createLogger('kv-store:lmdb-v2:' + name, bindings);
|
|
10
11
|
const { dataDirectory, l1Contracts } = config;
|
|
11
12
|
let store;
|
|
12
13
|
if (typeof dataDirectory !== 'undefined') {
|
|
@@ -21,16 +22,17 @@ export async function createStore(name, schemaVersion, config, log = createLogge
|
|
|
21
22
|
schemaVersion,
|
|
22
23
|
rollupAddress,
|
|
23
24
|
dataDirectory: subDir,
|
|
24
|
-
onOpen: (dbDirectory)=>AztecLMDBStoreV2.new(dbDirectory, config.dataStoreMapSizeKb, MAX_READERS, ()=>Promise.resolve(),
|
|
25
|
+
onOpen: (dbDirectory)=>AztecLMDBStoreV2.new(dbDirectory, config.dataStoreMapSizeKb, MAX_READERS, ()=>Promise.resolve(), bindings)
|
|
25
26
|
});
|
|
26
27
|
log.info(`Creating ${name} data store at directory ${subDir} with map size ${config.dataStoreMapSizeKb} KB (LMDB v2)`);
|
|
27
28
|
[store] = await versionManager.open();
|
|
28
29
|
} else {
|
|
29
|
-
store = await openTmpStore(name, true, config.dataStoreMapSizeKb, MAX_READERS,
|
|
30
|
+
store = await openTmpStore(name, true, config.dataStoreMapSizeKb, MAX_READERS, bindings);
|
|
30
31
|
}
|
|
31
32
|
return store;
|
|
32
33
|
}
|
|
33
|
-
export async function openTmpStore(name, ephemeral = true, dbMapSizeKb = 10 * 1_024 * 1_024, maxReaders = MAX_READERS,
|
|
34
|
+
export async function openTmpStore(name, ephemeral = true, dbMapSizeKb = 10 * 1_024 * 1_024, maxReaders = MAX_READERS, bindings) {
|
|
35
|
+
const log = createLogger('kv-store:lmdb-v2:' + name, bindings);
|
|
34
36
|
const dataDir = await mkdtemp(join(tmpdir(), name + '-'));
|
|
35
37
|
log.debug(`Created temporary data store at: ${dataDir} with size: ${dbMapSizeKb} KB (LMDB v2)`);
|
|
36
38
|
// pass a cleanup callback because process.on('beforeExit', cleanup) does not work under Jest
|
|
@@ -52,19 +54,21 @@ export async function openTmpStore(name, ephemeral = true, dbMapSizeKb = 10 * 1_
|
|
|
52
54
|
};
|
|
53
55
|
// For temporary stores, we don't need to worry about versioning
|
|
54
56
|
// as they are ephemeral and get cleaned up after use
|
|
55
|
-
return AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, cleanup,
|
|
57
|
+
return AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, cleanup, bindings);
|
|
56
58
|
}
|
|
57
|
-
export async function openStoreAt(dataDir, dbMapSizeKb = 10 * 1_024 * 1_024, maxReaders = MAX_READERS,
|
|
59
|
+
export async function openStoreAt(dataDir, dbMapSizeKb = 10 * 1_024 * 1_024, maxReaders = MAX_READERS, bindings) {
|
|
60
|
+
const log = createLogger('kv-store:lmdb-v2', bindings);
|
|
58
61
|
log.debug(`Opening data store at: ${dataDir} with size: ${dbMapSizeKb} KB (LMDB v2)`);
|
|
59
|
-
return await AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, undefined,
|
|
62
|
+
return await AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, undefined, bindings);
|
|
60
63
|
}
|
|
61
|
-
export async function openVersionedStoreAt(dataDirectory, schemaVersion, rollupAddress, dbMapSizeKb = 10 * 1_024 * 1_024, maxReaders = MAX_READERS,
|
|
64
|
+
export async function openVersionedStoreAt(dataDirectory, schemaVersion, rollupAddress, dbMapSizeKb = 10 * 1_024 * 1_024, maxReaders = MAX_READERS, bindings) {
|
|
65
|
+
const log = createLogger('kv-store:lmdb-v2', bindings);
|
|
62
66
|
log.debug(`Opening data store at: ${dataDirectory} with size: ${dbMapSizeKb} KB (LMDB v2)`);
|
|
63
67
|
const [store] = await new DatabaseVersionManager({
|
|
64
68
|
schemaVersion,
|
|
65
69
|
rollupAddress,
|
|
66
70
|
dataDirectory,
|
|
67
|
-
onOpen: (dataDir)=>AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, undefined,
|
|
71
|
+
onOpen: (dataDir)=>AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, undefined, bindings)
|
|
68
72
|
}).open();
|
|
69
73
|
return store;
|
|
70
74
|
}
|
package/dest/lmdb-v2/store.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type LoggerBindings } from '@aztec/foundation/log';
|
|
2
2
|
import type { AztecAsyncArray } from '../interfaces/array.js';
|
|
3
3
|
import type { Key, StoreSize, Value } from '../interfaces/common.js';
|
|
4
4
|
import type { AztecAsyncCounter } from '../interfaces/counter.js';
|
|
@@ -23,7 +23,7 @@ export declare class AztecLMDBStoreV2 implements AztecAsyncKVStore, LMDBMessageC
|
|
|
23
23
|
private constructor();
|
|
24
24
|
get dataDirectory(): string;
|
|
25
25
|
private start;
|
|
26
|
-
static new(dataDir: string, dbMapSizeKb?: number, maxReaders?: number, cleanup?: () => Promise<void>,
|
|
26
|
+
static new(dataDir: string, dbMapSizeKb?: number, maxReaders?: number, cleanup?: () => Promise<void>, bindings?: LoggerBindings): Promise<AztecLMDBStoreV2>;
|
|
27
27
|
backupTo(dstPath: string, compact?: boolean): Promise<void>;
|
|
28
28
|
getReadTx(): ReadTransaction;
|
|
29
29
|
getCurrentWriteTx(): WriteTransaction | undefined;
|
|
@@ -40,4 +40,4 @@ export declare class AztecLMDBStoreV2 implements AztecAsyncKVStore, LMDBMessageC
|
|
|
40
40
|
sendMessage<T extends LMDBMessageType>(msgType: T, body: LMDBRequestBody[T]): Promise<LMDBResponseBody[T]>;
|
|
41
41
|
estimateSize(): Promise<StoreSize>;
|
|
42
42
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sbWRiLXYyL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxLQUFLLGNBQWMsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQU92RixPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHaEUsT0FBTyxFQUVMLEtBQUssa0JBQWtCLEVBQ3ZCLGVBQWUsRUFDZixLQUFLLGVBQWUsRUFDcEIsS0FBSyxnQkFBZ0IsRUFDdEIsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUQscUJBQWEsZ0JBQWlCLFlBQVcsaUJBQWlCLEVBQUUsa0JBQWtCO0lBUTFFLE9BQU8sQ0FBQyxPQUFPO0lBR2YsT0FBTyxDQUFDLEdBQUc7SUFDWCxPQUFPLENBQUMsT0FBTyxDQUFDO0lBWGxCLE9BQU8sQ0FBQyxJQUFJLENBQVM7SUFDckIsT0FBTyxDQUFDLE9BQU8sQ0FBcUU7SUFDcEYsT0FBTyxDQUFDLFNBQVMsQ0FBNkM7SUFDOUQsT0FBTyxDQUFDLFdBQVcsQ0FBcUI7SUFDeEMsT0FBTyxDQUFDLGdCQUFnQixDQUFZO0lBRXBDLE9BQU8sZUFXTjtJQUVELElBQVcsYUFBYSxJQUFJLE1BQU0sQ0FFakM7WUFFYSxLQUFLO0lBZ0JuQixPQUFvQixHQUFHLENBQ3JCLE9BQU8sRUFBRSxNQUFNLEVBQ2YsV0FBVyxHQUFFLE1BQXlCLEVBQ3RDLFVBQVUsR0FBRSxNQUFXLEVBQ3ZCLE9BQU8sQ0FBQyxFQUFFLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxFQUM3QixRQUFRLENBQUMsRUFBRSxjQUFjLDZCQU0xQjtJQUVZLFFBQVEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sVUFBTyxpQkFHcEQ7SUFFTSxTQUFTLElBQUksZUFBZSxDQUtsQztJQUVNLGlCQUFpQixJQUFJLGdCQUFnQixHQUFHLFNBQVMsQ0FNdkQ7SUFFRCxPQUFPLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FFekU7SUFFRCxZQUFZLENBQUMsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUVuRjtJQUVELGFBQWEsQ0FBQyxDQUFDLFNBQVMsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBRW5FO0lBRUQsU0FBUyxDQUFDLENBQUMsU0FBUyxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBRTNEO0lBRUQsT0FBTyxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBRXJEO0lBRUQsV0FBVyxDQUFDLENBQUMsU0FBUyxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FFOUQ7SUFFSyxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDekQsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFLGdCQUFnQixLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FDN0MsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQTBCWjtJQUVELEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBRXJCO0lBRUssTUFBTSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FLNUI7SUFFSyxLQUFLLGtCQVFWO0lBRVksV0FBVyxDQUFDLENBQUMsU0FBUyxlQUFlLEVBQ2hELE9BQU8sRUFBRSxDQUFDLEVBQ1YsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FDdkIsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBd0I5QjtJQUVZLFlBQVksSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBUTlDO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/store.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/store.ts"],"names":[],"mappings":"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"}
|
package/dest/lmdb-v2/store.js
CHANGED
|
@@ -48,7 +48,8 @@ export class AztecLMDBStoreV2 {
|
|
|
48
48
|
});
|
|
49
49
|
this.open = true;
|
|
50
50
|
}
|
|
51
|
-
static async new(dataDir, dbMapSizeKb = 10 * 1024 * 1024, maxReaders = 16, cleanup,
|
|
51
|
+
static async new(dataDir, dbMapSizeKb = 10 * 1024 * 1024, maxReaders = 16, cleanup, bindings) {
|
|
52
|
+
const log = createLogger('kv-store:lmdb-v2', bindings);
|
|
52
53
|
const db = new AztecLMDBStoreV2(dataDir, dbMapSizeKb, maxReaders, log, cleanup);
|
|
53
54
|
await db.start();
|
|
54
55
|
return db;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/kv-store",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.c80b6263",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/interfaces/index.js",
|
|
@@ -25,11 +25,11 @@
|
|
|
25
25
|
"./package.local.json"
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@aztec/constants": "0.0.1-commit.
|
|
29
|
-
"@aztec/ethereum": "0.0.1-commit.
|
|
30
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
31
|
-
"@aztec/native": "0.0.1-commit.
|
|
32
|
-
"@aztec/stdlib": "0.0.1-commit.
|
|
28
|
+
"@aztec/constants": "0.0.1-commit.c80b6263",
|
|
29
|
+
"@aztec/ethereum": "0.0.1-commit.c80b6263",
|
|
30
|
+
"@aztec/foundation": "0.0.1-commit.c80b6263",
|
|
31
|
+
"@aztec/native": "0.0.1-commit.c80b6263",
|
|
32
|
+
"@aztec/stdlib": "0.0.1-commit.c80b6263",
|
|
33
33
|
"idb": "^8.0.0",
|
|
34
34
|
"lmdb": "^3.2.0",
|
|
35
35
|
"msgpackr": "^1.11.2",
|
package/src/interfaces/utils.ts
CHANGED
package/src/lmdb-v2/factory.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
-
import { type
|
|
2
|
+
import { type LoggerBindings, createLogger } from '@aztec/foundation/log';
|
|
3
3
|
import { DatabaseVersionManager } from '@aztec/stdlib/database-version';
|
|
4
4
|
|
|
5
5
|
import { mkdir, mkdtemp, rm } from 'fs/promises';
|
|
@@ -15,8 +15,9 @@ export async function createStore(
|
|
|
15
15
|
name: string,
|
|
16
16
|
schemaVersion: number,
|
|
17
17
|
config: DataStoreConfig,
|
|
18
|
-
|
|
18
|
+
bindings?: LoggerBindings,
|
|
19
19
|
): Promise<AztecLMDBStoreV2> {
|
|
20
|
+
const log = createLogger('kv-store:lmdb-v2:' + name, bindings);
|
|
20
21
|
const { dataDirectory, l1Contracts } = config;
|
|
21
22
|
|
|
22
23
|
let store: AztecLMDBStoreV2;
|
|
@@ -33,7 +34,7 @@ export async function createStore(
|
|
|
33
34
|
rollupAddress,
|
|
34
35
|
dataDirectory: subDir,
|
|
35
36
|
onOpen: dbDirectory =>
|
|
36
|
-
AztecLMDBStoreV2.new(dbDirectory, config.dataStoreMapSizeKb, MAX_READERS, () => Promise.resolve(),
|
|
37
|
+
AztecLMDBStoreV2.new(dbDirectory, config.dataStoreMapSizeKb, MAX_READERS, () => Promise.resolve(), bindings),
|
|
37
38
|
});
|
|
38
39
|
|
|
39
40
|
log.info(
|
|
@@ -41,7 +42,7 @@ export async function createStore(
|
|
|
41
42
|
);
|
|
42
43
|
[store] = await versionManager.open();
|
|
43
44
|
} else {
|
|
44
|
-
store = await openTmpStore(name, true, config.dataStoreMapSizeKb, MAX_READERS,
|
|
45
|
+
store = await openTmpStore(name, true, config.dataStoreMapSizeKb, MAX_READERS, bindings);
|
|
45
46
|
}
|
|
46
47
|
|
|
47
48
|
return store;
|
|
@@ -52,8 +53,9 @@ export async function openTmpStore(
|
|
|
52
53
|
ephemeral: boolean = true,
|
|
53
54
|
dbMapSizeKb = 10 * 1_024 * 1_024, // 10GB
|
|
54
55
|
maxReaders = MAX_READERS,
|
|
55
|
-
|
|
56
|
+
bindings?: LoggerBindings,
|
|
56
57
|
): Promise<AztecLMDBStoreV2> {
|
|
58
|
+
const log = createLogger('kv-store:lmdb-v2:' + name, bindings);
|
|
57
59
|
const dataDir = await mkdtemp(join(tmpdir(), name + '-'));
|
|
58
60
|
log.debug(`Created temporary data store at: ${dataDir} with size: ${dbMapSizeKb} KB (LMDB v2)`);
|
|
59
61
|
|
|
@@ -73,17 +75,18 @@ export async function openTmpStore(
|
|
|
73
75
|
|
|
74
76
|
// For temporary stores, we don't need to worry about versioning
|
|
75
77
|
// as they are ephemeral and get cleaned up after use
|
|
76
|
-
return AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, cleanup,
|
|
78
|
+
return AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, cleanup, bindings);
|
|
77
79
|
}
|
|
78
80
|
|
|
79
81
|
export async function openStoreAt(
|
|
80
82
|
dataDir: string,
|
|
81
83
|
dbMapSizeKb = 10 * 1_024 * 1_024, // 10GB
|
|
82
84
|
maxReaders = MAX_READERS,
|
|
83
|
-
|
|
85
|
+
bindings?: LoggerBindings,
|
|
84
86
|
): Promise<AztecLMDBStoreV2> {
|
|
87
|
+
const log = createLogger('kv-store:lmdb-v2', bindings);
|
|
85
88
|
log.debug(`Opening data store at: ${dataDir} with size: ${dbMapSizeKb} KB (LMDB v2)`);
|
|
86
|
-
return await AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, undefined,
|
|
89
|
+
return await AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, undefined, bindings);
|
|
87
90
|
}
|
|
88
91
|
|
|
89
92
|
export async function openVersionedStoreAt(
|
|
@@ -92,14 +95,15 @@ export async function openVersionedStoreAt(
|
|
|
92
95
|
rollupAddress: EthAddress,
|
|
93
96
|
dbMapSizeKb = 10 * 1_024 * 1_024, // 10GB
|
|
94
97
|
maxReaders = MAX_READERS,
|
|
95
|
-
|
|
98
|
+
bindings?: LoggerBindings,
|
|
96
99
|
): Promise<AztecLMDBStoreV2> {
|
|
100
|
+
const log = createLogger('kv-store:lmdb-v2', bindings);
|
|
97
101
|
log.debug(`Opening data store at: ${dataDirectory} with size: ${dbMapSizeKb} KB (LMDB v2)`);
|
|
98
102
|
const [store] = await new DatabaseVersionManager({
|
|
99
103
|
schemaVersion,
|
|
100
104
|
rollupAddress,
|
|
101
105
|
dataDirectory,
|
|
102
|
-
onOpen: dataDir => AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, undefined,
|
|
106
|
+
onOpen: dataDir => AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, undefined, bindings),
|
|
103
107
|
}).open();
|
|
104
108
|
return store;
|
|
105
109
|
}
|
package/src/lmdb-v2/store.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
1
|
+
import { type Logger, type LoggerBindings, createLogger } from '@aztec/foundation/log';
|
|
2
2
|
import { Semaphore, SerialQueue } from '@aztec/foundation/queue';
|
|
3
3
|
import { MsgpackChannel, NativeLMDBStore } from '@aztec/native';
|
|
4
4
|
|
|
@@ -75,8 +75,9 @@ export class AztecLMDBStoreV2 implements AztecAsyncKVStore, LMDBMessageChannel {
|
|
|
75
75
|
dbMapSizeKb: number = 10 * 1024 * 1024,
|
|
76
76
|
maxReaders: number = 16,
|
|
77
77
|
cleanup?: () => Promise<void>,
|
|
78
|
-
|
|
78
|
+
bindings?: LoggerBindings,
|
|
79
79
|
) {
|
|
80
|
+
const log = createLogger('kv-store:lmdb-v2', bindings);
|
|
80
81
|
const db = new AztecLMDBStoreV2(dataDir, dbMapSizeKb, maxReaders, log, cleanup);
|
|
81
82
|
await db.start();
|
|
82
83
|
return db;
|