@peerbit/blocks 3.1.7 → 3.1.8
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/dist/src/remote.d.ts +1 -1
- package/dist/src/remote.d.ts.map +1 -1
- package/dist/src/remote.js +19 -5
- package/dist/src/remote.js.map +1 -1
- package/package.json +2 -2
- package/src/remote.ts +22 -12
package/dist/src/remote.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type GetOptions, type Blocks as IBlocks } from "@peerbit/blocks-interface";
|
|
2
2
|
import { PublicSignKey } from "@peerbit/crypto";
|
|
3
|
-
import type
|
|
3
|
+
import { type PublishOptions } from "@peerbit/stream";
|
|
4
4
|
import { type PeerRefs, type WaitForAnyOpts, type WaitForPeersFn, type WaitForPresentOpts } from "@peerbit/stream-interface";
|
|
5
5
|
import { type Block } from "multiformats/block";
|
|
6
6
|
import { AnyBlockStore } from "./any-blockstore.js";
|
package/dist/src/remote.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,KAAK,UAAU,EACf,KAAK,MAAM,IAAI,OAAO,EAKtB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":"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"}
|
package/dist/src/remote.js
CHANGED
|
@@ -38,6 +38,7 @@ import { checkDecodeBlock, cidifyString, codecCodes, stringifyCid, } from "@peer
|
|
|
38
38
|
import { Cache } from "@peerbit/cache";
|
|
39
39
|
import { PublicSignKey } from "@peerbit/crypto";
|
|
40
40
|
import { logger as loggerFn } from "@peerbit/logger";
|
|
41
|
+
import { dontThrowIfDeliveryError } from "@peerbit/stream";
|
|
41
42
|
import { AnyWhere, SilentDelivery, } from "@peerbit/stream-interface";
|
|
42
43
|
import { AbortError } from "@peerbit/time";
|
|
43
44
|
import { CID } from "multiformats";
|
|
@@ -146,7 +147,16 @@ export class RemoteBlocks {
|
|
|
146
147
|
this._responseHandler = async (message, from) => {
|
|
147
148
|
try {
|
|
148
149
|
if (message instanceof BlockRequest && this.localStore) {
|
|
149
|
-
this._loadFetchQueue
|
|
150
|
+
this._loadFetchQueue
|
|
151
|
+
.add(() => this.handleFetchRequest(message, localTimeout, from))
|
|
152
|
+
.catch((e) => {
|
|
153
|
+
try {
|
|
154
|
+
dontThrowIfDeliveryError(e);
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
logger.error("Got error for libp2p block transport: ", error);
|
|
158
|
+
}
|
|
159
|
+
});
|
|
150
160
|
}
|
|
151
161
|
else if (message instanceof BlockResponse) {
|
|
152
162
|
// TODO make sure we are not storing too much bytes in ram (like filter large blocks)
|
|
@@ -158,7 +168,7 @@ export class RemoteBlocks {
|
|
|
158
168
|
}
|
|
159
169
|
}
|
|
160
170
|
else {
|
|
161
|
-
resolver(message.bytes);
|
|
171
|
+
await resolver(message.bytes);
|
|
162
172
|
}
|
|
163
173
|
}
|
|
164
174
|
}
|
|
@@ -228,7 +238,9 @@ export class RemoteBlocks {
|
|
|
228
238
|
if (!bytes) {
|
|
229
239
|
return;
|
|
230
240
|
}
|
|
231
|
-
await this.options
|
|
241
|
+
await this.options
|
|
242
|
+
.publish(new BlockResponse(cid, bytes), { to: [from] })
|
|
243
|
+
.catch(dontThrowIfDeliveryError);
|
|
232
244
|
}
|
|
233
245
|
async _readFromPeers(cidString, cidObject, options = {}) {
|
|
234
246
|
const codec = codecCodes[cidObject.code];
|
|
@@ -279,11 +291,13 @@ export class RemoteBlocks {
|
|
|
279
291
|
const publishOnNewPeers = (e) => {
|
|
280
292
|
const to = e.detail.hashcode();
|
|
281
293
|
if (!options?.from || options.from.includes(to)) {
|
|
282
|
-
|
|
294
|
+
this.options
|
|
295
|
+
.publish(new BlockRequest(cidString), {
|
|
283
296
|
// We dont sent explicitly to 'to' here because we want the message to propagate beyond the first peer
|
|
284
297
|
to: [to],
|
|
285
298
|
mode: new AnyWhere(),
|
|
286
|
-
})
|
|
299
|
+
})
|
|
300
|
+
.catch(dontThrowIfDeliveryError);
|
|
287
301
|
}
|
|
288
302
|
};
|
|
289
303
|
this._events.addEventListener("peer:reachable", publishOnNewPeers);
|
package/dist/src/remote.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAGN,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,YAAY,GACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../src/remote.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peerbit/blocks",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.8",
|
|
4
4
|
"description": "Block store streaming",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -82,12 +82,12 @@
|
|
|
82
82
|
"uint8arrays": "^5.1.0",
|
|
83
83
|
"@peerbit/any-store": "2.2.4",
|
|
84
84
|
"@peerbit/any-store-interface": "1.1.0",
|
|
85
|
-
"@peerbit/cache": "2.2.0",
|
|
86
85
|
"@peerbit/logger": "2.0.0",
|
|
87
86
|
"@peerbit/stream": "4.6.0",
|
|
88
87
|
"@peerbit/stream-interface": "5.4.0",
|
|
89
88
|
"@peerbit/time": "2.3.0",
|
|
90
89
|
"@peerbit/blocks-interface": "1.5.2",
|
|
90
|
+
"@peerbit/cache": "2.2.0",
|
|
91
91
|
"@peerbit/crypto": "2.4.1"
|
|
92
92
|
},
|
|
93
93
|
"scripts": {
|
package/src/remote.ts
CHANGED
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
import { Cache } from "@peerbit/cache";
|
|
12
12
|
import { PublicSignKey } from "@peerbit/crypto";
|
|
13
13
|
import { logger as loggerFn } from "@peerbit/logger";
|
|
14
|
-
import type
|
|
14
|
+
import { type PublishOptions, dontThrowIfDeliveryError } from "@peerbit/stream";
|
|
15
15
|
import {
|
|
16
16
|
AnyWhere,
|
|
17
17
|
type PeerRefs,
|
|
@@ -62,7 +62,7 @@ export class RemoteBlocks implements IBlocks {
|
|
|
62
62
|
localStore: BlockStore;
|
|
63
63
|
|
|
64
64
|
private _responseHandler?: (data: BlockMessage, from?: string) => any;
|
|
65
|
-
private _resolvers: Map<string, (data: Uint8Array) => void
|
|
65
|
+
private _resolvers: Map<string, (data: Uint8Array) => Promise<void>>;
|
|
66
66
|
private _blockCache?: Cache<Uint8Array>;
|
|
67
67
|
|
|
68
68
|
private _loadFetchQueue: PQueue;
|
|
@@ -110,9 +110,15 @@ export class RemoteBlocks implements IBlocks {
|
|
|
110
110
|
this._responseHandler = async (message: BlockMessage, from?: string) => {
|
|
111
111
|
try {
|
|
112
112
|
if (message instanceof BlockRequest && this.localStore) {
|
|
113
|
-
this._loadFetchQueue
|
|
114
|
-
this.handleFetchRequest(message, localTimeout, from)
|
|
115
|
-
|
|
113
|
+
this._loadFetchQueue
|
|
114
|
+
.add(() => this.handleFetchRequest(message, localTimeout, from))
|
|
115
|
+
.catch((e) => {
|
|
116
|
+
try {
|
|
117
|
+
dontThrowIfDeliveryError(e);
|
|
118
|
+
} catch (error) {
|
|
119
|
+
logger.error("Got error for libp2p block transport: ", error);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
116
122
|
} else if (message instanceof BlockResponse) {
|
|
117
123
|
// TODO make sure we are not storing too much bytes in ram (like filter large blocks)
|
|
118
124
|
let resolver = this._resolvers.get(message.cid);
|
|
@@ -122,7 +128,7 @@ export class RemoteBlocks implements IBlocks {
|
|
|
122
128
|
this._blockCache!.add(message.cid, message.bytes);
|
|
123
129
|
}
|
|
124
130
|
} else {
|
|
125
|
-
resolver(message.bytes);
|
|
131
|
+
await resolver(message.bytes);
|
|
126
132
|
}
|
|
127
133
|
}
|
|
128
134
|
} catch (error) {
|
|
@@ -211,7 +217,9 @@ export class RemoteBlocks implements IBlocks {
|
|
|
211
217
|
if (!bytes) {
|
|
212
218
|
return;
|
|
213
219
|
}
|
|
214
|
-
await this.options
|
|
220
|
+
await this.options
|
|
221
|
+
.publish(new BlockResponse(cid, bytes), { to: [from] })
|
|
222
|
+
.catch(dontThrowIfDeliveryError);
|
|
215
223
|
}
|
|
216
224
|
|
|
217
225
|
private async _readFromPeers(
|
|
@@ -289,11 +297,13 @@ export class RemoteBlocks implements IBlocks {
|
|
|
289
297
|
const publishOnNewPeers = (e: CustomEvent<PublicSignKey>) => {
|
|
290
298
|
const to = e.detail.hashcode();
|
|
291
299
|
if (!options?.from || options.from.includes(to)) {
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
300
|
+
this.options
|
|
301
|
+
.publish(new BlockRequest(cidString), {
|
|
302
|
+
// We dont sent explicitly to 'to' here because we want the message to propagate beyond the first peer
|
|
303
|
+
to: [to],
|
|
304
|
+
mode: new AnyWhere(),
|
|
305
|
+
})
|
|
306
|
+
.catch(dontThrowIfDeliveryError);
|
|
297
307
|
}
|
|
298
308
|
};
|
|
299
309
|
|