libp2p 0.35.8 → 0.36.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 +55 -0
- package/dist/src/circuit/auto-relay.d.ts +8 -10
- package/dist/src/circuit/auto-relay.d.ts.map +1 -1
- package/dist/src/config.d.ts +2 -0
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/connection-manager/auto-dialler.d.ts +1 -1
- package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
- package/dist/src/connection-manager/index.d.ts +1 -2
- package/dist/src/connection-manager/index.d.ts.map +1 -1
- package/dist/src/content-routing/utils.d.ts +3 -3
- package/dist/src/content-routing/utils.d.ts.map +1 -1
- package/dist/src/dialer/dial-request.d.ts.map +1 -1
- package/dist/src/dialer/index.d.ts +12 -7
- package/dist/src/dialer/index.d.ts.map +1 -1
- package/dist/src/errors.d.ts +2 -0
- package/dist/src/fetch/constants.d.ts +2 -0
- package/dist/src/fetch/constants.d.ts.map +1 -0
- package/dist/src/fetch/index.d.ts +76 -0
- package/dist/src/fetch/index.d.ts.map +1 -0
- package/dist/src/fetch/proto.d.ts +134 -0
- package/dist/src/identify/index.d.ts +4 -4
- package/dist/src/identify/index.d.ts.map +1 -1
- package/dist/src/index.d.ts +116 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/metrics/index.d.ts +9 -4
- package/dist/src/metrics/index.d.ts.map +1 -1
- package/dist/src/metrics/tracked-map.d.ts +6 -1
- package/dist/src/metrics/tracked-map.d.ts.map +1 -1
- package/dist/src/peer-routing.d.ts +1 -1
- package/dist/src/peer-routing.d.ts.map +1 -1
- package/dist/src/peer-store/address-book.d.ts +30 -84
- package/dist/src/peer-store/address-book.d.ts.map +1 -1
- package/dist/src/peer-store/index.d.ts +28 -94
- package/dist/src/peer-store/index.d.ts.map +1 -1
- package/dist/src/peer-store/key-book.d.ts +31 -15
- package/dist/src/peer-store/key-book.d.ts.map +1 -1
- package/dist/src/peer-store/metadata-book.d.ts +33 -29
- package/dist/src/peer-store/metadata-book.d.ts.map +1 -1
- package/dist/src/peer-store/pb/peer.d.ts +222 -0
- package/dist/src/peer-store/proto-book.d.ts +27 -28
- package/dist/src/peer-store/proto-book.d.ts.map +1 -1
- package/dist/src/peer-store/store.d.ts +73 -0
- package/dist/src/peer-store/store.d.ts.map +1 -0
- package/dist/src/peer-store/types.d.ts +202 -0
- package/dist/src/peer-store/types.d.ts.map +1 -0
- package/dist/src/ping/index.d.ts.map +1 -1
- package/dist/src/record/peer-record/index.d.ts +2 -2
- package/dist/src/record/peer-record/index.d.ts.map +1 -1
- package/dist/src/registrar.d.ts +5 -5
- package/dist/src/registrar.d.ts.map +1 -1
- package/dist/src/types.d.ts +90 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/upgrader.d.ts +8 -2
- package/dist/src/upgrader.d.ts.map +1 -1
- package/package.json +23 -26
- package/src/circuit/auto-relay.js +52 -38
- package/src/config.js +2 -0
- package/src/connection-manager/auto-dialler.js +20 -8
- package/src/connection-manager/index.js +42 -22
- package/src/content-routing/utils.js +4 -4
- package/src/dialer/dial-request.js +4 -1
- package/src/dialer/index.js +38 -8
- package/src/errors.js +2 -0
- package/src/fetch/README.md +36 -0
- package/src/fetch/constants.js +6 -0
- package/src/fetch/index.js +159 -0
- package/src/fetch/proto.d.ts +134 -0
- package/src/fetch/proto.js +333 -0
- package/src/fetch/proto.proto +15 -0
- package/src/identify/index.js +47 -38
- package/src/index.js +72 -27
- package/src/metrics/index.js +15 -8
- package/src/metrics/tracked-map.js +40 -14
- package/src/peer-routing.js +4 -1
- package/src/peer-store/address-book.js +254 -226
- package/src/peer-store/index.js +79 -110
- package/src/peer-store/key-book.js +99 -54
- package/src/peer-store/metadata-book.js +171 -101
- package/src/peer-store/pb/peer.d.ts +222 -0
- package/src/peer-store/pb/peer.js +643 -0
- package/src/peer-store/pb/peer.proto +31 -0
- package/src/peer-store/proto-book.js +171 -105
- package/src/peer-store/store.js +263 -0
- package/src/peer-store/types.ts +245 -0
- package/src/ping/index.js +6 -0
- package/src/record/peer-record/index.js +1 -1
- package/src/record/utils.js +1 -1
- package/src/registrar.js +4 -4
- package/src/types.ts +98 -0
- package/src/upgrader.js +32 -2
- package/dist/src/peer-store/book.d.ts +0 -81
- package/dist/src/peer-store/book.d.ts.map +0 -1
- package/dist/src/peer-store/persistent/consts.d.ts +0 -6
- package/dist/src/peer-store/persistent/consts.d.ts.map +0 -1
- package/dist/src/peer-store/persistent/index.d.ts +0 -129
- package/dist/src/peer-store/persistent/index.d.ts.map +0 -1
- package/dist/src/peer-store/persistent/pb/address-book.d.ts +0 -198
- package/dist/src/peer-store/persistent/pb/proto-book.d.ts +0 -59
- package/src/peer-store/book.js +0 -124
- package/src/peer-store/persistent/consts.js +0 -15
- package/src/peer-store/persistent/index.js +0 -408
- package/src/peer-store/persistent/pb/address-book.d.ts +0 -198
- package/src/peer-store/persistent/pb/address-book.js +0 -522
- package/src/peer-store/persistent/pb/address-book.proto +0 -27
- package/src/peer-store/persistent/pb/proto-book.d.ts +0 -59
- package/src/peer-store/persistent/pb/proto-book.js +0 -157
- package/src/peer-store/persistent/pb/proto-book.proto +0 -5
|
@@ -1,408 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const debug = require('debug')
|
|
4
|
-
const log = Object.assign(debug('libp2p:persistent-peer-store'), {
|
|
5
|
-
error: debug('libp2p:persistent-peer-store:err')
|
|
6
|
-
})
|
|
7
|
-
const { Key } = require('interface-datastore/key')
|
|
8
|
-
const { Multiaddr } = require('multiaddr')
|
|
9
|
-
const PeerId = require('peer-id')
|
|
10
|
-
const { base32 } = require('multiformats/bases/base32')
|
|
11
|
-
|
|
12
|
-
const PeerStore = require('..')
|
|
13
|
-
|
|
14
|
-
const {
|
|
15
|
-
NAMESPACE_ADDRESS,
|
|
16
|
-
NAMESPACE_COMMON,
|
|
17
|
-
NAMESPACE_KEYS,
|
|
18
|
-
NAMESPACE_METADATA,
|
|
19
|
-
NAMESPACE_PROTOCOL
|
|
20
|
-
} = require('./consts')
|
|
21
|
-
|
|
22
|
-
const { Addresses } = require('./pb/address-book')
|
|
23
|
-
const { Protocols } = require('./pb/proto-book')
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* @typedef {import('interface-datastore').Batch} Batch
|
|
27
|
-
* @typedef {import('../address-book.js').Address} Address
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* @typedef {Object} PersistentPeerStoreProperties
|
|
32
|
-
* @property {PeerId} peerId
|
|
33
|
-
* @property {import('interface-datastore').Datastore} datastore
|
|
34
|
-
*
|
|
35
|
-
* @typedef {Object} PersistentPeerStoreOptions
|
|
36
|
-
* @property {number} [threshold = 5] - Number of dirty peers allowed before commit data.
|
|
37
|
-
*/
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Responsible for managing the persistence of data in the PeerStore.
|
|
41
|
-
*/
|
|
42
|
-
class PersistentPeerStore extends PeerStore {
|
|
43
|
-
/**
|
|
44
|
-
* @class
|
|
45
|
-
* @param {PersistentPeerStoreProperties & PersistentPeerStoreOptions} properties
|
|
46
|
-
*/
|
|
47
|
-
constructor ({ peerId, datastore, threshold = 5 }) {
|
|
48
|
-
super({ peerId })
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Backend datastore used to persist data.
|
|
52
|
-
*/
|
|
53
|
-
this._datastore = datastore
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Peers modified after the latest data persisted.
|
|
57
|
-
*/
|
|
58
|
-
this._dirtyPeers = new Set()
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Peers metadata changed mapping peer identifers to metadata changed.
|
|
62
|
-
*
|
|
63
|
-
* @type {Map<string, Set<string>>}
|
|
64
|
-
*/
|
|
65
|
-
this._dirtyMetadata = new Map()
|
|
66
|
-
|
|
67
|
-
this.threshold = threshold
|
|
68
|
-
this._addDirtyPeer = this._addDirtyPeer.bind(this)
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Start Persistent PeerStore.
|
|
73
|
-
*
|
|
74
|
-
* @returns {Promise<void>}
|
|
75
|
-
*/
|
|
76
|
-
async start () {
|
|
77
|
-
log('PeerStore is starting')
|
|
78
|
-
|
|
79
|
-
// Handlers for dirty peers
|
|
80
|
-
this.on('change:protocols', this._addDirtyPeer)
|
|
81
|
-
this.on('change:multiaddrs', this._addDirtyPeer)
|
|
82
|
-
this.on('change:pubkey', this._addDirtyPeerKey)
|
|
83
|
-
this.on('change:metadata', this._addDirtyPeerMetadata)
|
|
84
|
-
|
|
85
|
-
// Load data
|
|
86
|
-
for await (const entry of this._datastore.query({ prefix: NAMESPACE_COMMON })) {
|
|
87
|
-
await this._processDatastoreEntry(entry)
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
log('PeerStore started')
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Stop Persistent PeerStore.
|
|
95
|
-
*
|
|
96
|
-
* @returns {Promise<void>}
|
|
97
|
-
*/
|
|
98
|
-
async stop () {
|
|
99
|
-
log('PeerStore is stopping')
|
|
100
|
-
this.removeAllListeners()
|
|
101
|
-
await this._commitData()
|
|
102
|
-
log('PeerStore stopped')
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Add modified peer to the dirty set
|
|
107
|
-
*
|
|
108
|
-
* @private
|
|
109
|
-
* @param {Object} params
|
|
110
|
-
* @param {PeerId} params.peerId
|
|
111
|
-
*/
|
|
112
|
-
_addDirtyPeer ({ peerId }) {
|
|
113
|
-
const peerIdstr = peerId.toB58String()
|
|
114
|
-
|
|
115
|
-
log('add dirty peer', peerIdstr)
|
|
116
|
-
this._dirtyPeers.add(peerIdstr)
|
|
117
|
-
|
|
118
|
-
if (this._dirtyPeers.size >= this.threshold) {
|
|
119
|
-
// Commit current data
|
|
120
|
-
this._commitData().catch(err => {
|
|
121
|
-
log.error('error committing data', err)
|
|
122
|
-
})
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Add modified peer key to the dirty set
|
|
128
|
-
*
|
|
129
|
-
* @private
|
|
130
|
-
* @param {Object} params
|
|
131
|
-
* @param {PeerId} params.peerId
|
|
132
|
-
*/
|
|
133
|
-
_addDirtyPeerKey ({ peerId }) {
|
|
134
|
-
// Not add if inline key available
|
|
135
|
-
if (peerId.hasInlinePublicKey()) {
|
|
136
|
-
return
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
const peerIdstr = peerId.toB58String()
|
|
140
|
-
|
|
141
|
-
log('add dirty peer key', peerIdstr)
|
|
142
|
-
this._dirtyPeers.add(peerIdstr)
|
|
143
|
-
|
|
144
|
-
if (this._dirtyPeers.size >= this.threshold) {
|
|
145
|
-
// Commit current data
|
|
146
|
-
this._commitData().catch(err => {
|
|
147
|
-
log.error('error committing data', err)
|
|
148
|
-
})
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
* Add modified metadata peer to the set.
|
|
154
|
-
*
|
|
155
|
-
* @private
|
|
156
|
-
* @param {Object} params
|
|
157
|
-
* @param {PeerId} params.peerId
|
|
158
|
-
* @param {string} params.metadata
|
|
159
|
-
*/
|
|
160
|
-
_addDirtyPeerMetadata ({ peerId, metadata }) {
|
|
161
|
-
const peerIdstr = peerId.toB58String()
|
|
162
|
-
|
|
163
|
-
log('add dirty metadata peer', peerIdstr)
|
|
164
|
-
this._dirtyPeers.add(peerIdstr)
|
|
165
|
-
|
|
166
|
-
// Add dirty metadata key
|
|
167
|
-
const mData = this._dirtyMetadata.get(peerIdstr) || new Set()
|
|
168
|
-
mData.add(metadata)
|
|
169
|
-
this._dirtyMetadata.set(peerIdstr, mData)
|
|
170
|
-
|
|
171
|
-
if (this._dirtyPeers.size >= this.threshold) {
|
|
172
|
-
// Commit current data
|
|
173
|
-
this._commitData().catch(err => {
|
|
174
|
-
log.error('error committing data', err)
|
|
175
|
-
})
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* Add all the peers current data to a datastore batch and commit it.
|
|
181
|
-
*
|
|
182
|
-
* @private
|
|
183
|
-
* @returns {Promise<void>}
|
|
184
|
-
*/
|
|
185
|
-
async _commitData () {
|
|
186
|
-
const commitPeers = Array.from(this._dirtyPeers)
|
|
187
|
-
|
|
188
|
-
if (!commitPeers.length) {
|
|
189
|
-
return
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
// Clear Dirty Peers set
|
|
193
|
-
this._dirtyPeers.clear()
|
|
194
|
-
|
|
195
|
-
log('create batch commit')
|
|
196
|
-
const batch = this._datastore.batch()
|
|
197
|
-
for (const peerIdStr of commitPeers) {
|
|
198
|
-
// PeerId
|
|
199
|
-
const peerId = this.keyBook.data.get(peerIdStr) || PeerId.createFromB58String(peerIdStr)
|
|
200
|
-
|
|
201
|
-
// Address Book
|
|
202
|
-
this._batchAddressBook(peerId, batch)
|
|
203
|
-
|
|
204
|
-
// Key Book
|
|
205
|
-
!peerId.hasInlinePublicKey() && this._batchKeyBook(peerId, batch)
|
|
206
|
-
|
|
207
|
-
// Metadata Book
|
|
208
|
-
this._batchMetadataBook(peerId, batch)
|
|
209
|
-
|
|
210
|
-
// Proto Book
|
|
211
|
-
this._batchProtoBook(peerId, batch)
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
await batch.commit()
|
|
215
|
-
log('batch committed')
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
/**
|
|
219
|
-
* Add address book data of the peer to the batch.
|
|
220
|
-
*
|
|
221
|
-
* @private
|
|
222
|
-
* @param {PeerId} peerId
|
|
223
|
-
* @param {Batch} batch
|
|
224
|
-
*/
|
|
225
|
-
_batchAddressBook (peerId, batch) {
|
|
226
|
-
const b32key = peerId.toString()
|
|
227
|
-
const key = new Key(`${NAMESPACE_ADDRESS}${b32key}`)
|
|
228
|
-
|
|
229
|
-
const entry = this.addressBook.data.get(peerId.toB58String())
|
|
230
|
-
|
|
231
|
-
try {
|
|
232
|
-
// Deleted from the book
|
|
233
|
-
if (!entry) {
|
|
234
|
-
batch.delete(key)
|
|
235
|
-
return
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
const encodedData = Addresses.encode({
|
|
239
|
-
addrs: entry.addresses.map((address) => ({
|
|
240
|
-
multiaddr: address.multiaddr.bytes,
|
|
241
|
-
isCertified: address.isCertified
|
|
242
|
-
})),
|
|
243
|
-
certifiedRecord: entry.record
|
|
244
|
-
? {
|
|
245
|
-
seq: entry.record.seqNumber,
|
|
246
|
-
raw: entry.record.raw
|
|
247
|
-
}
|
|
248
|
-
: undefined
|
|
249
|
-
}).finish()
|
|
250
|
-
|
|
251
|
-
batch.put(key, encodedData)
|
|
252
|
-
} catch (/** @type {any} */ err) {
|
|
253
|
-
log.error(err)
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
/**
|
|
258
|
-
* Add Key book data of the peer to the batch.
|
|
259
|
-
*
|
|
260
|
-
* @private
|
|
261
|
-
* @param {PeerId} peerId
|
|
262
|
-
* @param {Batch} batch
|
|
263
|
-
*/
|
|
264
|
-
_batchKeyBook (peerId, batch) {
|
|
265
|
-
const b32key = peerId.toString()
|
|
266
|
-
const key = new Key(`${NAMESPACE_KEYS}${b32key}`)
|
|
267
|
-
|
|
268
|
-
try {
|
|
269
|
-
// Deleted from the book
|
|
270
|
-
if (!peerId.pubKey) {
|
|
271
|
-
batch.delete(key)
|
|
272
|
-
return
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
const encodedData = peerId.marshalPubKey()
|
|
276
|
-
|
|
277
|
-
batch.put(key, encodedData)
|
|
278
|
-
} catch (/** @type {any} */ err) {
|
|
279
|
-
log.error(err)
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
/**
|
|
284
|
-
* Add metadata book data of the peer to the batch.
|
|
285
|
-
*
|
|
286
|
-
* @private
|
|
287
|
-
* @param {PeerId} peerId
|
|
288
|
-
* @param {Batch} batch
|
|
289
|
-
*/
|
|
290
|
-
_batchMetadataBook (peerId, batch) {
|
|
291
|
-
const b32key = peerId.toString()
|
|
292
|
-
const dirtyMetada = this._dirtyMetadata.get(peerId.toB58String()) || []
|
|
293
|
-
|
|
294
|
-
try {
|
|
295
|
-
dirtyMetada.forEach((/** @type {string} */ dirtyKey) => {
|
|
296
|
-
const key = new Key(`${NAMESPACE_METADATA}${b32key}/${dirtyKey}`)
|
|
297
|
-
const dirtyValue = this.metadataBook.getValue(peerId, dirtyKey)
|
|
298
|
-
|
|
299
|
-
if (dirtyValue) {
|
|
300
|
-
batch.put(key, dirtyValue)
|
|
301
|
-
} else {
|
|
302
|
-
batch.delete(key)
|
|
303
|
-
}
|
|
304
|
-
})
|
|
305
|
-
} catch (/** @type {any} */ err) {
|
|
306
|
-
log.error(err)
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
/**
|
|
311
|
-
* Add proto book data of the peer to the batch.
|
|
312
|
-
*
|
|
313
|
-
* @private
|
|
314
|
-
* @param {PeerId} peerId
|
|
315
|
-
* @param {Batch} batch
|
|
316
|
-
*/
|
|
317
|
-
_batchProtoBook (peerId, batch) {
|
|
318
|
-
const b32key = peerId.toString()
|
|
319
|
-
const key = new Key(`${NAMESPACE_PROTOCOL}${b32key}`)
|
|
320
|
-
|
|
321
|
-
const protocols = this.protoBook.get(peerId)
|
|
322
|
-
|
|
323
|
-
try {
|
|
324
|
-
// Deleted from the book
|
|
325
|
-
if (!protocols) {
|
|
326
|
-
batch.delete(key)
|
|
327
|
-
return
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
const encodedData = Protocols.encode({ protocols }).finish()
|
|
331
|
-
|
|
332
|
-
batch.put(key, encodedData)
|
|
333
|
-
} catch (/** @type {any} */ err) {
|
|
334
|
-
log.error(err)
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
/**
|
|
339
|
-
* Process datastore entry and add its data to the correct book.
|
|
340
|
-
*
|
|
341
|
-
* @private
|
|
342
|
-
* @param {Object} params
|
|
343
|
-
* @param {Key} params.key - datastore key
|
|
344
|
-
* @param {Uint8Array} params.value - datastore value stored
|
|
345
|
-
* @returns {Promise<void>}
|
|
346
|
-
*/
|
|
347
|
-
async _processDatastoreEntry ({ key, value }) {
|
|
348
|
-
try {
|
|
349
|
-
const keyParts = key.toString().split('/')
|
|
350
|
-
const peerId = PeerId.createFromBytes(base32.decode(keyParts[3]))
|
|
351
|
-
|
|
352
|
-
let decoded
|
|
353
|
-
switch (keyParts[2]) {
|
|
354
|
-
case 'addrs':
|
|
355
|
-
decoded = Addresses.decode(value)
|
|
356
|
-
|
|
357
|
-
// @ts-ignore protected function
|
|
358
|
-
this.addressBook._setData(
|
|
359
|
-
peerId,
|
|
360
|
-
{
|
|
361
|
-
addresses: decoded.addrs.map((address) => ({
|
|
362
|
-
multiaddr: new Multiaddr(address.multiaddr),
|
|
363
|
-
isCertified: Boolean(address.isCertified)
|
|
364
|
-
})),
|
|
365
|
-
record: decoded.certifiedRecord
|
|
366
|
-
? {
|
|
367
|
-
raw: decoded.certifiedRecord.raw,
|
|
368
|
-
seqNumber: decoded.certifiedRecord.seq
|
|
369
|
-
}
|
|
370
|
-
: undefined
|
|
371
|
-
},
|
|
372
|
-
{ emit: false })
|
|
373
|
-
break
|
|
374
|
-
case 'keys':
|
|
375
|
-
decoded = await PeerId.createFromPubKey(value)
|
|
376
|
-
|
|
377
|
-
// @ts-ignore protected function
|
|
378
|
-
this.keyBook._setData(
|
|
379
|
-
decoded,
|
|
380
|
-
decoded,
|
|
381
|
-
{ emit: false })
|
|
382
|
-
break
|
|
383
|
-
case 'metadata':
|
|
384
|
-
this.metadataBook._setValue(
|
|
385
|
-
peerId,
|
|
386
|
-
keyParts[4],
|
|
387
|
-
value,
|
|
388
|
-
{ emit: false })
|
|
389
|
-
break
|
|
390
|
-
case 'protos':
|
|
391
|
-
decoded = Protocols.decode(value)
|
|
392
|
-
|
|
393
|
-
// @ts-ignore protected function
|
|
394
|
-
this.protoBook._setData(
|
|
395
|
-
peerId,
|
|
396
|
-
new Set(decoded.protocols),
|
|
397
|
-
{ emit: false })
|
|
398
|
-
break
|
|
399
|
-
default:
|
|
400
|
-
log('invalid data persisted for: ', key.toString())
|
|
401
|
-
}
|
|
402
|
-
} catch (/** @type {any} */ err) {
|
|
403
|
-
log.error(err)
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
module.exports = PersistentPeerStore
|
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
import * as $protobuf from "protobufjs";
|
|
2
|
-
/** Properties of an Addresses. */
|
|
3
|
-
export interface IAddresses {
|
|
4
|
-
|
|
5
|
-
/** Addresses addrs */
|
|
6
|
-
addrs?: (Addresses.IAddress[]|null);
|
|
7
|
-
|
|
8
|
-
/** Addresses certifiedRecord */
|
|
9
|
-
certifiedRecord?: (Addresses.ICertifiedRecord|null);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
/** Represents an Addresses. */
|
|
13
|
-
export class Addresses implements IAddresses {
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Constructs a new Addresses.
|
|
17
|
-
* @param [p] Properties to set
|
|
18
|
-
*/
|
|
19
|
-
constructor(p?: IAddresses);
|
|
20
|
-
|
|
21
|
-
/** Addresses addrs. */
|
|
22
|
-
public addrs: Addresses.IAddress[];
|
|
23
|
-
|
|
24
|
-
/** Addresses certifiedRecord. */
|
|
25
|
-
public certifiedRecord?: (Addresses.ICertifiedRecord|null);
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Encodes the specified Addresses message. Does not implicitly {@link Addresses.verify|verify} messages.
|
|
29
|
-
* @param m Addresses message or plain object to encode
|
|
30
|
-
* @param [w] Writer to encode to
|
|
31
|
-
* @returns Writer
|
|
32
|
-
*/
|
|
33
|
-
public static encode(m: IAddresses, w?: $protobuf.Writer): $protobuf.Writer;
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Decodes an Addresses message from the specified reader or buffer.
|
|
37
|
-
* @param r Reader or buffer to decode from
|
|
38
|
-
* @param [l] Message length if known beforehand
|
|
39
|
-
* @returns Addresses
|
|
40
|
-
* @throws {Error} If the payload is not a reader or valid buffer
|
|
41
|
-
* @throws {$protobuf.util.ProtocolError} If required fields are missing
|
|
42
|
-
*/
|
|
43
|
-
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): Addresses;
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Creates an Addresses message from a plain object. Also converts values to their respective internal types.
|
|
47
|
-
* @param d Plain object
|
|
48
|
-
* @returns Addresses
|
|
49
|
-
*/
|
|
50
|
-
public static fromObject(d: { [k: string]: any }): Addresses;
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Creates a plain object from an Addresses message. Also converts values to other types if specified.
|
|
54
|
-
* @param m Addresses
|
|
55
|
-
* @param [o] Conversion options
|
|
56
|
-
* @returns Plain object
|
|
57
|
-
*/
|
|
58
|
-
public static toObject(m: Addresses, o?: $protobuf.IConversionOptions): { [k: string]: any };
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Converts this Addresses to JSON.
|
|
62
|
-
* @returns JSON object
|
|
63
|
-
*/
|
|
64
|
-
public toJSON(): { [k: string]: any };
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export namespace Addresses {
|
|
68
|
-
|
|
69
|
-
/** Properties of an Address. */
|
|
70
|
-
interface IAddress {
|
|
71
|
-
|
|
72
|
-
/** Address multiaddr */
|
|
73
|
-
multiaddr?: (Uint8Array|null);
|
|
74
|
-
|
|
75
|
-
/** Address isCertified */
|
|
76
|
-
isCertified?: (boolean|null);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/** Represents an Address. */
|
|
80
|
-
class Address implements IAddress {
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Constructs a new Address.
|
|
84
|
-
* @param [p] Properties to set
|
|
85
|
-
*/
|
|
86
|
-
constructor(p?: Addresses.IAddress);
|
|
87
|
-
|
|
88
|
-
/** Address multiaddr. */
|
|
89
|
-
public multiaddr: Uint8Array;
|
|
90
|
-
|
|
91
|
-
/** Address isCertified. */
|
|
92
|
-
public isCertified: boolean;
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Encodes the specified Address message. Does not implicitly {@link Addresses.Address.verify|verify} messages.
|
|
96
|
-
* @param m Address message or plain object to encode
|
|
97
|
-
* @param [w] Writer to encode to
|
|
98
|
-
* @returns Writer
|
|
99
|
-
*/
|
|
100
|
-
public static encode(m: Addresses.IAddress, w?: $protobuf.Writer): $protobuf.Writer;
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Decodes an Address message from the specified reader or buffer.
|
|
104
|
-
* @param r Reader or buffer to decode from
|
|
105
|
-
* @param [l] Message length if known beforehand
|
|
106
|
-
* @returns Address
|
|
107
|
-
* @throws {Error} If the payload is not a reader or valid buffer
|
|
108
|
-
* @throws {$protobuf.util.ProtocolError} If required fields are missing
|
|
109
|
-
*/
|
|
110
|
-
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): Addresses.Address;
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* Creates an Address message from a plain object. Also converts values to their respective internal types.
|
|
114
|
-
* @param d Plain object
|
|
115
|
-
* @returns Address
|
|
116
|
-
*/
|
|
117
|
-
public static fromObject(d: { [k: string]: any }): Addresses.Address;
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Creates a plain object from an Address message. Also converts values to other types if specified.
|
|
121
|
-
* @param m Address
|
|
122
|
-
* @param [o] Conversion options
|
|
123
|
-
* @returns Plain object
|
|
124
|
-
*/
|
|
125
|
-
public static toObject(m: Addresses.Address, o?: $protobuf.IConversionOptions): { [k: string]: any };
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Converts this Address to JSON.
|
|
129
|
-
* @returns JSON object
|
|
130
|
-
*/
|
|
131
|
-
public toJSON(): { [k: string]: any };
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/** Properties of a CertifiedRecord. */
|
|
135
|
-
interface ICertifiedRecord {
|
|
136
|
-
|
|
137
|
-
/** CertifiedRecord seq */
|
|
138
|
-
seq?: (number|null);
|
|
139
|
-
|
|
140
|
-
/** CertifiedRecord raw */
|
|
141
|
-
raw?: (Uint8Array|null);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/** Represents a CertifiedRecord. */
|
|
145
|
-
class CertifiedRecord implements ICertifiedRecord {
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Constructs a new CertifiedRecord.
|
|
149
|
-
* @param [p] Properties to set
|
|
150
|
-
*/
|
|
151
|
-
constructor(p?: Addresses.ICertifiedRecord);
|
|
152
|
-
|
|
153
|
-
/** CertifiedRecord seq. */
|
|
154
|
-
public seq: number;
|
|
155
|
-
|
|
156
|
-
/** CertifiedRecord raw. */
|
|
157
|
-
public raw: Uint8Array;
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Encodes the specified CertifiedRecord message. Does not implicitly {@link Addresses.CertifiedRecord.verify|verify} messages.
|
|
161
|
-
* @param m CertifiedRecord message or plain object to encode
|
|
162
|
-
* @param [w] Writer to encode to
|
|
163
|
-
* @returns Writer
|
|
164
|
-
*/
|
|
165
|
-
public static encode(m: Addresses.ICertifiedRecord, w?: $protobuf.Writer): $protobuf.Writer;
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* Decodes a CertifiedRecord message from the specified reader or buffer.
|
|
169
|
-
* @param r Reader or buffer to decode from
|
|
170
|
-
* @param [l] Message length if known beforehand
|
|
171
|
-
* @returns CertifiedRecord
|
|
172
|
-
* @throws {Error} If the payload is not a reader or valid buffer
|
|
173
|
-
* @throws {$protobuf.util.ProtocolError} If required fields are missing
|
|
174
|
-
*/
|
|
175
|
-
public static decode(r: ($protobuf.Reader|Uint8Array), l?: number): Addresses.CertifiedRecord;
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* Creates a CertifiedRecord message from a plain object. Also converts values to their respective internal types.
|
|
179
|
-
* @param d Plain object
|
|
180
|
-
* @returns CertifiedRecord
|
|
181
|
-
*/
|
|
182
|
-
public static fromObject(d: { [k: string]: any }): Addresses.CertifiedRecord;
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* Creates a plain object from a CertifiedRecord message. Also converts values to other types if specified.
|
|
186
|
-
* @param m CertifiedRecord
|
|
187
|
-
* @param [o] Conversion options
|
|
188
|
-
* @returns Plain object
|
|
189
|
-
*/
|
|
190
|
-
public static toObject(m: Addresses.CertifiedRecord, o?: $protobuf.IConversionOptions): { [k: string]: any };
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* Converts this CertifiedRecord to JSON.
|
|
194
|
-
* @returns JSON object
|
|
195
|
-
*/
|
|
196
|
-
public toJSON(): { [k: string]: any };
|
|
197
|
-
}
|
|
198
|
-
}
|