@helia/ipns 9.1.9-eaeb734d → 9.2.0
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 +9 -9
- package/dist/index.min.js.map +4 -4
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.js +3 -3
- package/dist/src/ipns/publisher.d.ts +3 -3
- package/dist/src/ipns/republisher.d.ts +2 -2
- package/dist/src/ipns/republisher.js +1 -1
- package/dist/src/ipns/resolver.d.ts +3 -3
- package/dist/src/ipns/resolver.js +2 -2
- package/dist/src/ipns.d.ts +2 -2
- package/dist/src/ipns.js +2 -2
- package/dist/src/local-store.d.ts +2 -2
- package/dist/src/local-store.js +2 -2
- package/dist/src/pb/metadata.d.ts +11 -2
- package/dist/src/pb/metadata.d.ts.map +1 -1
- package/dist/src/pb/metadata.js +36 -5
- package/dist/src/pb/metadata.js.map +1 -1
- package/dist/src/routing/helia.d.ts +2 -2
- package/dist/src/routing/index.d.ts +6 -6
- package/dist/src/routing/index.js +2 -2
- package/dist/src/routing/pubsub.d.ts +74 -9
- package/dist/src/routing/pubsub.d.ts.map +1 -1
- package/dist/src/routing/pubsub.js +198 -39
- package/dist/src/routing/pubsub.js.map +1 -1
- package/dist/typedoc-urls.json +51 -0
- package/package.json +11 -6
- package/src/index.ts +6 -6
- package/src/ipns/publisher.ts +3 -3
- package/src/ipns/republisher.ts +3 -3
- package/src/ipns/resolver.ts +5 -5
- package/src/ipns.ts +5 -5
- package/src/local-store.ts +3 -3
- package/src/pb/metadata.ts +44 -3
- package/src/routing/helia.ts +2 -2
- package/src/routing/index.ts +6 -6
- package/src/routing/pubsub.ts +267 -53
|
@@ -1,61 +1,172 @@
|
|
|
1
|
-
import { isPublicKey } from '@libp2p/interface';
|
|
1
|
+
import { isPublicKey, NotFoundError, setMaxListeners } from '@libp2p/interface';
|
|
2
2
|
import { logger } from '@libp2p/logger';
|
|
3
|
+
import { PeerSet } from '@libp2p/peer-collections';
|
|
4
|
+
import { Queue } from '@libp2p/utils';
|
|
5
|
+
import { anySignal } from 'any-signal';
|
|
6
|
+
import delay from 'delay';
|
|
3
7
|
import { multihashToIPNSRoutingKey } from 'ipns';
|
|
4
8
|
import { ipnsSelector } from 'ipns/selector';
|
|
5
9
|
import { ipnsValidator } from 'ipns/validator';
|
|
6
10
|
import { CustomProgressEvent } from 'progress-events';
|
|
11
|
+
import { raceSignal } from 'race-signal';
|
|
7
12
|
import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
|
|
8
13
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
9
14
|
import { toString as uint8ArrayToString } from 'uint8arrays/to-string';
|
|
10
|
-
import { InvalidTopicError } from
|
|
11
|
-
import { localStore } from
|
|
15
|
+
import { InvalidTopicError } from "../errors.js";
|
|
16
|
+
import { localStore } from "../local-store.js";
|
|
17
|
+
import { IPNS_STRING_PREFIX } from "../utils.js";
|
|
12
18
|
const log = logger('helia:ipns:routing:pubsub');
|
|
13
|
-
class PubSubRouting {
|
|
19
|
+
export class PubSubRouting {
|
|
14
20
|
subscriptions;
|
|
15
21
|
localStore;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
22
|
+
libp2p;
|
|
23
|
+
fetchConcurrency;
|
|
24
|
+
fetchTimeout;
|
|
25
|
+
fetchDelay;
|
|
26
|
+
fetchQueue;
|
|
27
|
+
fetchPeers;
|
|
28
|
+
shutdownController;
|
|
29
|
+
fetchTopologyId;
|
|
30
|
+
constructor(components, init = {}) {
|
|
31
|
+
this.subscriptions = new Set();
|
|
32
|
+
this.shutdownController = new AbortController();
|
|
33
|
+
setMaxListeners(Infinity, this.shutdownController.signal);
|
|
34
|
+
this.fetchPeers = new PeerSet();
|
|
20
35
|
this.localStore = localStore(components.datastore, components.logger.forComponent('helia:ipns:local-store'));
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
23
|
-
this.
|
|
36
|
+
this.libp2p = components.libp2p;
|
|
37
|
+
this.fetchConcurrency = init.fetchConcurrency ?? 8;
|
|
38
|
+
this.fetchDelay = init.fetchDelay ?? 0;
|
|
39
|
+
// default libp2p-fetch timeout is 10 seconds - we should have an existing
|
|
40
|
+
// connection to the peer so this can be shortened
|
|
41
|
+
this.fetchTimeout = init.fetchTimeout ?? 2_500;
|
|
42
|
+
this.fetchQueue = new Queue({
|
|
43
|
+
concurrency: this.fetchConcurrency,
|
|
44
|
+
metrics: components.metrics,
|
|
45
|
+
metricName: 'helia_ipns_pubsub_fetch_queue'
|
|
46
|
+
});
|
|
47
|
+
this.libp2p.services.pubsub.addEventListener('message', (evt) => {
|
|
24
48
|
const message = evt.detail;
|
|
25
|
-
if (!this.subscriptions.
|
|
49
|
+
if (!this.subscriptions.has(message.topic)) {
|
|
26
50
|
return;
|
|
27
51
|
}
|
|
28
|
-
this.#processPubSubMessage(message
|
|
52
|
+
this.#processPubSubMessage(message, {
|
|
53
|
+
signal: this.shutdownController.signal
|
|
54
|
+
}).catch(err => {
|
|
29
55
|
log.error('Error processing message - %e', err);
|
|
30
56
|
});
|
|
31
57
|
});
|
|
58
|
+
// ipns over libp2p-fetch feature
|
|
59
|
+
if (this.libp2p.services.fetch != null) {
|
|
60
|
+
try {
|
|
61
|
+
this.libp2p.services.pubsub.addEventListener('subscription-change', (evt) => {
|
|
62
|
+
const { peerId, subscriptions } = evt.detail;
|
|
63
|
+
if (!this.fetchPeers.has(peerId)) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
for (const sub of subscriptions) {
|
|
67
|
+
if (!this.subscriptions.has(sub.topic)) {
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
if (sub.subscribe === false) {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
log('peer %s joined topic %s', peerId, sub.topic);
|
|
74
|
+
const routingKey = topicToKey(sub.topic);
|
|
75
|
+
this.#fetchFromPeer(sub.topic, routingKey, peerId, {
|
|
76
|
+
signal: this.shutdownController.signal
|
|
77
|
+
})
|
|
78
|
+
.catch(err => {
|
|
79
|
+
log.error('failed to fetch IPNS record for %m from peer %s - %e', routingKey, peerId, err);
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
this.libp2p.services.fetch.registerLookupFunction(IPNS_STRING_PREFIX, async (key) => {
|
|
84
|
+
try {
|
|
85
|
+
const { record } = await this.localStore.get(key, {
|
|
86
|
+
signal: this.shutdownController.signal
|
|
87
|
+
});
|
|
88
|
+
return record;
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
if (err.name !== 'NotFoundError') {
|
|
92
|
+
throw err;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
log('registered lookup function for IPNS with libp2p/fetch service');
|
|
97
|
+
}
|
|
98
|
+
catch (e) {
|
|
99
|
+
log('unable to register lookup function for IPNS with libp2p/fetch service - %e', e);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
log('no libp2p/fetch service found. Skipping registration of lookup function for IPNS.');
|
|
104
|
+
}
|
|
32
105
|
}
|
|
33
|
-
async #processPubSubMessage(message) {
|
|
106
|
+
async #processPubSubMessage(message, options) {
|
|
34
107
|
log('message received for topic', message.topic);
|
|
35
108
|
if (message.type !== 'signed') {
|
|
36
109
|
log.error('unsigned message received, this module can only work with signed messages');
|
|
37
110
|
return;
|
|
38
111
|
}
|
|
39
|
-
if (message.from.equals(this.peerId)) {
|
|
112
|
+
if (message.from.equals(this.libp2p.peerId)) {
|
|
40
113
|
log('not storing record from self');
|
|
41
114
|
return;
|
|
42
115
|
}
|
|
43
|
-
|
|
44
|
-
|
|
116
|
+
await this.#handleRecord(message.topic, topicToKey(message.topic), message.data, false, options);
|
|
117
|
+
}
|
|
118
|
+
async #fetchFromPeer(topic, routingKey, peerId, options) {
|
|
119
|
+
const marshalledRecord = await this.fetchQueue.add(async ({ signal }) => {
|
|
120
|
+
log('fetching ipns record for %m from peer %s', routingKey, peerId);
|
|
121
|
+
const sig = anySignal([
|
|
122
|
+
signal,
|
|
123
|
+
AbortSignal.timeout(this.fetchTimeout)
|
|
124
|
+
]);
|
|
125
|
+
try {
|
|
126
|
+
return await this.libp2p.services.fetch?.fetch(peerId, routingKey, {
|
|
127
|
+
signal: sig
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
finally {
|
|
131
|
+
sig.clear();
|
|
132
|
+
}
|
|
133
|
+
}, options);
|
|
134
|
+
if (marshalledRecord == null) {
|
|
135
|
+
throw new NotFoundError(`Peer ${peerId} did not have record for routing key ${uint8ArrayToString(routingKey, 'base64')}`);
|
|
136
|
+
}
|
|
137
|
+
log('fetched ipns record for %m from peer %s', routingKey, peerId);
|
|
138
|
+
return this.#handleRecord(topic, routingKey, marshalledRecord, true, options);
|
|
139
|
+
}
|
|
140
|
+
async #handleRecord(topic, routingKey, marshalledRecord, publish, options) {
|
|
141
|
+
await ipnsValidator(routingKey, marshalledRecord);
|
|
142
|
+
this.shutdownController.signal.throwIfAborted();
|
|
45
143
|
if (await this.localStore.has(routingKey)) {
|
|
46
|
-
const { record: currentRecord } = await this.localStore.get(routingKey);
|
|
47
|
-
if (uint8ArrayEquals(currentRecord,
|
|
48
|
-
log('
|
|
49
|
-
return;
|
|
144
|
+
const { record: currentRecord } = await this.localStore.get(routingKey, options);
|
|
145
|
+
if (uint8ArrayEquals(currentRecord, marshalledRecord)) {
|
|
146
|
+
log.trace('found identical record for %m', routingKey);
|
|
147
|
+
return currentRecord;
|
|
50
148
|
}
|
|
51
|
-
const records = [currentRecord,
|
|
149
|
+
const records = [currentRecord, marshalledRecord];
|
|
52
150
|
const index = ipnsSelector(routingKey, records);
|
|
53
151
|
if (index === 0) {
|
|
54
|
-
log('
|
|
55
|
-
return;
|
|
152
|
+
log.trace('found old record for %m', routingKey);
|
|
153
|
+
return currentRecord;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
log('found new record for %m', routingKey);
|
|
157
|
+
await this.localStore.put(routingKey, marshalledRecord, options);
|
|
158
|
+
// if the record was received via fetch, republish it
|
|
159
|
+
if (publish) {
|
|
160
|
+
log('publish value for topic %s', topic);
|
|
161
|
+
try {
|
|
162
|
+
const result = await this.libp2p.services.pubsub.publish(topic, marshalledRecord);
|
|
163
|
+
log('published record on topic %s to %d recipients', topic, result.recipients);
|
|
164
|
+
}
|
|
165
|
+
catch (err) {
|
|
166
|
+
log.error('could not publish record on topic %s - %e', err);
|
|
56
167
|
}
|
|
57
168
|
}
|
|
58
|
-
|
|
169
|
+
return marshalledRecord;
|
|
59
170
|
}
|
|
60
171
|
/**
|
|
61
172
|
* Put a value to the pubsub datastore indexed by the received key properly encoded
|
|
@@ -64,7 +175,8 @@ class PubSubRouting {
|
|
|
64
175
|
try {
|
|
65
176
|
const topic = keyToTopic(routingKey);
|
|
66
177
|
log('publish value for topic %s', topic);
|
|
67
|
-
const result = await this.pubsub.publish(topic, marshaledRecord);
|
|
178
|
+
const result = await this.libp2p.services.pubsub.publish(topic, marshaledRecord);
|
|
179
|
+
options?.signal?.throwIfAborted();
|
|
68
180
|
log('published record on topic %s to %d recipients', topic, result.recipients);
|
|
69
181
|
options.onProgress?.(new CustomProgressEvent('ipns:pubsub:publish', { topic, result }));
|
|
70
182
|
}
|
|
@@ -79,29 +191,53 @@ class PubSubRouting {
|
|
|
79
191
|
* updated once new publishes occur
|
|
80
192
|
*/
|
|
81
193
|
async get(routingKey, options = {}) {
|
|
194
|
+
const topic = keyToTopic(routingKey);
|
|
82
195
|
try {
|
|
83
|
-
const topic = keyToTopic(routingKey);
|
|
84
196
|
// ensure we are subscribed to topic
|
|
85
|
-
if (!this.pubsub.getTopics().includes(topic)) {
|
|
197
|
+
if (!this.libp2p.services.pubsub.getTopics().includes(topic)) {
|
|
86
198
|
log('add subscription for topic', topic);
|
|
87
|
-
this.pubsub.subscribe(topic);
|
|
88
|
-
this.subscriptions.
|
|
199
|
+
this.libp2p.services.pubsub.subscribe(topic);
|
|
200
|
+
this.subscriptions.add(topic);
|
|
89
201
|
options.onProgress?.(new CustomProgressEvent('ipns:pubsub:subscribe', { topic }));
|
|
90
202
|
}
|
|
91
|
-
// chain through to local store
|
|
92
|
-
const { record } = await this.localStore.get(routingKey, options);
|
|
93
|
-
return record;
|
|
94
203
|
}
|
|
95
204
|
catch (err) {
|
|
96
205
|
options.onProgress?.(new CustomProgressEvent('ipns:pubsub:error', err));
|
|
97
206
|
throw err;
|
|
98
207
|
}
|
|
208
|
+
// delay before fetch to allow pubsub to resolve
|
|
209
|
+
await raceSignal(delay(this.fetchDelay), this.shutdownController.signal);
|
|
210
|
+
const fetchController = new AbortController();
|
|
211
|
+
const promises = [];
|
|
212
|
+
for (const peerId of this.libp2p.services.pubsub.getSubscribers(topic)) {
|
|
213
|
+
const signal = anySignal([
|
|
214
|
+
options?.signal,
|
|
215
|
+
fetchController.signal
|
|
216
|
+
]);
|
|
217
|
+
promises.push(this.#fetchFromPeer(topic, routingKey, peerId, {
|
|
218
|
+
...options,
|
|
219
|
+
signal
|
|
220
|
+
})
|
|
221
|
+
.finally(() => {
|
|
222
|
+
signal.clear();
|
|
223
|
+
}));
|
|
224
|
+
}
|
|
225
|
+
if (promises.length > 0) {
|
|
226
|
+
// fetch record from topic peers
|
|
227
|
+
const record = await Promise.any(promises);
|
|
228
|
+
// cancel any in-flight requests
|
|
229
|
+
fetchController.abort();
|
|
230
|
+
if (record != null) {
|
|
231
|
+
return record;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
throw new NotFoundError('Pubsub routing does not actively query peers');
|
|
99
235
|
}
|
|
100
236
|
/**
|
|
101
237
|
* Get pubsub subscriptions related to ipns
|
|
102
238
|
*/
|
|
103
239
|
getSubscriptions() {
|
|
104
|
-
return this.subscriptions;
|
|
240
|
+
return [...this.subscriptions];
|
|
105
241
|
}
|
|
106
242
|
/**
|
|
107
243
|
* Cancel pubsub subscriptions related to ipns
|
|
@@ -111,15 +247,38 @@ class PubSubRouting {
|
|
|
111
247
|
const routingKey = multihashToIPNSRoutingKey(digest);
|
|
112
248
|
const topic = keyToTopic(routingKey);
|
|
113
249
|
// Not found topic
|
|
114
|
-
if (!this.subscriptions.
|
|
250
|
+
if (!this.subscriptions.has(topic)) {
|
|
115
251
|
return;
|
|
116
252
|
}
|
|
117
|
-
this.pubsub.unsubscribe(topic);
|
|
118
|
-
this.subscriptions
|
|
253
|
+
this.libp2p.services.pubsub.unsubscribe(topic);
|
|
254
|
+
this.subscriptions.delete(topic);
|
|
119
255
|
}
|
|
120
256
|
toString() {
|
|
121
257
|
return 'PubSubRouting()';
|
|
122
258
|
}
|
|
259
|
+
async start() {
|
|
260
|
+
this.shutdownController = new AbortController();
|
|
261
|
+
setMaxListeners(Infinity, this.shutdownController.signal);
|
|
262
|
+
if (this.libp2p.services.fetch != null) {
|
|
263
|
+
this.fetchTopologyId = await this.libp2p.register(this.libp2p.services.fetch.protocol, {
|
|
264
|
+
onConnect: (peerId) => {
|
|
265
|
+
this.fetchPeers.add(peerId);
|
|
266
|
+
},
|
|
267
|
+
onDisconnect: (peerId) => {
|
|
268
|
+
this.fetchPeers.delete(peerId);
|
|
269
|
+
}
|
|
270
|
+
}, {
|
|
271
|
+
signal: this.shutdownController.signal
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
stop() {
|
|
276
|
+
this.fetchQueue.abort();
|
|
277
|
+
this.shutdownController.abort();
|
|
278
|
+
if (this.fetchTopologyId != null) {
|
|
279
|
+
this.libp2p.unregister(this.fetchTopologyId);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
123
282
|
}
|
|
124
283
|
const PUBSUB_NAMESPACE = '/record/';
|
|
125
284
|
/**
|
|
@@ -147,7 +306,7 @@ function topicToKey(topic) {
|
|
|
147
306
|
* updated records, so the first call to `.get` should be expected
|
|
148
307
|
* to fail!
|
|
149
308
|
*/
|
|
150
|
-
export function pubsub(components) {
|
|
151
|
-
return new PubSubRouting(components);
|
|
309
|
+
export function pubsub(components, init = {}) {
|
|
310
|
+
return new PubSubRouting(components, init);
|
|
152
311
|
}
|
|
153
312
|
//# sourceMappingURL=pubsub.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../../src/routing/pubsub.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pubsub.js","sourceRoot":"","sources":["../../../src/routing/pubsub.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"IPNS": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNS.html",
|
|
3
|
+
".:IPNS": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNS.html",
|
|
4
|
+
"IPNSComponents": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSComponents.html",
|
|
5
|
+
".:IPNSComponents": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSComponents.html",
|
|
6
|
+
"IPNSOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSOptions.html",
|
|
7
|
+
".:IPNSOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSOptions.html",
|
|
8
|
+
"IPNSPublishResult": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSPublishResult.html",
|
|
9
|
+
".:IPNSPublishResult": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSPublishResult.html",
|
|
10
|
+
"IPNSRecordMetadata": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSRecordMetadata.html",
|
|
11
|
+
".:IPNSRecordMetadata": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSRecordMetadata.html",
|
|
12
|
+
"IPNSResolver": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSResolver.html",
|
|
13
|
+
".:IPNSResolver": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSResolver.html",
|
|
14
|
+
"IPNSResolveResult": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSResolveResult.html",
|
|
15
|
+
".:IPNSResolveResult": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSResolveResult.html",
|
|
16
|
+
"IPNSResolverOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSResolverOptions.html",
|
|
17
|
+
".:IPNSResolverOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.IPNSResolverOptions.html",
|
|
18
|
+
"PublishOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.PublishOptions.html",
|
|
19
|
+
".:PublishOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.PublishOptions.html",
|
|
20
|
+
"ResolveOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.ResolveOptions.html",
|
|
21
|
+
".:ResolveOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.ResolveOptions.html",
|
|
22
|
+
"ResolveResult": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.ResolveResult.html",
|
|
23
|
+
".:ResolveResult": "https://ipfs.github.io/helia/interfaces/_helia_ipns.index.ResolveResult.html",
|
|
24
|
+
"DatastoreProgressEvents": "https://ipfs.github.io/helia/types/_helia_ipns.index.DatastoreProgressEvents.html",
|
|
25
|
+
".:DatastoreProgressEvents": "https://ipfs.github.io/helia/types/_helia_ipns.index.DatastoreProgressEvents.html",
|
|
26
|
+
"PublishProgressEvents": "https://ipfs.github.io/helia/types/_helia_ipns.index.PublishProgressEvents.html",
|
|
27
|
+
".:PublishProgressEvents": "https://ipfs.github.io/helia/types/_helia_ipns.index.PublishProgressEvents.html",
|
|
28
|
+
"ResolveProgressEvents": "https://ipfs.github.io/helia/types/_helia_ipns.index.ResolveProgressEvents.html",
|
|
29
|
+
".:ResolveProgressEvents": "https://ipfs.github.io/helia/types/_helia_ipns.index.ResolveProgressEvents.html",
|
|
30
|
+
"ipns": "https://ipfs.github.io/helia/functions/_helia_ipns.index.ipns.html",
|
|
31
|
+
".:ipns": "https://ipfs.github.io/helia/functions/_helia_ipns.index.ipns.html",
|
|
32
|
+
"ipnsResolver": "https://ipfs.github.io/helia/functions/_helia_ipns.index.ipnsResolver.html",
|
|
33
|
+
".:ipnsResolver": "https://ipfs.github.io/helia/functions/_helia_ipns.index.ipnsResolver.html",
|
|
34
|
+
"GetOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.routing.GetOptions.html",
|
|
35
|
+
"./routing:GetOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.routing.GetOptions.html",
|
|
36
|
+
"IPNSRouting": "https://ipfs.github.io/helia/interfaces/_helia_ipns.routing.IPNSRouting.html",
|
|
37
|
+
"./routing:IPNSRouting": "https://ipfs.github.io/helia/interfaces/_helia_ipns.routing.IPNSRouting.html",
|
|
38
|
+
"Message": "https://ipfs.github.io/helia/interfaces/_helia_ipns.routing.Message.html",
|
|
39
|
+
"PublishResult": "https://ipfs.github.io/helia/interfaces/_helia_ipns.routing.PublishResult.html",
|
|
40
|
+
"PubSub": "https://ipfs.github.io/helia/interfaces/_helia_ipns.routing.PubSub.html",
|
|
41
|
+
"PubSubEvents": "https://ipfs.github.io/helia/interfaces/_helia_ipns.routing.PubSubEvents.html",
|
|
42
|
+
"PubsubRoutingComponents": "https://ipfs.github.io/helia/interfaces/_helia_ipns.routing.PubsubRoutingComponents.html",
|
|
43
|
+
"PutOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.routing.PutOptions.html",
|
|
44
|
+
"./routing:PutOptions": "https://ipfs.github.io/helia/interfaces/_helia_ipns.routing.PutOptions.html",
|
|
45
|
+
"HeliaRoutingProgressEvents": "https://ipfs.github.io/helia/types/_helia_ipns.routing.HeliaRoutingProgressEvents.html",
|
|
46
|
+
"IPNSRoutingProgressEvents": "https://ipfs.github.io/helia/types/_helia_ipns.routing.IPNSRoutingProgressEvents.html",
|
|
47
|
+
"./routing:IPNSRoutingProgressEvents": "https://ipfs.github.io/helia/types/_helia_ipns.routing.IPNSRoutingProgressEvents.html",
|
|
48
|
+
"PubSubProgressEvents": "https://ipfs.github.io/helia/types/_helia_ipns.routing.PubSubProgressEvents.html",
|
|
49
|
+
"helia": "https://ipfs.github.io/helia/functions/_helia_ipns.routing.helia.html",
|
|
50
|
+
"pubsub": "https://ipfs.github.io/helia/functions/_helia_ipns.routing.pubsub.html"
|
|
51
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@helia/ipns",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.2.0",
|
|
4
4
|
"description": "An implementation of IPNS for Helia",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/ipfs/helia/tree/main/packages/ipns#readme",
|
|
@@ -73,28 +73,33 @@
|
|
|
73
73
|
"test:electron-main": "aegir test -t electron-main"
|
|
74
74
|
},
|
|
75
75
|
"dependencies": {
|
|
76
|
-
"@helia/interface": "6.
|
|
76
|
+
"@helia/interface": "^6.2.0",
|
|
77
77
|
"@libp2p/crypto": "^5.1.7",
|
|
78
|
-
"@libp2p/
|
|
78
|
+
"@libp2p/fetch": "^4.1.0",
|
|
79
|
+
"@libp2p/interface": "^3.2.0",
|
|
79
80
|
"@libp2p/kad-dht": "^16.1.0",
|
|
80
81
|
"@libp2p/keychain": "^6.0.5",
|
|
81
82
|
"@libp2p/logger": "^6.0.5",
|
|
83
|
+
"@libp2p/peer-collections": "^7.0.14",
|
|
82
84
|
"@libp2p/utils": "^7.0.5",
|
|
85
|
+
"any-signal": "^4.2.0",
|
|
86
|
+
"delay": "^7.0.0",
|
|
83
87
|
"interface-datastore": "^9.0.2",
|
|
84
88
|
"ipns": "^10.1.2",
|
|
85
89
|
"multiformats": "^13.4.1",
|
|
86
90
|
"progress-events": "^1.0.1",
|
|
87
|
-
"protons-runtime": "^
|
|
91
|
+
"protons-runtime": "^6.0.1",
|
|
92
|
+
"race-signal": "^2.0.0",
|
|
88
93
|
"uint8arraylist": "^2.4.8",
|
|
89
94
|
"uint8arrays": "^5.1.0"
|
|
90
95
|
},
|
|
91
96
|
"devDependencies": {
|
|
92
97
|
"@libp2p/crypto": "^5.1.12",
|
|
93
|
-
"@libp2p/peer-id": "^6.0.
|
|
98
|
+
"@libp2p/peer-id": "^6.0.6",
|
|
94
99
|
"aegir": "^47.0.22",
|
|
95
100
|
"datastore-core": "^11.0.2",
|
|
96
101
|
"it-drain": "^3.0.10",
|
|
97
|
-
"protons": "^
|
|
102
|
+
"protons": "^8.1.1",
|
|
98
103
|
"sinon": "^21.0.0",
|
|
99
104
|
"sinon-ts": "^2.0.0"
|
|
100
105
|
},
|
package/src/index.ts
CHANGED
|
@@ -181,13 +181,13 @@
|
|
|
181
181
|
|
|
182
182
|
import { ipnsValidator } from 'ipns/validator'
|
|
183
183
|
import { CID } from 'multiformats/cid'
|
|
184
|
-
import { IPNSResolver as IPNSResolverClass } from './ipns/resolver.
|
|
185
|
-
import { IPNS as IPNSClass } from './ipns.
|
|
184
|
+
import { IPNSResolver as IPNSResolverClass } from './ipns/resolver.ts'
|
|
185
|
+
import { IPNS as IPNSClass } from './ipns.ts'
|
|
186
186
|
import { localStore } from './local-store.ts'
|
|
187
|
-
import { helia } from './routing/index.
|
|
187
|
+
import { helia } from './routing/index.ts'
|
|
188
188
|
import { localStoreRouting } from './routing/local-store.ts'
|
|
189
|
-
import type { IPNSResolverComponents } from './ipns/resolver.
|
|
190
|
-
import type { IPNSRouting, IPNSRoutingProgressEvents } from './routing/index.
|
|
189
|
+
import type { IPNSResolverComponents } from './ipns/resolver.ts'
|
|
190
|
+
import type { IPNSRouting, IPNSRoutingProgressEvents } from './routing/index.ts'
|
|
191
191
|
import type { Routing, HeliaEvents } from '@helia/interface'
|
|
192
192
|
import type { AbortOptions, ComponentLogger, Libp2p, PeerId, PublicKey, TypedEventEmitter } from '@libp2p/interface'
|
|
193
193
|
import type { Keychain } from '@libp2p/keychain'
|
|
@@ -355,7 +355,7 @@ export interface IPNS {
|
|
|
355
355
|
unpublish(keyName: string, options?: AbortOptions): Promise<void>
|
|
356
356
|
}
|
|
357
357
|
|
|
358
|
-
export type { IPNSRouting } from './routing/index.
|
|
358
|
+
export type { IPNSRouting } from './routing/index.ts'
|
|
359
359
|
|
|
360
360
|
export type { IPNSRecord } from 'ipns'
|
|
361
361
|
|
package/src/ipns/publisher.ts
CHANGED
|
@@ -4,9 +4,9 @@ import { createIPNSRecord, marshalIPNSRecord, multihashToIPNSRoutingKey, unmarsh
|
|
|
4
4
|
import { CID } from 'multiformats/cid'
|
|
5
5
|
import { CustomProgressEvent } from 'progress-events'
|
|
6
6
|
import { DEFAULT_LIFETIME_MS, DEFAULT_TTL_NS } from '../constants.ts'
|
|
7
|
-
import type { IPNSPublishResult, PublishOptions } from '../index.
|
|
8
|
-
import type { LocalStore } from '../local-store.
|
|
9
|
-
import type { IPNSRouting } from '../routing/index.
|
|
7
|
+
import type { IPNSPublishResult, PublishOptions } from '../index.ts'
|
|
8
|
+
import type { LocalStore } from '../local-store.ts'
|
|
9
|
+
import type { IPNSRouting } from '../routing/index.ts'
|
|
10
10
|
import type { AbortOptions, ComponentLogger, Libp2p, PeerId, PrivateKey, PublicKey } from '@libp2p/interface'
|
|
11
11
|
import type { Keychain } from '@libp2p/keychain'
|
|
12
12
|
import type { Datastore } from 'interface-datastore'
|
package/src/ipns/republisher.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Queue, repeatingTask } from '@libp2p/utils'
|
|
2
2
|
import { createIPNSRecord, marshalIPNSRecord, unmarshalIPNSRecord } from 'ipns'
|
|
3
3
|
import { DEFAULT_REPUBLISH_CONCURRENCY, DEFAULT_REPUBLISH_INTERVAL_MS, DEFAULT_TTL_NS } from '../constants.ts'
|
|
4
|
-
import { shouldRepublish } from '../utils.
|
|
5
|
-
import type { LocalStore } from '../local-store.
|
|
6
|
-
import type { IPNSRouting } from '../routing/index.
|
|
4
|
+
import { shouldRepublish } from '../utils.ts'
|
|
5
|
+
import type { LocalStore } from '../local-store.ts'
|
|
6
|
+
import type { IPNSRouting } from '../routing/index.ts'
|
|
7
7
|
import type { AbortOptions, ComponentLogger, Libp2p, Logger, PrivateKey } from '@libp2p/interface'
|
|
8
8
|
import type { Keychain } from '@libp2p/keychain'
|
|
9
9
|
import type { RepeatingTask } from '@libp2p/utils'
|
package/src/ipns/resolver.ts
CHANGED
|
@@ -7,11 +7,11 @@ import { base58btc } from 'multiformats/bases/base58'
|
|
|
7
7
|
import { CID } from 'multiformats/cid'
|
|
8
8
|
import * as Digest from 'multiformats/hashes/digest'
|
|
9
9
|
import { DEFAULT_TTL_NS } from '../constants.ts'
|
|
10
|
-
import { InvalidValueError, RecordNotFoundError, RecordsFailedValidationError, UnsupportedMultibasePrefixError, UnsupportedMultihashCodecError } from '../errors.
|
|
11
|
-
import { isCodec, IDENTITY_CODEC, SHA2_256_CODEC, isLibp2pCID } from '../utils.
|
|
12
|
-
import type { IPNSResolveResult, ResolveOptions, ResolveResult } from '../index.
|
|
13
|
-
import type { LocalStore } from '../local-store.
|
|
14
|
-
import type { IPNSRouting } from '../routing/index.
|
|
10
|
+
import { InvalidValueError, RecordNotFoundError, RecordsFailedValidationError, UnsupportedMultibasePrefixError, UnsupportedMultihashCodecError } from '../errors.ts'
|
|
11
|
+
import { isCodec, IDENTITY_CODEC, SHA2_256_CODEC, isLibp2pCID } from '../utils.ts'
|
|
12
|
+
import type { IPNSResolveResult, ResolveOptions, ResolveResult } from '../index.ts'
|
|
13
|
+
import type { LocalStore } from '../local-store.ts'
|
|
14
|
+
import type { IPNSRouting } from '../routing/index.ts'
|
|
15
15
|
import type { Routing } from '@helia/interface'
|
|
16
16
|
import type { ComponentLogger, Logger, PeerId, PublicKey } from '@libp2p/interface'
|
|
17
17
|
import type { Datastore } from 'interface-datastore'
|
package/src/ipns.ts
CHANGED
|
@@ -2,12 +2,12 @@ import { CID } from 'multiformats/cid'
|
|
|
2
2
|
import { IPNSPublisher } from './ipns/publisher.ts'
|
|
3
3
|
import { IPNSRepublisher } from './ipns/republisher.ts'
|
|
4
4
|
import { IPNSResolver } from './ipns/resolver.ts'
|
|
5
|
-
import { localStore } from './local-store.
|
|
6
|
-
import { helia } from './routing/helia.
|
|
5
|
+
import { localStore } from './local-store.ts'
|
|
6
|
+
import { helia } from './routing/helia.ts'
|
|
7
7
|
import { localStoreRouting } from './routing/local-store.ts'
|
|
8
|
-
import type { IPNSComponents, IPNS as IPNSInterface, IPNSOptions, IPNSPublishResult, IPNSResolveResult, PublishOptions, ResolveOptions } from './index.
|
|
9
|
-
import type { LocalStore } from './local-store.
|
|
10
|
-
import type { IPNSRouting } from './routing/index.
|
|
8
|
+
import type { IPNSComponents, IPNS as IPNSInterface, IPNSOptions, IPNSPublishResult, IPNSResolveResult, PublishOptions, ResolveOptions } from './index.ts'
|
|
9
|
+
import type { LocalStore } from './local-store.ts'
|
|
10
|
+
import type { IPNSRouting } from './routing/index.ts'
|
|
11
11
|
import type { AbortOptions, PeerId, PublicKey, Startable } from '@libp2p/interface'
|
|
12
12
|
import type { MultihashDigest } from 'multiformats/hashes/interface'
|
|
13
13
|
|
package/src/local-store.ts
CHANGED
|
@@ -2,9 +2,9 @@ import { Record } from '@libp2p/kad-dht'
|
|
|
2
2
|
import { CustomProgressEvent } from 'progress-events'
|
|
3
3
|
import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
|
|
4
4
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string'
|
|
5
|
-
import { IPNSPublishMetadata } from './pb/metadata.
|
|
6
|
-
import { dhtRoutingKey, DHT_RECORD_PREFIX, ipnsMetadataKey } from './utils.
|
|
7
|
-
import type { DatastoreProgressEvents, GetOptions, PutOptions } from './routing/index.
|
|
5
|
+
import { IPNSPublishMetadata } from './pb/metadata.ts'
|
|
6
|
+
import { dhtRoutingKey, DHT_RECORD_PREFIX, ipnsMetadataKey } from './utils.ts'
|
|
7
|
+
import type { DatastoreProgressEvents, GetOptions, PutOptions } from './routing/index.ts'
|
|
8
8
|
import type { AbortOptions, Logger } from '@libp2p/interface'
|
|
9
9
|
import type { Datastore } from 'interface-datastore'
|
|
10
10
|
|
package/src/pb/metadata.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { decodeMessage, encodeMessage, message } from 'protons-runtime'
|
|
1
|
+
import { decodeMessage, encodeMessage, message, streamMessage } from 'protons-runtime'
|
|
2
2
|
import type { Codec, DecodeOptions } from 'protons-runtime'
|
|
3
3
|
import type { Uint8ArrayList } from 'uint8arraylist'
|
|
4
4
|
|
|
@@ -58,17 +58,58 @@ export namespace IPNSPublishMetadata {
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
return obj
|
|
61
|
+
}, function * (reader, length, prefix, opts = {}) {
|
|
62
|
+
const end = length == null ? reader.len : reader.pos + length
|
|
63
|
+
|
|
64
|
+
while (reader.pos < end) {
|
|
65
|
+
const tag = reader.uint32()
|
|
66
|
+
|
|
67
|
+
switch (tag >>> 3) {
|
|
68
|
+
case 1: {
|
|
69
|
+
yield {
|
|
70
|
+
field: `${prefix}.keyName`,
|
|
71
|
+
value: reader.string()
|
|
72
|
+
}
|
|
73
|
+
break
|
|
74
|
+
}
|
|
75
|
+
case 2: {
|
|
76
|
+
yield {
|
|
77
|
+
field: `${prefix}.lifetime`,
|
|
78
|
+
value: reader.uint32()
|
|
79
|
+
}
|
|
80
|
+
break
|
|
81
|
+
}
|
|
82
|
+
default: {
|
|
83
|
+
reader.skipType(tag & 7)
|
|
84
|
+
break
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
61
88
|
})
|
|
62
89
|
}
|
|
63
90
|
|
|
64
91
|
return _codec
|
|
65
92
|
}
|
|
66
93
|
|
|
67
|
-
export
|
|
94
|
+
export interface IPNSPublishMetadataKeyNameFieldEvent {
|
|
95
|
+
field: '$.keyName'
|
|
96
|
+
value: string
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export interface IPNSPublishMetadataLifetimeFieldEvent {
|
|
100
|
+
field: '$.lifetime'
|
|
101
|
+
value: number
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export function encode (obj: Partial<IPNSPublishMetadata>): Uint8Array {
|
|
68
105
|
return encodeMessage(obj, IPNSPublishMetadata.codec())
|
|
69
106
|
}
|
|
70
107
|
|
|
71
|
-
export
|
|
108
|
+
export function decode (buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<IPNSPublishMetadata>): IPNSPublishMetadata {
|
|
72
109
|
return decodeMessage(buf, IPNSPublishMetadata.codec(), opts)
|
|
73
110
|
}
|
|
111
|
+
|
|
112
|
+
export function stream (buf: Uint8Array | Uint8ArrayList, opts?: DecodeOptions<IPNSPublishMetadata>): Generator<IPNSPublishMetadataKeyNameFieldEvent | IPNSPublishMetadataLifetimeFieldEvent> {
|
|
113
|
+
return streamMessage(buf, IPNSPublishMetadata.codec(), opts)
|
|
114
|
+
}
|
|
74
115
|
}
|
package/src/routing/helia.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CustomProgressEvent } from 'progress-events'
|
|
2
|
-
import type { GetOptions, PutOptions } from './index.
|
|
3
|
-
import type { IPNSRouting } from '../index.
|
|
2
|
+
import type { GetOptions, PutOptions } from './index.ts'
|
|
3
|
+
import type { IPNSRouting } from '../index.ts'
|
|
4
4
|
import type { Routing } from '@helia/interface'
|
|
5
5
|
import type { ProgressEvent } from 'progress-events'
|
|
6
6
|
|