libp2p 0.35.7 → 0.35.9-rc.2
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/src/circuit/auto-relay.d.ts +8 -10
- package/dist/src/circuit/auto-relay.d.ts.map +1 -1
- package/dist/src/connection-manager/auto-dialler.d.ts +1 -1
- package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
- package/dist/src/connection-manager/index.d.ts +1 -2
- package/dist/src/connection-manager/index.d.ts.map +1 -1
- package/dist/src/content-routing/utils.d.ts +3 -3
- package/dist/src/content-routing/utils.d.ts.map +1 -1
- package/dist/src/dht/dht-peer-routing.d.ts.map +1 -1
- package/dist/src/dialer/dial-request.d.ts.map +1 -1
- package/dist/src/dialer/index.d.ts +5 -5
- package/dist/src/dialer/index.d.ts.map +1 -1
- package/dist/src/identify/index.d.ts +4 -4
- package/dist/src/identify/index.d.ts.map +1 -1
- package/dist/src/index.d.ts +6 -6
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/metrics/index.d.ts +9 -4
- package/dist/src/metrics/index.d.ts.map +1 -1
- package/dist/src/metrics/tracked-map.d.ts +6 -1
- package/dist/src/metrics/tracked-map.d.ts.map +1 -1
- package/dist/src/peer-routing.d.ts +1 -1
- package/dist/src/peer-routing.d.ts.map +1 -1
- package/dist/src/peer-store/address-book.d.ts +28 -84
- package/dist/src/peer-store/address-book.d.ts.map +1 -1
- package/dist/src/peer-store/index.d.ts +25 -94
- package/dist/src/peer-store/index.d.ts.map +1 -1
- package/dist/src/peer-store/key-book.d.ts +31 -15
- package/dist/src/peer-store/key-book.d.ts.map +1 -1
- package/dist/src/peer-store/metadata-book.d.ts +33 -29
- package/dist/src/peer-store/metadata-book.d.ts.map +1 -1
- package/dist/src/peer-store/pb/peer.d.ts +222 -0
- package/dist/src/peer-store/proto-book.d.ts +27 -28
- package/dist/src/peer-store/proto-book.d.ts.map +1 -1
- package/dist/src/peer-store/store.d.ts +73 -0
- package/dist/src/peer-store/store.d.ts.map +1 -0
- package/dist/src/peer-store/types.d.ts +202 -0
- package/dist/src/peer-store/types.d.ts.map +1 -0
- package/dist/src/ping/index.d.ts.map +1 -1
- package/dist/src/record/peer-record/index.d.ts +2 -2
- package/dist/src/record/peer-record/index.d.ts.map +1 -1
- package/dist/src/registrar.d.ts +5 -5
- package/dist/src/registrar.d.ts.map +1 -1
- package/dist/src/upgrader.d.ts.map +1 -1
- package/package.json +15 -18
- package/src/circuit/auto-relay.js +19 -19
- package/src/connection-manager/auto-dialler.js +9 -4
- package/src/connection-manager/index.js +39 -22
- package/src/content-routing/utils.js +4 -4
- package/src/dht/dht-peer-routing.js +2 -6
- package/src/dialer/dial-request.js +4 -1
- package/src/dialer/index.js +22 -10
- package/src/identify/index.js +28 -23
- package/src/index.js +33 -27
- package/src/metrics/index.js +15 -8
- package/src/metrics/tracked-map.js +45 -13
- package/src/peer-routing.js +4 -1
- package/src/peer-store/address-book.js +242 -227
- package/src/peer-store/index.js +77 -110
- package/src/peer-store/key-book.js +99 -54
- package/src/peer-store/metadata-book.js +171 -101
- package/src/peer-store/pb/peer.d.ts +222 -0
- package/src/peer-store/pb/peer.js +643 -0
- package/src/peer-store/pb/peer.proto +31 -0
- package/src/peer-store/proto-book.js +171 -105
- package/src/peer-store/store.js +250 -0
- package/src/peer-store/types.ts +245 -0
- package/src/ping/index.js +6 -0
- package/src/record/peer-record/index.js +1 -1
- package/src/record/utils.js +1 -1
- package/src/registrar.js +4 -4
- package/src/upgrader.js +3 -1
- package/dist/src/peer-store/book.d.ts +0 -81
- package/dist/src/peer-store/book.d.ts.map +0 -1
- package/dist/src/peer-store/persistent/consts.d.ts +0 -6
- package/dist/src/peer-store/persistent/consts.d.ts.map +0 -1
- package/dist/src/peer-store/persistent/index.d.ts +0 -129
- package/dist/src/peer-store/persistent/index.d.ts.map +0 -1
- package/dist/src/peer-store/persistent/pb/address-book.d.ts +0 -198
- package/dist/src/peer-store/persistent/pb/proto-book.d.ts +0 -59
- package/src/peer-store/book.js +0 -124
- package/src/peer-store/persistent/consts.js +0 -15
- package/src/peer-store/persistent/index.js +0 -408
- package/src/peer-store/persistent/pb/address-book.d.ts +0 -198
- package/src/peer-store/persistent/pb/address-book.js +0 -522
- package/src/peer-store/persistent/pb/address-book.proto +0 -27
- package/src/peer-store/persistent/pb/proto-book.d.ts +0 -59
- package/src/peer-store/persistent/pb/proto-book.js +0 -157
- package/src/peer-store/persistent/pb/proto-book.proto +0 -5
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
export = PersistentStore;
|
|
2
|
+
declare class PersistentStore {
|
|
3
|
+
/**
|
|
4
|
+
* @param {import('interface-datastore').Datastore} datastore
|
|
5
|
+
*/
|
|
6
|
+
constructor(datastore: import('interface-datastore').Datastore);
|
|
7
|
+
_datastore: import("interface-datastore").Datastore;
|
|
8
|
+
lock: any;
|
|
9
|
+
/**
|
|
10
|
+
* @param {PeerId} peerId
|
|
11
|
+
* @returns {Key}
|
|
12
|
+
*/
|
|
13
|
+
_peerIdToDatastoreKey(peerId: PeerId): Key;
|
|
14
|
+
/**
|
|
15
|
+
* @param {PeerId} peerId
|
|
16
|
+
*/
|
|
17
|
+
has(peerId: PeerId): Promise<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* @param {PeerId} peerId
|
|
20
|
+
*/
|
|
21
|
+
delete(peerId: PeerId): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* @param {PeerId} peerId
|
|
24
|
+
* @returns {Promise<import('./types').Peer>} peer
|
|
25
|
+
*/
|
|
26
|
+
load(peerId: PeerId): Promise<import('./types').Peer>;
|
|
27
|
+
/**
|
|
28
|
+
* @param {Peer} peer
|
|
29
|
+
*/
|
|
30
|
+
save(peer: Peer): Promise<import("./types").Peer>;
|
|
31
|
+
/**
|
|
32
|
+
* @param {PeerId} peerId
|
|
33
|
+
* @param {Partial<Peer>} data
|
|
34
|
+
*/
|
|
35
|
+
patch(peerId: PeerId, data: Partial<Peer>): Promise<import("./types").Peer>;
|
|
36
|
+
/**
|
|
37
|
+
* @param {PeerId} peerId
|
|
38
|
+
* @param {Partial<Peer>} data
|
|
39
|
+
*/
|
|
40
|
+
patchOrCreate(peerId: PeerId, data: Partial<Peer>): Promise<import("./types").Peer>;
|
|
41
|
+
/**
|
|
42
|
+
* @param {PeerId} peerId
|
|
43
|
+
* @param {Partial<Peer>} data
|
|
44
|
+
* @param {Peer} peer
|
|
45
|
+
*/
|
|
46
|
+
_patch(peerId: PeerId, data: Partial<Peer>, peer: Peer): Promise<import("./types").Peer>;
|
|
47
|
+
/**
|
|
48
|
+
* @param {PeerId} peerId
|
|
49
|
+
* @param {Partial<Peer>} data
|
|
50
|
+
*/
|
|
51
|
+
merge(peerId: PeerId, data: Partial<Peer>): Promise<import("./types").Peer>;
|
|
52
|
+
/**
|
|
53
|
+
* @param {PeerId} peerId
|
|
54
|
+
* @param {Partial<Peer>} data
|
|
55
|
+
*/
|
|
56
|
+
mergeOrCreate(peerId: PeerId, data: Partial<Peer>): Promise<import("./types").Peer>;
|
|
57
|
+
/**
|
|
58
|
+
* @param {PeerId} peerId
|
|
59
|
+
* @param {Partial<Peer>} data
|
|
60
|
+
* @param {Peer} peer
|
|
61
|
+
*/
|
|
62
|
+
_merge(peerId: PeerId, data: Partial<Peer>, peer: Peer): Promise<import("./types").Peer>;
|
|
63
|
+
all(): AsyncGenerator<import("./types").Peer, void, unknown>;
|
|
64
|
+
}
|
|
65
|
+
declare namespace PersistentStore {
|
|
66
|
+
export { PeerStore, EventName, Peer };
|
|
67
|
+
}
|
|
68
|
+
import PeerId = require("peer-id");
|
|
69
|
+
import { Key } from "interface-datastore/key";
|
|
70
|
+
type Peer = import('./types').Peer;
|
|
71
|
+
type PeerStore = import('./types').PeerStore;
|
|
72
|
+
type EventName = import('./types').EventName;
|
|
73
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/peer-store/store.js"],"names":[],"mappings":";AA2BA;IACE;;OAEG;IACH,uBAFW,OAAO,qBAAqB,EAAE,SAAS,EAOjD;IAJC,oDAA2B;IAC3B,UAEE;IAGJ;;;OAGG;IACH,8BAHW,MAAM,GACJ,GAAG,CAUf;IAED;;OAEG;IACH,YAFW,MAAM,oBAIhB;IAED;;OAEG;IACH,eAFW,MAAM,iBAIhB;IAED;;;OAGG;IACH,aAHW,MAAM,GACJ,QAAQ,OAAO,SAAS,EAAE,IAAI,CAAC,CAuB3C;IAED;;OAEG;IACH,WAFW,IAAI,mCAwBd;IAED;;;OAGG;IACH,cAHW,MAAM,QACN,QAAQ,IAAI,CAAC,mCAMvB;IAED;;;OAGG;IACH,sBAHW,MAAM,QACN,QAAQ,IAAI,CAAC,mCAiBvB;IAED;;;;OAIG;IACH,eAJW,MAAM,QACN,QAAQ,IAAI,CAAC,QACb,IAAI,mCAQd;IAED;;;OAGG;IACH,cAHW,MAAM,QACN,QAAQ,IAAI,CAAC,mCAMvB;IAED;;;OAGG;IACH,sBAHW,MAAM,QACN,QAAQ,IAAI,CAAC,mCAiBvB;IAED;;;;OAIG;IACH,eAJW,MAAM,QACN,QAAQ,IAAI,CAAC,QACb,IAAI,mCAoCd;IAED,6DAUC;CACF;;;;;;YAjOY,OAAO,SAAS,EAAE,IAAI;iBAFtB,OAAO,SAAS,EAAE,SAAS;iBAC3B,OAAO,SAAS,EAAE,SAAS"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import type PeerId from 'peer-id';
|
|
2
|
+
import type { Multiaddr } from 'multiaddr';
|
|
3
|
+
import type Envelope from '../record/envelope';
|
|
4
|
+
import type { PublicKey } from 'libp2p-interfaces/src/keys/types';
|
|
5
|
+
export interface Address {
|
|
6
|
+
/**
|
|
7
|
+
* Peer multiaddr
|
|
8
|
+
*/
|
|
9
|
+
multiaddr: Multiaddr;
|
|
10
|
+
/**
|
|
11
|
+
* Obtained from a signed peer record
|
|
12
|
+
*/
|
|
13
|
+
isCertified: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface Peer {
|
|
16
|
+
/**
|
|
17
|
+
* Peer's peer-id instance
|
|
18
|
+
*/
|
|
19
|
+
id: PeerId;
|
|
20
|
+
/**
|
|
21
|
+
* Peer's addresses containing its multiaddrs and metadata
|
|
22
|
+
*/
|
|
23
|
+
addresses: Address[];
|
|
24
|
+
/**
|
|
25
|
+
* Peer's supported protocols
|
|
26
|
+
*/
|
|
27
|
+
protocols: string[];
|
|
28
|
+
/**
|
|
29
|
+
* Peer's metadata map
|
|
30
|
+
*/
|
|
31
|
+
metadata: Map<string, Uint8Array>;
|
|
32
|
+
/**
|
|
33
|
+
* May be set if the key that this Peer has is an RSA key
|
|
34
|
+
*/
|
|
35
|
+
pubKey?: PublicKey;
|
|
36
|
+
/**
|
|
37
|
+
* The last peer record envelope received
|
|
38
|
+
*/
|
|
39
|
+
peerRecordEnvelope?: Uint8Array;
|
|
40
|
+
}
|
|
41
|
+
export interface CertifiedRecord {
|
|
42
|
+
raw: Uint8Array;
|
|
43
|
+
seqNumber: number;
|
|
44
|
+
}
|
|
45
|
+
export interface AddressBookEntry {
|
|
46
|
+
addresses: Address[];
|
|
47
|
+
record: CertifiedRecord;
|
|
48
|
+
}
|
|
49
|
+
export interface Book<Type> {
|
|
50
|
+
/**
|
|
51
|
+
* Get the known data of a peer
|
|
52
|
+
*/
|
|
53
|
+
get: (peerId: PeerId) => Promise<Type>;
|
|
54
|
+
/**
|
|
55
|
+
* Set the known data of a peer
|
|
56
|
+
*/
|
|
57
|
+
set: (peerId: PeerId, data: Type) => Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Remove the known data of a peer
|
|
60
|
+
*/
|
|
61
|
+
delete: (peerId: PeerId) => Promise<void>;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* AddressBook containing a map of peerIdStr to Address.
|
|
65
|
+
*/
|
|
66
|
+
export interface AddressBook {
|
|
67
|
+
/**
|
|
68
|
+
* ConsumePeerRecord adds addresses from a signed peer record contained in a record envelope.
|
|
69
|
+
* This will return a boolean that indicates if the record was successfully processed and added
|
|
70
|
+
* into the AddressBook
|
|
71
|
+
*/
|
|
72
|
+
consumePeerRecord: (envelope: Envelope) => Promise<boolean>;
|
|
73
|
+
/**
|
|
74
|
+
* Get the raw Envelope for a peer. Returns
|
|
75
|
+
* undefined if no Envelope is found
|
|
76
|
+
*/
|
|
77
|
+
getRawEnvelope: (peerId: PeerId) => Promise<Uint8Array | undefined>;
|
|
78
|
+
/**
|
|
79
|
+
* Get an Envelope containing a PeerRecord for the given peer.
|
|
80
|
+
* Returns undefined if no record exists.
|
|
81
|
+
*/
|
|
82
|
+
getPeerRecord: (peerId: PeerId) => Promise<Envelope | undefined>;
|
|
83
|
+
/**
|
|
84
|
+
* Add known addresses of a provided peer.
|
|
85
|
+
* If the peer is not known, it is set with the given addresses.
|
|
86
|
+
*/
|
|
87
|
+
add: (peerId: PeerId, multiaddrs: Multiaddr[]) => Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* Set the known addresses of a peer
|
|
90
|
+
*/
|
|
91
|
+
set: (peerId: PeerId, data: Multiaddr[]) => Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Return the known addresses of a peer
|
|
94
|
+
*/
|
|
95
|
+
get: (peerId: PeerId) => Promise<Address[]>;
|
|
96
|
+
/**
|
|
97
|
+
* Get the known multiaddrs for a given peer. All returned multiaddrs
|
|
98
|
+
* will include the encapsulated `PeerId` of the peer.
|
|
99
|
+
*/
|
|
100
|
+
getMultiaddrsForPeer: (peerId: PeerId, addressSorter?: (ms: Address[]) => Address[]) => Promise<Multiaddr[]>;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* KeyBook containing a map of peerIdStr to their PeerId with public keys.
|
|
104
|
+
*/
|
|
105
|
+
export interface KeyBook {
|
|
106
|
+
/**
|
|
107
|
+
* Get the known data of a peer
|
|
108
|
+
*/
|
|
109
|
+
get: (peerId: PeerId) => Promise<PublicKey | undefined>;
|
|
110
|
+
/**
|
|
111
|
+
* Set the known data of a peer
|
|
112
|
+
*/
|
|
113
|
+
set: (peerId: PeerId, data: PublicKey) => Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Remove the known data of a peer
|
|
116
|
+
*/
|
|
117
|
+
delete: (peerId: PeerId) => Promise<void>;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* MetadataBook containing a map of peerIdStr to their metadata Map.
|
|
121
|
+
*/
|
|
122
|
+
export interface MetadataBook extends Book<Map<string, Uint8Array>> {
|
|
123
|
+
/**
|
|
124
|
+
* Set a specific metadata value
|
|
125
|
+
*/
|
|
126
|
+
setValue: (peerId: PeerId, key: string, value: Uint8Array) => Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Get specific metadata value, if it exists
|
|
129
|
+
*/
|
|
130
|
+
getValue: (peerId: PeerId, key: string) => Promise<Uint8Array | undefined>;
|
|
131
|
+
/**
|
|
132
|
+
* Deletes the provided peer metadata key from the book
|
|
133
|
+
*/
|
|
134
|
+
deleteValue: (peerId: PeerId, key: string) => Promise<void>;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* ProtoBook containing a map of peerIdStr to supported protocols.
|
|
138
|
+
*/
|
|
139
|
+
export interface ProtoBook extends Book<string[]> {
|
|
140
|
+
/**
|
|
141
|
+
* Adds known protocols of a provided peer.
|
|
142
|
+
* If the peer was not known before, it will be added.
|
|
143
|
+
*/
|
|
144
|
+
add: (peerId: PeerId, protocols: string[]) => Promise<void>;
|
|
145
|
+
/**
|
|
146
|
+
* Removes known protocols of a provided peer.
|
|
147
|
+
* If the protocols did not exist before, nothing will be done.
|
|
148
|
+
*/
|
|
149
|
+
remove: (peerId: PeerId, protocols: string[]) => Promise<void>;
|
|
150
|
+
}
|
|
151
|
+
export interface PeerProtocolsChangeEvent {
|
|
152
|
+
peerId: PeerId;
|
|
153
|
+
protocols: string[];
|
|
154
|
+
}
|
|
155
|
+
export interface PeerMultiaddrsChangeEvent {
|
|
156
|
+
peerId: PeerId;
|
|
157
|
+
multiaddrs: Multiaddr[];
|
|
158
|
+
}
|
|
159
|
+
export interface PeerPublicKeyChangeEvent {
|
|
160
|
+
peerId: PeerId;
|
|
161
|
+
pubKey?: PublicKey;
|
|
162
|
+
}
|
|
163
|
+
export interface PeerMetadataChangeEvent {
|
|
164
|
+
peerId: PeerId;
|
|
165
|
+
metadata: Map<string, Uint8Array>;
|
|
166
|
+
}
|
|
167
|
+
export declare type EventName = 'peer' | 'change:protocols' | 'change:multiaddrs' | 'change:pubkey' | 'change:metadata';
|
|
168
|
+
export interface PeerStoreEvents {
|
|
169
|
+
'peer': (event: PeerId) => void;
|
|
170
|
+
'change:protocols': (event: PeerProtocolsChangeEvent) => void;
|
|
171
|
+
'change:multiaddrs': (event: PeerMultiaddrsChangeEvent) => void;
|
|
172
|
+
'change:pubkey': (event: PeerPublicKeyChangeEvent) => void;
|
|
173
|
+
'change:metadata': (event: PeerMetadataChangeEvent) => void;
|
|
174
|
+
}
|
|
175
|
+
export interface PeerStore {
|
|
176
|
+
addressBook: AddressBook;
|
|
177
|
+
keyBook: KeyBook;
|
|
178
|
+
metadataBook: MetadataBook;
|
|
179
|
+
protoBook: ProtoBook;
|
|
180
|
+
getPeers: () => AsyncIterable<Peer>;
|
|
181
|
+
delete: (peerId: PeerId) => Promise<void>;
|
|
182
|
+
has: (peerId: PeerId) => Promise<boolean>;
|
|
183
|
+
get: (peerId: PeerId) => Promise<Peer>;
|
|
184
|
+
on: <U extends keyof PeerStoreEvents>(event: U, listener: PeerStoreEvents[U]) => this;
|
|
185
|
+
once: <U extends keyof PeerStoreEvents>(event: U, listener: PeerStoreEvents[U]) => this;
|
|
186
|
+
emit: <U extends keyof PeerStoreEvents>(event: U, ...args: Parameters<PeerStoreEvents[U]>) => boolean;
|
|
187
|
+
}
|
|
188
|
+
export interface Store {
|
|
189
|
+
has: (peerId: PeerId) => Promise<boolean>;
|
|
190
|
+
save: (peer: Peer) => Promise<Peer>;
|
|
191
|
+
load: (peerId: PeerId) => Promise<Peer>;
|
|
192
|
+
merge: (peerId: PeerId, data: Partial<Peer>) => Promise<Peer>;
|
|
193
|
+
mergeOrCreate: (peerId: PeerId, data: Partial<Peer>) => Promise<Peer>;
|
|
194
|
+
patch: (peerId: PeerId, data: Partial<Peer>) => Promise<Peer>;
|
|
195
|
+
patchOrCreate: (peerId: PeerId, data: Partial<Peer>) => Promise<Peer>;
|
|
196
|
+
all: () => AsyncIterable<Peer>;
|
|
197
|
+
lock: {
|
|
198
|
+
readLock: () => Promise<() => void>;
|
|
199
|
+
writeLock: () => Promise<() => void>;
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/peer-store/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ping/index.js"],"names":[],"mappings":";AAiBA;;;;;GAKG;AAEH;;;;;;GAMG;AACH,4BAJW,MAAM,QACN,MAAM,GAAC,SAAS,GACd,QAAQ,MAAM,CAAC,CA2B3B;;;;cAtCY,OAAO,KAAK,CAAC;cAEb,OAAO,SAAS,CAAC;iBADjB,OAAO,WAAW,EAAE,SAAS;AAuC1C;;;;GAIG;AACH,6BAFW,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ping/index.js"],"names":[],"mappings":";AAiBA;;;;;GAKG;AAEH;;;;;;GAMG;AACH,4BAJW,MAAM,QACN,MAAM,GAAC,SAAS,GACd,QAAQ,MAAM,CAAC,CA2B3B;;;;cAtCY,OAAO,KAAK,CAAC;cAEb,OAAO,SAAS,CAAC;iBADjB,OAAO,WAAW,EAAE,SAAS;AAuC1C;;;;GAIG;AACH,6BAFW,MAAM,QAOhB;AAED;;;;GAIG;AACH,+BAFW,MAAM,QAOhB;mBA3DY,OAAO,0CAA0C,EAAE,WAAW"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export = PeerRecord;
|
|
2
2
|
/**
|
|
3
|
-
* @typedef {import('../../peer-store/
|
|
3
|
+
* @typedef {import('../../peer-store/types').Address} Address
|
|
4
4
|
* @typedef {import('libp2p-interfaces/src/record/types').Record} Record
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
@@ -56,5 +56,5 @@ import { Multiaddr } from "multiaddr";
|
|
|
56
56
|
*/
|
|
57
57
|
declare function createFromProtobuf(buf: Uint8Array): PeerRecord;
|
|
58
58
|
import { ENVELOPE_DOMAIN_PEER_RECORD } from "./consts";
|
|
59
|
-
type Address = import('../../peer-store/
|
|
59
|
+
type Address = import('../../peer-store/types').Address;
|
|
60
60
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/record/peer-record/index.js"],"names":[],"mappings":";AAYA;;;GAGG;AAEH;;GAEG;AACH;IACE;;;;;;;;;OASG;IACH;QAJ0B,MAAM,EAArB,MAAM;QACc,UAAU,EAA9B,SAAS,EAAE;QACK,SAAS;OAYnC;IATC,eAAyC;IACzC,kBAA8C;IAE9C,eAAoB;IACpB,wBAA4B;IAC5B,kBAA0B;IAG1B,iCAAyB;IAG3B;;;;OAIG;IACH,WAFa,UAAU,CAgBtB;IAED;;;;;OAKG;IACH,cAHW,OAAO,GACL,OAAO,CAuBnB;CACF;;;;cA9EY,OAAO,oCAAoC,EAAE,MAAM;;;AAgFhE;;;;;GAKG;AACH,yCAHW,UAAU,GACR,UAAU,CAUtB;;eA/FY,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/record/peer-record/index.js"],"names":[],"mappings":";AAYA;;;GAGG;AAEH;;GAEG;AACH;IACE;;;;;;;;;OASG;IACH;QAJ0B,MAAM,EAArB,MAAM;QACc,UAAU,EAA9B,SAAS,EAAE;QACK,SAAS;OAYnC;IATC,eAAyC;IACzC,kBAA8C;IAE9C,eAAoB;IACpB,wBAA4B;IAC5B,kBAA0B;IAG1B,iCAAyB;IAG3B;;;;OAIG;IACH,WAFa,UAAU,CAgBtB;IAED;;;;;OAKG;IACH,cAHW,OAAO,GACL,OAAO,CAuBnB;CACF;;;;cA9EY,OAAO,oCAAoC,EAAE,MAAM;;;AAgFhE;;;;;GAKG;AACH,yCAHW,UAAU,GACR,UAAU,CAUtB;;eA/FY,OAAO,wBAAwB,EAAE,OAAO"}
|
package/dist/src/registrar.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export = Registrar;
|
|
2
2
|
/**
|
|
3
3
|
* @typedef {import('peer-id')} PeerId
|
|
4
|
-
* @typedef {import('./peer-store')} PeerStore
|
|
4
|
+
* @typedef {import('./peer-store/types').PeerStore} PeerStore
|
|
5
5
|
* @typedef {import('./connection-manager')} ConnectionManager
|
|
6
6
|
* @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
|
|
7
7
|
* @typedef {import('./').HandlerProps} HandlerProps
|
|
@@ -23,7 +23,7 @@ declare class Registrar {
|
|
|
23
23
|
peerStore: PeerStore;
|
|
24
24
|
connectionManager: ConnectionManager;
|
|
25
25
|
});
|
|
26
|
-
peerStore: import("./peer-store");
|
|
26
|
+
peerStore: import("./peer-store/types").PeerStore;
|
|
27
27
|
connectionManager: import("./connection-manager");
|
|
28
28
|
/**
|
|
29
29
|
* Map of topologies
|
|
@@ -59,9 +59,9 @@ declare class Registrar {
|
|
|
59
59
|
* Register handlers for a set of multicodecs given
|
|
60
60
|
*
|
|
61
61
|
* @param {Topology} topology - protocol topology
|
|
62
|
-
* @returns {string} registrar identifier
|
|
62
|
+
* @returns {Promise<string>} registrar identifier
|
|
63
63
|
*/
|
|
64
|
-
register(topology: Topology): string
|
|
64
|
+
register(topology: Topology): Promise<string>;
|
|
65
65
|
/**
|
|
66
66
|
* Unregister topology.
|
|
67
67
|
*
|
|
@@ -76,7 +76,7 @@ declare namespace Registrar {
|
|
|
76
76
|
import Topology = require("libp2p-interfaces/src/topology");
|
|
77
77
|
type Connection = import("libp2p-interfaces/src/connection/connection");
|
|
78
78
|
type PeerId = import('peer-id');
|
|
79
|
-
type PeerStore = import('./peer-store');
|
|
79
|
+
type PeerStore = import('./peer-store/types').PeerStore;
|
|
80
80
|
type ConnectionManager = import('./connection-manager');
|
|
81
81
|
type HandlerProps = import('./').HandlerProps;
|
|
82
82
|
//# sourceMappingURL=registrar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registrar.d.ts","sourceRoot":"","sources":["../../src/registrar.js"],"names":[],"mappings":";AAaA;;;;;;GAMG;AAEH;;GAEG;AAEH;;GAEG;AACH;IACE;;;;;OAKG;IACH;QAJ4B,SAAS,EAA1B,SAAS;QACgB,iBAAiB,EAA1C,iBAAiB;OAsB3B;IAjBC,
|
|
1
|
+
{"version":3,"file":"registrar.d.ts","sourceRoot":"","sources":["../../src/registrar.js"],"names":[],"mappings":";AAaA;;;;;;GAMG;AAEH;;GAEG;AAEH;;GAEG;AACH;IACE;;;;;OAKG;IACH;QAJ4B,SAAS,EAA1B,SAAS;QACgB,iBAAiB,EAA1C,iBAAiB;OAsB3B;IAjBC,kDAA0B;IAE1B,kDAA0C;IAE1C;;;;OAIG;IACH,YAFU,IAAI,MAAM,EAAE,QAAQ,CAAC,CAEJ;IAE3B,2FAA2F;IAE3F,qBAFuB,MAAM,EAAE,GAAC,MAAM,mBAAmB,YAAY,KAAK,IAAI,KAAK,IAAI,CAE/D;IA+D1B;;;;;OAKG;IACH,0BAHW,UAAU,GACR,IAAI,CAMhB;IA5DD;;OAEG;IACH,4BATyB,MAAM,EAAE,GAAC,MAAM,mBAAmB,YAAY,KAAK,IAAI,KAAK,IAAI,EAWxF;IAZD;;OAEG;IACH,0BAFyB,MAAM,EAAE,GAAC,MAAM,mBAAmB,YAAY,KAAK,IAAI,KAAK,IAAI,CAIxF;IASD;;;;;OAKG;IACH,sBAHW,MAAM,GACJ,UAAU,GAAG,IAAI,CAI7B;IAED;;;;;OAKG;IACH,mBAHW,QAAQ,GACN,QAAQ,MAAM,CAAC,CAiB3B;IAED;;;;;OAKG;IACH,eAHW,MAAM,GACJ,OAAO,CAInB;CAaF;;;;;;cA9GY,OAAO,SAAS,CAAC;iBACjB,OAAO,oBAAoB,EAAE,SAAS;yBACtC,OAAO,sBAAsB,CAAC;oBAE9B,OAAO,IAAI,EAAE,YAAY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrader.d.ts","sourceRoot":"","sources":["../../src/upgrader.js"],"names":[],"mappings":";AAiBA;;;;;;;;GAQG;AAEH;;;;;GAKG;AAEH;IACE;;;;;;;;OAQG;IACH;mBAPW,MAAM;;;;mCAIO,UAAU,KAAK,IAAI;sCACnB,UAAU,KAAK,IAAI;OAmB1C;IATC,kBAA0B;IAC1B,yCAAsB;IACtB,0EAAsB;IACtB,qFAAoB;IACpB,sCAAsC;IACtC,WADW,OAAO,QAAQ,CAAC,GAAG,IAAI,CACb;IACrB,yBAA0B;IAC1B,2BAlBsB,UAAU,KAAK,IAAI,CAkBT;IAChC,8BAlBsB,UAAU,KAAK,IAAI,CAkBH;IAGxC;;;;;;OAMG;IACH,uBAHW,mBAAmB,GACjB,QAAQ,UAAU,CAAC,CA6D/B;IAED;;;;;;OAMG;IACH,wBAHW,mBAAmB,GACjB,QAAQ,UAAU,CAAC,CAoE/B;IAED;;;;;;;;;;;;OAYG;IACH,
|
|
1
|
+
{"version":3,"file":"upgrader.d.ts","sourceRoot":"","sources":["../../src/upgrader.js"],"names":[],"mappings":";AAiBA;;;;;;;;GAQG;AAEH;;;;;GAKG;AAEH;IACE;;;;;;;;OAQG;IACH;mBAPW,MAAM;;;;mCAIO,UAAU,KAAK,IAAI;sCACnB,UAAU,KAAK,IAAI;OAmB1C;IATC,kBAA0B;IAC1B,yCAAsB;IACtB,0EAAsB;IACtB,qFAAoB;IACpB,sCAAsC;IACtC,WADW,OAAO,QAAQ,CAAC,GAAG,IAAI,CACb;IACrB,yBAA0B;IAC1B,2BAlBsB,UAAU,KAAK,IAAI,CAkBT;IAChC,8BAlBsB,UAAU,KAAK,IAAI,CAkBH;IAGxC;;;;;;OAMG;IACH,uBAHW,mBAAmB,GACjB,QAAQ,UAAU,CAAC,CA6D/B;IAED;;;;;;OAMG;IACH,wBAHW,mBAAmB,GACjB,QAAQ,UAAU,CAAC,CAoE/B;IAED;;;;;;;;;;;;OAYG;IACH,0BAgHC;IAED;;;;;;;;OAQG;IACH,kBAGC;IAED;;;;;;;;;OASG;IACH,wBAqBC;IAED;;;;;;;;;;;OAWG;IACH,yBAqBC;IAED;;;;;;;;;OASG;IACH,2BAYC;IAED;;;;;;;;;OASG;IACH,0BAWC;CACF;;;;;2BA3bY,OAAO,uCAAuC,EAAE,mBAAmB;;oBACnE,OAAO,0CAA0C,EAAE,YAAY;aAC/D,OAAO,0CAA0C,EAAE,KAAK;mBACxD,OAAO,0CAA0C,EAAE,WAAW;cAC9D,OAAO,oCAAoC,EAAE,MAAM;;iBAEnD,OAAO,WAAW,EAAE,SAAS;;;;;UAK5B,mBAAmB;gBACnB,MAAM;cACN,MAAM"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "libp2p",
|
|
3
|
-
"version": "0.35.
|
|
3
|
+
"version": "0.35.9-rc.2",
|
|
4
4
|
"description": "JavaScript implementation of libp2p, a modular peer to peer network stack",
|
|
5
5
|
"leadMaintainer": "Jacob Heun <jacobheun@gmail.com>",
|
|
6
6
|
"main": "src/index.js",
|
|
@@ -20,20 +20,18 @@
|
|
|
20
20
|
"scripts": {
|
|
21
21
|
"lint": "aegir lint",
|
|
22
22
|
"build": "aegir build",
|
|
23
|
-
"build:proto": "npm run build:proto:circuit && npm run build:proto:identify && npm run build:proto:plaintext && npm run build:proto:address-book && npm run build:proto:proto-book && npm run build:proto:peer-record && npm run build:proto:envelope",
|
|
23
|
+
"build:proto": "npm run build:proto:circuit && npm run build:proto:identify && npm run build:proto:plaintext && npm run build:proto:address-book && npm run build:proto:proto-book && npm run build:proto:peer && npm run build:proto:peer-record && npm run build:proto:envelope",
|
|
24
24
|
"build:proto:circuit": "pbjs -t static-module -w commonjs -r libp2p-circuit --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/circuit/protocol/index.js ./src/circuit/protocol/index.proto",
|
|
25
25
|
"build:proto:identify": "pbjs -t static-module -w commonjs -r libp2p-identify --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/identify/message.js ./src/identify/message.proto",
|
|
26
26
|
"build:proto:plaintext": "pbjs -t static-module -w commonjs -r libp2p-plaintext --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/insecure/proto.js ./src/insecure/proto.proto",
|
|
27
|
-
"build:proto:
|
|
28
|
-
"build:proto:proto-book": "pbjs -t static-module -w commonjs -r libp2p-proto-book --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/peer-store/persistent/pb/proto-book.js ./src/peer-store/persistent/pb/proto-book.proto",
|
|
27
|
+
"build:proto:peer": "pbjs -t static-module -w commonjs -r libp2p-peer --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/peer-store/pb/peer.js ./src/peer-store/pb/peer.proto",
|
|
29
28
|
"build:proto:peer-record": "pbjs -t static-module -w commonjs -r libp2p-peer-record --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/record/peer-record/peer-record.js ./src/record/peer-record/peer-record.proto",
|
|
30
29
|
"build:proto:envelope": "pbjs -t static-module -w commonjs -r libp2p-envelope --force-number --no-verify --no-delimited --no-create --no-beautify --no-defaults --lint eslint-disable -o src/record/envelope/envelope.js ./src/record/envelope/envelope.proto",
|
|
31
|
-
"build:proto-types": "npm run build:proto-types:circuit && npm run build:proto-types:identify && npm run build:proto-types:plaintext && npm run build:proto-types:address-book && npm run build:proto-types:proto-book && npm run build:proto-types:peer-record && npm run build:proto-types:envelope",
|
|
30
|
+
"build:proto-types": "npm run build:proto-types:circuit && npm run build:proto-types:identify && npm run build:proto-types:plaintext && npm run build:proto-types:address-book && npm run build:proto-types:proto-book && npm run build:proto-types:peer && npm run build:proto-types:peer-record && npm run build:proto-types:envelope",
|
|
32
31
|
"build:proto-types:circuit": "pbts -o src/circuit/protocol/index.d.ts src/circuit/protocol/index.js",
|
|
33
32
|
"build:proto-types:identify": "pbts -o src/identify/message.d.ts src/identify/message.js",
|
|
34
33
|
"build:proto-types:plaintext": "pbts -o src/insecure/proto.d.ts src/insecure/proto.js",
|
|
35
|
-
"build:proto-types:
|
|
36
|
-
"build:proto-types:proto-book": "pbts -o src/peer-store/persistent/pb/proto-book.d.ts src/peer-store/persistent/pb/proto-book.js",
|
|
34
|
+
"build:proto-types:peer": "pbts -o src/peer-store/pb/peer.d.ts src/peer-store/pb/peer.js",
|
|
37
35
|
"build:proto-types:peer-record": "pbts -o src/record/peer-record/peer-record.d.ts src/record/peer-record/peer-record.js",
|
|
38
36
|
"build:proto-types:envelope": "pbts -o src/record/envelope/envelope.d.ts src/record/envelope/envelope.js",
|
|
39
37
|
"test": "aegir test",
|
|
@@ -87,6 +85,7 @@
|
|
|
87
85
|
"any-signal": "^2.1.1",
|
|
88
86
|
"bignumber.js": "^9.0.1",
|
|
89
87
|
"class-is": "^1.1.0",
|
|
88
|
+
"datastore-core": "^7.0.0",
|
|
90
89
|
"debug": "^4.3.1",
|
|
91
90
|
"err-code": "^3.0.0",
|
|
92
91
|
"es6-promisify": "^7.0.0",
|
|
@@ -104,11 +103,12 @@
|
|
|
104
103
|
"it-merge": "^1.0.0",
|
|
105
104
|
"it-pipe": "^1.1.0",
|
|
106
105
|
"it-take": "^1.0.0",
|
|
107
|
-
"libp2p-crypto": "^0.21.
|
|
108
|
-
"libp2p-interfaces": "^
|
|
106
|
+
"libp2p-crypto": "^0.21.1",
|
|
107
|
+
"libp2p-interfaces": "^4.0.0",
|
|
109
108
|
"libp2p-utils": "^0.4.0",
|
|
110
109
|
"mafmt": "^10.0.0",
|
|
111
110
|
"merge-options": "^3.0.4",
|
|
111
|
+
"mortice": "^2.0.1",
|
|
112
112
|
"multiaddr": "^10.0.0",
|
|
113
113
|
"multiformats": "^9.0.0",
|
|
114
114
|
"multistream-select": "^2.0.0",
|
|
@@ -141,7 +141,6 @@
|
|
|
141
141
|
"@types/varint": "^6.0.0",
|
|
142
142
|
"aegir": "^36.0.0",
|
|
143
143
|
"buffer": "^6.0.3",
|
|
144
|
-
"datastore-core": "^6.0.7",
|
|
145
144
|
"delay": "^5.0.0",
|
|
146
145
|
"into-stream": "^6.0.0",
|
|
147
146
|
"ipfs-http-client": "^54.0.2",
|
|
@@ -152,13 +151,11 @@
|
|
|
152
151
|
"libp2p-bootstrap": "^0.14.0",
|
|
153
152
|
"libp2p-delegated-content-routing": "^0.11.0",
|
|
154
153
|
"libp2p-delegated-peer-routing": "^0.11.1",
|
|
155
|
-
"libp2p-
|
|
156
|
-
"libp2p-
|
|
157
|
-
"libp2p-
|
|
158
|
-
"libp2p-interop": "^0.5.0",
|
|
159
|
-
"libp2p-kad-dht": "^0.27.1",
|
|
154
|
+
"libp2p-interfaces-compliance-tests": "^4.0.8",
|
|
155
|
+
"libp2p-interop": "^0.7.1",
|
|
156
|
+
"libp2p-kad-dht": "^0.28.6",
|
|
160
157
|
"libp2p-mdns": "^0.18.0",
|
|
161
|
-
"libp2p-mplex": "^0.10.
|
|
158
|
+
"libp2p-mplex": "^0.10.4",
|
|
162
159
|
"libp2p-tcp": "^0.17.0",
|
|
163
160
|
"libp2p-webrtc-star": "^0.25.0",
|
|
164
161
|
"libp2p-websockets": "^0.16.0",
|
|
@@ -181,12 +178,12 @@
|
|
|
181
178
|
"Friedel Ziegelmayer <dignifiedquire@gmail.com>",
|
|
182
179
|
"Maciej Krüger <mkg20001@gmail.com>",
|
|
183
180
|
"Hugo Dias <mail@hugodias.me>",
|
|
181
|
+
"dirkmc <dirkmdev@gmail.com>",
|
|
184
182
|
"Volker Mische <volker.mische@gmail.com>",
|
|
185
183
|
"Chris Dostert <chrisdostert@users.noreply.github.com>",
|
|
186
|
-
"
|
|
184
|
+
"zeim839 <50573884+zeim839@users.noreply.github.com>",
|
|
187
185
|
"Robert Kiel <robert.kiel@hoprnet.org>",
|
|
188
186
|
"Richard Littauer <richard.littauer@gmail.com>",
|
|
189
|
-
"zeim839 <50573884+zeim839@users.noreply.github.com>",
|
|
190
187
|
"a1300 <matthias-knopp@gmx.net>",
|
|
191
188
|
"Ryan Bell <ryan@piing.net>",
|
|
192
189
|
"ᴠɪᴄᴛᴏʀ ʙᴊᴇʟᴋʜᴏʟᴍ <victorbjelkholm@gmail.com>",
|
|
@@ -8,7 +8,6 @@ const log = Object.assign(debug('libp2p:auto-relay'), {
|
|
|
8
8
|
const { fromString: uint8ArrayFromString } = require('uint8arrays/from-string')
|
|
9
9
|
const { toString: uint8ArrayToString } = require('uint8arrays/to-string')
|
|
10
10
|
const { Multiaddr } = require('multiaddr')
|
|
11
|
-
const PeerId = require('peer-id')
|
|
12
11
|
|
|
13
12
|
const { relay: multicodec } = require('./multicodec')
|
|
14
13
|
const { canHop } = require('./circuit/hop')
|
|
@@ -22,7 +21,8 @@ const {
|
|
|
22
21
|
|
|
23
22
|
/**
|
|
24
23
|
* @typedef {import('libp2p-interfaces/src/connection').Connection} Connection
|
|
25
|
-
* @typedef {import('../peer-store/
|
|
24
|
+
* @typedef {import('../peer-store/types').Address} Address
|
|
25
|
+
* @typedef {import('peer-id')} PeerId
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
28
|
/**
|
|
@@ -91,7 +91,7 @@ class AutoRelay {
|
|
|
91
91
|
|
|
92
92
|
// If no protocol, check if we were keeping the peer before as a listenRelay
|
|
93
93
|
if (!hasProtocol && this._listenRelays.has(id)) {
|
|
94
|
-
this._removeListenRelay(id)
|
|
94
|
+
await this._removeListenRelay(id)
|
|
95
95
|
return
|
|
96
96
|
} else if (!hasProtocol || this._listenRelays.has(id)) {
|
|
97
97
|
return
|
|
@@ -113,7 +113,7 @@ class AutoRelay {
|
|
|
113
113
|
const supportsHop = await canHop({ connection })
|
|
114
114
|
|
|
115
115
|
if (supportsHop) {
|
|
116
|
-
this._peerStore.metadataBook.
|
|
116
|
+
await this._peerStore.metadataBook.setValue(peerId, HOP_METADATA_KEY, uint8ArrayFromString(HOP_METADATA_VALUE))
|
|
117
117
|
await this._addListenRelay(connection, id)
|
|
118
118
|
}
|
|
119
119
|
} catch (/** @type {any} */ err) {
|
|
@@ -125,7 +125,6 @@ class AutoRelay {
|
|
|
125
125
|
* Peer disconnects.
|
|
126
126
|
*
|
|
127
127
|
* @param {Connection} connection - connection to the peer
|
|
128
|
-
* @returns {void}
|
|
129
128
|
*/
|
|
130
129
|
_onPeerDisconnected (connection) {
|
|
131
130
|
const peerId = connection.remotePeer
|
|
@@ -136,7 +135,9 @@ class AutoRelay {
|
|
|
136
135
|
return
|
|
137
136
|
}
|
|
138
137
|
|
|
139
|
-
this._removeListenRelay(id)
|
|
138
|
+
this._removeListenRelay(id).catch(err => {
|
|
139
|
+
log.error(err)
|
|
140
|
+
})
|
|
140
141
|
}
|
|
141
142
|
|
|
142
143
|
/**
|
|
@@ -154,7 +155,7 @@ class AutoRelay {
|
|
|
154
155
|
}
|
|
155
156
|
|
|
156
157
|
// Get peer known addresses and sort them per public addresses first
|
|
157
|
-
const remoteAddrs = this._peerStore.addressBook.getMultiaddrsForPeer(
|
|
158
|
+
const remoteAddrs = await this._peerStore.addressBook.getMultiaddrsForPeer(
|
|
158
159
|
connection.remotePeer, this._addressSorter
|
|
159
160
|
)
|
|
160
161
|
|
|
@@ -180,12 +181,11 @@ class AutoRelay {
|
|
|
180
181
|
*
|
|
181
182
|
* @private
|
|
182
183
|
* @param {string} id - peer identifier string.
|
|
183
|
-
* @returns {void}
|
|
184
184
|
*/
|
|
185
|
-
_removeListenRelay (id) {
|
|
185
|
+
async _removeListenRelay (id) {
|
|
186
186
|
if (this._listenRelays.delete(id)) {
|
|
187
187
|
// TODO: this should be responsibility of the connMgr
|
|
188
|
-
this._listenOnAvailableHopRelays([id])
|
|
188
|
+
await this._listenOnAvailableHopRelays([id])
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
191
|
|
|
@@ -197,7 +197,6 @@ class AutoRelay {
|
|
|
197
197
|
* 3. Search the network.
|
|
198
198
|
*
|
|
199
199
|
* @param {string[]} [peersToIgnore]
|
|
200
|
-
* @returns {Promise<void>}
|
|
201
200
|
*/
|
|
202
201
|
async _listenOnAvailableHopRelays (peersToIgnore = []) {
|
|
203
202
|
// TODO: The peer redial issue on disconnect should be handled by connection gating
|
|
@@ -209,29 +208,30 @@ class AutoRelay {
|
|
|
209
208
|
const knownHopsToDial = []
|
|
210
209
|
|
|
211
210
|
// Check if we have known hop peers to use and attempt to listen on the already connected
|
|
212
|
-
for (const
|
|
211
|
+
for await (const { id, metadata } of this._peerStore.getPeers()) {
|
|
212
|
+
const idStr = id.toB58String()
|
|
213
|
+
|
|
213
214
|
// Continue to next if listening on this or peer to ignore
|
|
214
|
-
if (this._listenRelays.has(
|
|
215
|
+
if (this._listenRelays.has(idStr) || peersToIgnore.includes(idStr)) {
|
|
215
216
|
continue
|
|
216
217
|
}
|
|
217
218
|
|
|
218
|
-
const supportsHop =
|
|
219
|
+
const supportsHop = metadata.get(HOP_METADATA_KEY)
|
|
219
220
|
|
|
220
221
|
// Continue to next if it does not support Hop
|
|
221
222
|
if (!supportsHop || uint8ArrayToString(supportsHop) !== HOP_METADATA_VALUE) {
|
|
222
223
|
continue
|
|
223
224
|
}
|
|
224
225
|
|
|
225
|
-
const
|
|
226
|
-
const connection = this._connectionManager.get(peerId)
|
|
226
|
+
const connection = this._connectionManager.get(id)
|
|
227
227
|
|
|
228
228
|
// If not connected, store for possible later use.
|
|
229
229
|
if (!connection) {
|
|
230
|
-
knownHopsToDial.push(
|
|
230
|
+
knownHopsToDial.push(id)
|
|
231
231
|
continue
|
|
232
232
|
}
|
|
233
233
|
|
|
234
|
-
await this._addListenRelay(connection,
|
|
234
|
+
await this._addListenRelay(connection, idStr)
|
|
235
235
|
|
|
236
236
|
// Check if already listening on enough relays
|
|
237
237
|
if (this._listenRelays.size >= this.maxListeners) {
|
|
@@ -258,7 +258,7 @@ class AutoRelay {
|
|
|
258
258
|
}
|
|
259
259
|
|
|
260
260
|
const peerId = provider.id
|
|
261
|
-
this._peerStore.addressBook.add(peerId, provider.multiaddrs)
|
|
261
|
+
await this._peerStore.addressBook.add(peerId, provider.multiaddrs)
|
|
262
262
|
|
|
263
263
|
await this._tryToListenOnRelay(peerId)
|
|
264
264
|
|
|
@@ -4,6 +4,7 @@ const debug = require('debug')
|
|
|
4
4
|
const mergeOptions = require('merge-options')
|
|
5
5
|
// @ts-ignore retimer does not have types
|
|
6
6
|
const retimer = require('retimer')
|
|
7
|
+
const all = require('it-all')
|
|
7
8
|
|
|
8
9
|
const log = Object.assign(debug('libp2p:connection-manager:auto-dialler'), {
|
|
9
10
|
error: debug('libp2p:connection-manager:auto-dialler:err')
|
|
@@ -50,14 +51,16 @@ class AutoDialler {
|
|
|
50
51
|
/**
|
|
51
52
|
* Starts the auto dialer
|
|
52
53
|
*/
|
|
53
|
-
start () {
|
|
54
|
+
async start () {
|
|
54
55
|
if (!this._options.enabled) {
|
|
55
56
|
log('not enabled')
|
|
56
57
|
return
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
this._running = true
|
|
60
|
-
this._autoDial()
|
|
61
|
+
this._autoDial().catch(err => {
|
|
62
|
+
log.error('could start autodial', err)
|
|
63
|
+
})
|
|
61
64
|
log('started')
|
|
62
65
|
}
|
|
63
66
|
|
|
@@ -84,8 +87,10 @@ class AutoDialler {
|
|
|
84
87
|
return
|
|
85
88
|
}
|
|
86
89
|
|
|
87
|
-
// Sort peers on
|
|
88
|
-
|
|
90
|
+
// Sort peers on whether we know protocols of public keys for them
|
|
91
|
+
// TODO: assuming the `peerStore.getPeers()` order is stable this will mean
|
|
92
|
+
// we keep trying to connect to the same peers?
|
|
93
|
+
const peers = (await all(this._libp2p.peerStore.getPeers()))
|
|
89
94
|
.sort((a, b) => {
|
|
90
95
|
if (b.protocols && b.protocols.length && (!a.protocols || !a.protocols.length)) {
|
|
91
96
|
return 1
|