@peerbit/blocks 4.1.9 → 4.2.1

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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=any-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"any-store.d.ts","sourceRoot":"","sources":["../../benchmark/any-store.ts"],"names":[],"mappings":""}
@@ -0,0 +1,112 @@
1
+ import { createStore as createDefaultStore } from "@peerbit/any-store";
2
+ import {} from "@peerbit/any-store-interface";
3
+ import { createStore as createRustStore } from "@peerbit/any-store-rust";
4
+ import { calculateRawCid } from "@peerbit/blocks-interface";
5
+ import crypto from "crypto";
6
+ import { mkdtemp, rm } from "fs/promises";
7
+ import { tmpdir } from "os";
8
+ import { join } from "path";
9
+ import { performance } from "perf_hooks";
10
+ import { AnyBlockStore } from "../src/any-blockstore.js";
11
+ const parsePositiveInteger = (value, fallback) => {
12
+ if (!value) {
13
+ return fallback;
14
+ }
15
+ const parsed = Number.parseInt(value, 10);
16
+ if (!Number.isFinite(parsed) || parsed <= 0) {
17
+ throw new Error(`Expected a positive integer, got '${value}'`);
18
+ }
19
+ return parsed;
20
+ };
21
+ const entries = parsePositiveInteger(process.env.PEERBIT_BLOCKS_STORE_ENTRIES, 10_000);
22
+ const valueBytes = parsePositiveInteger(process.env.PEERBIT_BLOCKS_STORE_VALUE_BYTES, 256);
23
+ const createModeStore = async (mode) => {
24
+ const directory = await mkdtemp(join(tmpdir(), `peerbit-blocks-${mode}-`));
25
+ return {
26
+ store: mode === "level" ? createDefaultStore(directory) : createRustStore(directory),
27
+ cleanup: async () => {
28
+ await rm(directory, { recursive: true, force: true });
29
+ },
30
+ };
31
+ };
32
+ const measure = async (fn) => {
33
+ const started = performance.now();
34
+ await fn();
35
+ const elapsedMs = performance.now() - started;
36
+ return {
37
+ elapsedMs: Math.round(elapsedMs),
38
+ opsPerSecond: Math.round((entries / elapsedMs) * 1000),
39
+ };
40
+ };
41
+ const runMode = async (mode) => {
42
+ const { store, cleanup } = await createModeStore(mode);
43
+ const blocks = Array.from({ length: entries }, () => crypto.randomBytes(valueBytes));
44
+ const knownBlocks = mode.includes("known")
45
+ ? await Promise.all(blocks.map((block) => calculateRawCid(block)))
46
+ : [];
47
+ if (mode.includes("fallback")) {
48
+ const mutableStore = store;
49
+ mutableStore.putImmutable = undefined;
50
+ mutableStore.putManyImmutable = undefined;
51
+ }
52
+ const blockstore = new AnyBlockStore(store);
53
+ await blockstore.start();
54
+ try {
55
+ let cids = [];
56
+ const put = await measure(async () => {
57
+ if (mode === "rust-batch") {
58
+ cids = await blockstore.putMany(blocks);
59
+ }
60
+ else if (mode === "rust-known" || mode === "rust-known-fallback") {
61
+ for (const known of knownBlocks) {
62
+ cids.push(await blockstore.putKnown(known.cid, known.block.bytes));
63
+ }
64
+ }
65
+ else if (mode === "rust-known-batch" ||
66
+ mode === "rust-known-batch-fallback") {
67
+ cids = await blockstore.putKnownMany(knownBlocks.map((known) => [known.cid, known.block.bytes]));
68
+ }
69
+ else {
70
+ for (const block of blocks) {
71
+ cids.push(await blockstore.put(block));
72
+ }
73
+ }
74
+ });
75
+ const get = await measure(async () => {
76
+ for (const cid of cids) {
77
+ const bytes = await blockstore.get(cid);
78
+ if (!bytes || bytes.byteLength !== valueBytes) {
79
+ throw new Error(`Missing block ${cid}`);
80
+ }
81
+ }
82
+ });
83
+ return {
84
+ mode,
85
+ entries,
86
+ valueBytes,
87
+ putOpsPerSecond: put.opsPerSecond,
88
+ putMs: put.elapsedMs,
89
+ getOpsPerSecond: get.opsPerSecond,
90
+ getMs: get.elapsedMs,
91
+ verifiedBlocks: cids.length,
92
+ };
93
+ }
94
+ finally {
95
+ await blockstore.stop();
96
+ await cleanup();
97
+ }
98
+ };
99
+ const rows = [];
100
+ for (const mode of [
101
+ "level",
102
+ "rust",
103
+ "rust-batch",
104
+ "rust-known-fallback",
105
+ "rust-known",
106
+ "rust-known-batch-fallback",
107
+ "rust-known-batch",
108
+ ]) {
109
+ rows.push(await runMode(mode));
110
+ }
111
+ console.table(rows);
112
+ //# sourceMappingURL=any-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"any-store.js","sourceRoot":"","sources":["../../benchmark/any-store.ts"],"names":[],"mappings":"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"}
@@ -1,28 +1,41 @@
1
1
  import { type AnyStore } from "@peerbit/any-store-interface";
