@libp2p/kad-dht 11.0.8 → 12.0.0-28587d24f

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.
Files changed (137) hide show
  1. package/README.md +78 -0
  2. package/dist/index.min.js +20 -20
  3. package/dist/src/constants.d.ts +2 -4
  4. package/dist/src/constants.d.ts.map +1 -1
  5. package/dist/src/constants.js +7 -9
  6. package/dist/src/constants.js.map +1 -1
  7. package/dist/src/content-fetching/index.d.ts +7 -7
  8. package/dist/src/content-fetching/index.d.ts.map +1 -1
  9. package/dist/src/content-fetching/index.js +13 -7
  10. package/dist/src/content-fetching/index.js.map +1 -1
  11. package/dist/src/content-routing/index.d.ts +5 -4
  12. package/dist/src/content-routing/index.d.ts.map +1 -1
  13. package/dist/src/content-routing/index.js +23 -13
  14. package/dist/src/content-routing/index.js.map +1 -1
  15. package/dist/src/index.d.ts +142 -28
  16. package/dist/src/index.d.ts.map +1 -1
  17. package/dist/src/index.js +87 -2
  18. package/dist/src/index.js.map +1 -1
  19. package/dist/src/kad-dht.d.ts +20 -21
  20. package/dist/src/kad-dht.d.ts.map +1 -1
  21. package/dist/src/kad-dht.js +181 -35
  22. package/dist/src/kad-dht.js.map +1 -1
  23. package/dist/src/message/dht.d.ts +35 -35
  24. package/dist/src/message/dht.d.ts.map +1 -1
  25. package/dist/src/message/dht.js +150 -130
  26. package/dist/src/message/dht.js.map +1 -1
  27. package/dist/src/message/utils.d.ts +5 -0
  28. package/dist/src/message/utils.d.ts.map +1 -0
  29. package/dist/src/message/utils.js +20 -0
  30. package/dist/src/message/utils.js.map +1 -0
  31. package/dist/src/network.d.ts +8 -8
  32. package/dist/src/network.d.ts.map +1 -1
  33. package/dist/src/network.js +30 -18
  34. package/dist/src/network.js.map +1 -1
  35. package/dist/src/peer-routing/index.d.ts +6 -6
  36. package/dist/src/peer-routing/index.d.ts.map +1 -1
  37. package/dist/src/peer-routing/index.js +48 -35
  38. package/dist/src/peer-routing/index.js.map +1 -1
  39. package/dist/src/providers.d.ts +7 -0
  40. package/dist/src/providers.d.ts.map +1 -1
  41. package/dist/src/providers.js.map +1 -1
  42. package/dist/src/query/events.d.ts +13 -12
  43. package/dist/src/query/events.d.ts.map +1 -1
  44. package/dist/src/query/events.js +2 -2
  45. package/dist/src/query/events.js.map +1 -1
  46. package/dist/src/query/manager.d.ts +8 -5
  47. package/dist/src/query/manager.d.ts.map +1 -1
  48. package/dist/src/query/manager.js +6 -6
  49. package/dist/src/query/manager.js.map +1 -1
  50. package/dist/src/query/query-path.d.ts +3 -3
  51. package/dist/src/query/query-path.d.ts.map +1 -1
  52. package/dist/src/query-self.d.ts +1 -1
  53. package/dist/src/query-self.d.ts.map +1 -1
  54. package/dist/src/query-self.js +2 -2
  55. package/dist/src/query-self.js.map +1 -1
  56. package/dist/src/routing-table/index.d.ts +5 -6
  57. package/dist/src/routing-table/index.d.ts.map +1 -1
  58. package/dist/src/routing-table/index.js +72 -58
  59. package/dist/src/routing-table/index.js.map +1 -1
  60. package/dist/src/routing-table/refresh.d.ts +1 -1
  61. package/dist/src/routing-table/refresh.d.ts.map +1 -1
  62. package/dist/src/routing-table/refresh.js +2 -2
  63. package/dist/src/routing-table/refresh.js.map +1 -1
  64. package/dist/src/rpc/handlers/add-provider.d.ts +2 -1
  65. package/dist/src/rpc/handlers/add-provider.d.ts.map +1 -1
  66. package/dist/src/rpc/handlers/add-provider.js +8 -6
  67. package/dist/src/rpc/handlers/add-provider.js.map +1 -1
  68. package/dist/src/rpc/handlers/find-node.d.ts +5 -3
  69. package/dist/src/rpc/handlers/find-node.d.ts.map +1 -1
  70. package/dist/src/rpc/handlers/find-node.js +22 -14
  71. package/dist/src/rpc/handlers/find-node.js.map +1 -1
  72. package/dist/src/rpc/handlers/get-providers.d.ts +5 -3
  73. package/dist/src/rpc/handlers/get-providers.d.ts.map +1 -1
  74. package/dist/src/rpc/handlers/get-providers.js +29 -16
  75. package/dist/src/rpc/handlers/get-providers.js.map +1 -1
  76. package/dist/src/rpc/handlers/get-value.d.ts +2 -1
  77. package/dist/src/rpc/handlers/get-value.d.ts.map +1 -1
  78. package/dist/src/rpc/handlers/get-value.js +16 -7
  79. package/dist/src/rpc/handlers/get-value.js.map +1 -1
  80. package/dist/src/rpc/handlers/ping.d.ts +5 -2
  81. package/dist/src/rpc/handlers/ping.d.ts.map +1 -1
  82. package/dist/src/rpc/handlers/ping.js +2 -2
  83. package/dist/src/rpc/handlers/ping.js.map +1 -1
  84. package/dist/src/rpc/handlers/put-value.d.ts +2 -1
  85. package/dist/src/rpc/handlers/put-value.d.ts.map +1 -1
  86. package/dist/src/rpc/handlers/put-value.js +8 -7
  87. package/dist/src/rpc/handlers/put-value.js.map +1 -1
  88. package/dist/src/rpc/index.d.ts +4 -3
  89. package/dist/src/rpc/index.d.ts.map +1 -1
  90. package/dist/src/rpc/index.js +11 -11
  91. package/dist/src/rpc/index.js.map +1 -1
  92. package/dist/src/topology-listener.d.ts +1 -1
  93. package/dist/src/topology-listener.d.ts.map +1 -1
  94. package/dist/src/topology-listener.js +2 -2
  95. package/dist/src/topology-listener.js.map +1 -1
  96. package/dist/src/utils.d.ts +5 -2
  97. package/dist/src/utils.d.ts.map +1 -1
  98. package/dist/src/utils.js +32 -2
  99. package/dist/src/utils.js.map +1 -1
  100. package/package.json +13 -11
  101. package/src/constants.ts +7 -11
  102. package/src/content-fetching/index.ts +21 -14
  103. package/src/content-routing/index.ts +29 -18
  104. package/src/index.ts +148 -32
  105. package/src/kad-dht.ts +225 -56
  106. package/src/message/dht.proto +32 -32
  107. package/src/message/dht.ts +155 -138
  108. package/src/message/utils.ts +25 -0
  109. package/src/network.ts +41 -25
  110. package/src/peer-routing/index.ts +57 -42
  111. package/src/providers.ts +7 -0
  112. package/src/query/events.ts +14 -14
  113. package/src/query/manager.ts +14 -10
  114. package/src/query/query-path.ts +3 -3
  115. package/src/query-self.ts +3 -3
  116. package/src/routing-table/index.ts +86 -64
  117. package/src/routing-table/refresh.ts +4 -4
  118. package/src/rpc/handlers/add-provider.ts +10 -7
  119. package/src/rpc/handlers/find-node.ts +27 -18
  120. package/src/rpc/handlers/get-providers.ts +33 -20
  121. package/src/rpc/handlers/get-value.ts +18 -7
  122. package/src/rpc/handlers/ping.ts +7 -3
  123. package/src/rpc/handlers/put-value.ts +11 -9
  124. package/src/rpc/index.ts +14 -13
  125. package/src/topology-listener.ts +3 -3
  126. package/src/utils.ts +41 -2
  127. package/dist/src/dual-kad-dht.d.ts +0 -69
  128. package/dist/src/dual-kad-dht.d.ts.map +0 -1
  129. package/dist/src/dual-kad-dht.js +0 -304
  130. package/dist/src/dual-kad-dht.js.map +0 -1
  131. package/dist/src/message/index.d.ts +0 -35
  132. package/dist/src/message/index.d.ts.map +0 -1
  133. package/dist/src/message/index.js +0 -92
  134. package/dist/src/message/index.js.map +0 -1
  135. package/dist/typedoc-urls.json +0 -55
  136. package/src/dual-kad-dht.ts +0 -384
  137. package/src/message/index.ts +0 -117
