@helia/utils 2.3.5-0456c42d → 2.3.5-33e46813
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/index.min.js +1 -1
- package/dist/index.min.js.map +4 -4
- package/dist/src/abstract-session.d.ts +1 -0
- package/dist/src/abstract-session.d.ts.map +1 -1
- package/dist/src/abstract-session.js +11 -0
- package/dist/src/abstract-session.js.map +1 -1
- package/dist/src/index.js +3 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/utils/networked-storage.d.ts +7 -57
- package/dist/src/utils/networked-storage.d.ts.map +1 -1
- package/dist/src/utils/networked-storage.js +15 -372
- package/dist/src/utils/networked-storage.js.map +1 -1
- package/dist/src/utils/session-storage.d.ts +48 -0
- package/dist/src/utils/session-storage.d.ts.map +1 -0
- package/dist/src/utils/session-storage.js +148 -0
- package/dist/src/utils/session-storage.js.map +1 -0
- package/dist/src/utils/storage.d.ts +56 -0
- package/dist/src/utils/storage.d.ts.map +1 -0
- package/dist/src/utils/storage.js +225 -0
- package/dist/src/utils/storage.js.map +1 -0
- package/package.json +2 -2
- package/src/abstract-session.ts +15 -0
- package/src/index.ts +4 -4
- package/src/utils/networked-storage.ts +22 -461
- package/src/utils/session-storage.ts +175 -0
- package/src/utils/storage.ts +295 -0
|
@@ -30,6 +30,7 @@ export declare abstract class AbstractSession<Provider, RetrieveBlockProgressEve
|
|
|
30
30
|
evict(provider: Provider): void;
|
|
31
31
|
isEvicted(provider: Provider): boolean;
|
|
32
32
|
hasProvider(provider: Provider): boolean;
|
|
33
|
+
addPeer(peer: PeerId | Multiaddr | Multiaddr[], options?: AbortOptions): Promise<void>;
|
|
33
34
|
private findProviders;
|
|
34
35
|
/**
|
|
35
36
|
* If this session was created with specific providers, convert one of them
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-session.d.ts","sourceRoot":"","sources":["../../src/abstract-session.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,iBAAiB,EAAmB,MAAM,mBAAmB,CAAA;AAKlF,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAChG,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAEtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,4BAA6B,SAAQ,oBAAoB;IACxE,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,uBAAuB,CAAC,QAAQ;IAC/C,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;CAChC;AAOD,8BAAsB,eAAe,CAAC,QAAQ,EAAE,2BAA2B,SAAS,aAAa,CAAE,SAAQ,iBAAiB,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAE,YAAW,WAAW,CAAC,2BAA2B,CAAC;IACjN,SAAgB,IAAI,EAAE,MAAM,CAAA;IAC5B,OAAO,CAAC,yBAAyB,CAAC,CAAe;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,MAAM,EAAE,eAAe,CAAA;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,SAAgB,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyC;gBAE7D,UAAU,EAAE,yBAAyB,EAAE,IAAI,EAAE,4BAA4B;IAehF,QAAQ,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,qBAAqB,CAAC,2BAA2B,CAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAoKhH,KAAK,CAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAWhC,SAAS,CAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAIvC,WAAW,CAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"abstract-session.d.ts","sourceRoot":"","sources":["../../src/abstract-session.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,iBAAiB,EAAmB,MAAM,mBAAmB,CAAA;AAKlF,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAChG,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAEtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,4BAA6B,SAAQ,oBAAoB;IACxE,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,uBAAuB,CAAC,QAAQ;IAC/C,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;CAChC;AAOD,8BAAsB,eAAe,CAAC,QAAQ,EAAE,2BAA2B,SAAS,aAAa,CAAE,SAAQ,iBAAiB,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAE,YAAW,WAAW,CAAC,2BAA2B,CAAC;IACjN,SAAgB,IAAI,EAAE,MAAM,CAAA;IAC5B,OAAO,CAAC,yBAAyB,CAAC,CAAe;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,MAAM,EAAE,eAAe,CAAA;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,SAAgB,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyC;gBAE7D,UAAU,EAAE,yBAAyB,EAAE,IAAI,EAAE,4BAA4B;IAehF,QAAQ,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,qBAAqB,CAAC,2BAA2B,CAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAoKhH,KAAK,CAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAWhC,SAAS,CAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAIvC,WAAW,CAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAcnC,OAAO,CAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAe/E,aAAa;IAwG3B;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,EAAE,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAE9H;;OAEG;IACH,QAAQ,CAAC,gBAAgB,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC;IAErF;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAEjG;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAE,QAAQ,EAAE,QAAQ,GAAG,UAAU,GAAG,MAAM;IAEhE;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,GAAG,OAAO;CACpE"}
|
|
@@ -190,6 +190,17 @@ export class AbstractSession extends TypedEventEmitter {
|
|
|
190
190
|
}
|
|
191
191
|
return false;
|
|
192
192
|
}
|
|
193
|
+
async addPeer(peer, options) {
|
|
194
|
+
const provider = await this.convertToProvider(peer, options);
|
|
195
|
+
if (provider == null || this.hasProvider(provider)) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
this.providers.push(provider);
|
|
199
|
+
// let the new peer join current queries
|
|
200
|
+
this.safeDispatchEvent('provider', {
|
|
201
|
+
detail: provider
|
|
202
|
+
});
|
|
203
|
+
}
|
|
193
204
|
async findProviders(cid, count, options) {
|
|
194
205
|
const deferred = pDefer();
|
|
195
206
|
let found = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstract-session.js","sourceRoot":"","sources":["../../src/abstract-session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"abstract-session.js","sourceRoot":"","sources":["../../src/abstract-session.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -75,15 +75,15 @@ export class Helia {
|
|
|
75
75
|
}),
|
|
76
76
|
providerLookupConcurrency: init.providerLookupConcurrency
|
|
77
77
|
});
|
|
78
|
+
components.blockBrokers = init.blockBrokers.map((fn) => {
|
|
79
|
+
return fn(components);
|
|
80
|
+
});
|
|
78
81
|
const networkedStorage = new NetworkedStorage(components, init);
|
|
79
82
|
this.pins = new PinsImpl(init.datastore, networkedStorage, this.getCodec);
|
|
80
83
|
this.blockstore = new BlockStorage(networkedStorage, this.pins, {
|
|
81
84
|
holdGcLock: init.holdGcLock ?? true
|
|
82
85
|
});
|
|
83
86
|
this.datastore = init.datastore;
|
|
84
|
-
components.blockBrokers = init.blockBrokers.map((fn) => {
|
|
85
|
-
return fn(components);
|
|
86
|
-
});
|
|
87
87
|
}
|
|
88
88
|
async start() {
|
|
89
89
|
await assertDatastoreVersionIsCurrent(this.datastore);
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAC3G,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAA;AACvC,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAe/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAKvD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AA6J5F,MAAM,OAAO,KAAK;IACT,MAAM,CAAG;IACT,UAAU,CAAc;IACxB,SAAS,CAAW;IACpB,MAAM,CAAmC;IACzC,IAAI,CAAM;IACV,MAAM,CAAiB;IACvB,OAAO,CAAS;IAChB,QAAQ,CAAa;IACrB,SAAS,CAAc;IACvB,GAAG,CAAK;IACR,OAAO,CAAU;IACP,GAAG,CAAQ;IAE5B,YAAa,IAAyD;QACpE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;QAC/C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAC5C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QACzD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QACrD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAiB,EAAkB,CAAA;QAErD,sCAAsC;QACtC,MAAM,UAAU,GAAe;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;SAC3B,CAAA;QAED,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,UAAU,EAAE;YAC/D,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,MAAkE,EAAE,EAAE;gBAC3G,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;oBACjC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;gBAC7B,CAAC;gBAED,mCAAmC;gBACnC,MAAM,OAAO,GAAG;oBACd,MAAM;iBACP,CAAA;gBAED,sDAAsD;gBACtD,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;gBAC/C,IAAI,cAAc,IAAI,IAAI,EAAE,CAAC;oBAC3B,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;gBAC9B,CAAC;gBAED,mDAAmD;gBACnD,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;gBACzC,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;oBACxB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;gBAC3B,CAAC;gBAED,OAAO,OAAO,CAAA;YAChB,CAAC,CAAC;YACF,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;SAC1D,CAAC,CAAA;QAEF,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QAC/D,IAAI,CAAC,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QACzE,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,EAAE;YAC9D,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;SACpC,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,66 +1,18 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
1
|
+
import { Storage } from './storage.ts';
|
|
2
|
+
import type { StorageComponents, StorageInit } from './storage.ts';
|
|
3
|
+
import type { BlockBroker, Blocks, CreateSessionOptions, SessionBlockstore } from '@helia/interface/blocks';
|
|
4
|
+
import type { AbortOptions, Startable } from '@libp2p/interface';
|
|
5
|
+
import type { Blockstore } from 'interface-blockstore';
|
|
6
6
|
import type { CID } from 'multiformats/cid';
|
|
7
|
-
import type { MultihashHasher } from 'multiformats/hashes/interface';
|
|
8
|
-
import type { ProgressOptions } from 'progress-events';
|
|
9
7
|
export interface GetOptions extends AbortOptions {
|
|
10
8
|
progress?(evt: Event): void;
|
|
11
9
|
}
|
|
12
|
-
export
|
|
13
|
-
blockstore: Blockstore;
|
|
14
|
-
logger: ComponentLogger;
|
|
15
|
-
blockBrokers: BlockBroker[];
|
|
16
|
-
getHasher: HasherLoader;
|
|
17
|
-
}
|
|
18
|
-
export interface StorageInit {
|
|
19
|
-
maxIdentityHashDigestLength?: number;
|
|
20
|
-
}
|
|
21
|
-
declare class Storage implements Blockstore {
|
|
22
|
-
protected readonly child: Blockstore;
|
|
23
|
-
protected readonly getHasher: HasherLoader;
|
|
24
|
-
protected log: Logger;
|
|
25
|
-
protected readonly logger: ComponentLogger;
|
|
26
|
-
protected readonly components: StorageComponents;
|
|
27
|
-
/**
|
|
28
|
-
* Create a new BlockStorage
|
|
29
|
-
*/
|
|
30
|
-
constructor(components: StorageComponents, init?: StorageInit);
|
|
31
|
-
/**
|
|
32
|
-
* Put a block to the underlying datastore
|
|
33
|
-
*/
|
|
34
|
-
put(cid: CID, block: Uint8Array, options?: AbortOptions & ProgressOptions<PutBlockProgressEvents>): Promise<CID>;
|
|
35
|
-
/**
|
|
36
|
-
* Put a multiple blocks to the underlying datastore
|
|
37
|
-
*/
|
|
38
|
-
putMany(blocks: AwaitIterable<InputPair>, options?: AbortOptions & ProgressOptions<PutManyBlocksProgressEvents>): AsyncGenerator<CID>;
|
|
39
|
-
/**
|
|
40
|
-
* Get a block by cid
|
|
41
|
-
*/
|
|
42
|
-
get(cid: CID, options?: GetOfflineOptions & AbortOptions & ProgressOptions<GetBlockProgressEvents>): AsyncGenerator<Uint8Array>;
|
|
43
|
-
/**
|
|
44
|
-
* Get multiple blocks back from an (async) iterable of cids
|
|
45
|
-
*/
|
|
46
|
-
getMany(cids: AwaitIterable<CID>, options?: GetOfflineOptions & AbortOptions & ProgressOptions<GetManyBlocksProgressEvents>): AsyncGenerator<Pair>;
|
|
47
|
-
/**
|
|
48
|
-
* Delete a block from the blockstore
|
|
49
|
-
*/
|
|
50
|
-
delete(cid: CID, options?: AbortOptions & ProgressOptions<DeleteBlockProgressEvents>): Promise<void>;
|
|
51
|
-
/**
|
|
52
|
-
* Delete multiple blocks from the blockstore
|
|
53
|
-
*/
|
|
54
|
-
deleteMany(cids: AwaitIterable<CID>, options?: AbortOptions & ProgressOptions<DeleteManyBlocksProgressEvents>): AsyncGenerator<CID>;
|
|
55
|
-
has(cid: CID, options?: AbortOptions): Promise<boolean>;
|
|
56
|
-
getAll(options?: AbortOptions & ProgressOptions<GetAllBlocksProgressEvents>): AsyncGenerator<Pair>;
|
|
57
|
-
}
|
|
58
|
-
export type NetworkedStorageComponents = StorageComponents;
|
|
10
|
+
export type NetworkedStorageComponents = StorageComponents<BlockBroker>;
|
|
59
11
|
/**
|
|
60
12
|
* Networked storage wraps a regular blockstore - when getting blocks if the
|
|
61
13
|
* blocks are not present, the configured BlockBrokers will be used to fetch them.
|
|
62
14
|
*/
|
|
63
|
-
export declare class NetworkedStorage extends Storage implements Blocks, Startable {
|
|
15
|
+
export declare class NetworkedStorage extends Storage<BlockBroker> implements Blocks, Startable {
|
|
64
16
|
private started;
|
|
65
17
|
/**
|
|
66
18
|
* Create a new BlockStorage
|
|
@@ -72,6 +24,4 @@ export declare class NetworkedStorage extends Storage implements Blocks, Startab
|
|
|
72
24
|
unwrap(): Blockstore;
|
|
73
25
|
createSession(root: CID, options?: CreateSessionOptions): SessionBlockstore;
|
|
74
26
|
}
|
|
75
|
-
export declare const getCidBlockVerifierFunction: (cid: CID, hasher: MultihashHasher) => Required<BlockRetrievalOptions>["validateFn"];
|
|
76
|
-
export {};
|
|
77
27
|
//# sourceMappingURL=networked-storage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networked-storage.d.ts","sourceRoot":"","sources":["../../../src/utils/networked-storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"networked-storage.d.ts","sourceRoot":"","sources":["../../../src/utils/networked-storage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3G,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAE3C,MAAM,WAAW,UAAW,SAAQ,YAAY;IAC9C,QAAQ,CAAC,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,CAAA;CAC5B;AAED,MAAM,MAAM,0BAA0B,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAA;AAEvE;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,OAAO,CAAC,WAAW,CAAE,YAAW,MAAM,EAAE,SAAS;IACrF,OAAO,CAAC,OAAO,CAAS;IAExB;;OAEG;gBACU,UAAU,EAAE,0BAA0B,EAAE,IAAI,GAAE,WAAgB;IAM3E,SAAS,IAAK,OAAO;IAIf,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAKvB,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAK5B,MAAM,IAAK,UAAU;IAIrB,aAAa,CAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,iBAAiB;CAsB7E"}
|
|
@@ -1,145 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import forEach from 'it-foreach';
|
|
6
|
-
import { CustomProgressEvent } from 'progress-events';
|
|
7
|
-
import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
|
|
8
|
-
import { BlockNotFoundWhileOfflineError, InvalidConfigurationError, LoadBlockFailedError } from "../errors.js";
|
|
9
|
-
import { isPromise } from './is-promise.js';
|
|
10
|
-
const DEFAULT_MAX_IDENTITY_HASH_DIGEST_LENGTH = 128;
|
|
11
|
-
class Storage {
|
|
12
|
-
child;
|
|
13
|
-
getHasher;
|
|
14
|
-
log;
|
|
15
|
-
logger;
|
|
16
|
-
components;
|
|
17
|
-
/**
|
|
18
|
-
* Create a new BlockStorage
|
|
19
|
-
*/
|
|
20
|
-
constructor(components, init = {}) {
|
|
21
|
-
this.log = components.logger.forComponent('helia:networked-storage');
|
|
22
|
-
this.logger = components.logger;
|
|
23
|
-
this.components = components;
|
|
24
|
-
this.child = new IdentityBlockstore(components.blockstore, {
|
|
25
|
-
maxDigestLength: init.maxIdentityHashDigestLength ?? DEFAULT_MAX_IDENTITY_HASH_DIGEST_LENGTH
|
|
26
|
-
});
|
|
27
|
-
this.getHasher = components.getHasher;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Put a block to the underlying datastore
|
|
31
|
-
*/
|
|
32
|
-
async put(cid, block, options = {}) {
|
|
33
|
-
if (await this.child.has(cid, options)) {
|
|
34
|
-
options.onProgress?.(new CustomProgressEvent('blocks:put:duplicate', cid));
|
|
35
|
-
return cid;
|
|
36
|
-
}
|
|
37
|
-
options.onProgress?.(new CustomProgressEvent('blocks:put:providers:notify', cid));
|
|
38
|
-
await Promise.all(this.components.blockBrokers.map(async (broker) => broker.announce?.(cid, options)));
|
|
39
|
-
options.onProgress?.(new CustomProgressEvent('blocks:put:blockstore:put', cid));
|
|
40
|
-
return this.child.put(cid, block, options);
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Put a multiple blocks to the underlying datastore
|
|
44
|
-
*/
|
|
45
|
-
async *putMany(blocks, options = {}) {
|
|
46
|
-
const missingBlocks = filter(blocks, async ({ cid }) => {
|
|
47
|
-
const has = await this.child.has(cid, options);
|
|
48
|
-
if (has) {
|
|
49
|
-
options.onProgress?.(new CustomProgressEvent('blocks:put-many:duplicate', cid));
|
|
50
|
-
}
|
|
51
|
-
return !has;
|
|
52
|
-
});
|
|
53
|
-
const notifyEach = forEach(missingBlocks, async ({ cid }) => {
|
|
54
|
-
options.onProgress?.(new CustomProgressEvent('blocks:put-many:providers:notify', cid));
|
|
55
|
-
await Promise.all(this.components.blockBrokers.map(async (broker) => broker.announce?.(cid, options)));
|
|
56
|
-
});
|
|
57
|
-
options.onProgress?.(new CustomProgressEvent('blocks:put-many:blockstore:put-many'));
|
|
58
|
-
yield* this.child.putMany(notifyEach, options);
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Get a block by cid
|
|
62
|
-
*/
|
|
63
|
-
async *get(cid, options = {}) {
|
|
64
|
-
const has = await this.child.has(cid, options);
|
|
65
|
-
const offline = options.offline === true;
|
|
66
|
-
if (!has) {
|
|
67
|
-
if (offline) {
|
|
68
|
-
throw new BlockNotFoundWhileOfflineError('The block was present in the blockstore and the node is running offline so cannot fetch it');
|
|
69
|
-
}
|
|
70
|
-
const hasher = await this.getHasher(cid.multihash.code);
|
|
71
|
-
options?.signal?.throwIfAborted();
|
|
72
|
-
// we do not have the block locally, get it from a block provider
|
|
73
|
-
options.onProgress?.(new CustomProgressEvent('blocks:get:providers:get', cid));
|
|
74
|
-
const block = await raceBlockRetrievers(cid, this.components.blockBrokers, hasher, {
|
|
75
|
-
...options,
|
|
76
|
-
log: this.log
|
|
77
|
-
});
|
|
78
|
-
options.onProgress?.(new CustomProgressEvent('blocks:get:blockstore:put', cid));
|
|
79
|
-
await this.child.put(cid, block, options);
|
|
80
|
-
// notify other block providers of the new block
|
|
81
|
-
options.onProgress?.(new CustomProgressEvent('blocks:get:providers:notify', cid));
|
|
82
|
-
await Promise.all(this.components.blockBrokers.map(async (broker) => broker.announce?.(cid, options)));
|
|
83
|
-
yield block;
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
options.onProgress?.(new CustomProgressEvent('blocks:get:blockstore:get', cid));
|
|
87
|
-
yield* this.child.get(cid, options);
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Get multiple blocks back from an (async) iterable of cids
|
|
91
|
-
*/
|
|
92
|
-
async *getMany(cids, options = {}) {
|
|
93
|
-
options.onProgress?.(new CustomProgressEvent('blocks:get-many:blockstore:get-many'));
|
|
94
|
-
yield* this.child.getMany(forEach(cids, async (cid) => {
|
|
95
|
-
const has = await this.child.has(cid, options);
|
|
96
|
-
const offline = options.offline === true;
|
|
97
|
-
if (!has) {
|
|
98
|
-
if (offline) {
|
|
99
|
-
throw new BlockNotFoundWhileOfflineError('The block was present in the blockstore and the node is running offline so cannot fetch it');
|
|
100
|
-
}
|
|
101
|
-
const hasher = await this.getHasher(cid.multihash.code);
|
|
102
|
-
options?.signal?.throwIfAborted();
|
|
103
|
-
// we do not have the block locally, get it from a block provider
|
|
104
|
-
options.onProgress?.(new CustomProgressEvent('blocks:get-many:providers:get', cid));
|
|
105
|
-
const block = await raceBlockRetrievers(cid, this.components.blockBrokers, hasher, {
|
|
106
|
-
...options,
|
|
107
|
-
log: this.log
|
|
108
|
-
});
|
|
109
|
-
options.onProgress?.(new CustomProgressEvent('blocks:get-many:blockstore:put', cid));
|
|
110
|
-
await this.child.put(cid, block, options);
|
|
111
|
-
// notify other block providers of the new block
|
|
112
|
-
options.onProgress?.(new CustomProgressEvent('blocks:get-many:providers:notify', cid));
|
|
113
|
-
await Promise.all(this.components.blockBrokers.map(async (broker) => broker.announce?.(cid, options)));
|
|
114
|
-
}
|
|
115
|
-
}));
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Delete a block from the blockstore
|
|
119
|
-
*/
|
|
120
|
-
async delete(cid, options = {}) {
|
|
121
|
-
options.onProgress?.(new CustomProgressEvent('blocks:delete:blockstore:delete', cid));
|
|
122
|
-
await this.child.delete(cid, options);
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Delete multiple blocks from the blockstore
|
|
126
|
-
*/
|
|
127
|
-
async *deleteMany(cids, options = {}) {
|
|
128
|
-
options.onProgress?.(new CustomProgressEvent('blocks:delete-many:blockstore:delete-many'));
|
|
129
|
-
yield* this.child.deleteMany((async function* () {
|
|
130
|
-
for await (const cid of cids) {
|
|
131
|
-
yield cid;
|
|
132
|
-
}
|
|
133
|
-
}()), options);
|
|
134
|
-
}
|
|
135
|
-
async has(cid, options = {}) {
|
|
136
|
-
return this.child.has(cid, options);
|
|
137
|
-
}
|
|
138
|
-
async *getAll(options = {}) {
|
|
139
|
-
options.onProgress?.(new CustomProgressEvent('blocks:get-all:blockstore:get-many'));
|
|
140
|
-
yield* this.child.getAll(options);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
1
|
+
import { start, stop } from '@libp2p/interface';
|
|
2
|
+
import { InvalidConfigurationError } from "../errors.js";
|
|
3
|
+
import { SessionStorage } from "./session-storage.js";
|
|
4
|
+
import { Storage } from "./storage.js";
|
|
143
5
|
/**
|
|
144
6
|
* Networked storage wraps a regular blockstore - when getting blocks if the
|
|
145
7
|
* blocks are not present, the configured BlockBrokers will be used to fetch them.
|
|
@@ -157,23 +19,26 @@ export class NetworkedStorage extends Storage {
|
|
|
157
19
|
return this.started;
|
|
158
20
|
}
|
|
159
21
|
async start() {
|
|
160
|
-
await start(this.child, ...this.
|
|
22
|
+
await start(this.child, ...this.blockBrokers);
|
|
161
23
|
this.started = true;
|
|
162
24
|
}
|
|
163
25
|
async stop() {
|
|
164
|
-
await stop(this.child, ...this.
|
|
26
|
+
await stop(this.child, ...this.blockBrokers);
|
|
165
27
|
this.started = false;
|
|
166
28
|
}
|
|
167
29
|
unwrap() {
|
|
168
30
|
return this.child;
|
|
169
31
|
}
|
|
170
32
|
createSession(root, options) {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
33
|
+
if (this.blockBrokers.length === 0) {
|
|
34
|
+
throw new InvalidConfigurationError('No block brokers configured');
|
|
35
|
+
}
|
|
36
|
+
const blockBrokers = this.blockBrokers
|
|
37
|
+
.map(broker => broker.createSession?.(options))
|
|
38
|
+
.filter(broker => broker != null);
|
|
39
|
+
if (blockBrokers.length === 0) {
|
|
40
|
+
throw new InvalidConfigurationError(`No configured block brokers support sessions - tried ${this.blockBrokers.map(b => b.name).join(', ')}`);
|
|
41
|
+
}
|
|
177
42
|
return new SessionStorage({
|
|
178
43
|
blockstore: this.child,
|
|
179
44
|
blockBrokers,
|
|
@@ -184,226 +49,4 @@ export class NetworkedStorage extends Storage {
|
|
|
184
49
|
});
|
|
185
50
|
}
|
|
186
51
|
}
|
|
187
|
-
/**
|
|
188
|
-
* Storage subclass that can cancel any ongoing operation at any point.
|
|
189
|
-
*/
|
|
190
|
-
class SessionStorage extends Storage {
|
|
191
|
-
closeController;
|
|
192
|
-
constructor(components, init) {
|
|
193
|
-
super(components);
|
|
194
|
-
// because brokers are allowed to continue searching for providers after the
|
|
195
|
-
// session has been created, we need a way to tell them that the user has
|
|
196
|
-
// finished using the session any in-flight requests should be cancelled
|
|
197
|
-
this.closeController = new AbortController();
|
|
198
|
-
setMaxListeners(Infinity, this.closeController.signal);
|
|
199
|
-
this.log = components.logger.forComponent(`helia:session-storage:${init.root}`);
|
|
200
|
-
}
|
|
201
|
-
close() {
|
|
202
|
-
this.closeController.abort();
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Put a block to the underlying datastore
|
|
206
|
-
*/
|
|
207
|
-
async put(cid, block, options = {}) {
|
|
208
|
-
const signal = anySignal([this.closeController.signal, options.signal]);
|
|
209
|
-
setMaxListeners(Infinity, signal);
|
|
210
|
-
try {
|
|
211
|
-
return await super.put(cid, block, {
|
|
212
|
-
...options,
|
|
213
|
-
signal
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
finally {
|
|
217
|
-
signal.clear();
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
* Put a multiple blocks to the underlying datastore
|
|
222
|
-
*/
|
|
223
|
-
async *putMany(blocks, options = {}) {
|
|
224
|
-
const signal = anySignal([this.closeController.signal, options.signal]);
|
|
225
|
-
setMaxListeners(Infinity, signal);
|
|
226
|
-
try {
|
|
227
|
-
yield* super.putMany(blocks, {
|
|
228
|
-
...options,
|
|
229
|
-
signal
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
|
-
finally {
|
|
233
|
-
signal.clear();
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* Get a block by cid
|
|
238
|
-
*/
|
|
239
|
-
async *get(cid, options = {}) {
|
|
240
|
-
const signal = anySignal([this.closeController.signal, options.signal]);
|
|
241
|
-
setMaxListeners(Infinity, signal);
|
|
242
|
-
try {
|
|
243
|
-
yield* super.get(cid, {
|
|
244
|
-
...options,
|
|
245
|
-
signal
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
finally {
|
|
249
|
-
signal.clear();
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
/**
|
|
253
|
-
* Get multiple blocks back from an (async) iterable of cids
|
|
254
|
-
*/
|
|
255
|
-
async *getMany(cids, options = {}) {
|
|
256
|
-
const signal = anySignal([this.closeController.signal, options.signal]);
|
|
257
|
-
setMaxListeners(Infinity, signal);
|
|
258
|
-
try {
|
|
259
|
-
yield* super.getMany(cids, {
|
|
260
|
-
...options,
|
|
261
|
-
signal
|
|
262
|
-
});
|
|
263
|
-
}
|
|
264
|
-
finally {
|
|
265
|
-
signal.clear();
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Delete a block from the blockstore
|
|
270
|
-
*/
|
|
271
|
-
async delete(cid, options = {}) {
|
|
272
|
-
const signal = anySignal([this.closeController.signal, options.signal]);
|
|
273
|
-
setMaxListeners(Infinity, signal);
|
|
274
|
-
try {
|
|
275
|
-
await super.delete(cid, {
|
|
276
|
-
...options,
|
|
277
|
-
signal
|
|
278
|
-
});
|
|
279
|
-
}
|
|
280
|
-
finally {
|
|
281
|
-
signal.clear();
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* Delete multiple blocks from the blockstore
|
|
286
|
-
*/
|
|
287
|
-
async *deleteMany(cids, options = {}) {
|
|
288
|
-
const signal = anySignal([this.closeController.signal, options.signal]);
|
|
289
|
-
setMaxListeners(Infinity, signal);
|
|
290
|
-
try {
|
|
291
|
-
yield* super.deleteMany(cids, {
|
|
292
|
-
...options,
|
|
293
|
-
signal
|
|
294
|
-
});
|
|
295
|
-
}
|
|
296
|
-
finally {
|
|
297
|
-
signal.clear();
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
async has(cid, options = {}) {
|
|
301
|
-
const signal = anySignal([this.closeController.signal, options.signal]);
|
|
302
|
-
setMaxListeners(Infinity, signal);
|
|
303
|
-
try {
|
|
304
|
-
return await super.has(cid, {
|
|
305
|
-
...options,
|
|
306
|
-
signal
|
|
307
|
-
});
|
|
308
|
-
}
|
|
309
|
-
finally {
|
|
310
|
-
signal.clear();
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
async *getAll(options = {}) {
|
|
314
|
-
const signal = anySignal([this.closeController.signal, options.signal]);
|
|
315
|
-
setMaxListeners(Infinity, signal);
|
|
316
|
-
try {
|
|
317
|
-
yield* super.getAll({
|
|
318
|
-
...options,
|
|
319
|
-
signal
|
|
320
|
-
});
|
|
321
|
-
}
|
|
322
|
-
finally {
|
|
323
|
-
signal.clear();
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
function isRetrievingBlockBroker(broker) {
|
|
328
|
-
return typeof broker.retrieve === 'function';
|
|
329
|
-
}
|
|
330
|
-
export const getCidBlockVerifierFunction = (cid, hasher) => {
|
|
331
|
-
if (hasher == null) {
|
|
332
|
-
throw new InvalidParametersError(`No hasher configured for multihash code 0x${cid.multihash.code.toString(16)}, please configure one. You can look up which hash this is at https://github.com/multiformats/multicodec/blob/master/table.csv`);
|
|
333
|
-
}
|
|
334
|
-
return async (block) => {
|
|
335
|
-
// verify block
|
|
336
|
-
let hash;
|
|
337
|
-
const res = hasher.digest(block, {
|
|
338
|
-
// support truncated hashes where they are truncated
|
|
339
|
-
truncate: cid.multihash.digest.byteLength
|
|
340
|
-
});
|
|
341
|
-
if (isPromise(res)) {
|
|
342
|
-
hash = await res;
|
|
343
|
-
}
|
|
344
|
-
else {
|
|
345
|
-
hash = res;
|
|
346
|
-
}
|
|
347
|
-
if (!uint8ArrayEquals(hash.digest, cid.multihash.digest)) {
|
|
348
|
-
// if a hash mismatch occurs for a TrustlessGatewayBlockBroker, we should try another gateway
|
|
349
|
-
throw new InvalidMultihashError('Hash of downloaded block did not match multihash from passed CID');
|
|
350
|
-
}
|
|
351
|
-
};
|
|
352
|
-
};
|
|
353
|
-
/**
|
|
354
|
-
* Race block providers cancelling any pending requests once the block has been
|
|
355
|
-
* found.
|
|
356
|
-
*/
|
|
357
|
-
async function raceBlockRetrievers(cid, blockBrokers, hasher, options) {
|
|
358
|
-
const validateFn = getCidBlockVerifierFunction(cid, hasher);
|
|
359
|
-
const controller = new AbortController();
|
|
360
|
-
const signal = anySignal([controller.signal, options.signal]);
|
|
361
|
-
setMaxListeners(Infinity, controller.signal, signal);
|
|
362
|
-
const retrievers = [];
|
|
363
|
-
for (const broker of blockBrokers) {
|
|
364
|
-
if (isRetrievingBlockBroker(broker)) {
|
|
365
|
-
retrievers.push(broker);
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
if (retrievers.length === 0) {
|
|
369
|
-
throw new InvalidConfigurationError(`No block brokers capable of retrieving blocks are configured, the CID ${cid} cannot be fetched from the network`);
|
|
370
|
-
}
|
|
371
|
-
try {
|
|
372
|
-
return await Promise.any(retrievers
|
|
373
|
-
.map(async (retriever) => {
|
|
374
|
-
try {
|
|
375
|
-
let blocksWereValidated = false;
|
|
376
|
-
const block = await retriever.retrieve(cid, {
|
|
377
|
-
...options,
|
|
378
|
-
signal,
|
|
379
|
-
validateFn: async (block) => {
|
|
380
|
-
await validateFn(block);
|
|
381
|
-
options.signal?.throwIfAborted();
|
|
382
|
-
blocksWereValidated = true;
|
|
383
|
-
}
|
|
384
|
-
});
|
|
385
|
-
if (!blocksWereValidated) {
|
|
386
|
-
// the blockBroker either did not throw an error when attempting to validate the block
|
|
387
|
-
// or did not call the validateFn at all. We should validate the block ourselves
|
|
388
|
-
await validateFn(block);
|
|
389
|
-
options.signal?.throwIfAborted();
|
|
390
|
-
}
|
|
391
|
-
return block;
|
|
392
|
-
}
|
|
393
|
-
catch (err) {
|
|
394
|
-
options.log.error('could not retrieve verified block for %c from %s - %e', cid, retriever.name, err);
|
|
395
|
-
throw err;
|
|
396
|
-
}
|
|
397
|
-
}));
|
|
398
|
-
}
|
|
399
|
-
catch (err) {
|
|
400
|
-
throw new LoadBlockFailedError(err.errors, `Failed to load block for ${cid}`);
|
|
401
|
-
}
|
|
402
|
-
finally {
|
|
403
|
-
// we have the block from the fastest block retriever, abort any still
|
|
404
|
-
// in-flight retrieve attempts
|
|
405
|
-
controller.abort();
|
|
406
|
-
signal.clear();
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
52
|
//# sourceMappingURL=networked-storage.js.map
|