@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.
- package/dist/index.min.js +19 -19
- package/dist/src/dual-kad-dht.d.ts.map +1 -1
- package/dist/src/dual-kad-dht.js +51 -0
- package/dist/src/dual-kad-dht.js.map +1 -1
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/package.json +1 -1
- package/src/dual-kad-dht.ts +64 -0
- package/src/index.ts +3 -0
|
@@ -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;
|
|
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"}
|
package/dist/src/dual-kad-dht.js
CHANGED
|
@@ -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":"AAAA,OAAO,EAAuB,cAAc,EAAE,MAAM,mCAAmC,CAAA;AACvF,OAAO,EAAsB,aAAa,EAA4B,MAAM,kCAAkC,CAAA;AAC9G,OAAO,EAAoB,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,KAAK,MAAM,UAAU,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"dual-kad-dht.js","sourceRoot":"","sources":["../../src/dual-kad-dht.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -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
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -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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"}
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;
|
|
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
package/src/dual-kad-dht.ts
CHANGED
|
@@ -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 {
|