@libp2p/peer-store 2.0.0 → 3.1.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/README.md CHANGED
@@ -1,11 +1,16 @@
1
- # js-libp2p-peer-store <!-- omit in toc -->
1
+ # @libp2p/peer-store <!-- omit in toc -->
2
2
 
3
- [![test & maybe release](https://github.com/libp2p/js-libp2p-peer-store/actions/workflows/js-test-and-release.yml/badge.svg)](https://github.com/libp2p/js-libp2p-peer-store/actions/workflows/js-test-and-release.yml)
3
+ [![libp2p.io](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](http://libp2p.io/)
4
+ [![IRC](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p)
5
+ [![Discuss](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg?style=flat-square)](https://discuss.libp2p.io)
6
+ [![codecov](https://img.shields.io/codecov/c/github/libp2p/js-libp2p-peer-store.svg?style=flat-square)](https://codecov.io/gh/libp2p/js-libp2p-peer-store)
7
+ [![CI](https://img.shields.io/github/workflow/status/libp2p/js-libp2p-interfaces/test%20&%20maybe%20release/master?style=flat-square)](https://github.com/libp2p/js-libp2p-peer-store/actions/workflows/js-test-and-release.yml)
4
8
 
5
9
  > Stores information about peers libp2p knows on the network
6
10
 
7
- ## Table of Contents <!-- omit in toc -->
11
+ ## Table of contents <!-- omit in toc -->
8
12
 
13
+ - [Install](#install)
9
14
  - [Description](#description)
10
15
  - [Submitting records to the PeerStore](#submitting-records-to-the-peerstore)
11
16
  - [Identify](#identify)
@@ -26,9 +31,14 @@
26
31
  - [Events](#events)
27
32
  - [Data Persistence](#data-persistence)
28
33
  - [Future Considerations](#future-considerations)
29
- - [Installation](#installation)
30
34
  - [License](#license)
31
- - [Contribution](#contribution)
35
+ - [Contribution](#contribution)
36
+
37
+ ## Install
38
+
39
+ ```console
40
+ $ npm i @libp2p/peer-store
41
+ ```
32
42
 
33
43
  ## Description
34
44
 
@@ -41,19 +51,23 @@ The PeerStore manages the high level operations on its inner books. Moreover, th
41
51
  Several libp2p subsystems will perform operations that might gather relevant information about peers.
42
52
 
43
53
  #### Identify
54
+
44
55
  - The Identify protocol automatically runs on every connection when multiplexing is enabled. The protocol will put the multiaddrs and protocols provided by the peer to the PeerStore.
45
56
  - In the background, the Identify Service is also waiting for protocol change notifications of peers via the IdentifyPush protocol. Peers may leverage the `identify-push` message to communicate protocol changes to all connected peers, so that their PeerStore can be updated with the updated protocols.
46
57
  - While it is currently not supported in js-libp2p, future iterations may also support the [IdentifyDelta protocol](https://github.com/libp2p/specs/pull/176).
47
58
  - Taking into account that the Identify protocol records are directly from the peer, they should be considered the source of truth and weighted accordingly.
48
59
 
49
60
  #### Peer Discovery
61
+
50
62
  - Libp2p discovery protocols aim to discover new peers in the network. In a typical discovery protocol, addresses of the peer are discovered along with its peer id. Once this happens, a libp2p discovery protocol should emit a `peer` event with the information of the discovered peer and this information will be added to the PeerStore by libp2p.
51
63
 
52
64
  #### Dialer
65
+
53
66
  - Libp2p API supports dialing a peer given a `multiaddr`, and no prior knowledge of the peer. If the node is able to establish a connection with the peer, it and its multiaddr is added to the PeerStore.
54
67
  - When a connection is being upgraded, more precisely after its encryption, or even in a discovery protocol, a libp2p node can get to know other parties public keys. In this scenario, libp2p will add the peer's public key to its `KeyBook`.
55
68
 
56
69
  #### DHT
70
+
57
71
  - On some DHT operations, such as finding providers for a given CID, nodes may exchange peer data as part of the query. This passive peer discovery should result in the DHT emitting the `peer` event in the same way [Peer Discovery](#peerdiscovery) does.
58
72
 
59
73
  ### Retrieving records from the PeerStore
@@ -61,12 +75,15 @@ Several libp2p subsystems will perform operations that might gather relevant inf
61
75
  When data in the PeerStore is updated the PeerStore will emit events based on the changes, to allow applications and other subsystems to take action on those changes. Any subsystem interested in these notifications should subscribe the [`PeerStore events`][peer-store-events].
62
76
 
63
77
  #### Peer
78
+
64
79
  - Each time a new peer is discovered, the PeerStore should emit a [`peer` event][peer-store-events], so that interested parties can leverage this peer and establish a connection with it.
65
80
 
66
81
  #### Protocols
82
+
67
83
  - When the known protocols of a peer change, the PeerStore emits a [`change:protocols` event][peer-store-events].
68
84
 
69
85
  #### Multiaddrs
86
+
70
87
  - When the known listening `multiaddrs` of a peer change, the PeerStore emits a [`change:multiaddrs` event][peer-store-events].
71
88
 
72
89
  ### PeerStore implementation
@@ -173,20 +190,14 @@ Metadata is stored under the following key pattern:
173
190
  - When improving libp2p configuration for specific runtimes, we should take into account the PeerStore recommended datastore.
174
191
  - When improving libp2p configuration, we should think about a possible way of allowing the configuration of Bootstrap to be influenced by the persisted peers, as a way to decrease the load on Bootstrap nodes.
175
192
 
176
- ## Installation
177
-
178
- ```console
179
- $ npm i @libp2p/tracked-map
180
- ```
181
-
182
193
  ## License
183
194
 
184
195
  Licensed under either of
185
196
 
186
- * Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / http://www.apache.org/licenses/LICENSE-2.0)
187
- * MIT ([LICENSE-MIT](LICENSE-MIT) / http://opensource.org/licenses/MIT)
197
+ - Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / <http://www.apache.org/licenses/LICENSE-2.0>)
198
+ - MIT ([LICENSE-MIT](LICENSE-MIT) / <http://opensource.org/licenses/MIT>)
188
199
 
189
- ### Contribution
200
+ ## Contribution
190
201
 
191
202
  Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
192
203
 
@@ -70,7 +70,7 @@ export class PeerStoreAddressBook {
70
70
  // TODO: Once we have ttls for the addresses, we should merge these in
71
71
  updatedPeer = await this.store.patchOrCreate(peerId, {
72
72
  addresses,
73
- peerRecordEnvelope: envelope.marshal()
73
+ peerRecordEnvelope: envelope.marshal().subarray()
74
74
  });
75
75
  log('stored provided peer record for %p', peerRecord.peerId);
76
76
  }
@@ -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,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAOvD,MAAM,GAAG,GAAG,MAAM,CAAC,gCAAgC,CAAC,CAAA;AACpD,MAAM,UAAU,GAAG,mBAAmB,CAAA;AAEtC,KAAK,UAAU,QAAQ;IACrB,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,OAAO,oBAAoB;IAK/B,YAAa,aAAyC,EAAE,KAAY,EAAE,aAA6B;QACjG,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,QAAQ,CAAA;IAChD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CAAE,QAAkB;QACzC,GAAG,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;QACjD,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;QAE7C,IAAI,MAAM,CAAA;QACV,IAAI,IAAsB,CAAA;QAC1B,IAAI,WAAW,CAAA;QAEf,IAAI;YACF,IAAI,UAAU,CAAA;YACd,IAAI;gBACF,UAAU,GAAG,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;aAC7D;YAAC,OAAO,GAAQ,EAAE;gBACjB,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;gBACzC,OAAO,KAAK,CAAA;aACb;YAED,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;YAC1B,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAA;YAExC,gBAAgB;YAChB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACnC,GAAG,CAAC,qDAAqD,CAAC,CAAA;gBAC1D,OAAO,KAAK,CAAA;aACb;YAED,mCAAmC;YACnC,IAAI,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBACjD,OAAO,KAAK,CAAA;aACb;YAED,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAChC,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAEpC,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,EAAE;oBACnC,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;oBACvF,MAAM,YAAY,GAAG,UAAU,CAAC,kBAAkB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;oBAE1E,6DAA6D;oBAC7D,IAAI,YAAY,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,EAAE;wBAClD,GAAG,CAAC,0FAA0F,EAAE,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,CAAA;wBAC7I,OAAO,KAAK,CAAA;qBACb;iBACF;aACF;YAED,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;YAEtF,6DAA6D;YAC7D,sEAAsE;YACtE,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;gBACnD,SAAS;gBACT,kBAAkB,EAAE,QAAQ,CAAC,OAAO,EAAE;aACvC,CAAC,CAAA;YAEF,GAAG,CAAC,oCAAoC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;SAC7D;gBAAS;YACR,GAAG,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;YACjD,OAAO,EAAE,CAAA;SACV;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAA2B,UAAU,EAAE;YACvE,MAAM,EAAE;gBACN,MAAM;gBACN,UAAU,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;gBACnE,aAAa,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;aACpF;SACF,CAAC,CAAC,CAAA;QAEH,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,cAAc,CAAE,MAAc;QAClC,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChD,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAEzC,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAE1C,OAAO,IAAI,CAAC,kBAAkB,CAAA;SAC/B;QAAC,OAAO,GAAQ,EAAE;YACjB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,EAAE;gBACpC,MAAM,GAAG,CAAA;aACV;SACF;gBAAS;YACR,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;YAC7C,OAAO,EAAE,CAAA;SACV;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAE,MAAc;QACjC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QAE7C,IAAI,GAAG,IAAI,IAAI,EAAE;YACf,OAAO,SAAS,CAAA;SACjB;QAED,OAAO,MAAM,cAAc,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;IACrD,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,MAAc;QACvB,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAEjC,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;QACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;QAChD,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;QAE9B,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAE1C,OAAO,IAAI,CAAC,SAAS,CAAA;SACtB;QAAC,OAAO,GAAQ,EAAE;YACjB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,EAAE;gBACpC,MAAM,GAAG,CAAA;aACV;SACF;gBAAS;YACR,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;YAClC,OAAO,EAAE,CAAA;SACV;QAED,OAAO,EAAE,CAAA;IACX,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,MAAc,EAAE,UAAuB;QAChD,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAEjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC9B,GAAG,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;YACtD,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,2CAA2C,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;SACpG;QAED,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;QACjD,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QAE/B,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,IAAsB,CAAA;QAC1B,IAAI,WAAW,CAAA;QAEf,IAAI;YACF,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;YAEhF,2BAA2B;YAC3B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC1B,OAAM;aACP;YAED,IAAI;gBACF,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBACpC,OAAO,GAAG,IAAI,CAAA;gBAEd,IAAI,IAAI,GAAG,CAAC;oBACV,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;oBACzD,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;iBAC/D,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;oBAC/E,2CAA2C;oBAC3C,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,EAAE,SAAS,EAAE,CAAC,CAAA;YAEnE,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAA;SACrC;gBAAS;YACR,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAA;YAC1C,GAAG,CAAC,wBAAwB,CAAC,CAAA;YAC7B,OAAO,EAAE,CAAA;SACV;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAA2B,UAAU,EAAE;YACvE,MAAM,EAAE;gBACN,MAAM;gBACN,UAAU,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC7D,aAAa,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;aACpF;SACF,CAAC,CAAC,CAAA;QAEH,qCAAqC;QACrC,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAW,MAAM,EAAE;gBACnD,MAAM,EAAE;oBACN,EAAE,EAAE,MAAM;oBACV,UAAU,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;oBAC7D,SAAS,EAAE,WAAW,CAAC,SAAS;iBACjC;aACF,CAAC,CAAC,CAAA;SACJ;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAE,MAAc,EAAE,UAAuB;QAChD,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAEjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAC9B,GAAG,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;YACtD,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,2CAA2C,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;SACpG;QAED,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACjC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;QACjD,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QAE/B,IAAI,OAAO,CAAA;QACX,IAAI,IAAsB,CAAA;QAC1B,IAAI,WAAW,CAAA;QAEf,IAAI;YACF,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;YAEhF,2BAA2B;YAC3B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC1B,OAAM;aACP;YAED,IAAI;gBACF,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBACpC,OAAO,GAAG,IAAI,CAAA;gBAEd,IAAI,IAAI,GAAG,CAAC;oBACV,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;oBACzD,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;iBAC/D,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;oBACjC,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,EAAE,SAAS,EAAE,CAAC,CAAA;YAEnE,GAAG,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAA;SACvC;gBAAS;YACR,GAAG,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;YACnC,OAAO,EAAE,CAAA;SACV;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAA2B,UAAU,EAAE;YACvE,MAAM,EAAE;gBACN,MAAM;gBACN,UAAU,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC7D,aAAa,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;aACpF;SACF,CAAC,CAAC,CAAA;QAEH,qCAAqC;QACrC,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAW,MAAM,EAAE;gBACnD,MAAM,EAAE;oBACN,EAAE,EAAE,MAAM;oBACV,UAAU,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;oBAC7D,SAAS,EAAE,WAAW,CAAC,SAAS;iBACjC;aACF,CAAC,CAAC,CAAA;SACJ;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,MAAc;QAC1B,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAEjC,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;QACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;QACjD,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;QAElC,IAAI,IAAsB,CAAA;QAE1B,IAAI;YACF,IAAI;gBACF,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;aACrC;YAAC,OAAO,GAAQ,EAAE;gBACjB,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,EAAE;oBACpC,MAAM,GAAG,CAAA;iBACV;aACF;YAED,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;gBACrC,SAAS,EAAE,EAAE;aACd,CAAC,CAAA;SACH;gBAAS;YACR,GAAG,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;YACtC,OAAO,EAAE,CAAA;SACV;QAED,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAA2B,UAAU,EAAE;gBACvE,MAAM,EAAE;oBACN,MAAM;oBACN,UAAU,EAAE,EAAE;oBACd,aAAa,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC;iBACpF;aACF,CAAC,CAAC,CAAA;SACJ;IACH,CAAC;CACF;AAED,KAAK,UAAU,gBAAgB,CAAE,MAAc,EAAE,UAAuB,EAAE,aAA4B,EAAE,cAAuB,KAAK;IAClI,OAAO,MAAM,IAAI,CACf,UAAU,EACV,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE;QACrC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;YACrC,GAAG,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAA;YACvD,MAAM,OAAO,CAAC,IAAI,KAAK,CAAC,4CAA4C,CAAC,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;SACrG;IACH,CAAC,CAAC,EACF,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,MAAM,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EACvF,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE;QACpC,OAAO;YACL,SAAS,EAAE,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC9C,WAAW;SACZ,CAAA;IACH,CAAC,CAAC,EACF,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,CACpC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"address-book.js","sourceRoot":"","sources":["../../src/address-book.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from '@libp2p/interfaces/events';
2
- import type { PeerStore, AddressBook, KeyBook, MetadataBook, ProtoBook, PeerStoreEvents, PeerStoreInit, Peer } from '@libp2p/interface-peer-store';
2
+ import type { PeerStore, AddressBook, KeyBook, MetadataBook, ProtoBook, PeerStoreEvents, PeerStoreInit, Peer, TagOptions } from '@libp2p/interface-peer-store';
3
3
  import type { PeerId } from '@libp2p/interface-peer-id';
4
4
  import { Components, Initializable } from '@libp2p/components';
5
5
  /**
@@ -28,5 +28,11 @@ export declare class PersistentPeerStore extends EventEmitter<PeerStoreEvents> i
28
28
  * Returns true if we have a record of the peer
29
29
  */
30
30
  has(peerId: PeerId): Promise<boolean>;
31
+ tagPeer(peerId: PeerId, tag: string, options?: TagOptions): Promise<void>;
32
+ unTagPeer(peerId: PeerId, tag: string): Promise<void>;
33
+ getTags(peerId: PeerId): Promise<{
34
+ name: string;
35
+ value: number;
36
+ }[]>;
31
37
  }
32
38
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAMxD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAA;AAClJ,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAI9D;;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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAMxD,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAA;AAC9J,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAM9D;;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;IAanB,OAAO,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe;IA+B9D,SAAS,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAatC,OAAO,CAAE,MAAM,EAAE,MAAM;;;;CAqB9B"}
package/dist/src/index.js CHANGED
@@ -6,6 +6,8 @@ import { PeerStoreMetadataBook } from './metadata-book.js';
6
6
  import { PeerStoreProtoBook } from './proto-book.js';
7
7
  import { PersistentStore } from './store.js';
8
8
  import { Components } from '@libp2p/components';
9
+ import errCode from 'err-code';
10
+ import { Tags } from './pb/tags.js';
9
11
  const log = logger('libp2p:peer-store');
10
12
  /**
11
13
  * An implementation of PeerStore that stores data in a Datastore
@@ -94,5 +96,55 @@ export class PersistentPeerStore extends EventEmitter {
94
96
  release();
95
97
  }
96
98
  }
99
+ async tagPeer(peerId, tag, options = {}) {
100
+ const providedValue = options.value ?? 0;
101
+ const value = Math.round(providedValue);
102
+ const ttl = options.ttl ?? undefined;
103
+ if (value !== providedValue || value < 0 || value > 100) {
104
+ throw errCode(new Error('Tag value must be between 0-100'), 'ERR_TAG_VALUE_OUT_OF_BOUNDS');
105
+ }
106
+ const buf = await this.metadataBook.getValue(peerId, 'tags');
107
+ let tags = [];
108
+ if (buf != null) {
109
+ tags = Tags.decode(buf).tags;
110
+ }
111
+ for (const t of tags) {
112
+ if (t.name === tag) {
113
+ throw errCode(new Error('Peer already tagged'), 'ERR_DUPLICATE_TAG');
114
+ }
115
+ }
116
+ tags.push({
117
+ name: tag,
118
+ value,
119
+ expiry: ttl == null ? undefined : BigInt(Date.now() + ttl)
120
+ });
121
+ await this.metadataBook.setValue(peerId, 'tags', Tags.encode({ tags }).subarray());
122
+ }
123
+ async unTagPeer(peerId, tag) {
124
+ const buf = await this.metadataBook.getValue(peerId, 'tags');
125
+ let tags = [];
126
+ if (buf != null) {
127
+ tags = Tags.decode(buf).tags;
128
+ }
129
+ tags = tags.filter(t => t.name !== tag);
130
+ await this.metadataBook.setValue(peerId, 'tags', Tags.encode({ tags }).subarray());
131
+ }
132
+ async getTags(peerId) {
133
+ const buf = await this.metadataBook.getValue(peerId, 'tags');
134
+ let tags = [];
135
+ if (buf != null) {
136
+ tags = Tags.decode(buf).tags;
137
+ }
138
+ const now = BigInt(Date.now());
139
+ const unexpiredTags = tags.filter(tag => tag.expiry == null || tag.expiry > now);
140
+ if (unexpiredTags.length !== tags.length) {
141
+ // remove any expired tags
142
+ await this.metadataBook.setValue(peerId, 'tags', Tags.encode({ tags: unexpiredTags }).subarray());
143
+ }
144
+ return unexpiredTags.map(t => ({
145
+ name: t.name,
146
+ value: t.value ?? 0
147
+ }));
148
+ }
97
149
  }
98
150
  //# sourceMappingURL=index.js.map
@@ -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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"}
@@ -1,4 +1,5 @@
1
1
  import type { Codec } from 'protons-runtime';
2
+ import type { Uint8ArrayList } from 'uint8arraylist';
2
3
  export interface Peer {
3
4
  addresses: Address[];
4
5
  protocols: string[];
@@ -8,8 +9,8 @@ export interface Peer {
8
9
  }
9
10
  export declare namespace Peer {
10
11
  const codec: () => Codec<Peer>;
11
- const encode: (obj: Peer) => Uint8Array;
12
- const decode: (buf: Uint8Array) => Peer;
12
+ const encode: (obj: Peer) => Uint8ArrayList;
13
+ const decode: (buf: Uint8Array | Uint8ArrayList) => Peer;
13
14
  }
14
15
  export interface Address {
15
16
  multiaddr: Uint8Array;
@@ -17,8 +18,8 @@ export interface Address {
17
18
  }
18
19
  export declare namespace Address {
19
20
  const codec: () => Codec<Address>;
20
- const encode: (obj: Address) => Uint8Array;
21
- const decode: (buf: Uint8Array) => Address;
21
+ const encode: (obj: Address) => Uint8ArrayList;
22
+ const decode: (buf: Uint8Array | Uint8ArrayList) => Address;
22
23
  }
23
24
  export interface Metadata {
24
25
  key: string;
@@ -26,7 +27,7 @@ export interface Metadata {
26
27
  }
27
28
  export declare namespace Metadata {
28
29
  const codec: () => Codec<Metadata>;
29
- const encode: (obj: Metadata) => Uint8Array;
30
- const decode: (buf: Uint8Array) => Metadata;
30
+ const encode: (obj: Metadata) => Uint8ArrayList;
31
+ const decode: (buf: Uint8Array | Uint8ArrayList) => Metadata;
31
32
  }
32
33
  //# sourceMappingURL=peer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"peer.d.ts","sourceRoot":"","sources":["../../../src/pb/peer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAE5C,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,QAAO,MAAM,IAAI,CAQlC,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,QAAO,MAAM,OAAO,CAKrC,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,QAAO,MAAM,QAAQ,CAKtC,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":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,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,QAAO,MAAM,IAAI,CAQlC,CAAA;IAEM,MAAM,MAAM,QAAS,IAAI,KAAG,cAElC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,GAAG,cAAc,KAAG,IAEzD,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,QAAO,MAAM,OAAO,CAKrC,CAAA;IAEM,MAAM,MAAM,QAAS,OAAO,KAAG,cAErC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,GAAG,cAAc,KAAG,OAEzD,CAAA;CACF;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,UAAU,CAAA;CAClB;AAED,yBAAiB,QAAQ,CAAC;IACjB,MAAM,KAAK,QAAO,MAAM,QAAQ,CAKtC,CAAA;IAEM,MAAM,MAAM,QAAS,QAAQ,KAAG,cAEtC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,GAAG,cAAc,KAAG,QAEzD,CAAA;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"peer.js","sourceRoot":"","sources":["../../../src/pb/peer.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,oDAAoD;AAEpD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAW5F,MAAM,KAAW,IAAI,CAkBpB;AAlBD,WAAiB,IAAI;IACN,UAAK,GAAG,GAAgB,EAAE;QACrC,OAAO,OAAO,CAAO;YACnB,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YAC/D,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;YACtD,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YAC/D,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;YACnD,CAAC,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;SAChE,CAAC,CAAA;IACJ,CAAC,CAAA;IAEY,WAAM,GAAG,CAAC,GAAS,EAAc,EAAE;QAC9C,OAAO,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;IACzC,CAAC,CAAA;IAEY,WAAM,GAAG,CAAC,GAAe,EAAQ,EAAE;QAC9C,OAAO,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;IACzC,CAAC,CAAA;AACH,CAAC,EAlBgB,IAAI,KAAJ,IAAI,QAkBpB;AAOD,MAAM,KAAW,OAAO,CAevB;AAfD,WAAiB,OAAO;IACT,aAAK,GAAG,GAAmB,EAAE;QACxC,OAAO,OAAO,CAAU;YACtB,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE;YACtC,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;SACxD,CAAC,CAAA;IACJ,CAAC,CAAA;IAEY,cAAM,GAAG,CAAC,GAAY,EAAc,EAAE;QACjD,OAAO,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;IAC5C,CAAC,CAAA;IAEY,cAAM,GAAG,CAAC,GAAe,EAAW,EAAE;QACjD,OAAO,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;IAC5C,CAAC,CAAA;AACH,CAAC,EAfgB,OAAO,KAAP,OAAO,QAevB;AAOD,MAAM,KAAW,QAAQ,CAexB;AAfD,WAAiB,QAAQ;IACV,cAAK,GAAG,GAAoB,EAAE;QACzC,OAAO,OAAO,CAAW;YACvB,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;YACjC,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;SACnC,CAAC,CAAA;IACJ,CAAC,CAAA;IAEY,eAAM,GAAG,CAAC,GAAa,EAAc,EAAE;QAClD,OAAO,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAA;IAEY,eAAM,GAAG,CAAC,GAAe,EAAY,EAAE;QAClD,OAAO,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAA;AACH,CAAC,EAfgB,QAAQ,KAAR,QAAQ,QAexB"}
1
+ {"version":3,"file":"peer.js","sourceRoot":"","sources":["../../../src/pb/peer.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,oDAAoD;AAEpD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAY5F,MAAM,KAAW,IAAI,CAkBpB;AAlBD,WAAiB,IAAI;IACN,UAAK,GAAG,GAAgB,EAAE;QACrC,OAAO,OAAO,CAAO;YACnB,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YAC/D,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;YACtD,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YAC/D,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;YACnD,CAAC,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;SAChE,CAAC,CAAA;IACJ,CAAC,CAAA;IAEY,WAAM,GAAG,CAAC,GAAS,EAAkB,EAAE;QAClD,OAAO,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;IACzC,CAAC,CAAA;IAEY,WAAM,GAAG,CAAC,GAAgC,EAAQ,EAAE;QAC/D,OAAO,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;IACzC,CAAC,CAAA;AACH,CAAC,EAlBgB,IAAI,KAAJ,IAAI,QAkBpB;AAOD,MAAM,KAAW,OAAO,CAevB;AAfD,WAAiB,OAAO;IACT,aAAK,GAAG,GAAmB,EAAE;QACxC,OAAO,OAAO,CAAU;YACtB,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE;YACtC,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;SACxD,CAAC,CAAA;IACJ,CAAC,CAAA;IAEY,cAAM,GAAG,CAAC,GAAY,EAAkB,EAAE;QACrD,OAAO,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;IAC5C,CAAC,CAAA;IAEY,cAAM,GAAG,CAAC,GAAgC,EAAW,EAAE;QAClE,OAAO,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;IAC5C,CAAC,CAAA;AACH,CAAC,EAfgB,OAAO,KAAP,OAAO,QAevB;AAOD,MAAM,KAAW,QAAQ,CAexB;AAfD,WAAiB,QAAQ;IACV,cAAK,GAAG,GAAoB,EAAE;QACzC,OAAO,OAAO,CAAW;YACvB,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE;YACjC,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;SACnC,CAAC,CAAA;IACJ,CAAC,CAAA;IAEY,eAAM,GAAG,CAAC,GAAa,EAAkB,EAAE;QACtD,OAAO,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAA;IAEY,eAAM,GAAG,CAAC,GAAgC,EAAY,EAAE;QACnE,OAAO,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;IAC7C,CAAC,CAAA;AACH,CAAC,EAfgB,QAAQ,KAAR,QAAQ,QAexB"}
@@ -0,0 +1,21 @@
1
+ import type { Codec } from 'protons-runtime';
2
+ import type { Uint8ArrayList } from 'uint8arraylist';
3
+ export interface Tags {
4
+ tags: Tag[];
5
+ }
6
+ export declare namespace Tags {
7
+ const codec: () => Codec<Tags>;
8
+ const encode: (obj: Tags) => Uint8ArrayList;
9
+ const decode: (buf: Uint8Array | Uint8ArrayList) => Tags;
10
+ }
11
+ export interface Tag {
12
+ name: string;
13
+ value?: number;
14
+ expiry?: bigint;
15
+ }
16
+ export declare namespace Tag {
17
+ const codec: () => Codec<Tag>;
18
+ const encode: (obj: Tag) => Uint8ArrayList;
19
+ const decode: (buf: Uint8Array | Uint8ArrayList) => Tag;
20
+ }
21
+ //# sourceMappingURL=tags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../src/pb/tags.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,GAAG,EAAE,CAAA;CACZ;AAED,yBAAiB,IAAI,CAAC;IACb,MAAM,KAAK,QAAO,MAAM,IAAI,CAIlC,CAAA;IAEM,MAAM,MAAM,QAAS,IAAI,KAAG,cAElC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,GAAG,cAAc,KAAG,IAEzD,CAAA;CACF;AAED,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,yBAAiB,GAAG,CAAC;IACZ,MAAM,KAAK,QAAO,MAAM,GAAG,CAMjC,CAAA;IAEM,MAAM,MAAM,QAAS,GAAG,KAAG,cAEjC,CAAA;IAEM,MAAM,MAAM,QAAS,UAAU,GAAG,cAAc,KAAG,GAEzD,CAAA;CACF"}
@@ -0,0 +1,34 @@
1
+ /* eslint-disable import/export */
2
+ /* eslint-disable @typescript-eslint/no-namespace */
3
+ import { encodeMessage, decodeMessage, message, string, uint32, uint64 } from 'protons-runtime';
4
+ export var Tags;
5
+ (function (Tags) {
6
+ Tags.codec = () => {
7
+ return message({
8
+ 1: { name: 'tags', codec: Tag.codec(), repeats: true }
9
+ });
10
+ };
11
+ Tags.encode = (obj) => {
12
+ return encodeMessage(obj, Tags.codec());
13
+ };
14
+ Tags.decode = (buf) => {
15
+ return decodeMessage(buf, Tags.codec());
16
+ };
17
+ })(Tags || (Tags = {}));
18
+ export var Tag;
19
+ (function (Tag) {
20
+ Tag.codec = () => {
21
+ return message({
22
+ 1: { name: 'name', codec: string },
23
+ 2: { name: 'value', codec: uint32, optional: true },
24
+ 3: { name: 'expiry', codec: uint64, optional: true }
25
+ });
26
+ };
27
+ Tag.encode = (obj) => {
28
+ return encodeMessage(obj, Tag.codec());
29
+ };
30
+ Tag.decode = (buf) => {
31
+ return decodeMessage(buf, Tag.codec());
32
+ };
33
+ })(Tag || (Tag = {}));
34
+ //# sourceMappingURL=tags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.js","sourceRoot":"","sources":["../../../src/pb/tags.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,oDAAoD;AAEpD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAQ/F,MAAM,KAAW,IAAI,CAcpB;AAdD,WAAiB,IAAI;IACN,UAAK,GAAG,GAAgB,EAAE;QACrC,OAAO,OAAO,CAAO;YACnB,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;SACvD,CAAC,CAAA;IACJ,CAAC,CAAA;IAEY,WAAM,GAAG,CAAC,GAAS,EAAkB,EAAE;QAClD,OAAO,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;IACzC,CAAC,CAAA;IAEY,WAAM,GAAG,CAAC,GAAgC,EAAQ,EAAE;QAC/D,OAAO,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;IACzC,CAAC,CAAA;AACH,CAAC,EAdgB,IAAI,KAAJ,IAAI,QAcpB;AAQD,MAAM,KAAW,GAAG,CAgBnB;AAhBD,WAAiB,GAAG;IACL,SAAK,GAAG,GAAe,EAAE;QACpC,OAAO,OAAO,CAAM;YAClB,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YAClC,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;YACnD,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;SACrD,CAAC,CAAA;IACJ,CAAC,CAAA;IAEY,UAAM,GAAG,CAAC,GAAQ,EAAkB,EAAE;QACjD,OAAO,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;IACxC,CAAC,CAAA;IAEY,UAAM,GAAG,CAAC,GAAgC,EAAO,EAAE;QAC9D,OAAO,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;IACxC,CAAC,CAAA;AACH,CAAC,EAhBgB,GAAG,KAAH,GAAG,QAgBnB"}
package/dist/src/store.js CHANGED
@@ -93,7 +93,7 @@ export class PersistentStore {
93
93
  metadata,
94
94
  peerRecordEnvelope: peer.peerRecordEnvelope
95
95
  });
96
- await this.components.getDatastore().put(this._peerIdToDatastoreKey(peer.id), buf);
96
+ await this.components.getDatastore().put(this._peerIdToDatastoreKey(peer.id), buf.subarray());
97
97
  return await this.load(peer.id);
98
98
  }
99
99
  async patch(peerId, data) {
@@ -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": "2.0.0",
3
+ "version": "3.1.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-peer-store#readme",
@@ -28,6 +28,7 @@
28
28
  ],
29
29
  "exports": {
30
30
  ".": {
31
+ "types": "./src/index.d.ts",
31
32
  "import": "./dist/src/index.js"
32
33
  }
33
34
  },
@@ -68,15 +69,15 @@
68
69
  "release": "patch"
69
70
  },
70
71
  {
71
- "type": "chore",
72
+ "type": "docs",
72
73
  "release": "patch"
73
74
  },
74
75
  {
75
- "type": "docs",
76
+ "type": "test",
76
77
  "release": "patch"
77
78
  },
78
79
  {
79
- "type": "test",
80
+ "type": "deps",
80
81
  "release": "patch"
81
82
  },
82
83
  {
@@ -106,7 +107,11 @@
106
107
  },
107
108
  {
108
109
  "type": "docs",
109
- "section": "Trivial Changes"
110
+ "section": "Documentation"
111
+ },
112
+ {
113
+ "type": "deps",
114
+ "section": "Dependencies"
110
115
  },
111
116
  {
112
117
  "type": "test",
@@ -126,7 +131,7 @@
126
131
  "clean": "aegir clean",
127
132
  "lint": "aegir lint",
128
133
  "dep-check": "aegir dep-check",
129
- "generate": "protons src/pb/peer.proto",
134
+ "generate": "protons src/pb/peer.proto src/pb/tags.proto",
130
135
  "build": "aegir build",
131
136
  "test": "aegir test",
132
137
  "test:chrome": "aegir test -t browser --cov",
@@ -138,15 +143,15 @@
138
143
  "release": "aegir release"
139
144
  },
140
145
  "dependencies": {
141
- "@libp2p/components": "^1.0.0",
146
+ "@libp2p/components": "^2.0.0",
142
147
  "@libp2p/interface-peer-id": "^1.0.2",
143
148
  "@libp2p/interface-peer-info": "^1.0.1",
144
- "@libp2p/interface-peer-store": "^1.0.0",
145
- "@libp2p/interface-record": "^1.0.1",
149
+ "@libp2p/interface-peer-store": "^1.1.0",
150
+ "@libp2p/interface-record": "^2.0.0",
146
151
  "@libp2p/interfaces": "^3.0.2",
147
- "@libp2p/logger": "^1.1.6",
152
+ "@libp2p/logger": "^2.0.0",
148
153
  "@libp2p/peer-id": "^1.1.0",
149
- "@libp2p/peer-record": "^2.0.0",
154
+ "@libp2p/peer-record": "^4.0.0",
150
155
  "@multiformats/multiaddr": "^10.2.0",
151
156
  "err-code": "^3.0.1",
152
157
  "interface-datastore": "^6.1.0",
@@ -157,18 +162,20 @@
157
162
  "it-pipe": "^2.0.3",
158
163
  "mortice": "^3.0.0",
159
164
  "multiformats": "^9.6.3",
160
- "protons-runtime": "^1.0.4",
161
- "uint8arrays": "^3.0.0"
165
+ "protons-runtime": "^2.0.2",
166
+ "uint8arraylist": "^2.1.1",
167
+ "uint8arrays": "^3.1.0"
162
168
  },
163
169
  "devDependencies": {
164
- "@libp2p/interface-compliance-tests": "^2.0.0",
170
+ "@libp2p/interface-compliance-tests": "^3.0.1",
165
171
  "@libp2p/peer-id-factory": "^1.0.0",
166
- "@libp2p/utils": "^1.0.9",
167
- "aegir": "^37.0.7",
172
+ "@libp2p/utils": "^3.0.0",
173
+ "aegir": "^37.4.0",
168
174
  "datastore-core": "^7.0.1",
175
+ "delay": "^5.0.0",
169
176
  "p-defer": "^4.0.0",
170
- "p-wait-for": "^4.1.0",
171
- "protons": "^3.0.4",
177
+ "p-wait-for": "^5.0.0",
178
+ "protons": "^4.0.1",
172
179
  "sinon": "^14.0.0"
173
180
  }
174
181
  }
@@ -92,7 +92,7 @@ export class PeerStoreAddressBook {
92
92
  // TODO: Once we have ttls for the addresses, we should merge these in
93
93
  updatedPeer = await this.store.patchOrCreate(peerId, {
94
94
  addresses,
95
- peerRecordEnvelope: envelope.marshal()
95
+ peerRecordEnvelope: envelope.marshal().subarray()
96
96
  })
97
97
 
98
98
  log('stored provided peer record for %p', peerRecord.peerId)
package/src/index.ts CHANGED
@@ -5,9 +5,11 @@ 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, AddressBook, KeyBook, MetadataBook, ProtoBook, PeerStoreEvents, PeerStoreInit, Peer } from '@libp2p/interface-peer-store'
8
+ import type { PeerStore, AddressBook, KeyBook, MetadataBook, ProtoBook, PeerStoreEvents, PeerStoreInit, Peer, TagOptions } from '@libp2p/interface-peer-store'
9
9
  import type { PeerId } from '@libp2p/interface-peer-id'
10
10
  import { Components, Initializable } from '@libp2p/components'
11
+ import errCode from 'err-code'
12
+ import { Tag, Tags } from './pb/tags.js'
11
13
 
12
14
  const log = logger('libp2p:peer-store')
13
15
 
@@ -115,4 +117,70 @@ export class PersistentPeerStore extends EventEmitter<PeerStoreEvents> implement
115
117
  release()
116
118
  }
117
119
  }
120
+
121
+ async tagPeer (peerId: PeerId, tag: string, options: TagOptions = {}) {
122
+ const providedValue = options.value ?? 0
123
+ const value = Math.round(providedValue)
124
+ const ttl = options.ttl ?? undefined
125
+
126
+ if (value !== providedValue || value < 0 || value > 100) {
127
+ throw errCode(new Error('Tag value must be between 0-100'), 'ERR_TAG_VALUE_OUT_OF_BOUNDS')
128
+ }
129
+
130
+ const buf = await this.metadataBook.getValue(peerId, 'tags')
131
+ let tags: Tag[] = []
132
+
133
+ if (buf != null) {
134
+ tags = Tags.decode(buf).tags
135
+ }
136
+
137
+ for (const t of tags) {
138
+ if (t.name === tag) {
139
+ throw errCode(new Error('Peer already tagged'), 'ERR_DUPLICATE_TAG')
140
+ }
141
+ }
142
+
143
+ tags.push({
144
+ name: tag,
145
+ value,
146
+ expiry: ttl == null ? undefined : BigInt(Date.now() + ttl)
147
+ })
148
+
149
+ await this.metadataBook.setValue(peerId, 'tags', Tags.encode({ tags }).subarray())
150
+ }
151
+
152
+ async unTagPeer (peerId: PeerId, tag: string) {
153
+ const buf = await this.metadataBook.getValue(peerId, 'tags')
154
+ let tags: Tag[] = []
155
+
156
+ if (buf != null) {
157
+ tags = Tags.decode(buf).tags
158
+ }
159
+
160
+ tags = tags.filter(t => t.name !== tag)
161
+
162
+ await this.metadataBook.setValue(peerId, 'tags', Tags.encode({ tags }).subarray())
163
+ }
164
+
165
+ async getTags (peerId: PeerId) {
166
+ const buf = await this.metadataBook.getValue(peerId, 'tags')
167
+ let tags: Tag[] = []
168
+
169
+ if (buf != null) {
170
+ tags = Tags.decode(buf).tags
171
+ }
172
+
173
+ const now = BigInt(Date.now())
174
+ const unexpiredTags = tags.filter(tag => tag.expiry == null || tag.expiry > now)
175
+
176
+ if (unexpiredTags.length !== tags.length) {
177
+ // remove any expired tags
178
+ await this.metadataBook.setValue(peerId, 'tags', Tags.encode({ tags: unexpiredTags }).subarray())
179
+ }
180
+
181
+ return unexpiredTags.map(t => ({
182
+ name: t.name,
183
+ value: t.value ?? 0
184
+ }))
185
+ }
118
186
  }
package/src/pb/peer.ts CHANGED
@@ -3,6 +3,7 @@
3
3
 
4
4
  import { encodeMessage, decodeMessage, message, string, bytes, bool } from 'protons-runtime'
5
5
  import type { Codec } from 'protons-runtime'
6
+ import type { Uint8ArrayList } from 'uint8arraylist'
6
7
 
7
8
  export interface Peer {
8
9
  addresses: Address[]
@@ -23,11 +24,11 @@ export namespace Peer {
23
24
  })
24
25
  }
25
26
 
26
- export const encode = (obj: Peer): Uint8Array => {
27
+ export const encode = (obj: Peer): Uint8ArrayList => {
27
28
  return encodeMessage(obj, Peer.codec())
28
29
  }
29
30
 
30
- export const decode = (buf: Uint8Array): Peer => {
31
+ export const decode = (buf: Uint8Array | Uint8ArrayList): Peer => {
31
32
  return decodeMessage(buf, Peer.codec())
32
33
  }
33
34
  }
@@ -45,11 +46,11 @@ export namespace Address {
45
46
  })
46
47
  }
47
48
 
48
- export const encode = (obj: Address): Uint8Array => {
49
+ export const encode = (obj: Address): Uint8ArrayList => {
49
50
  return encodeMessage(obj, Address.codec())
50
51
  }
51
52
 
52
- export const decode = (buf: Uint8Array): Address => {
53
+ export const decode = (buf: Uint8Array | Uint8ArrayList): Address => {
53
54
  return decodeMessage(buf, Address.codec())
54
55
  }
55
56
  }
@@ -67,11 +68,11 @@ export namespace Metadata {
67
68
  })
68
69
  }
69
70
 
70
- export const encode = (obj: Metadata): Uint8Array => {
71
+ export const encode = (obj: Metadata): Uint8ArrayList => {
71
72
  return encodeMessage(obj, Metadata.codec())
72
73
  }
73
74
 
74
- export const decode = (buf: Uint8Array): Metadata => {
75
+ export const decode = (buf: Uint8Array | Uint8ArrayList): Metadata => {
75
76
  return decodeMessage(buf, Metadata.codec())
76
77
  }
77
78
  }
@@ -0,0 +1,11 @@
1
+ syntax = "proto3";
2
+
3
+ message Tags {
4
+ repeated Tag tags = 1;
5
+ }
6
+
7
+ message Tag {
8
+ string name = 1; // e.g. 'priority'
9
+ optional uint32 value = 2; // tag value 0-100
10
+ optional uint64 expiry = 3; // ms timestamp after which the tag is no longer valid
11
+ }
package/src/pb/tags.ts ADDED
@@ -0,0 +1,50 @@
1
+ /* eslint-disable import/export */
2
+ /* eslint-disable @typescript-eslint/no-namespace */
3
+
4
+ import { encodeMessage, decodeMessage, message, string, uint32, uint64 } from 'protons-runtime'
5
+ import type { Codec } from 'protons-runtime'
6
+ import type { Uint8ArrayList } from 'uint8arraylist'
7
+
8
+ export interface Tags {
9
+ tags: Tag[]
10
+ }
11
+
12
+ export namespace Tags {
13
+ export const codec = (): Codec<Tags> => {
14
+ return message<Tags>({
15
+ 1: { name: 'tags', codec: Tag.codec(), repeats: true }
16
+ })
17
+ }
18
+
19
+ export const encode = (obj: Tags): Uint8ArrayList => {
20
+ return encodeMessage(obj, Tags.codec())
21
+ }
22
+
23
+ export const decode = (buf: Uint8Array | Uint8ArrayList): Tags => {
24
+ return decodeMessage(buf, Tags.codec())
25
+ }
26
+ }
27
+
28
+ export interface Tag {
29
+ name: string
30
+ value?: number
31
+ expiry?: bigint
32
+ }
33
+
34
+ export namespace Tag {
35
+ export const codec = (): Codec<Tag> => {
36
+ return message<Tag>({
37
+ 1: { name: 'name', codec: string },
38
+ 2: { name: 'value', codec: uint32, optional: true },
39
+ 3: { name: 'expiry', codec: uint64, optional: true }
40
+ })
41
+ }
42
+
43
+ export const encode = (obj: Tag): Uint8ArrayList => {
44
+ return encodeMessage(obj, Tag.codec())
45
+ }
46
+
47
+ export const decode = (buf: Uint8Array | Uint8ArrayList): Tag => {
48
+ return decodeMessage(buf, Tag.codec())
49
+ }
50
+ }
package/src/store.ts CHANGED
@@ -133,7 +133,7 @@ export class PersistentStore {
133
133
  peerRecordEnvelope: peer.peerRecordEnvelope
134
134
  })
135
135
 
136
- await this.components.getDatastore().put(this._peerIdToDatastoreKey(peer.id), buf)
136
+ await this.components.getDatastore().put(this._peerIdToDatastoreKey(peer.id), buf.subarray())
137
137
 
138
138
  return await this.load(peer.id)
139
139
  }