@libp2p/kad-dht 9.2.0 → 9.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"dual-kad-dht.d.ts","sourceRoot":"","sources":["../../src/dual-kad-dht.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACvF,OAAO,EAAE,KAAK,aAAa,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAC9G,OAAO,EAAE,KAAK,WAAW,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAE9E,OAAO,EAAE,YAAY,EAAe,MAAM,2BAA2B,CAAA;AAIrE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,OAAO,KAAK,EAAE,UAAU,EAAU,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAEvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAsE3C;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,YAAY,CAAC,mBAAmB,CAAE,YAAW,UAAU,EAAE,aAAa;IAC3G,SAAgB,GAAG,EAAE,aAAa,CAAA;IAClC,SAAgB,GAAG,EAAE,aAAa,CAAA;IAClC,SAAgB,UAAU,EAAE,gBAAgB,CAAA;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;gBAE5B,UAAU,EAAE,gBAAgB,EAAE,IAAI,GAAE,UAAe;IAiChE,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,0BAAyB;IAEtD,IAAI,CAAC,cAAc,CAAC,IAAK,cAAc,CAEtC;IAED,IAAI,CAAC,WAAW,CAAC,IAAK,WAAW,CAEhC;IAED,IAAI,CAAC,aAAa,CAAC,IAAK,aAAa,CAEpC;IAED;;OAEG;IACH,SAAS,IAAK,OAAO;IAIrB;;OAEG;IACG,OAAO,IAAK,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAI9C;;OAEG;IACG,OAAO,CAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAO7B;;;OAGG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAO5B;;OAEG;IACK,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;IASxG;;OAEG;IACK,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;IAyCrF;;OAEG;IACK,OAAO,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;IAuClF;;OAEG;IACK,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IASzG;;OAEG;IACK,QAAQ,CAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;IAmBrF;;OAEG;IACK,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAO5G,mBAAmB,IAAK,OAAO,CAAC,IAAI,CAAC;CAM5C"}
1
+ {"version":3,"file":"dual-kad-dht.d.ts","sourceRoot":"","sources":["../../src/dual-kad-dht.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACvF,OAAO,EAAE,KAAK,aAAa,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AAC9G,OAAO,EAAE,KAAK,WAAW,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAE9E,OAAO,EAAE,YAAY,EAAe,MAAM,2BAA2B,CAAA;AAKrE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,OAAO,KAAK,EAAE,UAAU,EAAU,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAGvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AA4G3C;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,YAAY,CAAC,mBAAmB,CAAE,YAAW,UAAU,EAAE,aAAa;IAC3G,SAAgB,GAAG,EAAE,aAAa,CAAA;IAClC,SAAgB,GAAG,EAAE,aAAa,CAAA;IAClC,SAAgB,UAAU,EAAE,gBAAgB,CAAA;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;gBAE5B,UAAU,EAAE,gBAAgB,EAAE,IAAI,GAAE,UAAe;IAyDhE,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,0BAAyB;IAEtD,IAAI,CAAC,cAAc,CAAC,IAAK,cAAc,CAEtC;IAED,IAAI,CAAC,WAAW,CAAC,IAAK,WAAW,CAEhC;IAED,IAAI,CAAC,aAAa,CAAC,IAAK,aAAa,CAEpC;IAED;;OAEG;IACH,SAAS,IAAK,OAAO;IAIrB;;OAEG;IACG,OAAO,IAAK,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAI9C;;OAEG;IACG,OAAO,CAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD;;OAEG;IACG,KAAK,IAAK,OAAO,CAAC,IAAI,CAAC;IAO7B;;;OAGG;IACG,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAO5B;;OAEG;IACK,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;IASxG;;OAEG;IACK,GAAG,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;IAyCrF;;OAEG;IACK,OAAO,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;IAuClF;;OAEG;IACK,aAAa,CAAE,GAAG,EAAE,GAAG,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IASzG;;OAEG;IACK,QAAQ,CAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,CAAC;IAmBrF;;OAEG;IACK,eAAe,CAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,YAAiB,GAAG,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC;IAO5G,mBAAmB,IAAK,OAAO,CAAC,IAAI,CAAC;CAM5C"}
@@ -6,6 +6,7 @@ import { EventEmitter, CustomEvent } from '@libp2p/interfaces/events';
6
6
  import { logger } from '@libp2p/logger';
7
7
  import drain from 'it-drain';
8
8
  import merge from 'it-merge';
9
+ import isPrivate from 'private-ip';
9
10
  import { DefaultKadDHT } from './kad-dht.js';
10
11
  import { queryErrorEvent } from './query/events.js';
11
12
  const log = logger('libp2p:kad-dht');
@@ -63,6 +64,35 @@ class DHTPeerRouting {
63
64
  }
64
65
  }
