libp2p 2.3.0 → 2.3.1-6ddc1b80e
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 +7 -7
- package/dist/src/address-manager.d.ts +15 -4
- package/dist/src/address-manager.d.ts.map +1 -1
- package/dist/src/address-manager.js +76 -9
- package/dist/src/address-manager.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.d.ts.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/package.json +10 -10
- package/src/address-manager.ts +101 -14
- package/src/version.ts +1 -1
- package/dist/typedoc-urls.json +0 -19
|
@@ -8,17 +8,21 @@ export interface AddressManagerInit {
|
|
|
8
8
|
*/
|
|
9
9
|
announceFilter?: AddressFilter;
|
|
10
10
|
/**
|
|
11
|
-
* list of
|
|
11
|
+
* A list of string multiaddrs to listen on
|
|
12
12
|
*/
|
|
13
13
|
listen?: string[];
|
|
14
14
|
/**
|
|
15
|
-
* list of
|
|
15
|
+
* A list of string multiaddrs to use instead of those reported by transports
|
|
16
16
|
*/
|
|
17
17
|
announce?: string[];
|
|
18
18
|
/**
|
|
19
|
-
* list of multiaddrs string
|
|
19
|
+
* A list of string multiaddrs string to never announce
|
|
20
20
|
*/
|
|
21
21
|
noAnnounce?: string[];
|
|
22
|
+
/**
|
|
23
|
+
* A list of string multiaddrs to add to the list of announced addresses
|
|
24
|
+
*/
|
|
25
|
+
appendAnnounce?: string[];
|
|
22
26
|
}
|
|
23
27
|
export interface AddressManagerComponents {
|
|
24
28
|
peerId: PeerId;
|
|
@@ -39,10 +43,11 @@ export declare class AddressManager implements AddressManagerInterface {
|
|
|
39
43
|
private readonly components;
|
|
40
44
|
private readonly listen;
|
|
41
45
|
private readonly announce;
|
|
46
|
+
private readonly appendAnnounce;
|
|
42
47
|
private readonly observed;
|
|
43
48
|
private readonly announceFilter;
|
|
44
49
|
private readonly ipDomainMappings;
|
|
45
|
-
private readonly
|
|
50
|
+
private readonly publicAddressMappings;
|
|
46
51
|
/**
|
|
47
52
|
* Responsible for managing the peer addresses.
|
|
48
53
|
* Peers can specify their listen and announce addresses.
|
|
@@ -60,6 +65,10 @@ export declare class AddressManager implements AddressManagerInterface {
|
|
|
60
65
|
* Get peer announcing multiaddrs
|
|
61
66
|
*/
|
|
62
67
|
getAnnounceAddrs(): Multiaddr[];
|
|
68
|
+
/**
|
|
69
|
+
* Get peer announcing multiaddrs
|
|
70
|
+
*/
|
|
71
|
+
getAppendAnnounceAddrs(): Multiaddr[];
|
|
63
72
|
/**
|
|
64
73
|
* Get observed multiaddrs
|
|
65
74
|
*/
|
|
@@ -73,5 +82,7 @@ export declare class AddressManager implements AddressManagerInterface {
|
|
|
73
82
|
getAddresses(): Multiaddr[];
|
|
74
83
|
addDNSMapping(domain: string, addresses: string[]): void;
|
|
75
84
|
removeDNSMapping(domain: string): void;
|
|
85
|
+
addPublicAddressMapping(internalIp: string, internalPort: number, externalIp: string, externalPort?: number, protocol?: 'tcp' | 'udp'): void;
|
|
86
|
+
removePublicAddressMapping(internalIp: string, internalPort: number, externalIp: string, externalPort?: number, protocol?: 'tcp' | 'udp'): void;
|
|
76
87
|
}
|
|
77
88
|
//# sourceMappingURL=address-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address-manager.d.ts","sourceRoot":"","sources":["../../src/address-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAU,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACnH,OAAO,KAAK,EAAE,cAAc,IAAI,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7G,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,cAAc,CAAC,EAAE,aAAa,CAAA;IAE9B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"address-manager.d.ts","sourceRoot":"","sources":["../../src/address-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAU,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACnH,OAAO,KAAK,EAAE,cAAc,IAAI,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7G,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,cAAc,CAAC,EAAE,aAAa,CAAA;IAE9B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IAErB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAA;IACtC,MAAM,EAAE,eAAe,CAAA;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAAA;CAClC;AAuCD,qBAAa,cAAe,YAAW,uBAAuB;IAC5D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IAErD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAa;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsC;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAqC;IAE3E;;;;;OAKG;gBACU,UAAU,EAAE,wBAAwB,EAAE,IAAI,GAAE,kBAAuB;IA2BhF,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,6BAA4B;IAEzD,yBAAyB,IAAK,IAAI;IAwBlC;;OAEG;IACH,cAAc,IAAK,SAAS,EAAE;IAI9B;;OAEG;IACH,gBAAgB,IAAK,SAAS,EAAE;IAIhC;;OAEG;IACH,sBAAsB,IAAK,SAAS,EAAE;IAItC;;OAEG;IACH,gBAAgB,IAAK,SAAS,EAAE;IAIhC;;OAEG;IACH,eAAe,CAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAcvC,mBAAmB,CAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAoB3C,kBAAkB,CAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAO1C,YAAY,IAAK,SAAS,EAAE;IAuI5B,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAOzD,gBAAgB,CAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IASvC,uBAAuB,CAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAE,MAAqB,EAAE,QAAQ,GAAE,KAAK,GAAG,KAAa,GAAG,IAAI;IAWlK,0BAA0B,CAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAE,MAAqB,EAAE,QAAQ,GAAE,KAAK,GAAG,KAAa,GAAG,IAAI;CAYtK"}
|
|
@@ -21,16 +21,19 @@ const CODEC_IP4 = 0x04;
|
|
|
21
21
|
const CODEC_IP6 = 0x29;
|
|
22
22
|
const CODEC_DNS4 = 0x36;
|
|
23
23
|
const CODEC_DNS6 = 0x37;
|
|
24
|
+
const CODEC_TCP = 0x06;
|
|
25
|
+
const CODEC_UDP = 0x0111;
|
|
24
26
|
export class AddressManager {
|
|
25
27
|
log;
|
|
26
28
|
components;
|
|
27
29
|
// this is an array to allow for duplicates, e.g. multiples of `/ip4/0.0.0.0/tcp/0`
|
|
28
30
|
listen;
|
|
29
31
|
announce;
|
|
32
|
+
appendAnnounce;
|
|
30
33
|
observed;
|
|
31
34
|
announceFilter;
|
|
32
35
|
ipDomainMappings;
|
|
33
|
-
|
|
36
|
+
publicAddressMappings;
|
|
34
37
|
/**
|
|
35
38
|
* Responsible for managing the peer addresses.
|
|
36
39
|
* Peers can specify their listen and announce addresses.
|
|
@@ -38,13 +41,15 @@ export class AddressManager {
|
|
|
38
41
|
* while the announce addresses will be used for the peer addresses' to other peers in the network.
|
|
39
42
|
*/
|
|
40
43
|
constructor(components, init = {}) {
|
|
41
|
-
const { listen = [], announce = [] } = init;
|
|
44
|
+
const { listen = [], announce = [], appendAnnounce = [] } = init;
|
|
42
45
|
this.components = components;
|
|
43
46
|
this.log = components.logger.forComponent('libp2p:address-manager');
|
|
44
47
|
this.listen = listen.map(ma => ma.toString());
|
|
45
48
|
this.announce = new Set(announce.map(ma => ma.toString()));
|
|
49
|
+
this.appendAnnounce = new Set(appendAnnounce.map(ma => ma.toString()));
|
|
46
50
|
this.observed = new Map();
|
|
47
51
|
this.ipDomainMappings = new Map();
|
|
52
|
+
this.publicAddressMappings = new Map();
|
|
48
53
|
this.announceFilter = init.announceFilter ?? defaultAddressFilter;
|
|
49
54
|
// this method gets called repeatedly on startup when transports start listening so
|
|
50
55
|
// debounce it so we don't cause multiple self:peer:update events to be emitted
|
|
@@ -57,7 +62,6 @@ export class AddressManager {
|
|
|
57
62
|
components.events.addEventListener('transport:close', () => {
|
|
58
63
|
this._updatePeerStoreAddresses();
|
|
59
64
|
});
|
|
60
|
-
this.where = new Error('where');
|
|
61
65
|
}
|
|
62
66
|
[Symbol.toStringTag] = '@libp2p/address-manager';
|
|
63
67
|
_updatePeerStoreAddresses() {
|
|
@@ -91,6 +95,12 @@ export class AddressManager {
|
|
|
91
95
|
getAnnounceAddrs() {
|
|
92
96
|
return Array.from(this.announce).map((a) => multiaddr(a));
|
|
93
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Get peer announcing multiaddrs
|
|
100
|
+
*/
|
|
101
|
+
getAppendAnnounceAddrs() {
|
|
102
|
+
return Array.from(this.appendAnnounce).map((a) => multiaddr(a));
|
|
103
|
+
}
|
|
94
104
|
/**
|
|
95
105
|
* Get observed multiaddrs
|
|
96
106
|
*/
|
|
@@ -137,15 +147,49 @@ export class AddressManager {
|
|
|
137
147
|
// no configured announce addrs, add configured listen addresses
|
|
138
148
|
multiaddrs = this.components.transportManager.getAddrs();
|
|
139
149
|
}
|
|
140
|
-
// add observed addresses we are confident in
|
|
141
150
|
multiaddrs = multiaddrs
|
|
142
|
-
.concat(
|
|
151
|
+
.concat(
|
|
152
|
+
// add additional announce addresses
|
|
153
|
+
...this.getAppendAnnounceAddrs(),
|
|
154
|
+
// add observed addresses we are confident in
|
|
155
|
+
Array.from(this.observed)
|
|
143
156
|
.filter(([ma, metadata]) => metadata.confident)
|
|
144
157
|
.map(([ma]) => multiaddr(ma)));
|
|
145
|
-
|
|
158
|
+
// add public addresses
|
|
159
|
+
const ipMappedMultiaddrs = [];
|
|
160
|
+
multiaddrs.forEach(ma => {
|
|
161
|
+
const tuples = ma.stringTuples();
|
|
162
|
+
let tuple;
|
|
163
|
+
// see if the internal host/port/protocol tuple has been mapped externally
|
|
164
|
+
if ((tuples[0][0] === CODEC_IP4 || tuples[0][0] === CODEC_IP6) && tuples[1][0] === CODEC_TCP) {
|
|
165
|
+
tuple = `${tuples[0][1]}-${tuples[1][1]}-tcp`;
|
|
166
|
+
}
|
|
167
|
+
else if ((tuples[0][0] === CODEC_IP4 || tuples[0][0] === CODEC_IP6) && tuples[1][0] === CODEC_UDP) {
|
|
168
|
+
tuple = `${tuples[0][1]}-${tuples[1][1]}-udp`;
|
|
169
|
+
}
|
|
170
|
+
if (tuple == null) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
const mappings = this.publicAddressMappings.get(tuple);
|
|
174
|
+
if (mappings == null) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
mappings.forEach(mapping => {
|
|
178
|
+
tuples[0][1] = mapping.externalIp;
|
|
179
|
+
tuples[1][1] = `${mapping.externalPort}`;
|
|
180
|
+
ipMappedMultiaddrs.push(multiaddr(`/${tuples.map(tuple => {
|
|
181
|
+
return [
|
|
182
|
+
protocols(tuple[0]).name,
|
|
183
|
+
tuple[1]
|
|
184
|
+
].join('/');
|
|
185
|
+
}).join('/')}`));
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
multiaddrs = multiaddrs.concat(ipMappedMultiaddrs);
|
|
146
189
|
// add ip->domain mappings
|
|
190
|
+
const dnsMappedMultiaddrs = [];
|
|
147
191
|
for (const ma of multiaddrs) {
|
|
148
|
-
const tuples =
|
|
192
|
+
const tuples = ma.stringTuples();
|
|
149
193
|
let mappedIp = false;
|
|
150
194
|
for (const [ip, domain] of this.ipDomainMappings.entries()) {
|
|
151
195
|
for (let i = 0; i < tuples.length; i++) {
|
|
@@ -165,7 +209,7 @@ export class AddressManager {
|
|
|
165
209
|
}
|
|
166
210
|
}
|
|
167
211
|
if (mappedIp) {
|
|
168
|
-
|
|
212
|
+
dnsMappedMultiaddrs.push(multiaddr(`/${tuples.map(tuple => {
|
|
169
213
|
return [
|
|
170
214
|
protocols(tuple[0]).name,
|
|
171
215
|
tuple[1]
|
|
@@ -173,7 +217,7 @@ export class AddressManager {
|
|
|
173
217
|
}).join('/')}`));
|
|
174
218
|
}
|
|
175
219
|
}
|
|
176
|
-
multiaddrs = multiaddrs.concat(
|
|
220
|
+
multiaddrs = multiaddrs.concat(dnsMappedMultiaddrs);
|
|
177
221
|
// dedupe multiaddrs
|
|
178
222
|
const addrSet = new Set();
|
|
179
223
|
multiaddrs = multiaddrs.filter(ma => {
|
|
@@ -200,15 +244,38 @@ export class AddressManager {
|
|
|
200
244
|
}
|
|
201
245
|
addDNSMapping(domain, addresses) {
|
|
202
246
|
addresses.forEach(ip => {
|
|
247
|
+
this.log('add DNS mapping %s to %s', ip, domain);
|
|
203
248
|
this.ipDomainMappings.set(ip, domain);
|
|
204
249
|
});
|
|
205
250
|
}
|
|
206
251
|
removeDNSMapping(domain) {
|
|
207
252
|
for (const [key, value] of this.ipDomainMappings.entries()) {
|
|
208
253
|
if (value === domain) {
|
|
254
|
+
this.log('remove DNS mapping for %s', domain);
|
|
209
255
|
this.ipDomainMappings.delete(key);
|
|
210
256
|
}
|
|
211
257
|
}
|
|
212
258
|
}
|
|
259
|
+
addPublicAddressMapping(internalIp, internalPort, externalIp, externalPort = internalPort, protocol = 'tcp') {
|
|
260
|
+
const key = `${internalIp}-${internalPort}-${protocol}`;
|
|
261
|
+
const mappings = this.publicAddressMappings.get(key) ?? [];
|
|
262
|
+
mappings.push({
|
|
263
|
+
externalIp,
|
|
264
|
+
externalPort
|
|
265
|
+
});
|
|
266
|
+
this.publicAddressMappings.set(key, mappings);
|
|
267
|
+
}
|
|
268
|
+
removePublicAddressMapping(internalIp, internalPort, externalIp, externalPort = internalPort, protocol = 'tcp') {
|
|
269
|
+
const key = `${internalIp}-${internalPort}-${protocol}`;
|
|
270
|
+
const mappings = (this.publicAddressMappings.get(key) ?? []).filter(mapping => {
|
|
271
|
+
return mapping.externalIp !== externalIp && mapping.externalPort !== externalPort;
|
|
272
|
+
});
|
|
273
|
+
if (mappings.length === 0) {
|
|
274
|
+
this.publicAddressMappings.delete(key);
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
this.publicAddressMappings.set(key, mappings);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
213
280
|
}
|
|
214
281
|
//# sourceMappingURL=address-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address-manager.js","sourceRoot":"","sources":["../../src/address-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"address-manager.js","sourceRoot":"","sources":["../../src/address-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,oBAAoB,CAAA;AACxC,eAAO,MAAM,IAAI,WAAW,CAAA"}
|
package/dist/src/version.js
CHANGED
package/dist/src/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,iBAAiB,CAAA;AACxC,MAAM,CAAC,MAAM,IAAI,GAAG,QAAQ,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "libp2p",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.1-6ddc1b80e",
|
|
4
4
|
"description": "JavaScript implementation of libp2p, a modular peer to peer network stack",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/libp2p#readme",
|
|
@@ -85,15 +85,15 @@
|
|
|
85
85
|
"test:webkit": "aegir test -t browser -- --browser webkit"
|
|
86
86
|
},
|
|
87
87
|
"dependencies": {
|
|
88
|
-
"@libp2p/crypto": "
|
|
89
|
-
"@libp2p/interface": "
|
|
90
|
-
"@libp2p/interface-internal": "
|
|
91
|
-
"@libp2p/logger": "
|
|
92
|
-
"@libp2p/multistream-select": "
|
|
93
|
-
"@libp2p/peer-collections": "
|
|
94
|
-
"@libp2p/peer-id": "
|
|
95
|
-
"@libp2p/peer-store": "
|
|
96
|
-
"@libp2p/utils": "
|
|
88
|
+
"@libp2p/crypto": "5.0.7-6ddc1b80e",
|
|
89
|
+
"@libp2p/interface": "2.2.1-6ddc1b80e",
|
|
90
|
+
"@libp2p/interface-internal": "2.1.1-6ddc1b80e",
|
|
91
|
+
"@libp2p/logger": "5.1.4-6ddc1b80e",
|
|
92
|
+
"@libp2p/multistream-select": "6.0.9-6ddc1b80e",
|
|
93
|
+
"@libp2p/peer-collections": "6.0.12-6ddc1b80e",
|
|
94
|
+
"@libp2p/peer-id": "5.0.8-6ddc1b80e",
|
|
95
|
+
"@libp2p/peer-store": "11.0.12-6ddc1b80e",
|
|
96
|
+
"@libp2p/utils": "6.2.1-6ddc1b80e",
|
|
97
97
|
"@multiformats/dns": "^1.0.6",
|
|
98
98
|
"@multiformats/multiaddr": "^12.2.3",
|
|
99
99
|
"@multiformats/multiaddr-matcher": "^1.2.1",
|
package/src/address-manager.ts
CHANGED
|
@@ -13,19 +13,24 @@ export interface AddressManagerInit {
|
|
|
13
13
|
announceFilter?: AddressFilter
|
|
14
14
|
|
|
15
15
|
/**
|
|
16
|
-
* list of
|
|
16
|
+
* A list of string multiaddrs to listen on
|
|
17
17
|
*/
|
|
18
18
|
listen?: string[]
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
|
-
* list of
|
|
21
|
+
* A list of string multiaddrs to use instead of those reported by transports
|
|
22
22
|
*/
|
|
23
23
|
announce?: string[]
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
|
-
* list of multiaddrs string
|
|
26
|
+
* A list of string multiaddrs string to never announce
|
|
27
27
|
*/
|
|
28
28
|
noAnnounce?: string[]
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* A list of string multiaddrs to add to the list of announced addresses
|
|
32
|
+
*/
|
|
33
|
+
appendAnnounce?: string[]
|
|
29
34
|
}
|
|
30
35
|
|
|
31
36
|
export interface AddressManagerComponents {
|
|
@@ -73,6 +78,13 @@ const CODEC_IP4 = 0x04
|
|
|
73
78
|
const CODEC_IP6 = 0x29
|
|
74
79
|
const CODEC_DNS4 = 0x36
|
|
75
80
|
const CODEC_DNS6 = 0x37
|
|
81
|
+
const CODEC_TCP = 0x06
|
|
82
|
+
const CODEC_UDP = 0x0111
|
|
83
|
+
|
|
84
|
+
interface PublicAddressMapping {
|
|
85
|
+
externalIp: string
|
|
86
|
+
externalPort: number
|
|
87
|
+
}
|
|
76
88
|
|
|
77
89
|
export class AddressManager implements AddressManagerInterface {
|
|
78
90
|
private readonly log: Logger
|
|
@@ -80,11 +92,11 @@ export class AddressManager implements AddressManagerInterface {
|
|
|
80
92
|
// this is an array to allow for duplicates, e.g. multiples of `/ip4/0.0.0.0/tcp/0`
|
|
81
93
|
private readonly listen: string[]
|
|
82
94
|
private readonly announce: Set<string>
|
|
95
|
+
private readonly appendAnnounce: Set<string>
|
|
83
96
|
private readonly observed: Map<string, ObservedAddressMetadata>
|
|
84
97
|
private readonly announceFilter: AddressFilter
|
|
85
98
|
private readonly ipDomainMappings: Map<string, string>
|
|
86
|
-
|
|
87
|
-
private readonly where: Error
|
|
99
|
+
private readonly publicAddressMappings: Map<string, PublicAddressMapping[]>
|
|
88
100
|
|
|
89
101
|
/**
|
|
90
102
|
* Responsible for managing the peer addresses.
|
|
@@ -93,14 +105,16 @@ export class AddressManager implements AddressManagerInterface {
|
|
|
93
105
|
* while the announce addresses will be used for the peer addresses' to other peers in the network.
|
|
94
106
|
*/
|
|
95
107
|
constructor (components: AddressManagerComponents, init: AddressManagerInit = {}) {
|
|
96
|
-
const { listen = [], announce = [] } = init
|
|
108
|
+
const { listen = [], announce = [], appendAnnounce = [] } = init
|
|
97
109
|
|
|
98
110
|
this.components = components
|
|
99
111
|
this.log = components.logger.forComponent('libp2p:address-manager')
|
|
100
112
|
this.listen = listen.map(ma => ma.toString())
|
|
101
113
|
this.announce = new Set(announce.map(ma => ma.toString()))
|
|
114
|
+
this.appendAnnounce = new Set(appendAnnounce.map(ma => ma.toString()))
|
|
102
115
|
this.observed = new Map()
|
|
103
116
|
this.ipDomainMappings = new Map()
|
|
117
|
+
this.publicAddressMappings = new Map()
|
|
104
118
|
this.announceFilter = init.announceFilter ?? defaultAddressFilter
|
|
105
119
|
|
|
106
120
|
// this method gets called repeatedly on startup when transports start listening so
|
|
@@ -115,8 +129,6 @@ export class AddressManager implements AddressManagerInterface {
|
|
|
115
129
|
components.events.addEventListener('transport:close', () => {
|
|
116
130
|
this._updatePeerStoreAddresses()
|
|
117
131
|
})
|
|
118
|
-
|
|
119
|
-
this.where = new Error('where')
|
|
120
132
|
}
|
|
121
133
|
|
|
122
134
|
readonly [Symbol.toStringTag] = '@libp2p/address-manager'
|
|
@@ -159,6 +171,13 @@ export class AddressManager implements AddressManagerInterface {
|
|
|
159
171
|
return Array.from(this.announce).map((a) => multiaddr(a))
|
|
160
172
|
}
|
|
161
173
|
|
|
174
|
+
/**
|
|
175
|
+
* Get peer announcing multiaddrs
|
|
176
|
+
*/
|
|
177
|
+
getAppendAnnounceAddrs (): Multiaddr[] {
|
|
178
|
+
return Array.from(this.appendAnnounce).map((a) => multiaddr(a))
|
|
179
|
+
}
|
|
180
|
+
|
|
162
181
|
/**
|
|
163
182
|
* Get observed multiaddrs
|
|
164
183
|
*/
|
|
@@ -218,19 +237,62 @@ export class AddressManager implements AddressManagerInterface {
|
|
|
218
237
|
multiaddrs = this.components.transportManager.getAddrs()
|
|
219
238
|
}
|
|
220
239
|
|
|
221
|
-
// add observed addresses we are confident in
|
|
222
240
|
multiaddrs = multiaddrs
|
|
223
241
|
.concat(
|
|
242
|
+
// add additional announce addresses
|
|
243
|
+
...this.getAppendAnnounceAddrs(),
|
|
244
|
+
|
|
245
|
+
// add observed addresses we are confident in
|
|
224
246
|
Array.from(this.observed)
|
|
225
247
|
.filter(([ma, metadata]) => metadata.confident)
|
|
226
248
|
.map(([ma]) => multiaddr(ma))
|
|
227
249
|
)
|
|
228
250
|
|
|
229
|
-
|
|
251
|
+
// add public addresses
|
|
252
|
+
const ipMappedMultiaddrs: Multiaddr[] = []
|
|
253
|
+
multiaddrs.forEach(ma => {
|
|
254
|
+
const tuples = ma.stringTuples()
|
|
255
|
+
let tuple: string | undefined
|
|
256
|
+
|
|
257
|
+
// see if the internal host/port/protocol tuple has been mapped externally
|
|
258
|
+
if ((tuples[0][0] === CODEC_IP4 || tuples[0][0] === CODEC_IP6) && tuples[1][0] === CODEC_TCP) {
|
|
259
|
+
tuple = `${tuples[0][1]}-${tuples[1][1]}-tcp`
|
|
260
|
+
} else if ((tuples[0][0] === CODEC_IP4 || tuples[0][0] === CODEC_IP6) && tuples[1][0] === CODEC_UDP) {
|
|
261
|
+
tuple = `${tuples[0][1]}-${tuples[1][1]}-udp`
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
if (tuple == null) {
|
|
265
|
+
return
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
const mappings = this.publicAddressMappings.get(tuple)
|
|
269
|
+
|
|
270
|
+
if (mappings == null) {
|
|
271
|
+
return
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
mappings.forEach(mapping => {
|
|
275
|
+
tuples[0][1] = mapping.externalIp
|
|
276
|
+
tuples[1][1] = `${mapping.externalPort}`
|
|
277
|
+
|
|
278
|
+
ipMappedMultiaddrs.push(
|
|
279
|
+
multiaddr(`/${
|
|
280
|
+
tuples.map(tuple => {
|
|
281
|
+
return [
|
|
282
|
+
protocols(tuple[0]).name,
|
|
283
|
+
tuple[1]
|
|
284
|
+
].join('/')
|
|
285
|
+
}).join('/')
|
|
286
|
+
}`)
|
|
287
|
+
)
|
|
288
|
+
})
|
|
289
|
+
})
|
|
290
|
+
multiaddrs = multiaddrs.concat(ipMappedMultiaddrs)
|
|
230
291
|
|
|
231
292
|
// add ip->domain mappings
|
|
293
|
+
const dnsMappedMultiaddrs: Multiaddr[] = []
|
|
232
294
|
for (const ma of multiaddrs) {
|
|
233
|
-
const tuples =
|
|
295
|
+
const tuples = ma.stringTuples()
|
|
234
296
|
let mappedIp = false
|
|
235
297
|
|
|
236
298
|
for (const [ip, domain] of this.ipDomainMappings.entries()) {
|
|
@@ -254,7 +316,7 @@ export class AddressManager implements AddressManagerInterface {
|
|
|
254
316
|
}
|
|
255
317
|
|
|
256
318
|
if (mappedIp) {
|
|
257
|
-
|
|
319
|
+
dnsMappedMultiaddrs.push(
|
|
258
320
|
multiaddr(`/${
|
|
259
321
|
tuples.map(tuple => {
|
|
260
322
|
return [
|
|
@@ -266,8 +328,7 @@ export class AddressManager implements AddressManagerInterface {
|
|
|
266
328
|
)
|
|
267
329
|
}
|
|
268
330
|
}
|
|
269
|
-
|
|
270
|
-
multiaddrs = multiaddrs.concat(mappedMultiaddrs)
|
|
331
|
+
multiaddrs = multiaddrs.concat(dnsMappedMultiaddrs)
|
|
271
332
|
|
|
272
333
|
// dedupe multiaddrs
|
|
273
334
|
const addrSet = new Set<string>()
|
|
@@ -305,6 +366,7 @@ export class AddressManager implements AddressManagerInterface {
|
|
|
305
366
|
|
|
306
367
|
addDNSMapping (domain: string, addresses: string[]): void {
|
|
307
368
|
addresses.forEach(ip => {
|
|
369
|
+
this.log('add DNS mapping %s to %s', ip, domain)
|
|
308
370
|
this.ipDomainMappings.set(ip, domain)
|
|
309
371
|
})
|
|
310
372
|
}
|
|
@@ -312,8 +374,33 @@ export class AddressManager implements AddressManagerInterface {
|
|
|
312
374
|
removeDNSMapping (domain: string): void {
|
|
313
375
|
for (const [key, value] of this.ipDomainMappings.entries()) {
|
|
314
376
|
if (value === domain) {
|
|
377
|
+
this.log('remove DNS mapping for %s', domain)
|
|
315
378
|
this.ipDomainMappings.delete(key)
|
|
316
379
|
}
|
|
317
380
|
}
|
|
318
381
|
}
|
|
382
|
+
|
|
383
|
+
addPublicAddressMapping (internalIp: string, internalPort: number, externalIp: string, externalPort: number = internalPort, protocol: 'tcp' | 'udp' = 'tcp'): void {
|
|
384
|
+
const key = `${internalIp}-${internalPort}-${protocol}`
|
|
385
|
+
const mappings = this.publicAddressMappings.get(key) ?? []
|
|
386
|
+
mappings.push({
|
|
387
|
+
externalIp,
|
|
388
|
+
externalPort
|
|
389
|
+
})
|
|
390
|
+
|
|
391
|
+
this.publicAddressMappings.set(key, mappings)
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
removePublicAddressMapping (internalIp: string, internalPort: number, externalIp: string, externalPort: number = internalPort, protocol: 'tcp' | 'udp' = 'tcp'): void {
|
|
395
|
+
const key = `${internalIp}-${internalPort}-${protocol}`
|
|
396
|
+
const mappings = (this.publicAddressMappings.get(key) ?? []).filter(mapping => {
|
|
397
|
+
return mapping.externalIp !== externalIp && mapping.externalPort !== externalPort
|
|
398
|
+
})
|
|
399
|
+
|
|
400
|
+
if (mappings.length === 0) {
|
|
401
|
+
this.publicAddressMappings.delete(key)
|
|
402
|
+
} else {
|
|
403
|
+
this.publicAddressMappings.set(key, mappings)
|
|
404
|
+
}
|
|
405
|
+
}
|
|
319
406
|
}
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '2.3.
|
|
1
|
+
export const version = '2.3.1-6ddc1b80e'
|
|
2
2
|
export const name = 'libp2p'
|
package/dist/typedoc-urls.json
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"AddressFilter": "https://libp2p.github.io/js-libp2p/interfaces/libp2p.index.AddressFilter.html",
|
|
3
|
-
"AddressManagerInit": "https://libp2p.github.io/js-libp2p/interfaces/libp2p.index.AddressManagerInit.html",
|
|
4
|
-
"ConnectionManagerInit": "https://libp2p.github.io/js-libp2p/interfaces/libp2p.index.ConnectionManagerInit.html",
|
|
5
|
-
"ConnectionMonitorInit": "https://libp2p.github.io/js-libp2p/interfaces/libp2p.index.ConnectionMonitorInit.html",
|
|
6
|
-
"Libp2pInit": "https://libp2p.github.io/js-libp2p/interfaces/libp2p.index.Libp2pInit.html",
|
|
7
|
-
".:Libp2pInit": "https://libp2p.github.io/js-libp2p/interfaces/libp2p.index.Libp2pInit.html",
|
|
8
|
-
"TransportManagerInit": "https://libp2p.github.io/js-libp2p/interfaces/libp2p.index.TransportManagerInit.html",
|
|
9
|
-
"Libp2pOptions": "https://libp2p.github.io/js-libp2p/types/libp2p.index.Libp2pOptions.html",
|
|
10
|
-
".:Libp2pOptions": "https://libp2p.github.io/js-libp2p/types/libp2p.index.Libp2pOptions.html",
|
|
11
|
-
"ServiceFactoryMap": "https://libp2p.github.io/js-libp2p/types/libp2p.index.ServiceFactoryMap.html",
|
|
12
|
-
".:ServiceFactoryMap": "https://libp2p.github.io/js-libp2p/types/libp2p.index.ServiceFactoryMap.html",
|
|
13
|
-
"createLibp2p": "https://libp2p.github.io/js-libp2p/functions/libp2p.index.createLibp2p.html",
|
|
14
|
-
".:createLibp2p": "https://libp2p.github.io/js-libp2p/functions/libp2p.index.createLibp2p.html",
|
|
15
|
-
"name": "https://libp2p.github.io/js-libp2p/variables/libp2p.version.name.html",
|
|
16
|
-
"./version:name": "https://libp2p.github.io/js-libp2p/variables/libp2p.version.name.html",
|
|
17
|
-
"version": "https://libp2p.github.io/js-libp2p/variables/libp2p.version.version.html",
|
|
18
|
-
"./version:version": "https://libp2p.github.io/js-libp2p/variables/libp2p.version.version.html"
|
|
19
|
-
}
|