@libp2p/peer-store 1.0.8 → 1.0.11

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.
@@ -1,18 +1,19 @@
1
1
  import { EventEmitter } from '@libp2p/interfaces';
2
2
  import type { PeerStore, AddressBook, KeyBook, MetadataBook, ProtoBook, PeerStoreEvents, PeerStoreInit, Peer } from '@libp2p/interfaces/peer-store';
3
3
  import type { PeerId } from '@libp2p/interfaces/peer-id';
4
- import type { Components } from '@libp2p/interfaces/components';
4
+ import { Components, Initializable } from '@libp2p/interfaces/components';
5
5
  /**
6
6
  * An implementation of PeerStore that stores data in a Datastore
7
7
  */
8
- export declare class PersistentPeerStore extends EventEmitter<PeerStoreEvents> implements PeerStore {
8
+ export declare class PersistentPeerStore extends EventEmitter<PeerStoreEvents> implements PeerStore, Initializable {
9
9
  addressBook: AddressBook;
10
10
  keyBook: KeyBook;
11
11
  metadataBook: MetadataBook;
12
12
  protoBook: ProtoBook;
13
- private readonly components;
13
+ private components;
14
14
  private readonly store;
15
- constructor(components: Components, init?: PeerStoreInit);
15
+ constructor(init?: PeerStoreInit);
16
+ init(components: Components): void;
16
17
  forEach(fn: (peer: Peer) => void): Promise<void>;
17
18
  all(): Promise<Peer[]>;
18
19
  /**
@@ -1 +1 @@
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,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AACnJ,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAI/D;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,YAAY,CAAC,eAAe,CAAE,YAAW,SAAS;IAClF,WAAW,EAAE,WAAW,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IAE3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;gBAEhB,UAAU,EAAE,UAAU,EAAE,IAAI,GAAE,aAAkB;IAYvD,OAAO,CAAE,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI;IAoBjC,GAAG,IAAK,OAAO,CAAC,IAAI,EAAE,CAAC;IAU7B;;OAEG;IACG,MAAM,CAAE,MAAM,EAAE,MAAM;IAa5B;;OAEG;IACG,GAAG,CAAE,MAAM,EAAE,MAAM;IAazB;;OAEG;IACG,GAAG,CAAE,MAAM,EAAE,MAAM;CAY1B"}
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,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AACnJ,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAIzE;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,YAAY,CAAC,eAAe,CAAE,YAAW,SAAS,EAAE,aAAa;IACjG,WAAW,EAAE,WAAW,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IAE3B,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;gBAEhB,IAAI,GAAE,aAAkB;IAUrC,IAAI,CAAE,UAAU,EAAE,UAAU;IAKtB,OAAO,CAAE,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI;IAoBjC,GAAG,IAAK,OAAO,CAAC,IAAI,EAAE,CAAC;IAU7B;;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
@@ -5,20 +5,25 @@ 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 } from './store.js';
8
+ import { Components } from '@libp2p/interfaces/components';
8
9
  const log = logger('libp2p:peer-store');
9
10
  /**
10
11
  * An implementation of PeerStore that stores data in a Datastore
11
12
  */
12
13
  export class PersistentPeerStore extends EventEmitter {
13
- constructor(components, init = {}) {
14
+ constructor(init = {}) {
14
15
  super();
15
- this.components = components;
16
- this.store = new PersistentStore(components.getDatastore());
17
- this.addressBook = new PeerStoreAddressBook(this.dispatchEvent.bind(this), this.store, init.addressFilter ?? components.getConnectionGater().filterMultiaddrForPeer);
16
+ this.components = new Components();
17
+ this.store = new PersistentStore();
18
+ this.addressBook = new PeerStoreAddressBook(this.dispatchEvent.bind(this), this.store, init.addressFilter);
18
19
  this.keyBook = new PeerStoreKeyBook(this.dispatchEvent.bind(this), this.store);
19
20
  this.metadataBook = new PeerStoreMetadataBook(this.dispatchEvent.bind(this), this.store);
20
21
  this.protoBook = new PeerStoreProtoBook(this.dispatchEvent.bind(this), this.store);
21
22
  }
23
+ init(components) {
24
+ this.components = components;
25
+ this.store.init(components);
26
+ }
22
27
  async forEach(fn) {
23
28
  log.trace('getPeers await read lock');
24
29
  const release = await this.store.lock.readLock();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export interface Peer {
6
6
  peerRecordEnvelope?: Uint8Array;
7
7
  }
8
8
  export declare namespace Peer {
9
- const codec: () => import("protons-runtime/dist/src/codecs/codec").Codec<Peer>;
9
+ const codec: () => import("protons-runtime").Codec<Peer>;
10
10
  const encode: (obj: Peer) => Uint8Array;
11
11
  const decode: (buf: Uint8Array) => Peer;
12
12
  }
@@ -15,7 +15,7 @@ export interface Address {
15
15
  isCertified?: boolean;
16
16
  }
17
17
  export declare namespace Address {
18
- const codec: () => import("protons-runtime/dist/src/codecs/codec").Codec<Address>;
18
+ const codec: () => import("protons-runtime").Codec<Address>;
19
19
  const encode: (obj: Address) => Uint8Array;
20
20
  const decode: (buf: Uint8Array) => Address;
21
21
  }
@@ -24,7 +24,7 @@ export interface Metadata {
24
24
  value: Uint8Array;
25
25
  }
26
26
  export declare namespace Metadata {
27
- const codec: () => import("protons-runtime/dist/src/codecs/codec").Codec<Metadata>;
27
+ const codec: () => import("protons-runtime").Codec<Metadata>;
28
28
  const encode: (obj: Metadata) => Uint8Array;
29
29
  const decode: (buf: Uint8Array) => Metadata;
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../../src/pb/peer.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,IAAI;IACnB,SAAS,EAAE,OAAO,EAAE,CAAA;IACpB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,QAAQ,EAAE,QAAQ,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,kBAAkB,CAAC,EAAE,UAAU,CAAA;CAChC;AAED,yBAAiB,IAAI,CAAC;IACb,MAAM,KAAK,mEAQjB,CAAA;IAEM,MAAM,MAAM,QAAS,IAAI,KAAG,UAElC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,KAAG,IAExC,CAAA;CACF;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,UAAU,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,yBAAiB,OAAO,CAAC;IAChB,MAAM,KAAK,sEAKjB,CAAA;IAEM,MAAM,MAAM,QAAS,OAAO,KAAG,UAErC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,KAAG,OAExC,CAAA;CACF;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,UAAU,CAAA;CAClB;AAED,yBAAiB,QAAQ,CAAC;IACjB,MAAM,KAAK,uEAKjB,CAAA;IAEM,MAAM,MAAM,QAAS,QAAQ,KAAG,UAEtC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,KAAG,QAExC,CAAA;CACF"}
1
+ {"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../../src/pb/peer.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,IAAI;IACnB,SAAS,EAAE,OAAO,EAAE,CAAA;IACpB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,QAAQ,EAAE,QAAQ,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,kBAAkB,CAAC,EAAE,UAAU,CAAA;CAChC;AAED,yBAAiB,IAAI,CAAC;IACb,MAAM,KAAK,6CAQjB,CAAA;IAEM,MAAM,MAAM,QAAS,IAAI,KAAG,UAElC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,KAAG,IAExC,CAAA;CACF;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,UAAU,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,yBAAiB,OAAO,CAAC;IAChB,MAAM,KAAK,gDAKjB,CAAA;IAEM,MAAM,MAAM,QAAS,OAAO,KAAG,UAErC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,KAAG,OAExC,CAAA;CACF;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,UAAU,CAAA;CAClB;AAED,yBAAiB,QAAQ,CAAC;IACjB,MAAM,KAAK,iDAKjB,CAAA;IAEM,MAAM,MAAM,QAAS,QAAQ,KAAG,UAEtC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,KAAG,QAExC,CAAA;CACF"}
@@ -1,7 +1,7 @@
1
1
  import { Key } from 'interface-datastore/key';
2
2
  import type { Peer } from '@libp2p/interfaces/peer-store';
3
- import type { Datastore } from 'interface-datastore';
4
3
  import type { PeerId } from '@libp2p/interfaces/peer-id';
4
+ import { Components } from '@libp2p/interfaces/components';
5
5
  export interface Store {
6
6
  has: (peerId: PeerId) => Promise<boolean>;
7
7
  save: (peer: Peer) => Promise<Peer>;
@@ -18,9 +18,10 @@ export interface Store {
18
18
  };
19
19
  }
20
20
  export declare class PersistentStore {
21
- private readonly datastore;
21
+ private components;
22
22
  lock: any;
23
- constructor(datastore: Datastore);
23
+ constructor();
24
+ init(components: Components): void;
24
25
  _peerIdToDatastoreKey(peerId: PeerId): Key;
25
26
  has(peerId: PeerId): Promise<boolean>;
26
27
  delete(peerId: PeerId): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAA;AAM7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAMxD,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACzC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrE,GAAG,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,CAAA;IAE9B,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;QACnC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;KACrC,CAAA;CACF;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IAC9B,IAAI,EAAE,GAAG,CAAA;gBAEH,SAAS,EAAE,SAAS;IAQjC,qBAAqB,CAAE,MAAM,EAAE,MAAM;IAU/B,GAAG,CAAE,MAAM,EAAE,MAAM;IAInB,MAAM,CAAE,MAAM,EAAE,MAAM;IAItB,IAAI,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBpC,IAAI,CAAE,IAAI,EAAE,IAAI;IAgDhB,KAAK,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAM1C,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAgBlD,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI;IAQvD,KAAK,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAM1C,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAiBlD,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI;IAuCrD,GAAG;CAWZ"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAA;AAM7C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAA;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAM1D,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACzC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7D,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrE,GAAG,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,CAAA;IAE9B,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;QACnC,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;KACrC,CAAA;CACF;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAA+B;IAC1C,IAAI,EAAE,GAAG,CAAA;;IAShB,IAAI,CAAE,UAAU,EAAE,UAAU;IAI5B,qBAAqB,CAAE,MAAM,EAAE,MAAM;IAU/B,GAAG,CAAE,MAAM,EAAE,MAAM;IAInB,MAAM,CAAE,MAAM,EAAE,MAAM;IAItB,IAAI,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBpC,IAAI,CAAE,IAAI,EAAE,IAAI;IAgDhB,KAAK,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAM1C,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAgBlD,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI;IAQvD,KAAK,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAM1C,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAiBlD,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI;IAuCrD,GAAG;CAWZ"}
package/dist/src/store.js CHANGED
@@ -8,32 +8,36 @@ import { Multiaddr } from '@multiformats/multiaddr';
8
8
  import { Peer as PeerPB } from './pb/peer.js';
9
9
  import mortice from 'mortice';
10
10
  import { equals as uint8arrayEquals } from 'uint8arrays/equals';
11
+ import { Components } from '@libp2p/interfaces/components';
11
12
  const log = logger('libp2p:peer-store:store');
12
13
  const NAMESPACE_COMMON = '/peers/';
13
14
  export class PersistentStore {
14
- constructor(datastore) {
15
- this.datastore = datastore;
15
+ constructor() {
16
+ this.components = new Components();
16
17
  this.lock = mortice({
17
18
  name: 'peer-store',
18
19
  singleProcess: true
19
20
  });
20
21
  }
22
+ init(components) {
23
+ this.components = components;
24
+ }
21
25
  _peerIdToDatastoreKey(peerId) {
22
26
  if (peerId.type == null) {
23
27
  log.error('peerId must be an instance of peer-id to store data');
24
28
  throw errcode(new Error('peerId must be an instance of peer-id'), codes.ERR_INVALID_PARAMETERS);
25
29
  }
26
- const b32key = base32.encode(peerId.toBytes());
30
+ const b32key = peerId.toCID().toString();
27
31
  return new Key(`${NAMESPACE_COMMON}${b32key}`);
28
32
  }
29
33
  async has(peerId) {
30
- return await this.datastore.has(this._peerIdToDatastoreKey(peerId));
34
+ return await this.components.getDatastore().has(this._peerIdToDatastoreKey(peerId));
31
35
  }
32
36
  async delete(peerId) {
33
- await this.datastore.delete(this._peerIdToDatastoreKey(peerId));
37
+ await this.components.getDatastore().delete(this._peerIdToDatastoreKey(peerId));
34
38
  }
35
39
  async load(peerId) {
36
- const buf = await this.datastore.get(this._peerIdToDatastoreKey(peerId));
40
+ const buf = await this.components.getDatastore().get(this._peerIdToDatastoreKey(peerId));
37
41
  const peer = PeerPB.decode(buf);
38
42
  const metadata = new Map();
39
43
  for (const meta of peer.metadata) {
@@ -89,7 +93,7 @@ export class PersistentStore {
89
93
  metadata,
90
94
  peerRecordEnvelope: peer.peerRecordEnvelope
91
95
  });
92
- await this.datastore.put(this._peerIdToDatastoreKey(peer.id), buf);
96
+ await this.components.getDatastore().put(this._peerIdToDatastoreKey(peer.id), buf);
93
97
  return await this.load(peer.id);
94
98
  }
95
99
  async patch(peerId, data) {
@@ -168,7 +172,7 @@ export class PersistentStore {
168
172
  });
169
173
  }
170
174
  async *all() {
171
- for await (const key of this.datastore.queryKeys({
175
+ for await (const key of this.components.getDatastore().queryKeys({
172
176
  prefix: NAMESPACE_COMMON
173
177
  })) {
174
178
  // /peers/${peer-id-as-libp2p-key-cid-string-in-base-32}
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store.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.8",
3
+ "version": "1.0.11",
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",
@@ -139,8 +139,10 @@
139
139
  "dependencies": {
140
140
  "@libp2p/interfaces": "^1.3.0",
141
141
  "@libp2p/logger": "^1.1.0",
142
+ "@libp2p/peer-id": "^1.1.0",
142
143
  "@libp2p/peer-record": "^1.0.0",
143
144
  "@multiformats/multiaddr": "^10.1.5",
145
+ "err-code": "^3.0.1",
144
146
  "interface-datastore": "^6.1.0",
145
147
  "it-all": "^1.0.6",
146
148
  "it-filter": "^1.0.3",
@@ -149,20 +151,18 @@
149
151
  "it-pipe": "^2.0.3",
150
152
  "mortice": "^3.0.0",
151
153
  "multiformats": "^9.6.3",
152
- "protons-runtime": "^1.0.2"
154
+ "protons-runtime": "^1.0.2",
155
+ "uint8arrays": "^3.0.0"
153
156
  },
154
157
  "devDependencies": {
155
158
  "@libp2p/interface-compliance-tests": "^1.1.0",
156
- "@libp2p/peer-id": "^1.1.0",
157
159
  "@libp2p/peer-id-factory": "^1.0.0",
158
160
  "@libp2p/utils": "^1.0.9",
159
161
  "aegir": "^37.0.7",
160
162
  "datastore-core": "^7.0.1",
161
- "err-code": "^3.0.1",
162
163
  "p-defer": "^4.0.0",
163
164
  "p-wait-for": "^4.1.0",
164
165
  "protons": "^3.0.2",
165
- "sinon": "^13.0.1",
166
- "uint8arrays": "^3.0.0"
166
+ "sinon": "^13.0.1"
167
167
  }
168
168
  }
package/src/index.ts CHANGED
@@ -7,34 +7,37 @@ import { PeerStoreProtoBook } from './proto-book.js'
7
7
  import { PersistentStore, Store } from './store.js'
8
8
  import type { PeerStore, AddressBook, KeyBook, MetadataBook, ProtoBook, PeerStoreEvents, PeerStoreInit, Peer } from '@libp2p/interfaces/peer-store'
9
9
  import type { PeerId } from '@libp2p/interfaces/peer-id'
10
- import type { Components } from '@libp2p/interfaces/components'
10
+ import { Components, Initializable } from '@libp2p/interfaces/components'
11
11
 
12
12
  const log = logger('libp2p:peer-store')
13
13
 
14
14
  /**
15
15
  * An implementation of PeerStore that stores data in a Datastore
16
16
  */
17
- export class PersistentPeerStore extends EventEmitter<PeerStoreEvents> implements PeerStore {
17
+ export class PersistentPeerStore extends EventEmitter<PeerStoreEvents> implements PeerStore, Initializable {
18
18
  public addressBook: AddressBook
19
19
  public keyBook: KeyBook
20
20
  public metadataBook: MetadataBook
21
21
  public protoBook: ProtoBook
22
22
 
23
- private readonly components: Components
23
+ private components: Components = new Components()
24
24
  private readonly store: Store
25
25
 
26
- constructor (components: Components, init: PeerStoreInit = {}) {
26
+ constructor (init: PeerStoreInit = {}) {
27
27
  super()
28
28
 
29
- this.components = components
30
- this.store = new PersistentStore(components.getDatastore())
31
-
32
- this.addressBook = new PeerStoreAddressBook(this.dispatchEvent.bind(this), this.store, init.addressFilter ?? components.getConnectionGater().filterMultiaddrForPeer)
29
+ this.store = new PersistentStore()
30
+ this.addressBook = new PeerStoreAddressBook(this.dispatchEvent.bind(this), this.store, init.addressFilter)
33
31
  this.keyBook = new PeerStoreKeyBook(this.dispatchEvent.bind(this), this.store)
34
32
  this.metadataBook = new PeerStoreMetadataBook(this.dispatchEvent.bind(this), this.store)
35
33
  this.protoBook = new PeerStoreProtoBook(this.dispatchEvent.bind(this), this.store)
36
34
  }
37
35
 
36
+ init (components: Components) {
37
+ this.components = components
38
+ ;(this.store as PersistentStore).init(components)
39
+ }
40
+
38
41
  async forEach (fn: (peer: Peer) => void) {
39
42
  log.trace('getPeers await read lock')
40
43
  const release = await this.store.lock.readLock()
package/src/store.ts CHANGED
@@ -9,8 +9,8 @@ import { Metadata, Peer as PeerPB } from './pb/peer.js'
9
9
  import mortice from 'mortice'
10
10
  import { equals as uint8arrayEquals } from 'uint8arrays/equals'
11
11
  import type { Peer } from '@libp2p/interfaces/peer-store'
12
- import type { Datastore } from 'interface-datastore'
13
12
  import type { PeerId } from '@libp2p/interfaces/peer-id'
13
+ import { Components } from '@libp2p/interfaces/components'
14
14
 
15
15
  const log = logger('libp2p:peer-store:store')
16
16
 
@@ -34,37 +34,40 @@ export interface Store {
34
34
  }
35
35
 
36
36
  export class PersistentStore {
37
- private readonly datastore: Datastore
37
+ private components: Components = new Components()
38
38
  public lock: any
39
39
 
40
- constructor (datastore: Datastore) {
41
- this.datastore = datastore
40
+ constructor () {
42
41
  this.lock = mortice({
43
42
  name: 'peer-store',
44
43
  singleProcess: true
45
44
  })
46
45
  }
47
46
 
47
+ init (components: Components) {
48
+ this.components = components
49
+ }
50
+
48
51
  _peerIdToDatastoreKey (peerId: PeerId) {
49
52
  if (peerId.type == null) {
50
53
  log.error('peerId must be an instance of peer-id to store data')
51
54
  throw errcode(new Error('peerId must be an instance of peer-id'), codes.ERR_INVALID_PARAMETERS)
52
55
  }
53
56
 
54
- const b32key = base32.encode(peerId.toBytes())
57
+ const b32key = peerId.toCID().toString()
55
58
  return new Key(`${NAMESPACE_COMMON}${b32key}`)
56
59
  }
57
60
 
58
61
  async has (peerId: PeerId) {
59
- return await this.datastore.has(this._peerIdToDatastoreKey(peerId))
62
+ return await this.components.getDatastore().has(this._peerIdToDatastoreKey(peerId))
60
63
  }
61
64
 
62
65
  async delete (peerId: PeerId) {
63
- await this.datastore.delete(this._peerIdToDatastoreKey(peerId))
66
+ await this.components.getDatastore().delete(this._peerIdToDatastoreKey(peerId))
64
67
  }
65
68
 
66
69
  async load (peerId: PeerId): Promise<Peer> {
67
- const buf = await this.datastore.get(this._peerIdToDatastoreKey(peerId))
70
+ const buf = await this.components.getDatastore().get(this._peerIdToDatastoreKey(peerId))
68
71
  const peer = PeerPB.decode(buf)
69
72
  const metadata = new Map()
70
73
 
@@ -130,7 +133,7 @@ export class PersistentStore {
130
133
  peerRecordEnvelope: peer.peerRecordEnvelope
131
134
  })
132
135
 
133
- await this.datastore.put(this._peerIdToDatastoreKey(peer.id), buf)
136
+ await this.components.getDatastore().put(this._peerIdToDatastoreKey(peer.id), buf)
134
137
 
135
138
  return await this.load(peer.id)
136
139
  }
@@ -228,7 +231,7 @@ export class PersistentStore {
228
231
  }
229
232
 
230
233
  async * all () {
231
- for await (const key of this.datastore.queryKeys({
234
+ for await (const key of this.components.getDatastore().queryKeys({
232
235
  prefix: NAMESPACE_COMMON
233
236
  })) {
234
237
  // /peers/${peer-id-as-libp2p-key-cid-string-in-base-32}