2
- import { type Blocks } from "@peerbit/blocks-interface";
2
+ import { type Blocks, type GetOptions } from "@peerbit/blocks-interface";
3
3
  import type { PeerRefs, WaitForAnyOpts, WaitForPresentOpts } from "@peerbit/stream-interface";
4
4
  import { type Block } from "multiformats/block";
5
+ type BlockGetOptions = GetOptions & {
6
+ raw?: boolean;
7
+ links?: string[];
8
+ hasher?: any;
9
+ };
5
10
  export declare class AnyBlockStore implements Blocks {
6
11
  private _store;
7
12
  private _opening;
8
13
  private _onClose;
9
14
  private _closeController?;
10
15
  constructor(store?: AnyStore);
11
- get(cid: string, options?: {
12
- raw?: boolean;
13
- links?: string[];
14
- hasher?: any;
15
- remote: {
16
- timeout?: number;
17
- };
18
- }): Promise<Uint8Array | undefined>;
16
+ getNativeLogBlockStoreHandle(): unknown;
17
+ getBlockResponsePayload(cid: string): Uint8Array | undefined;
18
+ private decodeStoredBytes;
19
+ get(cid: string, options?: BlockGetOptions): Promise<Uint8Array | undefined>;
20
+ getMany(cids: string[], options?: BlockGetOptions): Promise<Array<Uint8Array | undefined>>;
19
21
  put(bytes: Uint8Array | {
20
22
  block: Block<any, any, any, any>;
21
23
  cid: string;
22
24
  }): Promise<string>;
25
+ putMany(blocks: Array<Uint8Array | {
26
+ block: Block<any, any, any, any>;
27
+ cid: string;
28
+ }>): Promise<string[]>;
29
+ putKnown(cid: string, bytes: Uint8Array): Promise<string> | string;
30
+ putKnownMany(blocks: Array<readonly [cid: string, bytes: Uint8Array]>): Promise<string[]> | string[];
31
+ private putKnownManyWithStoreBatch;
32
+ private handleStorePutError;
33
+ private isClosingStorePutError;
23
34
  rm(cid: string): Promise<void>;
35
+ rmMany(cids: string[]): Promise<number>;
24
36
  iterator(): AsyncGenerator<[string, Uint8Array], void, void>;
25
37
  has(cid: string): Promise<boolean>;
38
+ hasMany(cids: string[]): Promise<boolean[]>;
26
39
  start(): Promise<void>;
27
40
  stop(): Promise<void>;
28
41
  status(): import("@peerbit/any-store-interface").MaybePromise<"opening" | "open" | "closing" | "closed">;
@@ -30,4 +43,5 @@ export declare class AnyBlockStore implements Blocks {
30
43
  size(): Promise<number>;
31
44
  persisted(): boolean | Promise<boolean>;
32
45
  }
46
+ export {};
33
47
  //# sourceMappingURL=any-blockstore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"any-blockstore.d.ts","sourceRoot":"","sources":["../../src/any-blockstore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EACN,KAAK,MAAM,EAKX,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACX,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,KAAK,KAAK,EAAU,MAAM,oBAAoB,CAAC;AAGxD,qBAAa,aAAc,YAAW,MAAM;IAC3C,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,gBAAgB,CAAC,CAAkB;gBAC/B,KAAK,GAAE,QAAwB;IAIrC,GAAG,CACR,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;QACT,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,GAAG,CAAC;QACb,MAAM,EAAE;YACP,OAAO,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;KACF,GACC,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IA+B5B,GAAG,CACR,KAAK,EAAE,UAAU,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GACnE,OAAO,CAAC,MAAM,CAAC;IAyBZ,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7B,QAAQ,IAAI,cAAc,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;IAM7D,GAAG,CAAC,GAAG,EAAE,MAAM;IAIf,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,MAAM;IAGA,OAAO,CACZ,IAAI,EAAE,QAAQ,EACd,OAAO,CAAC,EAAE,kBAAkB,GAAG,cAAc,GAC3C,OAAO,CAAC,MAAM,EAAE,CAAC;IAKd,IAAI;IAIV,SAAS,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAGvC"}
1
+ {"version":3,"file":"any-blockstore.d.ts","sourceRoot":"","sources":["../../src/any-blockstore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EACN,KAAK,MAAM,EACX,KAAK,UAAU,EAKf,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACX,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,KAAK,KAAK,EAAU,MAAM,oBAAoB,CAAC;AAkBxD,KAAK,eAAe,GAAG,UAAU,GAAG;IACnC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,GAAG,CAAC;CACb,CAAC;AAEF,qBAAa,aAAc,YAAW,MAAM;IAC3C,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,gBAAgB,CAAC,CAAkB;gBAC/B,KAAK,GAAE,QAAwB;IAI3C,4BAA4B,IAAI,OAAO;IAKvC,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;YAM9C,iBAAiB;IAqBzB,GAAG,CACR,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAkB5B,OAAO,CACZ,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IA2BnC,GAAG,CACR,KAAK,EAAE,UAAU,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GACnE,OAAO,CAAC,MAAM,CAAC;IAmBZ,OAAO,CACZ,MAAM,EAAE,KAAK,CAAC,UAAU,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,GAC3E,OAAO,CAAC,MAAM,EAAE,CAAC;IAkCpB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM;IAiBlE,YAAY,CACX,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,GACtD,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE;YAiBjB,0BAA0B;YA8B1B,mBAAmB;YAOnB,sBAAsB;IAU9B,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9B,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAWtC,QAAQ,IAAI,cAAc,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;IAM7D,GAAG,CAAC,GAAG,EAAE,MAAM;IAcf,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAkB3C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,MAAM;IAGA,OAAO,CACZ,IAAI,EAAE,QAAQ,EACd,OAAO,CAAC,EAAE,kBAAkB,GAAG,cAAc,GAC3C,OAAO,CAAC,MAAM,EAAE,CAAC;IAKd,IAAI;IAIV,SAAS,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAGvC"}
@@ -4,6 +4,7 @@ import { calculateRawCid, cidifyString, codecCodes, defaultHasher, } from "@peer
4
4
  import { waitFor } from "@peerbit/time";
5
5
  import { decode } from "multiformats/block";
6
6
  import * as raw from "multiformats/codecs/raw";
7
+ const isPromiseLike = (value) => typeof value?.then === "function";
7
8
  export class AnyBlockStore {
8
9
  _store;
9
10
  _opening;
@@ -12,24 +13,34 @@ export class AnyBlockStore {
12
13
  constructor(store = createStore()) {
13
14
  this._store = store;
14
15
  }
15
- async get(cid, options) {
16
+ getNativeLogBlockStoreHandle() {
17
+ return this._store
18
+ .getNativeLogBlockStoreHandle?.();
19
+ }
20
+ getBlockResponsePayload(cid) {
21
+ return this._store.getBlockResponsePayload?.(cid);
22
+ }
23
+ async decodeStoredBytes(cid, bytes, options) {
16
24
  const cidObject = cidifyString(cid);
25
+ if (cidObject.code === raw.code &&
26
+ (options?.hasher == null || options.hasher === defaultHasher)) {
27
+ return bytes;
28
+ }
29
+ const codec = codecCodes[cidObject.code];
30
+ const block = await decode({
31
+ bytes,
32
+ codec,
33
+ hasher: options?.hasher || defaultHasher,
34
+ });
35
+ return block.bytes;
36
+ }
37
+ async get(cid, options) {
17
38
  try {
18
39
  const bytes = await this._store.get(cid);
19
40
  if (!bytes) {
20
41
  return undefined;
21
42
  }
22
- if (cidObject.code === raw.code &&
23
- (options?.hasher == null || options.hasher === defaultHasher)) {
24
- return bytes;
25
- }
26
- const codec = codecCodes[cidObject.code];
27
- const block = await decode({
28
- bytes,
29
- codec,
30
- hasher: options?.hasher || defaultHasher,
31
- });
32
- return block.bytes;
43
+ return this.decodeStoredBytes(cid, bytes, options);
33
44
  }
34
45
  catch (error) {
35
46
  if (typeof error?.code === "string" &&
@@ -39,6 +50,25 @@ export class AnyBlockStore {
39
50
  throw error;
40
51
  }
41
52
  }
53
+ async getMany(cids, options) {
54
+ const store = this._store;
55
+ try {
56
+ if (typeof store.getMany === "function") {
57
+ const values = await store.getMany(cids);
58
+ return Promise.all(values.map((bytes, index) => bytes
59
+ ? this.decodeStoredBytes(cids[index], bytes, options)
60
+ : undefined));
61
+ }
62
+ return Promise.all(cids.map((cid) => this.get(cid, options)));
63
+ }
64
+ catch (error) {
65
+ if (typeof error?.code === "string" &&
66
+ error?.code?.indexOf("LEVEL_NOT_FOUND") !== -1) {
67
+ return Promise.all(cids.map((cid) => this.get(cid, options)));
68
+ }
69
+ throw error;
70
+ }
71
+ }
42
72
  async put(bytes) {
43
73
  const put = bytes instanceof Uint8Array ? await calculateRawCid(bytes) : bytes;
44
74
  const bbytes = put.block.bytes;
@@ -46,11 +76,7 @@ export class AnyBlockStore {
46
76
  await this._store.put(put.cid, bbytes);
47
77
  }
48
78
  catch (error) {
49
- const status = await this._store.status();
50
- if (typeof error?.code === "string" &&
51
- error.code === "LEVEL_DATABASE_NOT_OPEN" &&
52
- this._closeController?.signal.aborted === true &&
53
- (status === "closing" || status === "closed")) {
79
+ if (await this.isClosingStorePutError(error)) {
54
80
  // Late replication writes can outlive shutdown. At this point the
55
81
  // backing store is intentionally closing, so report the deterministic
56
82
  // CID while discarding the write instead of leaking an unhandled
@@ -61,16 +87,133 @@ export class AnyBlockStore {
61
87
  }
62
88
  return put.cid;
63
89
  }
90
+ async putMany(blocks) {
91
+ const puts = await Promise.all(blocks.map((bytes) => bytes instanceof Uint8Array ? calculateRawCid(bytes) : bytes));
92
+ const store = this._store;
93
+ try {
94
+ if (puts.length === 1) {
95
+ const put = puts[0];
96
+ const result = this.putKnown(put.cid, put.block.bytes);
97
+ if (isPromiseLike(result)) {
98
+ await result;
99
+ }
100
+ }
101
+ else if (typeof store.putMany === "function") {
102
+ await store.putMany(puts.map((put) => [put.cid, put.block.bytes]));
103
+ }
104
+ else {
105
+ for (const put of puts) {
106
+ await this._store.put(put.cid, put.block.bytes);
107
+ }
108
+ }
109
+ }
110
+ catch (error) {
111
+ if (await this.isClosingStorePutError(error)) {
112
+ return puts.map((put) => put.cid);
113
+ }
114
+ throw error;
115
+ }
116
+ return puts.map((put) => put.cid);
117
+ }
118
+ putKnown(cid, bytes) {
119
+ try {
120
+ const immutableStore = this._store;
121
+ const result = immutableStore.putImmutable
122
+ ? immutableStore.putImmutable(cid, bytes)
123
+ : this._store.put(cid, bytes);
124
+ if (isPromiseLike(result)) {
125
+ return result
126
+ .then(() => cid)
127
+ .catch((error) => this.handleStorePutError(error, cid));
128
+ }
129
+ }
130
+ catch (error) {
131
+ return this.handleStorePutError(error, cid);
132
+ }
133
+ return cid;
134
+ }
135
+ putKnownMany(blocks) {
136
+ const store = this._store;
137
+ if (blocks.length === 1) {
138
+ const [cid, bytes] = blocks[0];
139
+ const result = this.putKnown(cid, bytes);
140
+ return isPromiseLike(result) ? result.then(() => [cid]) : [cid];
141
+ }
142
+ return this.putKnownManyWithStoreBatch(blocks, store);
143
+ }
144
+ async putKnownManyWithStoreBatch(blocks, store) {
145
+ try {
146
+ if (typeof store.putManyImmutable === "function") {
147
+ await store.putManyImmutable(blocks);
148
+ }
149
+ else if (typeof store.putMany === "function") {
150
+ await store.putMany(blocks);
151
+ }
152
+ else {
153
+ for (const [cid, bytes] of blocks) {
154
+ await this._store.put(cid, bytes);
155
+ }
156
+ }
157
+ }
158
+ catch (error) {
159
+ if (await this.isClosingStorePutError(error)) {
160
+ return blocks.map(([cid]) => cid);
161
+ }
162
+ throw error;
163
+ }
164
+ return blocks.map(([cid]) => cid);
165
+ }
166
+ async handleStorePutError(error, value) {
167
+ if (await this.isClosingStorePutError(error)) {
168
+ return value;
169
+ }
170
+ throw error;
171
+ }
172
+ async isClosingStorePutError(error) {
173
+ const status = await this._store.status();
174
+ return (typeof error?.code === "string" &&
175
+ error.code === "LEVEL_DATABASE_NOT_OPEN" &&
176
+ this._closeController?.signal.aborted === true &&
177
+ (status === "closing" || status === "closed"));
178
+ }
64
179
  async rm(cid) {
65
180
  await this._store.del(cid);
66
181
  }
182
+ async rmMany(cids) {
183
+ const store = this._store;
184
+ if (typeof store.delMany === "function") {
185
+ return store.delMany(cids);
186
+ }
187
+ await Promise.all(cids.map((cid) => this._store.del(cid)));
188
+ return cids.length;
189
+ }
67
190
  async *iterator() {
68
191
  for await (const [key, value] of this._store.iterator()) {
69
192
  yield [key, value];
70
193
  }
71
194
  }
72
195
  async has(cid) {
73
- return !!(await this._store.get(cid));
196
+ try {
197
+ return !!(await this._store.get(cid));
198
+ }
199
+ catch (error) {
200
+ if (typeof error?.code === "string" &&
201
+ error?.code?.indexOf("LEVEL_NOT_FOUND") !== -1) {
202
+ return false;
203
+ }
204
+ throw error;
205
+ }
206
+ }
207
+ async hasMany(cids) {
208
+ const store = this._store;
209
+ if (typeof store.hasMany === "function") {
210
+ return store.hasMany(cids);
211
+ }
212
+ if (typeof store.getMany === "function") {
213
+ const values = await store.getMany(cids);
214
+ return values.map((value) => value != null);
215
+ }
216
+ return Promise.all(cids.map((cid) => this.has(cid)));
74
217
  }
75
218
  async start() {
76
219
  await this._store.open();
@@ -1 +1 @@
1
- {"version":3,"file":"any-blockstore.js","sourceRoot":"","sources":["../../src/any-blockstore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"any-blockstore.js","sourceRoot":"","sources":["../../src/any-blockstore.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,25 @@
1
1
  import type { MaybePromise } from "@peerbit/any-store-interface";
2
- import type { Blocks as IBlockStore } from "@peerbit/blocks-interface";
2
+ import type { Blocks as IBlockStore, GetOptions } from "@peerbit/blocks-interface";
3
+ import type { Block } from "multiformats/block";
3
4
  export type StoreStatus = MaybePromise<"open" | "opening" | "closed" | "closing">;
4
5
  export interface BlockStore extends IBlockStore {
6
+ putMany(blocks: Array<Uint8Array | {
7
+ block: Block<any, any, any, any>;
8
+ cid: string;
9
+ }>): MaybePromise<string[]>;
10
+ putKnown(cid: string, bytes: Uint8Array): MaybePromise<string>;
11
+ putKnownMany(blocks: Array<readonly [cid: string, bytes: Uint8Array]>): MaybePromise<string[]>;
12
+ getMany(cids: string[], options?: GetOptions): MaybePromise<Array<Uint8Array | undefined>>;
13
+ hasMany(cids: string[]): MaybePromise<boolean[]>;
14
+ rmMany(cids: string[]): MaybePromise<number | void>;
15
+ getNativeLogBlockStoreHandle?(): unknown;
16
+ /**
17
+ * Serialize a `BlockResponse` payload for a natively stored block without
18
+ * materializing the block bytes as a JS value. Only implemented by stores
19
+ * backed by the native log block store; `undefined` when the block is not
20
+ * held natively.
21
+ */
22
+ getBlockResponsePayload?(cid: string): Uint8Array | undefined;
5
23
  start(): Promise<void>;
6
24
  stop(): Promise<void>;
7
25
  status(): StoreStatus;
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAEvE,MAAM,MAAM,WAAW,GAAG,YAAY,CACrC,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CACzC,CAAC;AACF,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,IAAI,WAAW,CAAC;CACtB"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,MAAM,WAAW,GAAG,YAAY,CACrC,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CACzC,CAAC;AACF,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC9C,OAAO,CACN,MAAM,EAAE,KAAK,CAAC,UAAU,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,GAC3E,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAC/D,YAAY,CACX,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,GACtD,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1B,OAAO,CACN,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,UAAU,GAClB,YAAY,CAAC,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpD,4BAA4B,CAAC,IAAI,OAAO,CAAC;IACzC;;;;;OAKG;IACH,uBAAuB,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC9D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,IAAI,WAAW,CAAC;CACtB"}
@@ -1,6 +1,8 @@
1
+ import type { AnyStore } from "@peerbit/any-store-interface";
1
2
  import type { GetOptions, Blocks as IBlocks } from "@peerbit/blocks-interface";
2
3
  import { DirectStream } from "@peerbit/stream";
3
- import { type DirectStreamComponents } from "@peerbit/stream";
4
+ import { type DirectStreamComponents, type RustCoreStream } from "@peerbit/stream";
5
+ import type { Block } from "multiformats/block";
4
6
  export type DirectBlockComponents = DirectStreamComponents;
5
7
  export declare class DirectBlock extends DirectStream implements IBlocks {
6
8
  private remoteBlocks;
@@ -8,6 +10,7 @@ export declare class DirectBlock extends DirectStream implements IBlocks {
8
10
  private onPeerConnectedFn;
9
11
  constructor(components: DirectBlockComponents, options?: {
10
12
  directory?: string;
13
+ localStore?: AnyStore;
11
14
  canRelayMessage?: boolean;
12
15
  localTimeout?: number;
13
16
  messageProcessingConcurrency?: number;
@@ -30,12 +33,35 @@ export declare class DirectBlock extends DirectStream implements IBlocks {
30
33
  maxProvidersPerCid?: number;
31
34
  };
32
35
  requeryOnReachable?: number;
36
+ /**
37
+ * Run the block-exchange protocol on the native DirectStream core
38
+ * (`@peerbit/network-rust`): codec, provider resolution and caches
39
+ * execute in wasm, and natively stored blocks are served without
40
+ * surfacing their bytes to JS. Defaults to the same rust-core mode
41
+ * as the underlying DirectStream.
42
+ */
43
+ rustCore?: RustCoreStream | false;
33
44
  });
34
- put(bytes: Uint8Array): Promise<string>;
45
+ private encodeBlockMessage;
46
+ private decodeBlockMessage;
47
+ getNativeLogBlockStoreHandle(): unknown;
48
+ put(bytes: Uint8Array | {
49
+ block: Block<any, any, any, any>;
50
+ cid: string;
51
+ }): Promise<string>;
52
+ putMany(blocks: Array<Uint8Array | {
53
+ block: Block<any, any, any, any>;
54
+ cid: string;
55
+ }>): Promise<string[]>;
56
+ putKnown(cid: string, bytes: Uint8Array): Promise<string>;
57
+ putKnownMany(blocks: Array<readonly [cid: string, bytes: Uint8Array]>): Promise<string[]>;
35
58
  has(cid: string): Promise<boolean>;
59
+ hasMany(cids: string[]): Promise<boolean[]>;
36
60
  get(cid: string, options?: GetOptions | undefined): Promise<Uint8Array | undefined>;
61
+ getMany(cids: string[], options?: GetOptions | undefined): Promise<Array<Uint8Array | undefined>>;
37
62
  hintProviders(cid: string, providers: string[]): void;
38
63
  rm(cid: string): Promise<void>;
64
+ rmMany(cids: string[]): Promise<void>;
39
65
  iterator(): AsyncGenerator<[string, Uint8Array], void, void>;
40
66
  start(): Promise<void>;
41
67
  stop(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p.d.ts","sourceRoot":"","sources":["../../src/libp2p.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAE/E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAS9D,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,CAAC;AAE3D,qBAAa,WAAY,SAAQ,YAAa,YAAW,OAAO;IAC/D,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,iBAAiB,CAAM;gBAG9B,UAAU,EAAE,qBAAqB,EACjC,OAAO,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,4BAA4B,CAAC,EAAE,MAAM,CAAC;QACtC,WAAW,CAAC,EAAE,OAAO,GAAG;YAAE,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/C,gBAAgB,CAAC,EAAE,CAClB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,WAAW,CAAA;SAAE,KAC9B,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;QAC1D,cAAc,CAAC,EAAE,CAChB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE;YACR,MAAM,CAAC,EAAE,WAAW,CAAC;YACrB,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;SAC3C,KACG,IAAI,GAAG;YAAE,KAAK,EAAE,MAAM,IAAI,CAAA;SAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;QACjD,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC9C,aAAa,CAAC,EACX,OAAO,GACP;YACA,UAAU,CAAC,EAAE,MAAM,CAAC;YACpB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;SAC3B,CAAC;QACL,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC5B;IAuEI,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvC,GAAG,CAAC,GAAG,EAAE,MAAM;IAGf,GAAG,CACR,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,GAC9B,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAIlC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE;IAIxC,EAAE,CAAC,GAAG,EAAE,MAAM;IAIb,QAAQ,IAAI,cAAc,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;IAM7D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrB,IAAI;IAGV,IAAI,MAAM,mDAET;IAED,SAAS,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAGvC"}
1
+ {"version":3,"file":"libp2p.d.ts","sourceRoot":"","sources":["../../src/libp2p.ts"],"names":[],"mappings":"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"}