65
66
  }
67
+ // see https://github.com/multiformats/multiaddr/blob/master/protocols.csv
68
+ const P2P_CIRCUIT_CODE = 290;
69
+ const DNS4_CODE = 54;
70
+ const DNS6_CODE = 55;
71
+ const DNSADDR_CODE = 56;
72
+ const IP4_CODE = 4;
73
+ const IP6_CODE = 41;
74
+ function multiaddrIsPublic(multiaddr) {
75
+ const tuples = multiaddr.stringTuples();
76
+ // p2p-circuit should not enable server mode
77
+ for (const tuple of tuples) {
78
+ if (tuple[0] === P2P_CIRCUIT_CODE) {
79
+ return false;
80
+ }
81
+ }
82
+ // dns4 or dns6 or dnsaddr
83
+ if (tuples[0][0] === DNS4_CODE || tuples[0][0] === DNS6_CODE || tuples[0][0] === DNSADDR_CODE) {
84
+ log('%m is public %s', multiaddr, true);
85
+ return true;
86
+ }
87
+ // ip4 or ip6
88
+ if (tuples[0][0] === IP4_CODE || tuples[0][0] === IP6_CODE) {
89
+ const result = isPrivate(`${tuples[0][1]}`);
90
+ const isPublic = result == null || !result;
91
+ log('%m is public %s', multiaddr, isPublic);
92
+ return isPublic;
93
+ }
94
+ return false;
95
+ }
66
96
  /**
67
97
  * A DHT implementation modelled after Kademlia with S/Kademlia modifications.
68
98
  * Original implementation in go: https://github.com/libp2p/go-libp2p-kad-dht.
@@ -100,6 +130,27 @@ export class DefaultDualKadDHT extends EventEmitter {
100
130
  detail: evt.detail
101
131
  }));
102
132
  });
133
+ components.events.addEventListener('self:peer:update', (evt) => {
134
+ log('received update of self-peer info');
135
+ const hasPublicAddress = evt.detail.peer.addresses
136
+ .some(({ multiaddr }) => {
137
+ const isPublic = multiaddrIsPublic(multiaddr);
138
+ log('%m is public %s', multiaddr, isPublic);
139
+ return isPublic;
140
+ });
141
+ this.getMode()
142
+ .then(async (mode) => {
143
+ if (hasPublicAddress && mode === 'client') {
144
+ await this.setMode('server');
145
+ }
146
+ else if (mode === 'server' && !hasPublicAddress) {
147
+ await this.setMode('client');
148
+ }
149
+ })
150
+ .catch(err => {
151
+ log.error('error setting dht server mode', err);
152
+ });
153
+ });
103
154
  }
104
155
  [Symbol.toStringTag] = '@libp2p/dual-kad-dht';
105
156
  get [contentRouting]() {
@@ -1 +1 @@
1
- {"version":3,"file":"dual-kad-dht.js","sourceRoot":"","sources":["../../src/dual-kad-dht.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dual-kad-dht.js","sourceRoot":"","sources":["../../src/dual-kad-dht.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
1
  import type { ProvidersInit } from './providers.js';
2
2
  import type { AddressManager } from '@libp2p/interface-address-manager';
3
3
  import type { ConnectionManager } from '@libp2p/interface-connection-manager';
4
+ import type { Libp2pEvents } from '@libp2p/interface-libp2p';
4
5
  import type { Metrics } from '@libp2p/interface-metrics';
5
6
  import type { PeerId } from '@libp2p/interface-peer-id';
6
7
  import type { PeerInfo } from '@libp2p/interface-peer-info';
7
8
  import type { PeerStore } from '@libp2p/interface-peer-store';
8
9
  import type { Registrar } from '@libp2p/interface-registrar';
9
10
  import type { AbortOptions } from '@libp2p/interfaces';
11
+ import type { EventEmitter } from '@libp2p/interfaces/events';
10
12
  import type { Datastore } from 'interface-datastore';
11
13
  import type { CID } from 'multiformats/cid';
12
14
  import type { ProgressOptions, ProgressEvent } from 'progress-events';
@@ -261,6 +263,7 @@ export interface KadDHTComponents {
261
263
  metrics?: Metrics;
262
264
  connectionManager: ConnectionManager;
263
265
  datastore: Datastore;
266
+ events: EventEmitter<Libp2pEvents>;
264
267
  }
265
268
  export declare function kadDHT(init?: KadDHTInit): (components: KadDHTComponents) => DualKadDHT;
266
269
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAcrD;;GAEG;AACH,MAAM,CAAN,IAAY,UASX;AATD,WAAY,UAAU;IACpB,uDAAc,CAAA;IACd,6DAAa,CAAA;IACb,uDAAU,CAAA;IACV,yDAAW,CAAA;IACX,mDAAQ,CAAA;IACR,6CAAK,CAAA;IACL,mDAAQ,CAAA;IACR,qDAAS,CAAA;AACX,CAAC,EATW,UAAU,KAAV,UAAU,QASrB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,uDAAa,CAAA;IACb,uDAAS,CAAA;IACT,6DAAY,CAAA;IACZ,+DAAa,CAAA;IACb,uDAAS,CAAA;IACT,6CAAI,CAAA;AACN,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAqRD,MAAM,UAAU,MAAM,CAAE,IAAiB;IACvC,OAAO,CAAC,UAA4B,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AAClF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAgBrD;;GAEG;AACH,MAAM,CAAN,IAAY,UASX;AATD,WAAY,UAAU;IACpB,uDAAc,CAAA;IACd,6DAAa,CAAA;IACb,uDAAU,CAAA;IACV,yDAAW,CAAA;IACX,mDAAQ,CAAA;IACR,6CAAK,CAAA;IACL,mDAAQ,CAAA;IACR,qDAAS,CAAA;AACX,CAAC,EATW,UAAU,KAAV,UAAU,QASrB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,uDAAa,CAAA;IACb,uDAAS,CAAA;IACT,6DAAY,CAAA;IACZ,+DAAa,CAAA;IACb,uDAAS,CAAA;IACT,6CAAI,CAAA;AACN,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAsRD,MAAM,UAAU,MAAM,CAAE,IAAiB;IACvC,OAAO,CAAC,UAA4B,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AAClF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/kad-dht",
3
- "version": "9.2.0",
3
+ "version": "9.3.0",
4
4
  "description": "JavaScript implementation of the Kad-DHT for libp2p",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p-kad-dht#readme",
@@ -6,11 +6,13 @@ import { EventEmitter, CustomEvent } from '@libp2p/interfaces/events'
6
6
  import { logger } from '@libp2p/logger'
7
7
  import drain from 'it-drain'
8
8
  import merge from 'it-merge'
9
+ import isPrivate from 'private-ip'
9
10
  import { DefaultKadDHT } from './kad-dht.js'
10
11
  import { queryErrorEvent } from './query/events.js'
11
12
  import type { DualKadDHT, KadDHT, KadDHTComponents, KadDHTInit, QueryEvent, QueryOptions } from './index.js'
12
13
  import type { PeerId } from '@libp2p/interface-peer-id'
13
14
  import type { PeerInfo } from '@libp2p/interface-peer-info'
15
+ import type { Multiaddr } from '@multiformats/multiaddr'
14
16
  import type { CID } from 'multiformats/cid'
15
17
 
16
18
  const log = logger('libp2p:kad-dht')
@@ -81,6 +83,44 @@ class DHTPeerRouting implements PeerRouting {
81
83
  }
82
84
  }
83
85
 
86
+ // see https://github.com/multiformats/multiaddr/blob/master/protocols.csv
87
+ const P2P_CIRCUIT_CODE = 290
88
+ const DNS4_CODE = 54
89
+ const DNS6_CODE = 55
90
+ const DNSADDR_CODE = 56
91
+ const IP4_CODE = 4
92
+ const IP6_CODE = 41
93
+
94
+ function multiaddrIsPublic (multiaddr: Multiaddr): boolean {
95
+ const tuples = multiaddr.stringTuples()
96
+
97
+ // p2p-circuit should not enable server mode
98
+ for (const tuple of tuples) {
99
+ if (tuple[0] === P2P_CIRCUIT_CODE) {
100
+ return false
101
+ }
102
+ }
103
+
104
+ // dns4 or dns6 or dnsaddr
105
+ if (tuples[0][0] === DNS4_CODE || tuples[0][0] === DNS6_CODE || tuples[0][0] === DNSADDR_CODE) {
106
+ log('%m is public %s', multiaddr, true)
107
+
108
+ return true
109
+ }
110
+
111
+ // ip4 or ip6
112
+ if (tuples[0][0] === IP4_CODE || tuples[0][0] === IP6_CODE) {
113
+ const result = isPrivate(`${tuples[0][1]}`)
114
+ const isPublic = result == null || !result
115
+
116
+ log('%m is public %s', multiaddr, isPublic)
117
+
118
+ return isPublic
119
+ }
120
+
121
+ return false
122
+ }
123
+
84
124
  /**
85
125
  * A DHT implementation modelled after Kademlia with S/Kademlia modifications.
86
126
  * Original implementation in go: https://github.com/libp2p/go-libp2p-kad-dht.
@@ -123,6 +163,30 @@ export class DefaultDualKadDHT extends EventEmitter<PeerDiscoveryEvents> impleme
123
163
  detail: evt.detail
124
164
  }))
125
165
  })
166
+
167
+ components.events.addEventListener('self:peer:update', (evt) => {
168
+ log('received update of self-peer info')
169
+ const hasPublicAddress = evt.detail.peer.addresses
170
+ .some(({ multiaddr }) => {
171
+ const isPublic = multiaddrIsPublic(multiaddr)
172
+
173
+ log('%m is public %s', multiaddr, isPublic)
174
+
175
+ return isPublic
176
+ })
177
+
178
+ this.getMode()
179
+ .then(async mode => {
180
+ if (hasPublicAddress && mode === 'client') {
181
+ await this.setMode('server')
182
+ } else if (mode === 'server' && !hasPublicAddress) {
183
+ await this.setMode('client')
184
+ }
185
+ })
186
+ .catch(err => {
187
+ log.error('error setting dht server mode', err)
188
+ })
189
+ })
126
190
  }
127
191
 
128
192
  readonly [Symbol.toStringTag] = '@libp2p/dual-kad-dht'
package/src/index.ts CHANGED
@@ -2,12 +2,14 @@ import { DefaultDualKadDHT } from './dual-kad-dht.js'
2
2
  import type { ProvidersInit } from './providers.js'
3
3
  import type { AddressManager } from '@libp2p/interface-address-manager'
4
4
  import type { ConnectionManager } from '@libp2p/interface-connection-manager'
5
+ import type { Libp2pEvents } from '@libp2p/interface-libp2p'
5
6
  import type { Metrics } from '@libp2p/interface-metrics'
6
7
  import type { PeerId } from '@libp2p/interface-peer-id'
7
8
  import type { PeerInfo } from '@libp2p/interface-peer-info'
8
9
  import type { PeerStore } from '@libp2p/interface-peer-store'
9
10
  import type { Registrar } from '@libp2p/interface-registrar'
10
11
  import type { AbortOptions } from '@libp2p/interfaces'
12
+ import type { EventEmitter } from '@libp2p/interfaces/events'
11
13
  import type { Datastore } from 'interface-datastore'
12
14
  import type { CID } from 'multiformats/cid'
13
15
  import type { ProgressOptions, ProgressEvent } from 'progress-events'
@@ -311,6 +313,7 @@ export interface KadDHTComponents {
311
313
  metrics?: Metrics
312
314
  connectionManager: ConnectionManager
313
315
  datastore: Datastore
316
+ events: EventEmitter<Libp2pEvents>
314
317
  }
315
318
 
316
319
  export function kadDHT (init?: KadDHTInit): (components: KadDHTComponents) => DualKadDHT {