@helia/utils 0.3.3 → 1.0.0-0238ed4
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/README.md +3 -2
- package/dist/index.min.js +1 -1
- package/dist/src/abstract-session.d.ts.map +1 -1
- package/dist/src/abstract-session.js +3 -3
- package/dist/src/abstract-session.js.map +1 -1
- package/dist/src/index.d.ts +23 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +12 -11
- package/dist/src/index.js.map +1 -1
- package/dist/src/pins.d.ts +6 -3
- package/dist/src/pins.d.ts.map +1 -1
- package/dist/src/pins.js +21 -10
- package/dist/src/pins.js.map +1 -1
- package/dist/src/routing.d.ts.map +1 -1
- package/dist/src/routing.js +7 -6
- package/dist/src/routing.js.map +1 -1
- package/dist/src/utils/get-codec.d.ts +4 -0
- package/dist/src/utils/get-codec.d.ts.map +1 -0
- package/dist/src/utils/get-codec.js +38 -0
- package/dist/src/utils/get-codec.js.map +1 -0
- package/dist/src/utils/get-hasher.d.ts +4 -0
- package/dist/src/utils/get-hasher.d.ts.map +1 -0
- package/dist/src/utils/get-hasher.js +32 -0
- package/dist/src/utils/get-hasher.js.map +1 -0
- package/dist/src/utils/is-promise.d.ts +2 -0
- package/dist/src/utils/is-promise.d.ts.map +1 -0
- package/dist/src/utils/is-promise.js +4 -0
- package/dist/src/utils/is-promise.js.map +1 -0
- package/dist/src/utils/networked-storage.d.ts +3 -2
- package/dist/src/utils/networked-storage.d.ts.map +1 -1
- package/dist/src/utils/networked-storage.js +19 -9
- package/dist/src/utils/networked-storage.js.map +1 -1
- package/package.json +12 -11
- package/src/abstract-session.ts +3 -3
- package/src/index.ts +35 -16
- package/src/pins.ts +27 -13
- package/src/routing.ts +7 -6
- package/src/utils/get-codec.ts +47 -0
- package/src/utils/get-hasher.ts +40 -0
- package/src/utils/is-promise.ts +3 -0
- package/src/utils/networked-storage.ts +24 -11
- package/dist/src/utils/dag-walkers.d.ts +0 -28
- package/dist/src/utils/dag-walkers.d.ts.map +0 -1
- package/dist/src/utils/dag-walkers.js +0 -171
- package/dist/src/utils/dag-walkers.js.map +0 -1
- package/dist/src/utils/default-hashers.d.ts +0 -3
- package/dist/src/utils/default-hashers.d.ts.map +0 -1
- package/dist/src/utils/default-hashers.js +0 -15
- package/dist/src/utils/default-hashers.js.map +0 -1
- package/dist/typedoc-urls.json +0 -9
- package/src/utils/dag-walkers.ts +0 -198
- package/src/utils/default-hashers.ts +0 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networked-storage.d.ts","sourceRoot":"","sources":["../../../src/utils/networked-storage.ts"],"names":[],"mappings":"AAKA,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"networked-storage.d.ts","sourceRoot":"","sources":["../../../src/utils/networked-storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InvalidMultihashError, InvalidParametersError, setMaxListeners, start, stop } from '@libp2p/interface';
|
|
2
2
|
import { anySignal } from 'any-signal';
|
|
3
3
|
import { IdentityBlockstore } from 'blockstore-core/identity';
|
|
4
4
|
import filter from 'it-filter';
|
|
5
5
|
import forEach from 'it-foreach';
|
|
6
6
|
import { CustomProgressEvent } from 'progress-events';
|
|
7
7
|
import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
|
|
8
|
+
import { isPromise } from './is-promise.js';
|
|
8
9
|
class Storage {
|
|
9
10
|
child;
|
|
10
|
-
|
|
11
|
+
getHasher;
|
|
11
12
|
log;
|
|
12
13
|
logger;
|
|
13
14
|
components;
|
|
@@ -19,7 +20,7 @@ class Storage {
|
|
|
19
20
|
this.logger = components.logger;
|
|
20
21
|
this.components = components;
|
|
21
22
|
this.child = new IdentityBlockstore(components.blockstore);
|
|
22
|
-
this.
|
|
23
|
+
this.getHasher = components.getHasher;
|
|
23
24
|
}
|
|
24
25
|
/**
|
|
25
26
|
* Put a block to the underlying datastore
|
|
@@ -57,9 +58,10 @@ class Storage {
|
|
|
57
58
|
*/
|
|
58
59
|
async get(cid, options = {}) {
|
|
59
60
|
if (options.offline !== true && !(await this.child.has(cid, options))) {
|
|
61
|
+
const hasher = await this.getHasher(cid.multihash.code);
|
|
60
62
|
// we do not have the block locally, get it from a block provider
|
|
61
63
|
options.onProgress?.(new CustomProgressEvent('blocks:get:providers:get', cid));
|
|
62
|
-
const block = await raceBlockRetrievers(cid, this.components.blockBrokers,
|
|
64
|
+
const block = await raceBlockRetrievers(cid, this.components.blockBrokers, hasher, {
|
|
63
65
|
...options,
|
|
64
66
|
log: this.log
|
|
65
67
|
});
|
|
@@ -80,9 +82,10 @@ class Storage {
|
|
|
80
82
|
options.onProgress?.(new CustomProgressEvent('blocks:get-many:blockstore:get-many'));
|
|
81
83
|
yield* this.child.getMany(forEach(cids, async (cid) => {
|
|
82
84
|
if (options.offline !== true && !(await this.child.has(cid, options))) {
|
|
85
|
+
const hasher = await this.getHasher(cid.multihash.code);
|
|
83
86
|
// we do not have the block locally, get it from a block provider
|
|
84
87
|
options.onProgress?.(new CustomProgressEvent('blocks:get-many:providers:get', cid));
|
|
85
|
-
const block = await raceBlockRetrievers(cid, this.components.blockBrokers,
|
|
88
|
+
const block = await raceBlockRetrievers(cid, this.components.blockBrokers, hasher, {
|
|
86
89
|
...options,
|
|
87
90
|
log: this.log
|
|
88
91
|
});
|
|
@@ -157,7 +160,7 @@ export class NetworkedStorage extends Storage {
|
|
|
157
160
|
return new SessionStorage({
|
|
158
161
|
blockstore: this.child,
|
|
159
162
|
blockBrokers,
|
|
160
|
-
|
|
163
|
+
getHasher: this.getHasher,
|
|
161
164
|
logger: this.logger
|
|
162
165
|
}, {
|
|
163
166
|
root
|
|
@@ -309,14 +312,21 @@ function isRetrievingBlockBroker(broker) {
|
|
|
309
312
|
}
|
|
310
313
|
export const getCidBlockVerifierFunction = (cid, hasher) => {
|
|
311
314
|
if (hasher == null) {
|
|
312
|
-
throw new
|
|
315
|
+
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`);
|
|
313
316
|
}
|
|
314
317
|
return async (block) => {
|
|
315
318
|
// verify block
|
|
316
|
-
|
|
319
|
+
let hash;
|
|
320
|
+
const res = hasher.digest(block);
|
|
321
|
+
if (isPromise(res)) {
|
|
322
|
+
hash = await res;
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
hash = res;
|
|
326
|
+
}
|
|
317
327
|
if (!uint8ArrayEquals(hash.digest, cid.multihash.digest)) {
|
|
318
328
|
// if a hash mismatch occurs for a TrustlessGatewayBlockBroker, we should try another gateway
|
|
319
|
-
throw new
|
|
329
|
+
throw new InvalidMultihashError('Hash of downloaded block did not match multihash from passed CID');
|
|
320
330
|
}
|
|
321
331
|
};
|
|
322
332
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networked-storage.js","sourceRoot":"","sources":["../../../src/utils/networked-storage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"networked-storage.js","sourceRoot":"","sources":["../../../src/utils/networked-storage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@helia/utils",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-0238ed4",
|
|
4
4
|
"description": "Shared code that implements the Helia API",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/ipfs/helia/tree/main/packages/utils#readme",
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
"clean": "aegir clean",
|
|
44
44
|
"lint": "aegir lint",
|
|
45
45
|
"dep-check": "aegir dep-check",
|
|
46
|
+
"doc-check": "aegir doc-check",
|
|
46
47
|
"build": "aegir build",
|
|
47
48
|
"test": "aegir test",
|
|
48
49
|
"test:chrome": "aegir test -t browser --cov",
|
|
@@ -53,22 +54,22 @@
|
|
|
53
54
|
"test:electron-main": "aegir test -t electron-main"
|
|
54
55
|
},
|
|
55
56
|
"dependencies": {
|
|
56
|
-
"@helia/interface": "
|
|
57
|
+
"@helia/interface": "5.0.0-0238ed4",
|
|
57
58
|
"@ipld/dag-cbor": "^9.2.0",
|
|
58
59
|
"@ipld/dag-json": "^10.2.0",
|
|
59
60
|
"@ipld/dag-pb": "^4.1.0",
|
|
60
|
-
"@libp2p/crypto": "^
|
|
61
|
-
"@libp2p/interface": "^
|
|
62
|
-
"@libp2p/logger": "^
|
|
63
|
-
"@libp2p/utils": "^
|
|
61
|
+
"@libp2p/crypto": "^5.0.0",
|
|
62
|
+
"@libp2p/interface": "^2.0.0",
|
|
63
|
+
"@libp2p/logger": "^5.0.0",
|
|
64
|
+
"@libp2p/utils": "^6.0.0",
|
|
64
65
|
"@multiformats/dns": "^1.0.1",
|
|
65
66
|
"@types/murmurhash3js-revisited": "^3.0.3",
|
|
66
67
|
"any-signal": "^4.1.1",
|
|
67
|
-
"blockstore-core": "^
|
|
68
|
+
"blockstore-core": "^5.0.0",
|
|
68
69
|
"cborg": "^4.0.9",
|
|
69
70
|
"interface-blockstore": "^5.2.10",
|
|
70
71
|
"interface-datastore": "^8.2.11",
|
|
71
|
-
"interface-store": "^
|
|
72
|
+
"interface-store": "^6.0.0",
|
|
72
73
|
"it-drain": "^3.0.5",
|
|
73
74
|
"it-filter": "^3.0.4",
|
|
74
75
|
"it-foreach": "^2.0.6",
|
|
@@ -82,14 +83,14 @@
|
|
|
82
83
|
"uint8arrays": "^5.0.2"
|
|
83
84
|
},
|
|
84
85
|
"devDependencies": {
|
|
85
|
-
"@libp2p/peer-id
|
|
86
|
+
"@libp2p/peer-id": "^5.0.0",
|
|
86
87
|
"@types/sinon": "^17.0.3",
|
|
87
88
|
"aegir": "^44.0.1",
|
|
88
|
-
"datastore-core": "^
|
|
89
|
+
"datastore-core": "^10.0.0",
|
|
89
90
|
"delay": "^6.0.0",
|
|
90
91
|
"it-all": "^3.0.4",
|
|
91
92
|
"race-signal": "^1.0.2",
|
|
92
|
-
"sinon": "^
|
|
93
|
+
"sinon": "^19.0.2",
|
|
93
94
|
"sinon-ts": "^2.0.0"
|
|
94
95
|
},
|
|
95
96
|
"browser": {
|
package/src/abstract-session.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DEFAULT_SESSION_MIN_PROVIDERS, DEFAULT_SESSION_MAX_PROVIDERS } from '@helia/interface'
|
|
2
|
-
import {
|
|
1
|
+
import { DEFAULT_SESSION_MIN_PROVIDERS, DEFAULT_SESSION_MAX_PROVIDERS, InsufficientProvidersError } from '@helia/interface'
|
|
2
|
+
import { TypedEventEmitter, setMaxListeners } from '@libp2p/interface'
|
|
3
3
|
import { Queue } from '@libp2p/utils/queue'
|
|
4
4
|
import { base64 } from 'multiformats/bases/base64'
|
|
5
5
|
import pDefer from 'p-defer'
|
|
@@ -249,7 +249,7 @@ export abstract class AbstractSession<Provider, RetrieveBlockProgressEvents exte
|
|
|
249
249
|
this.log('found %d/%d new session peers', found, this.maxProviders)
|
|
250
250
|
|
|
251
251
|
if (found < count) {
|
|
252
|
-
throw new
|
|
252
|
+
throw new InsufficientProvidersError(`Found ${found} of ${count} ${this.name} providers for ${cid}`)
|
|
253
253
|
}
|
|
254
254
|
})
|
|
255
255
|
.catch(err => {
|
package/src/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @packageDocumentation
|
|
3
3
|
*
|
|
4
|
-
* Exports a `Helia` class that implements the
|
|
4
|
+
* Exports a `Helia` class that implements the Helia API.
|
|
5
5
|
*
|
|
6
6
|
* In general you should use the `helia` or `@helia/http` modules instead which
|
|
7
7
|
* pre-configure Helia for certain use-cases (p2p or pure-HTTP).
|
|
@@ -10,10 +10,11 @@
|
|
|
10
10
|
*
|
|
11
11
|
* ```typescript
|
|
12
12
|
* import { Helia } from '@helia/utils'
|
|
13
|
+
* import type { HeliaInit } from '@helia/utils'
|
|
13
14
|
*
|
|
14
15
|
* const node = new Helia({
|
|
15
16
|
* // ...options
|
|
16
|
-
* })
|
|
17
|
+
* } as HeliaInit)
|
|
17
18
|
* ```
|
|
18
19
|
*/
|
|
19
20
|
|
|
@@ -25,22 +26,28 @@ import { CustomProgressEvent } from 'progress-events'
|
|
|
25
26
|
import { PinsImpl } from './pins.js'
|
|
26
27
|
import { Routing as RoutingClass } from './routing.js'
|
|
27
28
|
import { BlockStorage } from './storage.js'
|
|
28
|
-
import { defaultDagWalkers } from './utils/dag-walkers.js'
|
|
29
29
|
import { assertDatastoreVersionIsCurrent } from './utils/datastore-version.js'
|
|
30
|
-
import {
|
|
30
|
+
import { getCodec } from './utils/get-codec.js'
|
|
31
|
+
import { getHasher } from './utils/get-hasher.js'
|
|
31
32
|
import { NetworkedStorage } from './utils/networked-storage.js'
|
|
32
|
-
import type {
|
|
33
|
+
import type { BlockStorageInit } from './storage.js'
|
|
34
|
+
import type { Await, CodecLoader, GCOptions, HasherLoader, Helia as HeliaInterface, Routing } from '@helia/interface'
|
|
33
35
|
import type { BlockBroker } from '@helia/interface/blocks'
|
|
34
36
|
import type { Pins } from '@helia/interface/pins'
|
|
35
37
|
import type { ComponentLogger, Logger, Metrics } from '@libp2p/interface'
|
|
36
38
|
import type { DNS } from '@multiformats/dns'
|
|
37
39
|
import type { Blockstore } from 'interface-blockstore'
|
|
38
40
|
import type { Datastore } from 'interface-datastore'
|
|
41
|
+
import type { BlockCodec } from 'multiformats'
|
|
39
42
|
import type { CID } from 'multiformats/cid'
|
|
40
43
|
import type { MultihashHasher } from 'multiformats/hashes/interface'
|
|
41
44
|
|
|
42
|
-
export { AbstractSession
|
|
45
|
+
export { AbstractSession } from './abstract-session.js'
|
|
46
|
+
export type { AbstractCreateSessionOptions, BlockstoreSessionEvents, AbstractSessionComponents } from './abstract-session.js'
|
|
43
47
|
export { BloomFilter } from './bloom-filter.js'
|
|
48
|
+
export type { BloomFilterOptions } from './bloom-filter.js'
|
|
49
|
+
|
|
50
|
+
export type { BlockStorage, BlockStorageInit }
|
|
44
51
|
|
|
45
52
|
/**
|
|
46
53
|
* Options used to create a Helia node.
|
|
@@ -63,12 +70,24 @@ export interface HeliaInit {
|
|
|
63
70
|
*/
|
|
64
71
|
hashers?: MultihashHasher[]
|
|
65
72
|
|
|
73
|
+
/**
|
|
74
|
+
* An optional function that can load a MultihashHasher on demand. May return
|
|
75
|
+
* a promise.
|
|
76
|
+
*/
|
|
77
|
+
loadHasher?(code: number): Await<MultihashHasher>
|
|
78
|
+
|
|
66
79
|
/**
|
|
67
80
|
* In order to pin CIDs that correspond to a DAG, it's necessary to know
|
|
68
81
|
* how to traverse that DAG. DAGWalkers take a block and yield any CIDs
|
|
69
82
|
* encoded within that block.
|
|
70
83
|
*/
|
|
71
|
-
|
|
84
|
+
codecs?: Array<BlockCodec<any, any>>
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* An optional function that can load a BlockCodec on demand. May return a
|
|
88
|
+
* promise.
|
|
89
|
+
*/
|
|
90
|
+
loadCodec?(code: number): Await<BlockCodec<any, any>>
|
|
72
91
|
|
|
73
92
|
/**
|
|
74
93
|
* A list of strategies used to fetch blocks when they are not present in
|
|
@@ -142,13 +161,13 @@ export interface HeliaInit {
|
|
|
142
161
|
interface Components {
|
|
143
162
|
blockstore: Blockstore
|
|
144
163
|
datastore: Datastore
|
|
145
|
-
hashers: Record<number, MultihashHasher>
|
|
146
|
-
dagWalkers: Record<number, DAGWalker>
|
|
147
164
|
logger: ComponentLogger
|
|
148
165
|
blockBrokers: BlockBroker[]
|
|
149
166
|
routing: Routing
|
|
150
167
|
dns: DNS
|
|
151
168
|
metrics?: Metrics
|
|
169
|
+
getCodec: CodecLoader
|
|
170
|
+
getHasher: HasherLoader
|
|
152
171
|
}
|
|
153
172
|
|
|
154
173
|
export class Helia implements HeliaInterface {
|
|
@@ -157,8 +176,8 @@ export class Helia implements HeliaInterface {
|
|
|
157
176
|
public pins: Pins
|
|
158
177
|
public logger: ComponentLogger
|
|
159
178
|
public routing: Routing
|
|
160
|
-
public
|
|
161
|
-
public
|
|
179
|
+
public getCodec: CodecLoader
|
|
180
|
+
public getHasher: HasherLoader
|
|
162
181
|
public dns: DNS
|
|
163
182
|
public metrics?: Metrics
|
|
164
183
|
private readonly log: Logger
|
|
@@ -166,8 +185,8 @@ export class Helia implements HeliaInterface {
|
|
|
166
185
|
constructor (init: HeliaInit) {
|
|
167
186
|
this.logger = init.logger ?? defaultLogger()
|
|
168
187
|
this.log = this.logger.forComponent('helia')
|
|
169
|
-
this.
|
|
170
|
-
this.
|
|
188
|
+
this.getHasher = getHasher(init.hashers, init.loadHasher)
|
|
189
|
+
this.getCodec = getCodec(init.codecs, init.loadCodec)
|
|
171
190
|
this.dns = init.dns ?? dns()
|
|
172
191
|
this.metrics = init.metrics
|
|
173
192
|
|
|
@@ -175,10 +194,10 @@ export class Helia implements HeliaInterface {
|
|
|
175
194
|
const components: Components = {
|
|
176
195
|
blockstore: init.blockstore,
|
|
177
196
|
datastore: init.datastore,
|
|
178
|
-
hashers: this.hashers,
|
|
179
|
-
dagWalkers: this.dagWalkers,
|
|
180
197
|
logger: this.logger,
|
|
181
198
|
blockBrokers: [],
|
|
199
|
+
getHasher: this.getHasher,
|
|
200
|
+
getCodec: this.getCodec,
|
|
182
201
|
dns: this.dns,
|
|
183
202
|
metrics: this.metrics,
|
|
184
203
|
...(init.components ?? {})
|
|
@@ -207,7 +226,7 @@ export class Helia implements HeliaInterface {
|
|
|
207
226
|
})
|
|
208
227
|
|
|
209
228
|
const networkedStorage = new NetworkedStorage(components)
|
|
210
|
-
this.pins = new PinsImpl(init.datastore, networkedStorage, this.
|
|
229
|
+
this.pins = new PinsImpl(init.datastore, networkedStorage, this.getCodec)
|
|
211
230
|
this.blockstore = new BlockStorage(networkedStorage, this.pins, {
|
|
212
231
|
holdGcLock: init.holdGcLock ?? true
|
|
213
232
|
})
|
package/src/pins.ts
CHANGED
|
@@ -2,10 +2,11 @@ import { Queue } from '@libp2p/utils/queue'
|
|
|
2
2
|
import * as cborg from 'cborg'
|
|
3
3
|
import { type Datastore, Key } from 'interface-datastore'
|
|
4
4
|
import { base36 } from 'multiformats/bases/base36'
|
|
5
|
+
import { createUnsafe } from 'multiformats/block'
|
|
5
6
|
import { CID, type Version } from 'multiformats/cid'
|
|
6
7
|
import { CustomProgressEvent, type ProgressOptions } from 'progress-events'
|
|
7
8
|
import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
|
|
8
|
-
import type {
|
|
9
|
+
import type { CodecLoader } from '@helia/interface'
|
|
9
10
|
import type { GetBlockProgressEvents } from '@helia/interface/blocks'
|
|
10
11
|
import type { AddOptions, AddPinEvents, IsPinnedOptions, LsOptions, Pin, Pins, RmOptions } from '@helia/interface/pins'
|
|
11
12
|
import type { AbortOptions } from '@libp2p/interface'
|
|
@@ -59,12 +60,12 @@ function toDSKey (cid: CID): Key {
|
|
|
59
60
|
export class PinsImpl implements Pins {
|
|
60
61
|
private readonly datastore: Datastore
|
|
61
62
|
private readonly blockstore: Blockstore
|
|
62
|
-
private readonly
|
|
63
|
+
private readonly getCodec: CodecLoader
|
|
63
64
|
|
|
64
|
-
constructor (datastore: Datastore, blockstore: Blockstore,
|
|
65
|
+
constructor (datastore: Datastore, blockstore: Blockstore, getCodec: CodecLoader) {
|
|
65
66
|
this.datastore = datastore
|
|
66
67
|
this.blockstore = blockstore
|
|
67
|
-
this.
|
|
68
|
+
this.getCodec = getCodec
|
|
68
69
|
}
|
|
69
70
|
|
|
70
71
|
async * add (cid: CID<unknown, number, number, Version>, options: AddOptions = {}): AsyncGenerator<CID, void, undefined> {
|
|
@@ -119,18 +120,14 @@ export class PinsImpl implements Pins {
|
|
|
119
120
|
return
|
|
120
121
|
}
|
|
121
122
|
|
|
122
|
-
const
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
throw new Error(`No dag walker found for cid codec ${cid.code}`)
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
const block = await this.blockstore.get(cid, options)
|
|
123
|
+
const codec = await this.getCodec(cid.code)
|
|
124
|
+
const bytes = await this.blockstore.get(cid, options)
|
|
125
|
+
const block = createUnsafe({ bytes, cid, codec })
|
|
129
126
|
|
|
130
127
|
yield cid
|
|
131
128
|
|
|
132
129
|
// walk dag, ensure all blocks are present
|
|
133
|
-
for await (const cid of
|
|
130
|
+
for await (const [,cid] of block.links()) {
|
|
134
131
|
yield * await queue.add(async () => {
|
|
135
132
|
return this.#walkDag(cid, queue, {
|
|
136
133
|
...options,
|
|
@@ -154,7 +151,7 @@ export class PinsImpl implements Pins {
|
|
|
154
151
|
try {
|
|
155
152
|
pinnedBlock = cborg.decode(await this.datastore.get(blockKey, options))
|
|
156
153
|
} catch (err: any) {
|
|
157
|
-
if (err.
|
|
154
|
+
if (err.name !== 'NotFoundError') {
|
|
158
155
|
throw err
|
|
159
156
|
}
|
|
160
157
|
}
|
|
@@ -224,4 +221,21 @@ export class PinsImpl implements Pins {
|
|
|
224
221
|
|
|
225
222
|
return this.datastore.has(blockKey, options)
|
|
226
223
|
}
|
|
224
|
+
|
|
225
|
+
async get (cid: CID, options?: AbortOptions): Promise<Pin> {
|
|
226
|
+
const pinKey = toDSKey(cid)
|
|
227
|
+
const buf = await this.datastore.get(pinKey, options)
|
|
228
|
+
|
|
229
|
+
return cborg.decode(buf)
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
async setMetadata (cid: CID, metadata: Record<string, string | number | boolean> | undefined, options?: AbortOptions): Promise<void> {
|
|
233
|
+
const pinKey = toDSKey(cid)
|
|
234
|
+
const buf = await this.datastore.get(pinKey, options)
|
|
235
|
+
const pin: DatastorePin = cborg.decode(buf)
|
|
236
|
+
|
|
237
|
+
pin.metadata = metadata ?? {}
|
|
238
|
+
|
|
239
|
+
await this.datastore.put(pinKey, cborg.encode(pin), options)
|
|
240
|
+
}
|
|
227
241
|
}
|
package/src/routing.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NoRoutersAvailableError } from '@helia/interface'
|
|
2
|
+
import { NotFoundError, start, stop } from '@libp2p/interface'
|
|
2
3
|
import { PeerQueue } from '@libp2p/utils/peer-queue'
|
|
3
4
|
import merge from 'it-merge'
|
|
4
5
|
import type { Routing as RoutingInterface, Provider, RoutingOptions } from '@helia/interface'
|
|
@@ -41,7 +42,7 @@ export class Routing implements RoutingInterface, Startable {
|
|
|
41
42
|
*/
|
|
42
43
|
async * findProviders (key: CID, options: RoutingOptions = {}): AsyncIterable<Provider> {
|
|
43
44
|
if (this.routers.length === 0) {
|
|
44
|
-
throw new
|
|
45
|
+
throw new NoRoutersAvailableError('No content routers available')
|
|
45
46
|
}
|
|
46
47
|
|
|
47
48
|
// provider multiaddrs are only cached for a limited time, so they can come
|
|
@@ -103,7 +104,7 @@ export class Routing implements RoutingInterface, Startable {
|
|
|
103
104
|
*/
|
|
104
105
|
async provide (key: CID, options: AbortOptions = {}): Promise<void> {
|
|
105
106
|
if (this.routers.length === 0) {
|
|
106
|
-
throw new
|
|
107
|
+
throw new NoRoutersAvailableError('No content routers available')
|
|
107
108
|
}
|
|
108
109
|
|
|
109
110
|
await Promise.all(
|
|
@@ -144,7 +145,7 @@ export class Routing implements RoutingInterface, Startable {
|
|
|
144
145
|
*/
|
|
145
146
|
async findPeer (id: PeerId, options?: RoutingOptions): Promise<PeerInfo> {
|
|
146
147
|
if (this.routers.length === 0) {
|
|
147
|
-
throw new
|
|
148
|
+
throw new NoRoutersAvailableError('No peer routers available')
|
|
148
149
|
}
|
|
149
150
|
|
|
150
151
|
const self = this
|
|
@@ -167,7 +168,7 @@ export class Routing implements RoutingInterface, Startable {
|
|
|
167
168
|
return peer
|
|
168
169
|
}
|
|
169
170
|
|
|
170
|
-
throw new
|
|
171
|
+
throw new NotFoundError('Could not find peer in routing')
|
|
171
172
|
}
|
|
172
173
|
|
|
173
174
|
/**
|
|
@@ -175,7 +176,7 @@ export class Routing implements RoutingInterface, Startable {
|
|
|
175
176
|
*/
|
|
176
177
|
async * getClosestPeers (key: Uint8Array, options: RoutingOptions = {}): AsyncIterable<PeerInfo> {
|
|
177
178
|
if (this.routers.length === 0) {
|
|
178
|
-
throw new
|
|
179
|
+
throw new NoRoutersAvailableError('No peer routers available')
|
|
179
180
|
}
|
|
180
181
|
|
|
181
182
|
for await (const peer of merge(
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/* eslint max-depth: ["error", 7] */
|
|
2
|
+
|
|
3
|
+
import { UnknownCodecError } from '@helia/interface'
|
|
4
|
+
import * as dagCbor from '@ipld/dag-cbor'
|
|
5
|
+
import * as dagJson from '@ipld/dag-json'
|
|
6
|
+
import * as dagPb from '@ipld/dag-pb'
|
|
7
|
+
import * as json from 'multiformats/codecs/json'
|
|
8
|
+
import * as raw from 'multiformats/codecs/raw'
|
|
9
|
+
import { isPromise } from './is-promise.js'
|
|
10
|
+
import type { Await } from '@helia/interface'
|
|
11
|
+
import type { BlockCodec } from 'multiformats/codecs/interface'
|
|
12
|
+
|
|
13
|
+
export function getCodec <T = any, Code extends number = any> (initialCodecs: Array<BlockCodec<any, any>> = [], loadCodec?: (code: number) => Await<BlockCodec<any, any>>): (code: Code) => Await<BlockCodec<Code, T>> {
|
|
14
|
+
const codecs: Record<number, BlockCodec<any, any>> = {
|
|
15
|
+
[dagPb.code]: dagPb,
|
|
16
|
+
[raw.code]: raw,
|
|
17
|
+
[dagCbor.code]: dagCbor,
|
|
18
|
+
[dagJson.code]: dagJson,
|
|
19
|
+
[json.code]: json
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
initialCodecs.forEach(codec => {
|
|
23
|
+
codecs[codec.code] = codec
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
return async (code) => {
|
|
27
|
+
let codec = codecs[code]
|
|
28
|
+
|
|
29
|
+
if (codec == null && loadCodec != null) {
|
|
30
|
+
const res = loadCodec(code)
|
|
31
|
+
|
|
32
|
+
if (isPromise(res)) {
|
|
33
|
+
codec = await res
|
|
34
|
+
} else {
|
|
35
|
+
codec = res
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
codecs[codec.code] = codec
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (codec != null) {
|
|
42
|
+
return codec
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
throw new UnknownCodecError(`Could not load codec for ${code}`)
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { UnknownHashAlgorithmError } from '@helia/interface'
|
|
2
|
+
import { identity } from 'multiformats/hashes/identity'
|
|
3
|
+
import { sha256, sha512 } from 'multiformats/hashes/sha2'
|
|
4
|
+
import { isPromise } from './is-promise.js'
|
|
5
|
+
import type { Await } from '@helia/interface'
|
|
6
|
+
import type { MultihashHasher } from 'multiformats/hashes/interface'
|
|
7
|
+
|
|
8
|
+
export function getHasher (initialHashers: MultihashHasher[] = [], loadHasher?: (code: number) => Await<MultihashHasher>): (code: number) => Await<MultihashHasher> {
|
|
9
|
+
const hashers: Record<number, MultihashHasher> = {
|
|
10
|
+
[sha256.code]: sha256,
|
|
11
|
+
[sha512.code]: sha512,
|
|
12
|
+
[identity.code]: identity
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
initialHashers.forEach(hasher => {
|
|
16
|
+
hashers[hasher.code] = hasher
|
|
17
|
+
})
|
|
18
|
+
|
|
19
|
+
return async (code) => {
|
|
20
|
+
let hasher = hashers[code]
|
|
21
|
+
|
|
22
|
+
if (hasher == null && loadHasher != null) {
|
|
23
|
+
const res = loadHasher(code)
|
|
24
|
+
|
|
25
|
+
if (isPromise(res)) {
|
|
26
|
+
hasher = await res
|
|
27
|
+
} else {
|
|
28
|
+
hasher = res
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
hashers[hasher.code] = hasher
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
if (hasher != null) {
|
|
35
|
+
return hasher
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
throw new UnknownHashAlgorithmError(`No hasher configured for multihash code 0x${code.toString(16)}, please configure one. You can look up which hash this is at https://github.com/multiformats/multicodec/blob/master/table.csv`)
|
|
39
|
+
}
|
|
40
|
+
}
|