@libp2p/peer-store 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/address-book.d.ts +2 -2
- package/dist/src/address-book.d.ts.map +1 -1
- package/dist/src/address-book.js +23 -8
- package/dist/src/address-book.js.map +1 -1
- package/dist/src/index.d.ts +3 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/key-book.d.ts +2 -2
- package/dist/src/key-book.d.ts.map +1 -1
- package/dist/src/key-book.js +9 -4
- package/dist/src/key-book.js.map +1 -1
- package/dist/src/metadata-book.d.ts +2 -2
- package/dist/src/metadata-book.d.ts.map +1 -1
- package/dist/src/metadata-book.js +15 -6
- package/dist/src/metadata-book.js.map +1 -1
- package/dist/src/proto-book.d.ts +2 -2
- package/dist/src/proto-book.d.ts.map +1 -1
- package/dist/src/proto-book.js +15 -6
- package/dist/src/proto-book.js.map +1 -1
- package/package.json +12 -4
- package/src/address-book.ts +24 -9
- package/src/index.ts +7 -7
- package/src/key-book.ts +10 -5
- package/src/metadata-book.ts +16 -7
- package/src/proto-book.ts +17 -8
|
@@ -6,10 +6,10 @@ import type { Store } from './store.js';
|
|
|
6
6
|
import type { AddressFilter, AddressSorter } from './index.js';
|
|
7
7
|
import type { Envelope } from '@libp2p/interfaces/record';
|
|
8
8
|
export declare class PeerStoreAddressBook {
|
|
9
|
-
private readonly
|
|
9
|
+
private readonly dispatchEvent;
|
|
10
10
|
private readonly store;
|
|
11
11
|
private readonly addressFilter;
|
|
12
|
-
constructor(
|
|
12
|
+
constructor(dispatchEvent: PeerStore['dispatchEvent'], store: Store, addressFilter?: AddressFilter);
|
|
13
13
|
/**
|
|
14
14
|
* ConsumePeerRecord adds addresses from a signed peer record contained in a record envelope.
|
|
15
15
|
* This will return a boolean that indicates if the record was successfully processed and added
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address-book.d.ts","sourceRoot":"","sources":["../../src/address-book.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAc,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAOhE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"address-book.d.ts","sourceRoot":"","sources":["../../src/address-book.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,OAAO,EAAc,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAOhE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AASzD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;gBAEhC,aAAa,EAAE,SAAS,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,aAAa;IAMnG;;;;OAIG;IACG,iBAAiB,CAAE,QAAQ,EAAE,QAAQ;IAiErC,cAAc,CAAE,MAAM,EAAE,MAAM;IAmBpC;;;OAGG;IACG,aAAa,CAAE,MAAM,EAAE,MAAM;IAU7B,GAAG,CAAE,MAAM,EAAE,MAAM;IAuBnB,GAAG,CAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE;IA8D5C,GAAG,CAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE;IA2D5C,MAAM,CAAE,MAAM,EAAE,MAAM;IA2BtB,oBAAoB,CAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAE,aAA4B;CAgBxF"}
|
package/dist/src/address-book.js
CHANGED
|
@@ -10,14 +10,15 @@ import map from 'it-map';
|
|
|
10
10
|
import each from 'it-foreach';
|
|
11
11
|
import { base58btc } from 'multiformats/bases/base58';
|
|
12
12
|
import { PeerId } from '@libp2p/peer-id';
|
|
13
|
+
import { CustomEvent } from '@libp2p/interfaces';
|
|
13
14
|
const log = logger('libp2p:peer-store:address-book');
|
|
14
15
|
const EVENT_NAME = 'change:multiaddrs';
|
|
15
16
|
async function allowAll() {
|
|
16
17
|
return true;
|
|
17
18
|
}
|
|
18
19
|
export class PeerStoreAddressBook {
|
|
19
|
-
constructor(
|
|
20
|
-
this.
|
|
20
|
+
constructor(dispatchEvent, store, addressFilter) {
|
|
21
|
+
this.dispatchEvent = dispatchEvent;
|
|
21
22
|
this.store = store;
|
|
22
23
|
this.addressFilter = addressFilter ?? allowAll;
|
|
23
24
|
}
|
|
@@ -75,7 +76,9 @@ export class PeerStoreAddressBook {
|
|
|
75
76
|
log('consumePeerRecord release write lock');
|
|
76
77
|
release();
|
|
77
78
|
}
|
|
78
|
-
this.
|
|
79
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
80
|
+
detail: { peerId, multiaddrs: updatedPeer.addresses.map(({ multiaddr }) => multiaddr) }
|
|
81
|
+
}));
|
|
79
82
|
return true;
|
|
80
83
|
}
|
|
81
84
|
async getRawEnvelope(peerId) {
|
|
@@ -167,10 +170,16 @@ export class PeerStoreAddressBook {
|
|
|
167
170
|
log('set release write lock');
|
|
168
171
|
release();
|
|
169
172
|
}
|
|
170
|
-
this.
|
|
173
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
174
|
+
detail: { peerId, multiaddrs: updatedPeer.addresses.map(addr => addr.multiaddr) }
|
|
175
|
+
}));
|
|
171
176
|
// Notify the existence of a new peer
|
|
172
177
|
if (!hasPeer) {
|
|
173
|
-
this.
|
|
178
|
+
this.dispatchEvent(new CustomEvent('peer', {
|
|
179
|
+
detail: {
|
|
180
|
+
peerId
|
|
181
|
+
}
|
|
182
|
+
}));
|
|
174
183
|
}
|
|
175
184
|
}
|
|
176
185
|
async add(peerId, multiaddrs) {
|
|
@@ -212,10 +221,14 @@ export class PeerStoreAddressBook {
|
|
|
212
221
|
log('set release write lock');
|
|
213
222
|
release();
|
|
214
223
|
}
|
|
215
|
-
this.
|
|
224
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
225
|
+
detail: { peerId, multiaddrs: updatedPeer.addresses.map(addr => addr.multiaddr) }
|
|
226
|
+
}));
|
|
216
227
|
// Notify the existence of a new peer
|
|
217
228
|
if (hasPeer === true) {
|
|
218
|
-
this.
|
|
229
|
+
this.dispatchEvent(new CustomEvent('peer', {
|
|
230
|
+
detail: { peerId }
|
|
231
|
+
}));
|
|
219
232
|
}
|
|
220
233
|
}
|
|
221
234
|
async delete(peerId) {
|
|
@@ -235,7 +248,9 @@ export class PeerStoreAddressBook {
|
|
|
235
248
|
release();
|
|
236
249
|
}
|
|
237
250
|
if (has) {
|
|
238
|
-
this.
|
|
251
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
252
|
+
detail: { peerId, multiaddrs: [] }
|
|
253
|
+
}));
|
|
239
254
|
}
|
|
240
255
|
}
|
|
241
256
|
async getMultiaddrsForPeer(peerId, addressSorter = (mas) => mas) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address-book.js","sourceRoot":"","sources":["../../src/address-book.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,IAAI,MAAM,YAAY,CAAA;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"address-book.js","sourceRoot":"","sources":["../../src/address-book.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import type { PeerStore, Address, AddressBook, KeyBook, MetadataBook, ProtoBook } from '@libp2p/interfaces/peer-store';
|
|
1
|
+
import { EventEmitter } from '@libp2p/interfaces';
|
|
2
|
+
import type { PeerStore, Address, AddressBook, KeyBook, MetadataBook, ProtoBook, PeerStoreEvents } from '@libp2p/interfaces/peer-store';
|
|
4
3
|
import type { PeerId } from '@libp2p/interfaces/peer-id';
|
|
5
4
|
import type { Multiaddr } from '@multiformats/multiaddr';
|
|
6
5
|
import type { Datastore } from 'interface-datastore';
|
|
@@ -18,7 +17,7 @@ export interface PeerStoreOptions {
|
|
|
18
17
|
/**
|
|
19
18
|
* An implementation of PeerStore that stores data in a Datastore
|
|
20
19
|
*/
|
|
21
|
-
export declare class DefaultPeerStore extends EventEmitter implements PeerStore {
|
|
20
|
+
export declare class DefaultPeerStore extends EventEmitter<PeerStoreEvents> implements PeerStore {
|
|
22
21
|
addressBook: AddressBook;
|
|
23
22
|
keyBook: KeyBook;
|
|
24
23
|
metadataBook: MetadataBook;
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAMjD,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACvI,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAKpD,MAAM,WAAW,aAAa;IAC5B,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CACzD;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAA;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,YAAY,CAAC,eAAe,CAAE,YAAW,SAAS;IAC/E,WAAW,EAAE,WAAW,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;gBAEhB,OAAO,EAAE,gBAAgB;IAc9B,QAAQ;IAoBhB;;OAEG;IACG,MAAM,CAAE,MAAM,EAAE,MAAM;IAa5B;;OAEG;IACG,GAAG,CAAE,MAAM,EAAE,MAAM;IAazB;;OAEG;IACG,GAAG,CAAE,MAAM,EAAE,MAAM;CAY1B"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { logger } from '@libp2p/logger';
|
|
2
|
-
import { EventEmitter } from '
|
|
2
|
+
import { EventEmitter } from '@libp2p/interfaces';
|
|
3
3
|
import { PeerStoreAddressBook } from './address-book.js';
|
|
4
4
|
import { PeerStoreKeyBook } from './key-book.js';
|
|
5
5
|
import { PeerStoreMetadataBook } from './metadata-book.js';
|
|
@@ -16,10 +16,10 @@ export class DefaultPeerStore extends EventEmitter {
|
|
|
16
16
|
const { peerId, datastore, addressFilter } = options;
|
|
17
17
|
this.peerId = peerId;
|
|
18
18
|
this.store = new PersistentStore(datastore);
|
|
19
|
-
this.addressBook = new PeerStoreAddressBook(this.
|
|
20
|
-
this.keyBook = new PeerStoreKeyBook(this.
|
|
21
|
-
this.metadataBook = new PeerStoreMetadataBook(this.
|
|
22
|
-
this.protoBook = new PeerStoreProtoBook(this.
|
|
19
|
+
this.addressBook = new PeerStoreAddressBook(this.dispatchEvent.bind(this), this.store, addressFilter);
|
|
20
|
+
this.keyBook = new PeerStoreKeyBook(this.dispatchEvent.bind(this), this.store);
|
|
21
|
+
this.metadataBook = new PeerStoreMetadataBook(this.dispatchEvent.bind(this), this.store);
|
|
22
|
+
this.protoBook = new PeerStoreProtoBook(this.dispatchEvent.bind(this), this.store);
|
|
23
23
|
}
|
|
24
24
|
async *getPeers() {
|
|
25
25
|
log('getPeers await read lock');
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/key-book.d.ts
CHANGED
|
@@ -2,12 +2,12 @@ import { PeerId } from '@libp2p/peer-id';
|
|
|
2
2
|
import type { Store } from './store.js';
|
|
3
3
|
import type { PeerStore, KeyBook } from '@libp2p/interfaces/src/peer-store';
|
|
4
4
|
export declare class PeerStoreKeyBook implements KeyBook {
|
|
5
|
-
private readonly
|
|
5
|
+
private readonly dispatchEvent;
|
|
6
6
|
private readonly store;
|
|
7
7
|
/**
|
|
8
8
|
* The KeyBook is responsible for keeping the known public keys of a peer
|
|
9
9
|
*/
|
|
10
|
-
constructor(
|
|
10
|
+
constructor(dispatchEvent: PeerStore['dispatchEvent'], store: Store);
|
|
11
11
|
/**
|
|
12
12
|
* Set the Peer public key
|
|
13
13
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-book.d.ts","sourceRoot":"","sources":["../../src/key-book.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"key-book.d.ts","sourceRoot":"","sources":["../../src/key-book.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAGxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAA;AAY3E,qBAAa,gBAAiB,YAAW,OAAO;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAE7B;;OAEG;gBACU,aAAa,EAAE,SAAS,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK;IAKpE;;OAEG;IACG,GAAG,CAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU;IA2ChD;;OAEG;IACG,GAAG,CAAE,MAAM,EAAE,MAAM;IAqBnB,MAAM,CAAE,MAAM,EAAE,MAAM;CAoB7B"}
|
package/dist/src/key-book.js
CHANGED
|
@@ -3,6 +3,7 @@ import errcode from 'err-code';
|
|
|
3
3
|
import { codes } from './errors.js';
|
|
4
4
|
import { PeerId } from '@libp2p/peer-id';
|
|
5
5
|
import { equals as uint8arrayEquals } from 'uint8arrays/equals';
|
|
6
|
+
import { CustomEvent } from '@libp2p/interfaces';
|
|
6
7
|
/**
|
|
7
8
|
* @typedef {import('./types').PeerStore} PeerStore
|
|
8
9
|
* @typedef {import('./types').KeyBook} KeyBook
|
|
@@ -14,8 +15,8 @@ export class PeerStoreKeyBook {
|
|
|
14
15
|
/**
|
|
15
16
|
* The KeyBook is responsible for keeping the known public keys of a peer
|
|
16
17
|
*/
|
|
17
|
-
constructor(
|
|
18
|
-
this.
|
|
18
|
+
constructor(dispatchEvent, store) {
|
|
19
|
+
this.dispatchEvent = dispatchEvent;
|
|
19
20
|
this.store = store;
|
|
20
21
|
}
|
|
21
22
|
/**
|
|
@@ -53,7 +54,9 @@ export class PeerStoreKeyBook {
|
|
|
53
54
|
release();
|
|
54
55
|
}
|
|
55
56
|
if (updatedKey) {
|
|
56
|
-
this.
|
|
57
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
58
|
+
detail: { peerId, pubKey: publicKey }
|
|
59
|
+
}));
|
|
57
60
|
}
|
|
58
61
|
}
|
|
59
62
|
/**
|
|
@@ -92,7 +95,9 @@ export class PeerStoreKeyBook {
|
|
|
92
95
|
log('delete release write lock');
|
|
93
96
|
release();
|
|
94
97
|
}
|
|
95
|
-
this.
|
|
98
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
99
|
+
detail: { peerId, pubKey: undefined }
|
|
100
|
+
}));
|
|
96
101
|
}
|
|
97
102
|
}
|
|
98
103
|
//# sourceMappingURL=key-book.js.map
|
package/dist/src/key-book.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-book.js","sourceRoot":"","sources":["../../src/key-book.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"key-book.js","sourceRoot":"","sources":["../../src/key-book.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,13 @@ import { PeerId } from '@libp2p/peer-id';
|
|
|
2
2
|
import type { Store } from './store.js';
|
|
3
3
|
import type { PeerStore, MetadataBook } from '@libp2p/interfaces/src/peer-store';
|
|
4
4
|
export declare class PeerStoreMetadataBook implements MetadataBook {
|
|
5
|
-
private readonly
|
|
5
|
+
private readonly dispatchEvent;
|
|
6
6
|
private readonly store;
|
|
7
7
|
/**
|
|
8
8
|
* The MetadataBook is responsible for keeping metadata
|
|
9
9
|
* about known peers
|
|
10
10
|
*/
|
|
11
|
-
constructor(
|
|
11
|
+
constructor(dispatchEvent: PeerStore['dispatchEvent'], store: Store);
|
|
12
12
|
/**
|
|
13
13
|
* Get the known data of a provided peer
|
|
14
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-book.d.ts","sourceRoot":"","sources":["../../src/metadata-book.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"metadata-book.d.ts","sourceRoot":"","sources":["../../src/metadata-book.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAGxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAMhF,qBAAa,qBAAsB,YAAW,YAAY;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAE7B;;;OAGG;gBACU,aAAa,EAAE,SAAS,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK;IAKpE;;OAEG;IACG,GAAG,CAAE,MAAM,EAAE,MAAM;IAuBzB;;OAEG;IACG,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAqBrC,GAAG,CAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC;IA0B5D;;OAEG;IACG,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAyCxD,MAAM,CAAE,MAAM,EAAE,MAAM;IA6BtB,WAAW,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAiC/C"}
|
|
@@ -3,6 +3,7 @@ import errcode from 'err-code';
|
|
|
3
3
|
import { codes } from './errors.js';
|
|
4
4
|
import { PeerId } from '@libp2p/peer-id';
|
|
5
5
|
import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
|
|
6
|
+
import { CustomEvent } from '@libp2p/interfaces';
|
|
6
7
|
const log = logger('libp2p:peer-store:metadata-book');
|
|
7
8
|
const EVENT_NAME = 'change:metadata';
|
|
8
9
|
export class PeerStoreMetadataBook {
|
|
@@ -10,8 +11,8 @@ export class PeerStoreMetadataBook {
|
|
|
10
11
|
* The MetadataBook is responsible for keeping metadata
|
|
11
12
|
* about known peers
|
|
12
13
|
*/
|
|
13
|
-
constructor(
|
|
14
|
-
this.
|
|
14
|
+
constructor(dispatchEvent, store) {
|
|
15
|
+
this.dispatchEvent = dispatchEvent;
|
|
15
16
|
this.store = store;
|
|
16
17
|
}
|
|
17
18
|
/**
|
|
@@ -77,7 +78,9 @@ export class PeerStoreMetadataBook {
|
|
|
77
78
|
log('set release write lock');
|
|
78
79
|
release();
|
|
79
80
|
}
|
|
80
|
-
this.
|
|
81
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
82
|
+
detail: { peerId, metadata }
|
|
83
|
+
}));
|
|
81
84
|
}
|
|
82
85
|
/**
|
|
83
86
|
* Set metadata key and value of a provided peer
|
|
@@ -113,7 +116,9 @@ export class PeerStoreMetadataBook {
|
|
|
113
116
|
log('setValue release write lock');
|
|
114
117
|
release();
|
|
115
118
|
}
|
|
116
|
-
this.
|
|
119
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
120
|
+
detail: { peerId, metadata: updatedPeer.metadata }
|
|
121
|
+
}));
|
|
117
122
|
}
|
|
118
123
|
async delete(peerId) {
|
|
119
124
|
peerId = PeerId.fromPeerId(peerId);
|
|
@@ -134,7 +139,9 @@ export class PeerStoreMetadataBook {
|
|
|
134
139
|
release();
|
|
135
140
|
}
|
|
136
141
|
if (has) {
|
|
137
|
-
this.
|
|
142
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
143
|
+
detail: { peerId, metadata: new Map() }
|
|
144
|
+
}));
|
|
138
145
|
}
|
|
139
146
|
}
|
|
140
147
|
async deleteValue(peerId, key) {
|
|
@@ -161,7 +168,9 @@ export class PeerStoreMetadataBook {
|
|
|
161
168
|
release();
|
|
162
169
|
}
|
|
163
170
|
if (metadata != null) {
|
|
164
|
-
this.
|
|
171
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
172
|
+
detail: { peerId, metadata }
|
|
173
|
+
}));
|
|
165
174
|
}
|
|
166
175
|
}
|
|
167
176
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata-book.js","sourceRoot":"","sources":["../../src/metadata-book.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"metadata-book.js","sourceRoot":"","sources":["../../src/metadata-book.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AACxC,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAIhD,MAAM,GAAG,GAAG,MAAM,CAAC,iCAAiC,CAAC,CAAA;AAErD,MAAM,UAAU,GAAG,iBAAiB,CAAA;AAEpC,MAAM,OAAO,qBAAqB;IAIhC;;;OAGG;IACH,YAAa,aAAyC,EAAE,KAAY;QAClE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAE,MAAc;QACvB,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAElC,GAAG,CAAC,qBAAqB,CAAC,CAAA;QAC1B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChD,GAAG,CAAC,mBAAmB,CAAC,CAAA;QAExB,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAE1C,OAAO,IAAI,CAAC,QAAQ,CAAA;SACrB;QAAC,OAAO,GAAQ,EAAE;YACjB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,EAAE;gBACpC,MAAM,GAAG,CAAA;aACV;SACF;gBAAS;YACR,GAAG,CAAC,uBAAuB,CAAC,CAAA;YAC5B,OAAO,EAAE,CAAA;SACV;QAED,OAAO,IAAI,GAAG,EAAE,CAAA;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAE,MAAc,EAAE,GAAW;QACzC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAElC,GAAG,CAAC,0BAA0B,CAAC,CAAA;QAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChD,GAAG,CAAC,wBAAwB,CAAC,CAAA;QAE7B,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAE1C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SAC9B;QAAC,OAAO,GAAQ,EAAE;YACjB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,EAAE;gBACpC,MAAM,GAAG,CAAA;aACV;SACF;gBAAS;YACR,GAAG,CAAC,6BAA6B,CAAC,CAAA;YAClC,OAAO,EAAE,CAAA;SACV;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,MAAc,EAAE,QAAiC;QAC1D,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAElC,IAAI,CAAC,CAAC,QAAQ,YAAY,GAAG,CAAC,EAAE;YAC9B,GAAG,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAA;YAC1D,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;SAC1F;QAED,GAAG,CAAC,sBAAsB,CAAC,CAAA;QAC3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;QACjD,GAAG,CAAC,oBAAoB,CAAC,CAAA;QAEzB,IAAI;YACF,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;gBACrC,QAAQ;aACT,CAAC,CAAA;SACH;gBAAS;YACR,GAAG,CAAC,wBAAwB,CAAC,CAAA;YAC7B,OAAO,EAAE,CAAA;SACV;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE;YAC7C,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;SAC7B,CAAC,CAAC,CAAA;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAE,MAAc,EAAE,GAAW,EAAE,KAAiB;QAC5D,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAElC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,YAAY,UAAU,CAAC,EAAE;YAC7D,GAAG,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAA;YAC/D,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;SAC/F;QAED,GAAG,CAAC,2BAA2B,CAAC,CAAA;QAChC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;QACjD,GAAG,CAAC,yBAAyB,CAAC,CAAA;QAE9B,IAAI,WAAW,CAAA;QAEf,IAAI;YACF,IAAI;gBACF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAClD,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBAEpD,IAAI,aAAa,IAAI,IAAI,IAAI,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE;oBACnE,OAAM;iBACP;aACF;YAAC,OAAO,GAAQ,EAAE;gBACjB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,EAAE;oBACpC,MAAM,GAAG,CAAA;iBACV;aACF;YAED,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;gBACnD,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;aAClC,CAAC,CAAA;SACH;gBAAS;YACR,GAAG,CAAC,6BAA6B,CAAC,CAAA;YAClC,OAAO,EAAE,CAAA;SACV;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE;YAC7C,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE;SACnD,CAAC,CAAC,CAAA;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,MAAc;QAC1B,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAElC,GAAG,CAAC,yBAAyB,CAAC,CAAA;QAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;QACjD,GAAG,CAAC,uBAAuB,CAAC,CAAA;QAE5B,IAAI,GAAG,CAAA;QAEP,IAAI;YACF,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAElC,IAAI,GAAG,EAAE;gBACP,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;oBAC7B,QAAQ,EAAE,IAAI,GAAG,EAAE;iBACpB,CAAC,CAAA;aACH;SACF;gBAAS;YACR,GAAG,CAAC,2BAA2B,CAAC,CAAA;YAChC,OAAO,EAAE,CAAA;SACV;QAED,IAAI,GAAG,EAAE;YACP,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE;gBAC7C,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE;aACxC,CAAC,CAAC,CAAA;SACJ;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAE,MAAc,EAAE,GAAW;QAC5C,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAElC,GAAG,CAAC,8BAA8B,CAAC,CAAA;QACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;QACjD,GAAG,CAAC,4BAA4B,CAAC,CAAA;QAEjC,IAAI,QAAQ,CAAA;QAEZ,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC1C,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;YAExB,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAEpB,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;gBAC7B,QAAQ;aACT,CAAC,CAAA;SACH;QAAC,OAAO,GAAQ,EAAE;YACjB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,EAAE;gBACpC,MAAM,GAAG,CAAA;aACV;SACF;gBAAS;YACR,GAAG,CAAC,gCAAgC,CAAC,CAAA;YACrC,OAAO,EAAE,CAAA;SACV;QAED,IAAI,QAAQ,IAAI,IAAI,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,UAAU,EAAE;gBAC7C,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;aAC7B,CAAC,CAAC,CAAA;SACJ;IACH,CAAC;CACF"}
|
package/dist/src/proto-book.d.ts
CHANGED
|
@@ -2,13 +2,13 @@ import { PeerId } from '@libp2p/peer-id';
|
|
|
2
2
|
import type { Store } from './store.js';
|
|
3
3
|
import type { PeerStore, ProtoBook } from '@libp2p/interfaces/src/peer-store';
|
|
4
4
|
export declare class PeerStoreProtoBook implements ProtoBook {
|
|
5
|
-
private readonly
|
|
5
|
+
private readonly dispatchEvent;
|
|
6
6
|
private readonly store;
|
|
7
7
|
/**
|
|
8
8
|
* The ProtoBook is responsible for keeping the known supported
|
|
9
9
|
* protocols of a peer
|
|
10
10
|
*/
|
|
11
|
-
constructor(
|
|
11
|
+
constructor(dispatchEvent: PeerStore['dispatchEvent'], store: Store);
|
|
12
12
|
get(peerId: PeerId): Promise<string[]>;
|
|
13
13
|
set(peerId: PeerId, protocols: string[]): Promise<void>;
|
|
14
14
|
add(peerId: PeerId, protocols: string[]): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proto-book.d.ts","sourceRoot":"","sources":["../../src/proto-book.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"proto-book.d.ts","sourceRoot":"","sources":["../../src/proto-book.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAGxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAA;AAM7E,qBAAa,kBAAmB,YAAW,SAAS;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAE7B;;;OAGG;gBACU,aAAa,EAAE,SAAS,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK;IAK9D,GAAG,CAAE,MAAM,EAAE,MAAM;IAqBnB,GAAG,CAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE;IA4CxC,GAAG,CAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE;IA6CxC,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE;IA+C3C,MAAM,CAAE,MAAM,EAAE,MAAM;CA6B7B"}
|
package/dist/src/proto-book.js
CHANGED
|
@@ -3,6 +3,7 @@ import errcode from 'err-code';
|
|
|
3
3
|
import { codes } from './errors.js';
|
|
4
4
|
import { PeerId } from '@libp2p/peer-id';
|
|
5
5
|
import { base58btc } from 'multiformats/bases/base58';
|
|
6
|
+
import { CustomEvent } from '@libp2p/interfaces';
|
|
6
7
|
const log = logger('libp2p:peer-store:proto-book');
|
|
7
8
|
const EVENT_NAME = 'change:protocols';
|
|
8
9
|
export class PeerStoreProtoBook {
|
|
@@ -10,8 +11,8 @@ export class PeerStoreProtoBook {
|
|
|
10
11
|
* The ProtoBook is responsible for keeping the known supported
|
|
11
12
|
* protocols of a peer
|
|
12
13
|
*/
|
|
13
|
-
constructor(
|
|
14
|
-
this.
|
|
14
|
+
constructor(dispatchEvent, store) {
|
|
15
|
+
this.dispatchEvent = dispatchEvent;
|
|
15
16
|
this.store = store;
|
|
16
17
|
}
|
|
17
18
|
async get(peerId) {
|
|
@@ -66,7 +67,9 @@ export class PeerStoreProtoBook {
|
|
|
66
67
|
log('set release write lock');
|
|
67
68
|
release();
|
|
68
69
|
}
|
|
69
|
-
this.
|
|
70
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
71
|
+
detail: { peerId, protocols: updatedPeer.protocols }
|
|
72
|
+
}));
|
|
70
73
|
}
|
|
71
74
|
async add(peerId, protocols) {
|
|
72
75
|
peerId = PeerId.fromPeerId(peerId);
|
|
@@ -102,7 +105,9 @@ export class PeerStoreProtoBook {
|
|
|
102
105
|
log('add release write lock');
|
|
103
106
|
release();
|
|
104
107
|
}
|
|
105
|
-
this.
|
|
108
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
109
|
+
detail: { peerId, protocols: updatedPeer.protocols }
|
|
110
|
+
}));
|
|
106
111
|
}
|
|
107
112
|
async remove(peerId, protocols) {
|
|
108
113
|
peerId = PeerId.fromPeerId(peerId);
|
|
@@ -139,7 +144,9 @@ export class PeerStoreProtoBook {
|
|
|
139
144
|
log('remove release write lock');
|
|
140
145
|
release();
|
|
141
146
|
}
|
|
142
|
-
this.
|
|
147
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
148
|
+
detail: { peerId, protocols: updatedPeer.protocols }
|
|
149
|
+
}));
|
|
143
150
|
}
|
|
144
151
|
async delete(peerId) {
|
|
145
152
|
peerId = PeerId.fromPeerId(peerId);
|
|
@@ -163,7 +170,9 @@ export class PeerStoreProtoBook {
|
|
|
163
170
|
release();
|
|
164
171
|
}
|
|
165
172
|
if (has === true) {
|
|
166
|
-
this.
|
|
173
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
174
|
+
detail: { peerId, protocols: [] }
|
|
175
|
+
}));
|
|
167
176
|
}
|
|
168
177
|
}
|
|
169
178
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proto-book.js","sourceRoot":"","sources":["../../src/proto-book.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,OAAO,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"proto-book.js","sourceRoot":"","sources":["../../src/proto-book.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/peer-store",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Stores information about peers libp2p knows on the network",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p-interfaces/tree/master/packages/libp2p-peer-store#readme",
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
},
|
|
125
125
|
"scripts": {
|
|
126
126
|
"lint": "aegir lint",
|
|
127
|
-
"dep-check": "aegir dep-check dist/src/**/*.js",
|
|
127
|
+
"dep-check": "aegir dep-check dist/src/**/*.js dist/test/**/*.js",
|
|
128
128
|
"build": "tsc",
|
|
129
129
|
"postbuild": "npm run build:copy-proto-files",
|
|
130
130
|
"generate": "npm run generate:proto && npm run generate:proto-types && tsc",
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
"generate:proto-types": "pbts -o src/pb/peer.d.ts src/pb/peer.js",
|
|
133
133
|
"build:copy-proto-files": "mkdirp dist/src/pb && cp src/pb/*.js dist/src/pb && cp src/pb/*.d.ts dist/src/pb",
|
|
134
134
|
"pretest": "npm run build",
|
|
135
|
-
"test": "aegir test -f ./dist/test",
|
|
135
|
+
"test": "aegir test -f ./dist/test/*.js -f ./dist/test/**/*.js",
|
|
136
136
|
"test:chrome": "npm run test -- -t browser",
|
|
137
137
|
"test:chrome-webworker": "npm run test -- -t webworker",
|
|
138
138
|
"test:firefox": "npm run test -- -t browser -- --browser firefox",
|
|
@@ -156,8 +156,16 @@
|
|
|
156
156
|
"protobufjs": "^6.10.2"
|
|
157
157
|
},
|
|
158
158
|
"devDependencies": {
|
|
159
|
+
"@libp2p/interface-compliance-tests": "^1.1.0",
|
|
160
|
+
"@libp2p/peer-id": "^1.1.0",
|
|
161
|
+
"@libp2p/peer-id-factory": "^1.0.3",
|
|
162
|
+
"@libp2p/utils": "^1.0.5",
|
|
159
163
|
"aegir": "^36.1.3",
|
|
160
164
|
"datastore-core": "^7.0.1",
|
|
161
|
-
"
|
|
165
|
+
"err-code": "^3.0.1",
|
|
166
|
+
"p-defer": "^4.0.0",
|
|
167
|
+
"p-wait-for": "^4.1.0",
|
|
168
|
+
"sinon": "^13.0.1",
|
|
169
|
+
"uint8arrays": "^3.0.0"
|
|
162
170
|
}
|
|
163
171
|
}
|
package/src/address-book.ts
CHANGED
|
@@ -10,6 +10,7 @@ import map from 'it-map'
|
|
|
10
10
|
import each from 'it-foreach'
|
|
11
11
|
import { base58btc } from 'multiformats/bases/base58'
|
|
12
12
|
import { PeerId } from '@libp2p/peer-id'
|
|
13
|
+
import { CustomEvent } from '@libp2p/interfaces'
|
|
13
14
|
import type { PeerStore } from '@libp2p/interfaces/peer-store'
|
|
14
15
|
import type { Store } from './store.js'
|
|
15
16
|
import type { AddressFilter, AddressSorter } from './index.js'
|
|
@@ -23,12 +24,12 @@ async function allowAll () {
|
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
export class PeerStoreAddressBook {
|
|
26
|
-
private readonly
|
|
27
|
+
private readonly dispatchEvent: PeerStore['dispatchEvent']
|
|
27
28
|
private readonly store: Store
|
|
28
29
|
private readonly addressFilter: AddressFilter
|
|
29
30
|
|
|
30
|
-
constructor (
|
|
31
|
-
this.
|
|
31
|
+
constructor (dispatchEvent: PeerStore['dispatchEvent'], store: Store, addressFilter?: AddressFilter) {
|
|
32
|
+
this.dispatchEvent = dispatchEvent
|
|
32
33
|
this.store = store
|
|
33
34
|
this.addressFilter = addressFilter ?? allowAll
|
|
34
35
|
}
|
|
@@ -96,7 +97,9 @@ export class PeerStoreAddressBook {
|
|
|
96
97
|
release()
|
|
97
98
|
}
|
|
98
99
|
|
|
99
|
-
this.
|
|
100
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
101
|
+
detail: { peerId, multiaddrs: updatedPeer.addresses.map(({ multiaddr }) => multiaddr) }
|
|
102
|
+
}))
|
|
100
103
|
|
|
101
104
|
return true
|
|
102
105
|
}
|
|
@@ -205,11 +208,17 @@ export class PeerStoreAddressBook {
|
|
|
205
208
|
release()
|
|
206
209
|
}
|
|
207
210
|
|
|
208
|
-
this.
|
|
211
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
212
|
+
detail: { peerId, multiaddrs: updatedPeer.addresses.map(addr => addr.multiaddr) }
|
|
213
|
+
}))
|
|
209
214
|
|
|
210
215
|
// Notify the existence of a new peer
|
|
211
216
|
if (!hasPeer) {
|
|
212
|
-
this.
|
|
217
|
+
this.dispatchEvent(new CustomEvent('peer', {
|
|
218
|
+
detail: {
|
|
219
|
+
peerId
|
|
220
|
+
}
|
|
221
|
+
}))
|
|
213
222
|
}
|
|
214
223
|
}
|
|
215
224
|
|
|
@@ -260,11 +269,15 @@ export class PeerStoreAddressBook {
|
|
|
260
269
|
release()
|
|
261
270
|
}
|
|
262
271
|
|
|
263
|
-
this.
|
|
272
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
273
|
+
detail: { peerId, multiaddrs: updatedPeer.addresses.map(addr => addr.multiaddr) }
|
|
274
|
+
}))
|
|
264
275
|
|
|
265
276
|
// Notify the existence of a new peer
|
|
266
277
|
if (hasPeer === true) {
|
|
267
|
-
this.
|
|
278
|
+
this.dispatchEvent(new CustomEvent('peer', {
|
|
279
|
+
detail: { peerId }
|
|
280
|
+
}))
|
|
268
281
|
}
|
|
269
282
|
}
|
|
270
283
|
|
|
@@ -289,7 +302,9 @@ export class PeerStoreAddressBook {
|
|
|
289
302
|
}
|
|
290
303
|
|
|
291
304
|
if (has) {
|
|
292
|
-
this.
|
|
305
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
306
|
+
detail: { peerId, multiaddrs: [] }
|
|
307
|
+
}))
|
|
293
308
|
}
|
|
294
309
|
}
|
|
295
310
|
|
package/src/index.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { logger } from '@libp2p/logger'
|
|
2
|
-
import { EventEmitter } from '
|
|
2
|
+
import { EventEmitter } from '@libp2p/interfaces'
|
|
3
3
|
import { PeerStoreAddressBook } from './address-book.js'
|
|
4
4
|
import { PeerStoreKeyBook } from './key-book.js'
|
|
5
5
|
import { PeerStoreMetadataBook } from './metadata-book.js'
|
|
6
6
|
import { PeerStoreProtoBook } from './proto-book.js'
|
|
7
7
|
import { PersistentStore, Store } from './store.js'
|
|
8
|
-
import type { PeerStore, Address, AddressBook, KeyBook, MetadataBook, ProtoBook } from '@libp2p/interfaces/peer-store'
|
|
8
|
+
import type { PeerStore, Address, AddressBook, KeyBook, MetadataBook, ProtoBook, PeerStoreEvents } from '@libp2p/interfaces/peer-store'
|
|
9
9
|
import type { PeerId } from '@libp2p/interfaces/peer-id'
|
|
10
10
|
import type { Multiaddr } from '@multiformats/multiaddr'
|
|
11
11
|
import type { Datastore } from 'interface-datastore'
|
|
@@ -30,7 +30,7 @@ export interface PeerStoreOptions {
|
|
|
30
30
|
/**
|
|
31
31
|
* An implementation of PeerStore that stores data in a Datastore
|
|
32
32
|
*/
|
|
33
|
-
export class DefaultPeerStore extends EventEmitter implements PeerStore {
|
|
33
|
+
export class DefaultPeerStore extends EventEmitter<PeerStoreEvents> implements PeerStore {
|
|
34
34
|
public addressBook: AddressBook
|
|
35
35
|
public keyBook: KeyBook
|
|
36
36
|
public metadataBook: MetadataBook
|
|
@@ -47,10 +47,10 @@ export class DefaultPeerStore extends EventEmitter implements PeerStore {
|
|
|
47
47
|
this.peerId = peerId
|
|
48
48
|
this.store = new PersistentStore(datastore)
|
|
49
49
|
|
|
50
|
-
this.addressBook = new PeerStoreAddressBook(this.
|
|
51
|
-
this.keyBook = new PeerStoreKeyBook(this.
|
|
52
|
-
this.metadataBook = new PeerStoreMetadataBook(this.
|
|
53
|
-
this.protoBook = new PeerStoreProtoBook(this.
|
|
50
|
+
this.addressBook = new PeerStoreAddressBook(this.dispatchEvent.bind(this), this.store, addressFilter)
|
|
51
|
+
this.keyBook = new PeerStoreKeyBook(this.dispatchEvent.bind(this), this.store)
|
|
52
|
+
this.metadataBook = new PeerStoreMetadataBook(this.dispatchEvent.bind(this), this.store)
|
|
53
|
+
this.protoBook = new PeerStoreProtoBook(this.dispatchEvent.bind(this), this.store)
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
async * getPeers () {
|
package/src/key-book.ts
CHANGED
|
@@ -3,6 +3,7 @@ import errcode from 'err-code'
|
|
|
3
3
|
import { codes } from './errors.js'
|
|
4
4
|
import { PeerId } from '@libp2p/peer-id'
|
|
5
5
|
import { equals as uint8arrayEquals } from 'uint8arrays/equals'
|
|
6
|
+
import { CustomEvent } from '@libp2p/interfaces'
|
|
6
7
|
import type { Store } from './store.js'
|
|
7
8
|
import type { PeerStore, KeyBook } from '@libp2p/interfaces/src/peer-store'
|
|
8
9
|
|
|
@@ -17,14 +18,14 @@ const log = logger('libp2p:peer-store:key-book')
|
|
|
17
18
|
const EVENT_NAME = 'change:pubkey'
|
|
18
19
|
|
|
19
20
|
export class PeerStoreKeyBook implements KeyBook {
|
|
20
|
-
private readonly
|
|
21
|
+
private readonly dispatchEvent: PeerStore['dispatchEvent']
|
|
21
22
|
private readonly store: Store
|
|
22
23
|
|
|
23
24
|
/**
|
|
24
25
|
* The KeyBook is responsible for keeping the known public keys of a peer
|
|
25
26
|
*/
|
|
26
|
-
constructor (
|
|
27
|
-
this.
|
|
27
|
+
constructor (dispatchEvent: PeerStore['dispatchEvent'], store: Store) {
|
|
28
|
+
this.dispatchEvent = dispatchEvent
|
|
28
29
|
this.store = store
|
|
29
30
|
}
|
|
30
31
|
|
|
@@ -68,7 +69,9 @@ export class PeerStoreKeyBook implements KeyBook {
|
|
|
68
69
|
}
|
|
69
70
|
|
|
70
71
|
if (updatedKey) {
|
|
71
|
-
this.
|
|
72
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
73
|
+
detail: { peerId, pubKey: publicKey }
|
|
74
|
+
}))
|
|
72
75
|
}
|
|
73
76
|
}
|
|
74
77
|
|
|
@@ -112,6 +115,8 @@ export class PeerStoreKeyBook implements KeyBook {
|
|
|
112
115
|
release()
|
|
113
116
|
}
|
|
114
117
|
|
|
115
|
-
this.
|
|
118
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
119
|
+
detail: { peerId, pubKey: undefined }
|
|
120
|
+
}))
|
|
116
121
|
}
|
|
117
122
|
}
|
package/src/metadata-book.ts
CHANGED
|
@@ -3,6 +3,7 @@ import errcode from 'err-code'
|
|
|
3
3
|
import { codes } from './errors.js'
|
|
4
4
|
import { PeerId } from '@libp2p/peer-id'
|
|
5
5
|
import { equals as uint8ArrayEquals } from 'uint8arrays/equals'
|
|
6
|
+
import { CustomEvent } from '@libp2p/interfaces'
|
|
6
7
|
import type { Store } from './store.js'
|
|
7
8
|
import type { PeerStore, MetadataBook } from '@libp2p/interfaces/src/peer-store'
|
|
8
9
|
|
|
@@ -11,15 +12,15 @@ const log = logger('libp2p:peer-store:metadata-book')
|
|
|
11
12
|
const EVENT_NAME = 'change:metadata'
|
|
12
13
|
|
|
13
14
|
export class PeerStoreMetadataBook implements MetadataBook {
|
|
14
|
-
private readonly
|
|
15
|
+
private readonly dispatchEvent: PeerStore['dispatchEvent']
|
|
15
16
|
private readonly store: Store
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
19
|
* The MetadataBook is responsible for keeping metadata
|
|
19
20
|
* about known peers
|
|
20
21
|
*/
|
|
21
|
-
constructor (
|
|
22
|
-
this.
|
|
22
|
+
constructor (dispatchEvent: PeerStore['dispatchEvent'], store: Store) {
|
|
23
|
+
this.dispatchEvent = dispatchEvent
|
|
23
24
|
this.store = store
|
|
24
25
|
}
|
|
25
26
|
|
|
@@ -94,7 +95,9 @@ export class PeerStoreMetadataBook implements MetadataBook {
|
|
|
94
95
|
release()
|
|
95
96
|
}
|
|
96
97
|
|
|
97
|
-
this.
|
|
98
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
99
|
+
detail: { peerId, metadata }
|
|
100
|
+
}))
|
|
98
101
|
}
|
|
99
102
|
|
|
100
103
|
/**
|
|
@@ -136,7 +139,9 @@ export class PeerStoreMetadataBook implements MetadataBook {
|
|
|
136
139
|
release()
|
|
137
140
|
}
|
|
138
141
|
|
|
139
|
-
this.
|
|
142
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
143
|
+
detail: { peerId, metadata: updatedPeer.metadata }
|
|
144
|
+
}))
|
|
140
145
|
}
|
|
141
146
|
|
|
142
147
|
async delete (peerId: PeerId) {
|
|
@@ -162,7 +167,9 @@ export class PeerStoreMetadataBook implements MetadataBook {
|
|
|
162
167
|
}
|
|
163
168
|
|
|
164
169
|
if (has) {
|
|
165
|
-
this.
|
|
170
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
171
|
+
detail: { peerId, metadata: new Map() }
|
|
172
|
+
}))
|
|
166
173
|
}
|
|
167
174
|
}
|
|
168
175
|
|
|
@@ -194,7 +201,9 @@ export class PeerStoreMetadataBook implements MetadataBook {
|
|
|
194
201
|
}
|
|
195
202
|
|
|
196
203
|
if (metadata != null) {
|
|
197
|
-
this.
|
|
204
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
205
|
+
detail: { peerId, metadata }
|
|
206
|
+
}))
|
|
198
207
|
}
|
|
199
208
|
}
|
|
200
209
|
}
|
package/src/proto-book.ts
CHANGED
|
@@ -2,24 +2,25 @@ import { logger } from '@libp2p/logger'
|
|
|
2
2
|
import errcode from 'err-code'
|
|
3
3
|
import { codes } from './errors.js'
|
|
4
4
|
import { PeerId } from '@libp2p/peer-id'
|
|
5
|
+
import { base58btc } from 'multiformats/bases/base58'
|
|
6
|
+
import { CustomEvent } from '@libp2p/interfaces'
|
|
5
7
|
import type { Store } from './store.js'
|
|
6
8
|
import type { PeerStore, ProtoBook } from '@libp2p/interfaces/src/peer-store'
|
|
7
|
-
import { base58btc } from 'multiformats/bases/base58'
|
|
8
9
|
|
|
9
10
|
const log = logger('libp2p:peer-store:proto-book')
|
|
10
11
|
|
|
11
12
|
const EVENT_NAME = 'change:protocols'
|
|
12
13
|
|
|
13
14
|
export class PeerStoreProtoBook implements ProtoBook {
|
|
14
|
-
private readonly
|
|
15
|
+
private readonly dispatchEvent: PeerStore['dispatchEvent']
|
|
15
16
|
private readonly store: Store
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
19
|
* The ProtoBook is responsible for keeping the known supported
|
|
19
20
|
* protocols of a peer
|
|
20
21
|
*/
|
|
21
|
-
constructor (
|
|
22
|
-
this.
|
|
22
|
+
constructor (dispatchEvent: PeerStore['dispatchEvent'], store: Store) {
|
|
23
|
+
this.dispatchEvent = dispatchEvent
|
|
23
24
|
this.store = store
|
|
24
25
|
}
|
|
25
26
|
|
|
@@ -83,7 +84,9 @@ export class PeerStoreProtoBook implements ProtoBook {
|
|
|
83
84
|
release()
|
|
84
85
|
}
|
|
85
86
|
|
|
86
|
-
this.
|
|
87
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
88
|
+
detail: { peerId, protocols: updatedPeer.protocols }
|
|
89
|
+
}))
|
|
87
90
|
}
|
|
88
91
|
|
|
89
92
|
async add (peerId: PeerId, protocols: string[]) {
|
|
@@ -126,7 +129,9 @@ export class PeerStoreProtoBook implements ProtoBook {
|
|
|
126
129
|
release()
|
|
127
130
|
}
|
|
128
131
|
|
|
129
|
-
this.
|
|
132
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
133
|
+
detail: { peerId, protocols: updatedPeer.protocols }
|
|
134
|
+
}))
|
|
130
135
|
}
|
|
131
136
|
|
|
132
137
|
async remove (peerId: PeerId, protocols: string[]) {
|
|
@@ -171,7 +176,9 @@ export class PeerStoreProtoBook implements ProtoBook {
|
|
|
171
176
|
release()
|
|
172
177
|
}
|
|
173
178
|
|
|
174
|
-
this.
|
|
179
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
180
|
+
detail: { peerId, protocols: updatedPeer.protocols }
|
|
181
|
+
}))
|
|
175
182
|
}
|
|
176
183
|
|
|
177
184
|
async delete (peerId: PeerId) {
|
|
@@ -198,7 +205,9 @@ export class PeerStoreProtoBook implements ProtoBook {
|
|
|
198
205
|
}
|
|
199
206
|
|
|
200
207
|
if (has === true) {
|
|
201
|
-
this.
|
|
208
|
+
this.dispatchEvent(new CustomEvent(EVENT_NAME, {
|
|
209
|
+
detail: { peerId, protocols: [] }
|
|
210
|
+
}))
|
|
202
211
|
}
|
|
203
212
|
}
|
|
204
213
|
}
|