libp2p 2.3.0 → 2.3.1-4a85eb033
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 +8 -8
- 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 +82 -14
- 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 +108 -21
- 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;IAmBlC;;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;IAQzD,gBAAgB,CAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAUvC,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;IAYlK,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;CActK"}
|
|
@@ -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,17 +62,13 @@ 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() {
|
|
64
68
|
// if announce addresses have been configured, ensure they make it into our peer
|
|
65
69
|
// record for things like identify
|
|
66
|
-
const addrs = this.
|
|
67
|
-
.
|
|
68
|
-
.concat([...this.observed.entries()]
|
|
69
|
-
.filter(([_, metadata]) => metadata.confident)
|
|
70
|
-
.map(([str]) => multiaddr(str))).map(ma => {
|
|
70
|
+
const addrs = this.getAddresses()
|
|
71
|
+
.map(ma => {
|
|
71
72
|
// strip our peer id if it is present
|
|
72
73
|
if (ma.getPeerId() === this.components.peerId.toString()) {
|
|
73
74
|
return ma.decapsulate(`/p2p/${this.components.peerId.toString()}`);
|
|
@@ -91,6 +92,12 @@ export class AddressManager {
|
|
|
91
92
|
getAnnounceAddrs() {
|
|
92
93
|
return Array.from(this.announce).map((a) => multiaddr(a));
|
|
93
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Get peer announcing multiaddrs
|
|
97
|
+
*/
|
|
98
|
+
getAppendAnnounceAddrs() {
|
|
99
|
+
return Array.from(this.appendAnnounce).map((a) => multiaddr(a));
|
|
100
|
+
}
|
|
94
101
|
/**
|
|
95
102
|
* Get observed multiaddrs
|
|
96
103
|
*/
|
|
@@ -137,15 +144,49 @@ export class AddressManager {
|
|
|
137
144
|
// no configured announce addrs, add configured listen addresses
|
|
138
145
|
multiaddrs = this.components.transportManager.getAddrs();
|
|
139
146
|
}
|
|
140
|
-
// add observed addresses we are confident in
|
|
141
147
|
multiaddrs = multiaddrs
|
|
142
|
-
.concat(
|
|
148
|
+
.concat(
|
|
149
|
+
// add additional announce addresses
|
|
150
|
+
...this.getAppendAnnounceAddrs(),
|
|
151
|
+
// add observed addresses we are confident in
|
|
152
|
+
Array.from(this.observed)
|
|
143
153
|
.filter(([ma, metadata]) => metadata.confident)
|
|
144
154
|
.map(([ma]) => multiaddr(ma)));
|
|
145
|
-
|
|
155
|
+
// add public addresses
|
|
156
|
+
const ipMappedMultiaddrs = [];
|
|
157
|
+
multiaddrs.forEach(ma => {
|
|
158
|
+
const tuples = ma.stringTuples();
|
|
159
|
+
let tuple;
|
|
160
|
+
// see if the internal host/port/protocol tuple has been mapped externally
|
|
161
|
+
if ((tuples[0][0] === CODEC_IP4 || tuples[0][0] === CODEC_IP6) && tuples[1][0] === CODEC_TCP) {
|
|
162
|
+
tuple = `${tuples[0][1]}-${tuples[1][1]}-tcp`;
|
|
163
|
+
}
|
|
164
|
+
else if ((tuples[0][0] === CODEC_IP4 || tuples[0][0] === CODEC_IP6) && tuples[1][0] === CODEC_UDP) {
|
|
165
|
+
tuple = `${tuples[0][1]}-${tuples[1][1]}-udp`;
|
|
166
|
+
}
|
|
167
|
+
if (tuple == null) {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
const mappings = this.publicAddressMappings.get(tuple);
|
|
171
|
+
if (mappings == null) {
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
mappings.forEach(mapping => {
|
|
175
|
+
tuples[0][1] = mapping.externalIp;
|
|
176
|
+
tuples[1][1] = `${mapping.externalPort}`;
|
|
177
|
+
ipMappedMultiaddrs.push(multiaddr(`/${tuples.map(tuple => {
|
|
178
|
+
return [
|
|
179
|
+
protocols(tuple[0]).name,
|
|
180
|
+
tuple[1]
|
|
181
|
+
].join('/');
|
|
182
|
+
}).join('/')}`));
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
multiaddrs = multiaddrs.concat(ipMappedMultiaddrs);
|
|
146
186
|
// add ip->domain mappings
|
|
187
|
+
const dnsMappedMultiaddrs = [];
|
|
147
188
|
for (const ma of multiaddrs) {
|
|
148
|
-
const tuples =
|
|
189
|
+
const tuples = ma.stringTuples();
|
|
149
190
|
let mappedIp = false;
|
|
150
191
|
for (const [ip, domain] of this.ipDomainMappings.entries()) {
|
|
151
192
|
for (let i = 0; i < tuples.length; i++) {
|
|
@@ -165,7 +206,7 @@ export class AddressManager {
|
|
|
165
206
|
}
|
|
166
207
|
}
|
|
167
208
|
if (mappedIp) {
|
|
168
|
-
|
|
209
|
+
dnsMappedMultiaddrs.push(multiaddr(`/${tuples.map(tuple => {
|
|
169
210
|
return [
|
|
170
211
|
protocols(tuple[0]).name,
|
|
171
212
|
tuple[1]
|
|
@@ -173,7 +214,7 @@ export class AddressManager {
|
|
|
173
214
|
}).join('/')}`));
|
|
174
215
|
}
|
|
175
216
|
}
|
|
176
|
-
multiaddrs = multiaddrs.concat(
|
|
217
|
+
multiaddrs = multiaddrs.concat(dnsMappedMultiaddrs);
|
|
177
218
|
// dedupe multiaddrs
|
|
178
219
|
const addrSet = new Set();
|
|
179
220
|
multiaddrs = multiaddrs.filter(ma => {
|
|
@@ -200,15 +241,42 @@ export class AddressManager {
|
|
|
200
241
|
}
|
|
201
242
|
addDNSMapping(domain, addresses) {
|
|
202
243
|
addresses.forEach(ip => {
|
|
244
|
+
this.log('add DNS mapping %s to %s', ip, domain);
|
|
203
245
|
this.ipDomainMappings.set(ip, domain);
|
|
204
246
|
});
|
|
247
|
+
this._updatePeerStoreAddresses();
|
|
205
248
|
}
|
|
206
249
|
removeDNSMapping(domain) {
|
|
207
250
|
for (const [key, value] of this.ipDomainMappings.entries()) {
|
|
208
251
|
if (value === domain) {
|
|
252
|
+
this.log('remove DNS mapping for %s', domain);
|
|
209
253
|
this.ipDomainMappings.delete(key);
|
|
210
254
|
}
|
|
211
255
|
}
|
|
256
|
+
this._updatePeerStoreAddresses();
|
|
257
|
+
}
|
|
258
|
+
addPublicAddressMapping(internalIp, internalPort, externalIp, externalPort = internalPort, protocol = 'tcp') {
|
|
259
|
+
const key = `${internalIp}-${internalPort}-${protocol}`;
|
|
260
|
+
const mappings = this.publicAddressMappings.get(key) ?? [];
|
|
261
|
+
mappings.push({
|
|
262
|
+
externalIp,
|
|
263
|
+
externalPort
|
|
264
|
+
});
|
|
265
|
+
this.publicAddressMappings.set(key, mappings);
|
|
266
|
+
this._updatePeerStoreAddresses();
|
|
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
|
+
this._updatePeerStoreAddresses();
|
|
212
280
|
}
|
|
213
281
|
}
|
|
214
282
|
//# 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-4a85eb033",
|
|
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-4a85eb033",
|
|
89
|
+
"@libp2p/interface": "2.2.1-4a85eb033",
|
|
90
|
+
"@libp2p/interface-internal": "2.1.1-4a85eb033",
|
|
91
|
+
"@libp2p/logger": "5.1.4-4a85eb033",
|
|
92
|
+
"@libp2p/multistream-select": "6.0.9-4a85eb033",
|
|
93
|
+
"@libp2p/peer-collections": "6.0.12-4a85eb033",
|
|
94
|
+
"@libp2p/peer-id": "5.0.8-4a85eb033",
|
|
95
|
+
"@libp2p/peer-store": "11.0.12-4a85eb033",
|
|
96
|
+
"@libp2p/utils": "6.2.1-4a85eb033",
|
|
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'
|
|
@@ -124,13 +136,8 @@ export class AddressManager implements AddressManagerInterface {
|
|
|
124
136
|
_updatePeerStoreAddresses (): void {
|
|
125
137
|
// if announce addresses have been configured, ensure they make it into our peer
|
|
126
138
|
// record for things like identify
|
|
127
|
-
const addrs = this.
|
|
128
|
-
.
|
|
129
|
-
.concat(
|
|
130
|
-
[...this.observed.entries()]
|
|
131
|
-
.filter(([_, metadata]) => metadata.confident)
|
|
132
|
-
.map(([str]) => multiaddr(str))
|
|
133
|
-
).map(ma => {
|
|
139
|
+
const addrs = this.getAddresses()
|
|
140
|
+
.map(ma => {
|
|
134
141
|
// strip our peer id if it is present
|
|
135
142
|
if (ma.getPeerId() === this.components.peerId.toString()) {
|
|
136
143
|
return ma.decapsulate(`/p2p/${this.components.peerId.toString()}`)
|
|
@@ -159,6 +166,13 @@ export class AddressManager implements AddressManagerInterface {
|
|
|
159
166
|
return Array.from(this.announce).map((a) => multiaddr(a))
|
|
160
167
|
}
|
|
161
168
|
|
|
169
|
+
/**
|
|
170
|
+
* Get peer announcing multiaddrs
|
|
171
|
+
*/
|
|
172
|
+
getAppendAnnounceAddrs (): Multiaddr[] {
|
|
173
|
+
return Array.from(this.appendAnnounce).map((a) => multiaddr(a))
|
|
174
|
+
}
|
|
175
|
+
|
|
162
176
|
/**
|
|
163
177
|
* Get observed multiaddrs
|
|
164
178
|
*/
|
|
@@ -218,19 +232,62 @@ export class AddressManager implements AddressManagerInterface {
|
|
|
218
232
|
multiaddrs = this.components.transportManager.getAddrs()
|
|
219
233
|
}
|
|
220
234
|
|
|
221
|
-
// add observed addresses we are confident in
|
|
222
235
|
multiaddrs = multiaddrs
|
|
223
236
|
.concat(
|
|
237
|
+
// add additional announce addresses
|
|
238
|
+
...this.getAppendAnnounceAddrs(),
|
|
239
|
+
|
|
240
|
+
// add observed addresses we are confident in
|
|
224
241
|
Array.from(this.observed)
|
|
225
242
|
.filter(([ma, metadata]) => metadata.confident)
|
|
226
243
|
.map(([ma]) => multiaddr(ma))
|
|
227
244
|
)
|
|
228
245
|
|
|
229
|
-
|
|
246
|
+
// add public addresses
|
|
247
|
+
const ipMappedMultiaddrs: Multiaddr[] = []
|
|
248
|
+
multiaddrs.forEach(ma => {
|
|
249
|
+
const tuples = ma.stringTuples()
|
|
250
|
+
let tuple: string | undefined
|
|
251
|
+
|
|
252
|
+
// see if the internal host/port/protocol tuple has been mapped externally
|
|
253
|
+
if ((tuples[0][0] === CODEC_IP4 || tuples[0][0] === CODEC_IP6) && tuples[1][0] === CODEC_TCP) {
|
|
254
|
+
tuple = `${tuples[0][1]}-${tuples[1][1]}-tcp`
|
|
255
|
+
} else if ((tuples[0][0] === CODEC_IP4 || tuples[0][0] === CODEC_IP6) && tuples[1][0] === CODEC_UDP) {
|
|
256
|
+
tuple = `${tuples[0][1]}-${tuples[1][1]}-udp`
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
if (tuple == null) {
|
|
260
|
+
return
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
const mappings = this.publicAddressMappings.get(tuple)
|
|
264
|
+
|
|
265
|
+
if (mappings == null) {
|
|
266
|
+
return
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
mappings.forEach(mapping => {
|
|
270
|
+
tuples[0][1] = mapping.externalIp
|
|
271
|
+
tuples[1][1] = `${mapping.externalPort}`
|
|
272
|
+
|
|
273
|
+
ipMappedMultiaddrs.push(
|
|
274
|
+
multiaddr(`/${
|
|
275
|
+
tuples.map(tuple => {
|
|
276
|
+
return [
|
|
277
|
+
protocols(tuple[0]).name,
|
|
278
|
+
tuple[1]
|
|
279
|
+
].join('/')
|
|
280
|
+
}).join('/')
|
|
281
|
+
}`)
|
|
282
|
+
)
|
|
283
|
+
})
|
|
284
|
+
})
|
|
285
|
+
multiaddrs = multiaddrs.concat(ipMappedMultiaddrs)
|
|
230
286
|
|
|
231
287
|
// add ip->domain mappings
|
|
288
|
+
const dnsMappedMultiaddrs: Multiaddr[] = []
|
|
232
289
|
for (const ma of multiaddrs) {
|
|
233
|
-
const tuples =
|
|
290
|
+
const tuples = ma.stringTuples()
|
|
234
291
|
let mappedIp = false
|
|
235
292
|
|
|
236
293
|
for (const [ip, domain] of this.ipDomainMappings.entries()) {
|
|
@@ -254,7 +311,7 @@ export class AddressManager implements AddressManagerInterface {
|
|
|
254
311
|
}
|
|
255
312
|
|
|
256
313
|
if (mappedIp) {
|
|
257
|
-
|
|
314
|
+
dnsMappedMultiaddrs.push(
|
|
258
315
|
multiaddr(`/${
|
|
259
316
|
tuples.map(tuple => {
|
|
260
317
|
return [
|
|
@@ -266,8 +323,7 @@ export class AddressManager implements AddressManagerInterface {
|
|
|
266
323
|
)
|
|
267
324
|
}
|
|
268
325
|
}
|
|
269
|
-
|
|
270
|
-
multiaddrs = multiaddrs.concat(mappedMultiaddrs)
|
|
326
|
+
multiaddrs = multiaddrs.concat(dnsMappedMultiaddrs)
|
|
271
327
|
|
|
272
328
|
// dedupe multiaddrs
|
|
273
329
|
const addrSet = new Set<string>()
|
|
@@ -305,15 +361,46 @@ export class AddressManager implements AddressManagerInterface {
|
|
|
305
361
|
|
|
306
362
|
addDNSMapping (domain: string, addresses: string[]): void {
|
|
307
363
|
addresses.forEach(ip => {
|
|
364
|
+
this.log('add DNS mapping %s to %s', ip, domain)
|
|
308
365
|
this.ipDomainMappings.set(ip, domain)
|
|
309
366
|
})
|
|
367
|
+
this._updatePeerStoreAddresses()
|
|
310
368
|
}
|
|
311
369
|
|
|
312
370
|
removeDNSMapping (domain: string): void {
|
|
313
371
|
for (const [key, value] of this.ipDomainMappings.entries()) {
|
|
314
372
|
if (value === domain) {
|
|
373
|
+
this.log('remove DNS mapping for %s', domain)
|
|
315
374
|
this.ipDomainMappings.delete(key)
|
|
316
375
|
}
|
|
317
376
|
}
|
|
377
|
+
this._updatePeerStoreAddresses()
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
addPublicAddressMapping (internalIp: string, internalPort: number, externalIp: string, externalPort: number = internalPort, protocol: 'tcp' | 'udp' = 'tcp'): void {
|
|
381
|
+
const key = `${internalIp}-${internalPort}-${protocol}`
|
|
382
|
+
const mappings = this.publicAddressMappings.get(key) ?? []
|
|
383
|
+
mappings.push({
|
|
384
|
+
externalIp,
|
|
385
|
+
externalPort
|
|
386
|
+
})
|
|
387
|
+
|
|
388
|
+
this.publicAddressMappings.set(key, mappings)
|
|
389
|
+
this._updatePeerStoreAddresses()
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
removePublicAddressMapping (internalIp: string, internalPort: number, externalIp: string, externalPort: number = internalPort, protocol: 'tcp' | 'udp' = 'tcp'): void {
|
|
393
|
+
const key = `${internalIp}-${internalPort}-${protocol}`
|
|
394
|
+
const mappings = (this.publicAddressMappings.get(key) ?? []).filter(mapping => {
|
|
395
|
+
return mapping.externalIp !== externalIp && mapping.externalPort !== externalPort
|
|
396
|
+
})
|
|
397
|
+
|
|
398
|
+
if (mappings.length === 0) {
|
|
399
|
+
this.publicAddressMappings.delete(key)
|
|
400
|
+
} else {
|
|
401
|
+
this.publicAddressMappings.set(key, mappings)
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
this._updatePeerStoreAddresses()
|
|
318
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-4a85eb033'
|
|
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
|
-
}
|