@@ -1 +1 @@
1
- {"version":3,"file":"find-node.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/find-node.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAKhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,EAAY,MAAM,mBAAmB,CAAA;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAEhE,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,cAAc,CAAA;IAC9B,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,yBAAyB,EAAE,IAAI,EAAE,mBAAmB;IAU7E;;OAEG;IACG,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CA4B9D"}
1
+ {"version":3,"file":"find-node.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/find-node.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,EAAY,MAAM,mBAAmB,CAAA;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAEhE,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,cAAc,CAAA;IAC9B,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,yBAAyB,EAAE,IAAI,EAAE,mBAAmB;IAU7E;;OAEG;IACG,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAqC9D"}
@@ -1,20 +1,20 @@
1
+ import { CodeError } from '@libp2p/interface';
1
2
  import { protocols } from '@multiformats/multiaddr';
2
3
  import { equals as uint8ArrayEquals } from 'uint8arrays';
3
- import { Message } from '../../message/index.js';
4
- import { removePrivateAddresses, removePublicAddresses } from '../../utils.js';
4
+ import { MessageType } from '../../message/dht.js';
5
5
  export class FindNodeHandler {
6
6
  peerRouting;
7
- lan;
7
+ peerInfoMapper;
8
8
  peerId;
9
9
  addressManager;
10
10
  log;
11
11
  constructor(components, init) {
12
- const { peerRouting, lan } = init;
13
- this.log = components.logger.forComponent('libp2p:kad-dht:rpc:handlers:find-node');
12
+ const { peerRouting, logPrefix } = init;
13
+ this.log = components.logger.forComponent(`${logPrefix}:rpc:handlers:find-node`);
14
14
  this.peerId = components.peerId;
15
15
  this.addressManager = components.addressManager;
16
16
  this.peerRouting = peerRouting;
17
- this.lan = Boolean(lan);
17
+ this.peerInfoMapper = init.peerInfoMapper;
18
18
  }
19
19
  /**
20
20
  * Process `FindNode` DHT messages
@@ -22,6 +22,9 @@ export class FindNodeHandler {
22
22
  async handle(peerId, msg) {
23
23
  this.log('incoming request from %p for peers closer to %b', peerId, msg.key);
24
24
  let closer = [];
25
+ if (msg.key == null) {
26
+ throw new CodeError('Invalid FIND_NODE message received - key was missing', 'ERR_INVALID_MESSAGE');
27
+ }
25
28
  if (uint8ArrayEquals(this.peerId.toBytes(), msg.key)) {
26
29
  closer = [{
27
30
  id: this.peerId,
@@ -31,14 +34,19 @@ export class FindNodeHandler {
31
34
  else {
32
35
  closer = await this.peerRouting.getCloserPeersOffline(msg.key, peerId);
33
36
  }
34
- closer = closer
35
- .map(this.lan ? removePublicAddresses : removePrivateAddresses)
36
- .filter(({ multiaddrs }) => multiaddrs.length);
37
- const response = new Message(msg.type, new Uint8Array(0), msg.clusterLevel);
38
- if (closer.length > 0) {
39
- response.closerPeers = closer;
40
- }
41
- else {
37
+ const response = {
38
+ type: MessageType.FIND_NODE,
39
+ clusterLevel: msg.clusterLevel,
40
+ closer: closer
41
+ .map(this.peerInfoMapper)
42
+ .filter(({ multiaddrs }) => multiaddrs.length)
43
+ .map(peerInfo => ({
44
+ id: peerInfo.id.toBytes(),
45
+ multiaddrs: peerInfo.multiaddrs.map(ma => ma.bytes)
46
+ })),
47
+ providers: []
48
+ };
49
+ if (response.closer.length === 0) {
42
50
  this.log('could not find any peers closer to %b than %p', msg.key, peerId);
43
51
  }
44
52
  return response;
@@ -1 +1 @@
1
- {"version":3,"file":"find-node.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/find-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,gBAAgB,CAAA;AAiBvB,MAAM,OAAO,eAAe;IACT,WAAW,CAAa;IACxB,GAAG,CAAS;IACZ,MAAM,CAAQ;IACd,cAAc,CAAgB;IAC9B,GAAG,CAAQ;IAE5B,YAAa,UAAqC,EAAE,IAAyB;QAC3E,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;QAEjC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,uCAAuC,CAAC,CAAA;QAClF,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;QAC/B,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAA;QAC/C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAE,MAAc,EAAE,GAAY;QACxC,IAAI,CAAC,GAAG,CAAC,iDAAiD,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAE5E,IAAI,MAAM,GAAe,EAAE,CAAA;QAE3B,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,GAAG,CAAC;oBACR,EAAE,EAAE,IAAI,CAAC,MAAM;oBACf,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;iBACpG,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QACxE,CAAC;QAED,MAAM,GAAG,MAAM;aACZ,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,sBAAsB,CAAC;aAC9D,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QAEhD,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAA;QAE3E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAA;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,+CAA+C,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QAC5E,CAAC;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"find-node.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/find-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAoBlD,MAAM,OAAO,eAAe;IACT,WAAW,CAAa;IACxB,cAAc,CAAgB;IAC9B,MAAM,CAAQ;IACd,cAAc,CAAgB;IAC9B,GAAG,CAAQ;IAE5B,YAAa,UAAqC,EAAE,IAAyB;QAC3E,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;QAEvC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,yBAAyB,CAAC,CAAA;QAChF,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAA;QAC/B,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,cAAc,CAAA;QAC/C,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAE,MAAc,EAAE,GAAY;QACxC,IAAI,CAAC,GAAG,CAAC,iDAAiD,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;QAE5E,IAAI,MAAM,GAAe,EAAE,CAAA;QAE3B,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,SAAS,CAAC,sDAAsD,EAAE,qBAAqB,CAAC,CAAA;QACpG,CAAC;QAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,GAAG,CAAC;oBACR,EAAE,EAAE,IAAI,CAAC,MAAM;oBACf,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;iBACpG,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QACxE,CAAC;QAED,MAAM,QAAQ,GAAY;YACxB,IAAI,EAAE,WAAW,CAAC,SAAS;YAC3B,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,MAAM,EAAE,MAAM;iBACX,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;iBACxB,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;iBAC7C,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAChB,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE;gBACzB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;aACpD,CAAC,CAAC;YACL,SAAS,EAAE,EAAE;SACd,CAAA;QAED,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,GAAG,CAAC,+CAA+C,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QAC5E,CAAC;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF"}
@@ -1,4 +1,5 @@
1
- import { Message } from '../../message/index.js';
1
+ import type { PeerInfoMapper } from '../../index.js';
2
+ import type { Message } from '../../message/dht.js';
2
3
  import type { PeerRouting } from '../../peer-routing/index.js';
3
4
  import type { Providers } from '../../providers.js';
4
5
  import type { DHTMessageHandler } from '../index.js';
@@ -7,7 +8,8 @@ import type { Multiaddr } from '@multiformats/multiaddr';
7
8
  export interface GetProvidersHandlerInit {
8
9
  peerRouting: PeerRouting;
9
10
  providers: Providers;
10
- lan: boolean;
11
+ logPrefix: string;
12
+ peerInfoMapper: PeerInfoMapper;
11
13
  }
12
14
  export interface GetProvidersHandlerComponents {
13
15
  peerStore: PeerStore;
@@ -16,8 +18,8 @@ export interface GetProvidersHandlerComponents {
16
18
  export declare class GetProvidersHandler implements DHTMessageHandler {
17
19
  private readonly peerRouting;
18
20
  private readonly providers;
19
- private readonly lan;
20
21
  private readonly peerStore;
22
+ private readonly peerInfoMapper;
21
23
  private readonly log;
22
24
  constructor(components: GetProvidersHandlerComponents, init: GetProvidersHandlerInit);
23
25
  handle(peerId: PeerId, msg: Message): Promise<Message>;
@@ -1 +1 @@
1
- {"version":3,"file":"get-providers.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-providers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAKhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,mBAAoB,YAAW,iBAAiB;IAC3D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,6BAA6B,EAAE,IAAI,EAAE,uBAAuB;IAU/E,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA+BvD,aAAa,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAIpD,SAAS,CAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAyBzD"}
1
+ {"version":3,"file":"get-providers.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-providers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,mBAAoB,YAAW,iBAAiB;IAC3D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,6BAA6B,EAAE,IAAI,EAAE,uBAAuB;IAU/E,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA8CvD,aAAa,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAIpD,SAAS,CAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAwBzD"}
@@ -1,22 +1,24 @@
1
1
  import { CodeError } from '@libp2p/interface';
2
2
  import { CID } from 'multiformats/cid';
3
- import { Message } from '../../message/index.js';
4
- import { removePrivateAddresses, removePublicAddresses } from '../../utils.js';
3
+ import { MessageType } from '../../message/dht.js';
5
4
  export class GetProvidersHandler {
6
5
  peerRouting;
7
6
  providers;
8
- lan;
9
7
  peerStore;
8
+ peerInfoMapper;
10
9
  log;
11
10
  constructor(components, init) {
12
- const { peerRouting, providers, lan } = init;
13
- this.log = components.logger.forComponent('libp2p:kad-dht:rpc:handlers:get-providers');
11
+ const { peerRouting, providers, logPrefix } = init;
12
+ this.log = components.logger.forComponent(`${logPrefix}:rpc:handlers:get-providers`);
14
13
  this.peerStore = components.peerStore;
15
14
  this.peerRouting = peerRouting;
16
15
  this.providers = providers;
17
- this.lan = Boolean(lan);
16
+ this.peerInfoMapper = init.peerInfoMapper;
18
17
  }
19
18
  async handle(peerId, msg) {
19
+ if (msg.key == null) {
20
+ throw new CodeError('Invalid FIND_NODE message received - key was missing', 'ERR_INVALID_MESSAGE');
21
+ }
20
22
  let cid;
21
23
  try {
22
24
  cid = CID.decode(msg.key);
@@ -31,14 +33,26 @@ export class GetProvidersHandler {
31
33
  ]);
32
34
  const providerPeers = await this._getPeers(peers);
33
35
  const closerPeers = await this._getPeers(closer.map(({ id }) => id));
34
- const response = new Message(msg.type, msg.key, msg.clusterLevel);
35
- if (providerPeers.length > 0) {
36
- response.providerPeers = providerPeers;
37
- }
38
- if (closerPeers.length > 0) {
39
- response.closerPeers = closerPeers;
40
- }
41
- this.log('got %s providers %s closerPeers', providerPeers.length, closerPeers.length);
36
+ const response = {
37
+ type: MessageType.GET_PROVIDERS,
38
+ key: msg.key,
39
+ clusterLevel: msg.clusterLevel,
40
+ closer: closerPeers
41
+ .map(this.peerInfoMapper)
42
+ .filter(({ multiaddrs }) => multiaddrs.length)
43
+ .map(peerInfo => ({
44
+ id: peerInfo.id.toBytes(),
45
+ multiaddrs: peerInfo.multiaddrs.map(ma => ma.bytes)
46
+ })),
47
+ providers: providerPeers
48
+ .map(this.peerInfoMapper)
49
+ .filter(({ multiaddrs }) => multiaddrs.length)
50
+ .map(peerInfo => ({
51
+ id: peerInfo.id.toBytes(),
52
+ multiaddrs: peerInfo.multiaddrs.map(ma => ma.bytes)
53
+ }))
54
+ };
55
+ this.log('got %s providers %s closerPeers', response.providers.length, response.closer.length);
42
56
  return response;
43
57
  }
44
58
  async _getAddresses(peerId) {
@@ -46,11 +60,10 @@ export class GetProvidersHandler {
46
60
  }
47
61
  async _getPeers(peerIds) {
48
62
  const output = [];
49
- const addrFilter = this.lan ? removePublicAddresses : removePrivateAddresses;
50
63
  for (const peerId of peerIds) {
51
64
  try {
52
65
  const peer = await this.peerStore.get(peerId);
53
- const peerAfterFilter = addrFilter({
66
+ const peerAfterFilter = this.peerInfoMapper({
54
67
  id: peerId,
55
68
  multiaddrs: peer.addresses.map(({ multiaddr }) => multiaddr)
56
69
  });
@@ -1 +1 @@
1
- {"version":3,"file":"get-providers.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-providers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-providers.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-providers.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
- import { Message } from '../../message/index.js';
2
1
  import { Libp2pRecord } from '../../record/index.js';
2
+ import type { Message } from '../../message/dht.js';
3
3
  import type { PeerRouting } from '../../peer-routing/index.js';
4
4
  import type { DHTMessageHandler } from '../index.js';
5
5
  import type { ComponentLogger, PeerId, PeerStore } from '@libp2p/interface';
6
6
  import type { Datastore } from 'interface-datastore';
7
7
  export interface GetValueHandlerInit {
8
8
  peerRouting: PeerRouting;
9
+ logPrefix: string;
9
10
  }
10
11
  export interface GetValueHandlerComponents {
11
12
  peerStore: PeerStore;
@@ -1 +1 @@
1
- {"version":3,"file":"get-value.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-value.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAgB,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,WAAW,CAAA;CACzB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,yBAAyB,EAAE,IAAI,EAAE,mBAAmB;IAOvE,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAuD7D;;;;;OAKG;IACG,oBAAoB,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAiChF"}
1
+ {"version":3,"file":"get-value.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-value.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,SAAS,CAAA;IACpB,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,yBAAyB,EAAE,IAAI,EAAE,mBAAmB;IAOvE,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAgE7D;;;;;OAKG;IACG,oBAAoB,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAiChF"}
@@ -1,6 +1,6 @@
1
1
  import { CodeError } from '@libp2p/interface';
2
2
  import { MAX_RECORD_AGE } from '../../constants.js';
3
- import { Message, MESSAGE_TYPE } from '../../message/index.js';
3
+ import { MessageType } from '../../message/dht.js';
4
4
  import { Libp2pRecord } from '../../record/index.js';
5
5
  import { bufferToRecordKey, isPublicKeyKey, fromPublicKeyKey } from '../../utils.js';
6
6
  export class GetValueHandler {
@@ -9,7 +9,7 @@ export class GetValueHandler {
9
9
  peerRouting;
10
10
  log;
11
11
  constructor(components, init) {
12
- this.log = components.logger.forComponent('libp2p:kad-dht:rpc:handlers:get-value');
12
+ this.log = components.logger.forComponent(`${init.logPrefix}:rpc:handlers:get-value`);
13
13
  this.peerStore = components.peerStore;
14
14
  this.datastore = components.datastore;
15
15
  this.peerRouting = init.peerRouting;
@@ -20,7 +20,13 @@ export class GetValueHandler {
20
20
  if (key == null || key.length === 0) {
21
21
  throw new CodeError('Invalid key', 'ERR_INVALID_KEY');
22
22
  }
23
- const response = new Message(MESSAGE_TYPE.GET_VALUE, key, msg.clusterLevel);
23
+ const response = {
24
+ type: MessageType.GET_VALUE,
25
+ key,
26
+ clusterLevel: msg.clusterLevel,
27
+ closer: [],
28
+ providers: []
29
+ };
24
30
  if (isPublicKeyKey(key)) {
25
31
  this.log('is public key');
26
32
  const idFromKey = fromPublicKeyKey(key);
@@ -39,21 +45,24 @@ export class GetValueHandler {
39
45
  }
40
46
  if (pubKey != null) {
41
47
  this.log('returning found public key');
42
- response.record = new Libp2pRecord(key, pubKey, new Date());
48
+ response.record = new Libp2pRecord(key, pubKey, new Date()).serialize();
43
49
  return response;
44
50
  }
45
51
  }
46
52
  const [record, closer] = await Promise.all([
47
53
  this._checkLocalDatastore(key),
48
- this.peerRouting.getCloserPeersOffline(msg.key, peerId)
54
+ this.peerRouting.getCloserPeersOffline(key, peerId)
49
55
  ]);
50
56
  if (record != null) {
51
57
  this.log('had record for %b in local datastore', key);
52
- response.record = record;
58
+ response.record = record.serialize();
53
59
  }
54
60
  if (closer.length > 0) {
55
61
  this.log('had %s closer peers in routing table', closer.length);
56
- response.closerPeers = closer;
62
+ response.closer = closer.map(peerInfo => ({
63
+ id: peerInfo.id.toBytes(),
64
+ multiaddrs: peerInfo.multiaddrs.map(ma => ma.bytes)
65
+ }));
57
66
  }
58
67
  return response;
59
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-value.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-value.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-value.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/get-value.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,15 @@
1
- import type { Message } from '../../message/index.js';
1
+ import type { Message } from '../../message/dht.js';
2
2
  import type { DHTMessageHandler } from '../index.js';
3
3
  import type { ComponentLogger, PeerId } from '@libp2p/interface';
4
4
  export interface PingComponents {
5
5
  logger: ComponentLogger;
6
6
  }
7
+ export interface PingHandlerInit {
8
+ logPrefix: string;
9
+ }
7
10
  export declare class PingHandler implements DHTMessageHandler {
8
11
  private readonly log;
9
- constructor(components: PingComponents);
12
+ constructor(components: PingComponents, init: PingHandlerInit);
10
13
  handle(peerId: PeerId, msg: Message): Promise<Message>;
11
14
  }
12
15
  //# sourceMappingURL=ping.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ping.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/ping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAExE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,WAAY,YAAW,iBAAiB;IACnD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,cAAc;IAIjC,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAI9D"}
1
+ {"version":3,"file":"ping.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/ping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAExE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,WAAY,YAAW,iBAAiB;IACnD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe;IAIxD,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAI9D"}
@@ -1,7 +1,7 @@
1
1
  export class PingHandler {
2
2
  log;
3
- constructor(components) {
4
- this.log = components.logger.forComponent('libp2p:kad-dht:rpc:handlers:ping');
3
+ constructor(components, init) {
4
+ this.log = components.logger.forComponent(`${init.logPrefix}:rpc:handlers:ping`);
5
5
  }
6
6
  async handle(peerId, msg) {
7
7
  this.log('ping from %p', peerId);
@@ -1 +1 @@
1
- {"version":3,"file":"ping.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/ping.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,WAAW;IACL,GAAG,CAAQ;IAE5B,YAAa,UAA0B;QACrC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,kCAAkC,CAAC,CAAA;IAC/E,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,MAAc,EAAE,GAAY;QACxC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;QAChC,OAAO,GAAG,CAAA;IACZ,CAAC;CACF"}
1
+ {"version":3,"file":"ping.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/ping.ts"],"names":[],"mappings":"AAYA,MAAM,OAAO,WAAW;IACL,GAAG,CAAQ;IAE5B,YAAa,UAA0B,EAAE,IAAqB;QAC5D,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,oBAAoB,CAAC,CAAA;IAClF,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,MAAc,EAAE,GAAY;QACxC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;QAChC,OAAO,GAAG,CAAA;IACZ,CAAC;CACF"}
@@ -1,10 +1,11 @@
1
1
  import type { Validators } from '../../index.js';
2
- import type { Message } from '../../message/index.js';
2
+ import type { Message } from '../../message/dht.js';
3
3
  import type { DHTMessageHandler } from '../index.js';
4
4
  import type { ComponentLogger, PeerId } from '@libp2p/interface';
5
5
  import type { Datastore } from 'interface-datastore';
6
6
  export interface PutValueHandlerInit {
7
7
  validators: Validators;
8
+ logPrefix: string;
8
9
  }
9
10
  export interface PutValueHandlerComponents {
10
11
  datastore: Datastore;
@@ -1 +1 @@
1
- {"version":3,"file":"put-value.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/put-value.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,UAAU,CAAA;CACvB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2B;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,yBAAyB,EAAE,IAAI,EAAE,mBAAmB;IAQvE,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CA0B9D"}
1
+ {"version":3,"file":"put-value.d.ts","sourceRoot":"","sources":["../../../../src/rpc/handlers/put-value.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAU,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,qBAAa,eAAgB,YAAW,iBAAiB;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2B;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,yBAAyB,EAAE,IAAI,EAAE,mBAAmB;IAQvE,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CA0B9D"}
@@ -1,4 +1,5 @@
1
1
  import { CodeError } from '@libp2p/interface';
2
+ import { Libp2pRecord } from '../../record/index.js';
2
3
  import { verifyRecord } from '../../record/validators.js';
3
4
  import { bufferToRecordKey } from '../../utils.js';
4
5
  export class PutValueHandler {
@@ -8,23 +9,23 @@ export class PutValueHandler {
8
9
  constructor(components, init) {
9
10
  const { validators } = init;
10
11
  this.components = components;
11
- this.log = components.logger.forComponent('libp2p:kad-dht:rpc:handlers:put-value');
12
+ this.log = components.logger.forComponent(`${init.logPrefix}:rpc:handlers:put-value`);
12
13
  this.validators = validators;
13
14
  }
14
15
  async handle(peerId, msg) {
15
16
  const key = msg.key;
16
17
  this.log('%p asked us to store value for key %b', peerId, key);
17
- const record = msg.record;
18
- if (record == null) {
18
+ if (msg.record == null) {
19
19
  const errMsg = `Empty record from: ${peerId.toString()}`;
20
20
  this.log.error(errMsg);
21
21
  throw new CodeError(errMsg, 'ERR_EMPTY_RECORD');
22
22
  }
23
23
  try {
24
- await verifyRecord(this.validators, record);
25
- record.timeReceived = new Date();
26
- const recordKey = bufferToRecordKey(record.key);
27
- await this.components.datastore.put(recordKey, record.serialize().subarray());
24
+ const deserializedRecord = Libp2pRecord.deserialize(msg.record);
25
+ await verifyRecord(this.validators, deserializedRecord);
26
+ deserializedRecord.timeReceived = new Date();
27
+ const recordKey = bufferToRecordKey(deserializedRecord.key);
28
+ await this.components.datastore.put(recordKey, deserializedRecord.serialize().subarray());
28
29
  this.log('put record for %b into datastore under key %k', key, recordKey);
29
30
  }
30
31
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"put-value.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/put-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAgBlD,MAAM,OAAO,eAAe;IACT,UAAU,CAA2B;IACrC,UAAU,CAAY;IACtB,GAAG,CAAQ;IAE5B,YAAa,UAAqC,EAAE,IAAyB;QAC3E,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;QAE3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,uCAAuC,CAAC,CAAA;QAClF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,MAAc,EAAE,GAAY;QACxC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;QACnB,IAAI,CAAC,GAAG,CAAC,uCAAuC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;QAE9D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;QAEzB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,sBAAsB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAA;YAExD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACtB,MAAM,IAAI,SAAS,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;QACjD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;YAE3C,MAAM,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAA;YAChC,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC/C,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC7E,IAAI,CAAC,GAAG,CAAC,+CAA+C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;QAC3E,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,iDAAiD,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QACvE,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;CACF"}
1
+ {"version":3,"file":"put-value.js","sourceRoot":"","sources":["../../../../src/rpc/handlers/put-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAiBlD,MAAM,OAAO,eAAe;IACT,UAAU,CAA2B;IACrC,UAAU,CAAY;IACtB,GAAG,CAAQ;IAE5B,YAAa,UAAqC,EAAE,IAAyB;QAC3E,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;QAE3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,SAAS,yBAAyB,CAAC,CAAA;QACrF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,MAAc,EAAE,GAAY;QACxC,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAA;QACnB,IAAI,CAAC,GAAG,CAAC,uCAAuC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;QAE9D,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,MAAM,GAAG,sBAAsB,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAA;YAExD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACtB,MAAM,IAAI,SAAS,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;QACjD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,kBAAkB,GAAG,YAAY,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YAE/D,MAAM,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAA;YAEvD,kBAAkB,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAA;YAC5C,MAAM,SAAS,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA;YAC3D,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,kBAAkB,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;YACzF,IAAI,CAAC,GAAG,CAAC,+CAA+C,EAAE,GAAG,EAAE,SAAS,CAAC,CAAA;QAC3E,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,iDAAiD,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;QACvE,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;CACF"}
@@ -1,9 +1,9 @@
1
- import { Message } from '../message/index.js';
1
+ import { Message } from '../message/dht.js';
2
2
  import { type FindNodeHandlerComponents } from './handlers/find-node.js';
3
3
  import { type GetProvidersHandlerComponents } from './handlers/get-providers.js';
4
4
  import { type GetValueHandlerComponents } from './handlers/get-value.js';
5
5
  import { type PutValueHandlerComponents } from './handlers/put-value.js';
6
- import type { Validators } from '../index.js';
6
+ import type { PeerInfoMapper, Validators } from '../index.js';
7
7
  import type { PeerRouting } from '../peer-routing';
8
8
  import type { Providers } from '../providers';
9
9
  import type { RoutingTable } from '../routing-table';
@@ -17,7 +17,8 @@ export interface RPCInit {
17
17
  providers: Providers;
18
18
  peerRouting: PeerRouting;
19
19
  validators: Validators;
20
- lan: boolean;
20
+ logPrefix: string;
21
+ peerInfoMapper: PeerInfoMapper;
21
22
  }
22
23
  export interface RPCComponents extends GetValueHandlerComponents, PutValueHandlerComponents, FindNodeHandlerComponents, GetProvidersHandlerComponents {
23
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAgB,MAAM,qBAAqB,CAAA;AAE3D,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,EAAuB,KAAK,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AACrG,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAEzF,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAU,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEpE,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;CACnE;AAED,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,WAAW,CAAA;IACxB,UAAU,EAAE,UAAU,CAAA;IACtB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,MAAM,WAAW,aAAc,SAAQ,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,6BAA6B;CAEpJ;AAED,qBAAa,GAAG;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO;IAerD;;OAEG;IACG,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAkBhF;;OAEG;IACH,gBAAgB,CAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;CAqClD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAe,MAAM,mBAAmB,CAAA;AAExD,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,EAAuB,KAAK,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AACrG,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAEzF,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAU,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEpE,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;CACnE;AAED,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,WAAW,CAAA;IACxB,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,MAAM,WAAW,aAAc,SAAQ,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,6BAA6B;CAEpJ;AAED,qBAAa,GAAG;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;gBAEf,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO;IAerD;;OAEG;IACG,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAkBhF;;OAEG;IACH,gBAAgB,CAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;CAqClD"}
@@ -1,6 +1,6 @@
1
1
  import * as lp from 'it-length-prefixed';
2
2
  import { pipe } from 'it-pipe';
3
- import { Message, MESSAGE_TYPE } from '../message/index.js';
3
+ import { Message, MessageType } from '../message/dht.js';
4
4
  import { AddProviderHandler } from './handlers/add-provider.js';
5
5
  import { FindNodeHandler } from './handlers/find-node.js';
6
6
  import { GetProvidersHandler } from './handlers/get-providers.js';
@@ -12,16 +12,16 @@ export class RPC {
12
12
  routingTable;
13
13
  log;
14
14
  constructor(components, init) {
15
- const { providers, peerRouting, validators, lan } = init;
16
- this.log = components.logger.forComponent('libp2p:kad-dht:rpc');
15
+ const { providers, peerRouting, validators, logPrefix, peerInfoMapper } = init;
16
+ this.log = components.logger.forComponent(`${logPrefix}:rpc`);
17
17
  this.routingTable = init.routingTable;
18
18
  this.handlers = {
19
- [MESSAGE_TYPE.GET_VALUE]: new GetValueHandler(components, { peerRouting }),
20
- [MESSAGE_TYPE.PUT_VALUE]: new PutValueHandler(components, { validators }),
21
- [MESSAGE_TYPE.FIND_NODE]: new FindNodeHandler(components, { peerRouting, lan }),
22
- [MESSAGE_TYPE.ADD_PROVIDER]: new AddProviderHandler(components, { providers }),
23
- [MESSAGE_TYPE.GET_PROVIDERS]: new GetProvidersHandler(components, { peerRouting, providers, lan }),
24
- [MESSAGE_TYPE.PING]: new PingHandler(components)
19
+ [MessageType.GET_VALUE.toString()]: new GetValueHandler(components, { peerRouting, logPrefix }),
20
+ [MessageType.PUT_VALUE.toString()]: new PutValueHandler(components, { validators, logPrefix }),
21
+ [MessageType.FIND_NODE.toString()]: new FindNodeHandler(components, { peerRouting, logPrefix, peerInfoMapper }),
22
+ [MessageType.ADD_PROVIDER.toString()]: new AddProviderHandler(components, { providers, logPrefix }),
23
+ [MessageType.GET_PROVIDERS.toString()]: new GetProvidersHandler(components, { peerRouting, providers, logPrefix, peerInfoMapper }),
24
+ [MessageType.PING.toString()]: new PingHandler(components, { logPrefix })
25
25
  };
26
26
  }
27
27
  /**
@@ -59,12 +59,12 @@ export class RPC {
59
59
  await pipe(stream, (source) => lp.decode(source), async function* (source) {
60
60
  for await (const msg of source) {
61
61
  // handle the message
62
- const desMessage = Message.deserialize(msg);
62
+ const desMessage = Message.decode(msg);
63
63
  self.log('incoming %s from %p', desMessage.type, peerId);
64
64
  const res = await self.handleMessage(peerId, desMessage);
65
65
  // Not all handlers will return a response
66
66
  if (res != null) {
67
- yield res.serialize();
67
+ yield Message.encode(res);
68
68
  }
69
69
  }
70
70
  }, (source) => lp.encode(source), stream);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import type { KadDHTComponents } from '.';
3
3
  import type { PeerId, Startable } from '@libp2p/interface';
4
4
  export interface TopologyListenerInit {
5
5
  protocol: string;
6
- lan: boolean;
6
+ logPrefix: string;
7
7
  }
8
8
  export interface TopologyListenerEvents {
9
9
  'peer': CustomEvent<PeerId>;
@@ -1 +1 @@
1
- {"version":3,"file":"topology-listener.d.ts","sourceRoot":"","sources":["../../src/topology-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,GAAG,CAAA;AACzC,OAAO,KAAK,EAAU,MAAM,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAElE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,OAAO,CAAA;CACb;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAC5B;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,iBAAiB,CAAC,sBAAsB,CAAE,YAAW,SAAS;IAClG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAC,CAAQ;gBAEf,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,oBAAoB;IAWrE,SAAS,IAAK,OAAO;IAIrB;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAkB7B;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;CAS7B"}
1
+ {"version":3,"file":"topology-listener.d.ts","sourceRoot":"","sources":["../../src/topology-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,GAAG,CAAA;AACzC,OAAO,KAAK,EAAU,MAAM,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAElE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAC5B;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,iBAAiB,CAAC,sBAAsB,CAAE,YAAW,SAAS;IAClG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAC,CAAQ;gBAEf,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,oBAAoB;IAWrE,SAAS,IAAK,OAAO;IAIrB;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAkB7B;;OAEG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;CAS7B"}
@@ -10,9 +10,9 @@ export class TopologyListener extends TypedEventEmitter {
10
10
  registrarId;
11
11
  constructor(components, init) {
12
12
  super();
13
- const { protocol, lan } = init;
13
+ const { protocol, logPrefix } = init;
14
14
  this.components = components;
15
- this.log = components.logger.forComponent(`libp2p:kad-dht:topology-listener:${lan ? 'lan' : 'wan'}`);
15
+ this.log = components.logger.forComponent(`${logPrefix}:topology-listener`);
16
16
  this.running = false;
17
17
  this.protocol = protocol;
18
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"topology-listener.js","sourceRoot":"","sources":["../../src/topology-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAalE;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,iBAAyC;IAC5D,GAAG,CAAQ;IACX,UAAU,CAAkB;IAC5B,QAAQ,CAAQ;IACzB,OAAO,CAAS;IAChB,WAAW,CAAS;IAE5B,YAAa,UAA4B,EAAE,IAA0B;QACnE,KAAK,EAAE,CAAA;QAEP,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;QAE9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,oCAAoC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;QACpG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QAEnB,kCAAkC;QAClC,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;YACzE,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE;gBACpB,IAAI,CAAC,GAAG,CAAC,mCAAmC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;gBACpE,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE;oBACzC,MAAM,EAAE,MAAM;iBACf,CAAC,CAAC,CAAA;YACL,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QAEpB,mCAAmC;QACnC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YACtD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;QAC9B,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"topology-listener.js","sourceRoot":"","sources":["../../src/topology-listener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAalE;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,iBAAyC;IAC5D,GAAG,CAAQ;IACX,UAAU,CAAkB;IAC5B,QAAQ,CAAQ;IACzB,OAAO,CAAS;IAChB,WAAW,CAAS;IAE5B,YAAa,UAA4B,EAAE,IAA0B;QACnE,KAAK,EAAE,CAAA;QAEP,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;QAEpC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,SAAS,oBAAoB,CAAC,CAAA;QAC3E,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAM;QACR,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QAEnB,kCAAkC;QAClC,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE;YACzE,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE;gBACpB,IAAI,CAAC,GAAG,CAAC,mCAAmC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;gBACpE,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,MAAM,EAAE;oBACzC,MAAM,EAAE,MAAM;iBACf,CAAC,CAAC,CAAA;YACL,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QAEpB,mCAAmC;QACnC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;YACtD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAA;QAC9B,CAAC;IACH,CAAC;CACF"}
@@ -1,7 +1,9 @@
1
1
  import { Key } from 'interface-datastore/key';
2
2
  import type { PeerId, PeerInfo } from '@libp2p/interface';
3
- export declare function removePrivateAddresses(peer: PeerInfo): PeerInfo;
4
- export declare function removePublicAddresses(peer: PeerInfo): PeerInfo;
3
+ import type { Multiaddr } from '@multiformats/multiaddr';
4
+ export declare function removePrivateAddressesMapper(peer: PeerInfo): PeerInfo;
5
+ export declare function removePublicAddressesMapper(peer: PeerInfo): PeerInfo;
6
+ export declare function passthroughMapper(info: PeerInfo): PeerInfo;
5
7
  /**
6
8
  * Creates a DHT ID by hashing a given Uint8Array
7
9
  */
@@ -30,4 +32,5 @@ export declare function fromPublicKeyKey(key: Uint8Array): PeerId;
30
32
  */
31
33
  export declare function createPutRecord(key: Uint8Array, value: Uint8Array): Uint8Array;
32
34
  export declare function debounce(callback: () => void, wait?: number): () => void;
35
+ export declare function multiaddrIsPublic(multiaddr: Multiaddr): boolean;
33
36
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAA;AAQ7C,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAKzD,wBAAgB,sBAAsB,CAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAkChE;AAED,wBAAgB,qBAAqB,CAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CA4B/D;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAIzE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAExE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAE,GAAG,EAAE,UAAU,GAAG,GAAG,CAEjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAE,GAAG,EAAE,UAAU,GAAG,GAAG,CAEvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAKzD;AAED,wBAAgB,cAAc,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAExD;AAED,wBAAgB,SAAS,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAEnD;AAED,wBAAgB,gBAAgB,CAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CAK/E;AAED,wBAAgB,QAAQ,CAAE,QAAQ,EAAE,MAAM,IAAI,EAAE,IAAI,GAAE,MAAY,GAAG,MAAM,IAAI,CAO9E"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAA;AAQ7C,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAKxD,wBAAgB,4BAA4B,CAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAkCtE;AAED,wBAAgB,2BAA2B,CAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CA4BrE;AAED,wBAAgB,iBAAiB,CAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAE3D;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAIzE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAExE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAE,GAAG,EAAE,UAAU,GAAG,GAAG,CAEjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAE,GAAG,EAAE,UAAU,GAAG,GAAG,CAEvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAKzD;AAED,wBAAgB,cAAc,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAExD;AAED,wBAAgB,SAAS,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAEnD;AAED,wBAAgB,gBAAgB,CAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,UAAU,CAK/E;AAED,wBAAgB,QAAQ,CAAE,QAAQ,EAAE,MAAM,IAAI,EAAE,IAAI,GAAE,MAAY,GAAG,MAAM,IAAI,CAO9E;AAUD,wBAAgB,iBAAiB,CAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAwBhE"}