libp2p 0.45.3 → 0.45.4
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 +17 -17
- package/dist/src/registrar.d.ts +2 -3
- package/dist/src/registrar.d.ts.map +1 -1
- package/dist/src/registrar.js +24 -10
- package/dist/src/registrar.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/package.json +1 -1
- package/src/registrar.ts +30 -13
- package/src/version.ts +1 -1
package/dist/src/registrar.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { type StreamHandlerOptions, type StreamHandlerRecord, type Registrar, type StreamHandler, type Topology } from '@libp2p/interface-registrar';
|
|
2
|
-
import type { Connection } from '@libp2p/interface-connection';
|
|
3
2
|
import type { ConnectionManager } from '@libp2p/interface-connection-manager';
|
|
4
3
|
import type { Libp2pEvents, PeerUpdate } from '@libp2p/interface-libp2p';
|
|
5
4
|
import type { PeerId } from '@libp2p/interface-peer-id';
|
|
@@ -44,12 +43,12 @@ export declare class DefaultRegistrar implements Registrar {
|
|
|
44
43
|
/**
|
|
45
44
|
* Remove a disconnected peer from the record
|
|
46
45
|
*/
|
|
47
|
-
_onDisconnect(evt: CustomEvent<
|
|
46
|
+
_onDisconnect(evt: CustomEvent<PeerId>): void;
|
|
48
47
|
/**
|
|
49
48
|
* On peer connected if we already have their protocols. Usually used for reconnects
|
|
50
49
|
* as change:protocols event won't be emitted due to identical protocols.
|
|
51
50
|
*/
|
|
52
|
-
_onConnect(evt: CustomEvent<
|
|
51
|
+
_onConnect(evt: CustomEvent<PeerId>): void;
|
|
53
52
|
/**
|
|
54
53
|
* Check if a new peer support the multicodecs for this topology
|
|
55
54
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registrar.d.ts","sourceRoot":"","sources":["../../src/registrar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAKhK,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"registrar.d.ts","sourceRoot":"","sources":["../../src/registrar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAKhK,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAI7D,eAAO,MAAM,2BAA2B,KAAK,CAAA;AAC7C,eAAO,MAAM,4BAA4B,KAAK,CAAA;AAE9C,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,YAAY,CAAC,YAAY,CAAC,CAAA;CACnC;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,SAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAC/D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;gBAEnC,UAAU,EAAE,mBAAmB;IAc5C,YAAY,IAAK,MAAM,EAAE;IAMzB,UAAU,CAAE,QAAQ,EAAE,MAAM,GAAG,mBAAmB;IAUlD,aAAa,CAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE;IAY5C;;OAEG;IACG,MAAM,CAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBnG;;;OAGG;IACG,QAAQ,CAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5D;;OAEG;IACG,QAAQ,CAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBtE;;OAEG;IACH,UAAU,CAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAY7B;;OAEG;IACH,aAAa,CAAE,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI;IA4B9C;;;OAGG;IACH,UAAU,CAAE,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI;IAoC3C;;OAEG;IACH,aAAa,CAAE,GAAG,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,IAAI;CAoCnD"}
|
package/dist/src/registrar.js
CHANGED
|
@@ -20,8 +20,8 @@ export class DefaultRegistrar {
|
|
|
20
20
|
this._onDisconnect = this._onDisconnect.bind(this);
|
|
21
21
|
this._onPeerUpdate = this._onPeerUpdate.bind(this);
|
|
22
22
|
this._onConnect = this._onConnect.bind(this);
|
|
23
|
-
this.components.events.addEventListener('
|
|
24
|
-
this.components.events.addEventListener('
|
|
23
|
+
this.components.events.addEventListener('peer:disconnect', this._onDisconnect);
|
|
24
|
+
this.components.events.addEventListener('peer:connect', this._onConnect);
|
|
25
25
|
this.components.events.addEventListener('peer:update', this._onPeerUpdate);
|
|
26
26
|
}
|
|
27
27
|
getProtocols() {
|
|
@@ -116,8 +116,8 @@ export class DefaultRegistrar {
|
|
|
116
116
|
* Remove a disconnected peer from the record
|
|
117
117
|
*/
|
|
118
118
|
_onDisconnect(evt) {
|
|
119
|
-
const
|
|
120
|
-
void this.components.peerStore.get(
|
|
119
|
+
const remotePeer = evt.detail;
|
|
120
|
+
void this.components.peerStore.get(remotePeer)
|
|
121
121
|
.then(peer => {
|
|
122
122
|
for (const protocol of peer.protocols) {
|
|
123
123
|
const topologies = this.topologies.get(protocol);
|
|
@@ -126,12 +126,16 @@ export class DefaultRegistrar {
|
|
|
126
126
|
continue;
|
|
127
127
|
}
|
|
128
128
|
for (const topology of topologies.values()) {
|
|
129
|
-
topology.onDisconnect(
|
|
129
|
+
topology.onDisconnect(remotePeer);
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
})
|
|
133
133
|
.catch(err => {
|
|
134
|
-
|
|
134
|
+
if (err.code === codes.ERR_NOT_FOUND) {
|
|
135
|
+
// peer has not completed identify so they are not in the peer store
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
log.error('could not inform topologies of disconnecting peer %p', remotePeer, err);
|
|
135
139
|
});
|
|
136
140
|
}
|
|
137
141
|
/**
|
|
@@ -139,9 +143,15 @@ export class DefaultRegistrar {
|
|
|
139
143
|
* as change:protocols event won't be emitted due to identical protocols.
|
|
140
144
|
*/
|
|
141
145
|
_onConnect(evt) {
|
|
142
|
-
const
|
|
143
|
-
void this.components.peerStore.get(
|
|
146
|
+
const remotePeer = evt.detail;
|
|
147
|
+
void this.components.peerStore.get(remotePeer)
|
|
144
148
|
.then(peer => {
|
|
149
|
+
const connection = this.components.connectionManager.getConnections(peer.id)[0];
|
|
150
|
+
if (connection == null) {
|
|
151
|
+
log('peer %p connected but the connection manager did not have a connection', peer);
|
|
152
|
+
// peer disconnected while we were loading their details from the peer store
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
145
155
|
for (const protocol of peer.protocols) {
|
|
146
156
|
const topologies = this.topologies.get(protocol);
|
|
147
157
|
if (topologies == null) {
|
|
@@ -149,12 +159,16 @@ export class DefaultRegistrar {
|
|
|
149
159
|
continue;
|
|
150
160
|
}
|
|
151
161
|
for (const topology of topologies.values()) {
|
|
152
|
-
topology.onConnect(
|
|
162
|
+
topology.onConnect(remotePeer, connection);
|
|
153
163
|
}
|
|
154
164
|
}
|
|
155
165
|
})
|
|
156
166
|
.catch(err => {
|
|
157
|
-
|
|
167
|
+
if (err.code === codes.ERR_NOT_FOUND) {
|
|
168
|
+
// peer has not completed identify so they are not in the peer store
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
log.error('could not inform topologies of connecting peer %p', remotePeer, err);
|
|
158
172
|
});
|
|
159
173
|
}
|
|
160
174
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registrar.js","sourceRoot":"","sources":["../../src/registrar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA0G,MAAM,6BAA6B,CAAA;AAChK,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,MAAM,eAAe,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"registrar.js","sourceRoot":"","sources":["../../src/registrar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA0G,MAAM,6BAA6B,CAAA;AAChK,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,MAAM,eAAe,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAOnC,MAAM,GAAG,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;AAEtC,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,CAAA;AAC7C,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAA;AAS9C;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACV,UAAU,CAAoC;IAC9C,QAAQ,CAAkC;IAC1C,UAAU,CAAqB;IAEhD,YAAa,UAA+B;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAA;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAA;QAE5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAE5C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAC9E,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QACxE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;IAC5E,CAAC;IAED,YAAY;QACV,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAS;YAChC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;SACxB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACZ,CAAC;IAED,UAAU,CAAE,QAAgB;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAE3C,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,MAAM,IAAI,SAAS,CAAC,sCAAsC,QAAQ,EAAE,EAAE,KAAK,CAAC,2BAA2B,CAAC,CAAA;SACzG;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,aAAa,CAAE,QAAgB;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAEhD,IAAI,UAAU,IAAI,IAAI,EAAE;YACtB,OAAO,EAAE,CAAA;SACV;QAED,OAAO;YACL,GAAG,UAAU,CAAC,MAAM,EAAE;SACvB,CAAA;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAE,QAAgB,EAAE,OAAsB,EAAE,IAA2B;QACjF,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC/B,MAAM,IAAI,SAAS,CAAC,2CAA2C,QAAQ,EAAE,EAAE,KAAK,CAAC,uCAAuC,CAAC,CAAA;SAC1H;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,iBAAiB,EAAE,2BAA2B;YAC9C,kBAAkB,EAAE,4BAA4B;SACjD,EAAE,IAAI,CAAC,CAAA;QAER,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE;YAC1B,OAAO;YACP,OAAO;SACR,CAAC,CAAA;QAEF,uDAAuD;QACvD,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YAC5D,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAE,SAA4B;QAC1C,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAEvE,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAChC,CAAC,CAAC,CAAA;QAEF,0CAA0C;QAC1C,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YAC5D,SAAS,EAAE,YAAY;SACxB,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAE,QAAgB,EAAE,QAAkB;QAClD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YACzB,GAAG,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAA;YAChE,MAAM,IAAI,SAAS,CAAC,qDAAqD,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAA;SACzG;QAED,kBAAkB;QAClB,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;QAE/D,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAE9C,IAAI,UAAU,IAAI,IAAI,EAAE;YACtB,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAA;YACxC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;SAC1C;QAED,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;QAE5B,gBAAgB;QAChB,MAAM,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAEjC,OAAO,EAAE,CAAA;IACX,CAAC;IAED;;OAEG;IACH,UAAU,CAAE,EAAU;QACpB,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE;YAC9D,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACtB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBAErB,IAAI,UAAU,CAAC,IAAI,KAAK,CAAC,EAAE;oBACzB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;iBACjC;aACF;SACF;IACH,CAAC;IAED;;OAEG;IACH,aAAa,CAAE,GAAwB;QACrC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAA;QAE7B,KAAK,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;aAC3C,IAAI,CAAC,IAAI,CAAC,EAAE;YACX,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;gBACrC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gBAEhD,IAAI,UAAU,IAAI,IAAI,EAAE;oBACtB,gDAAgD;oBAChD,SAAQ;iBACT;gBAED,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE;oBAC1C,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA;iBAClC;aACF;QACH,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,EAAE;gBACpC,oEAAoE;gBACpE,OAAM;aACP;YAED,GAAG,CAAC,KAAK,CAAC,sDAAsD,EAAE,UAAU,EAAE,GAAG,CAAC,CAAA;QACpF,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;;OAGG;IACH,UAAU,CAAE,GAAwB;QAClC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAA;QAE7B,KAAK,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC;aAC3C,IAAI,CAAC,IAAI,CAAC,EAAE;YACX,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YAE/E,IAAI,UAAU,IAAI,IAAI,EAAE;gBACtB,GAAG,CAAC,wEAAwE,EAAE,IAAI,CAAC,CAAA;gBACnF,4EAA4E;gBAC5E,OAAM;aACP;YAED,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;gBACrC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gBAEhD,IAAI,UAAU,IAAI,IAAI,EAAE;oBACtB,gDAAgD;oBAChD,SAAQ;iBACT;gBAED,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE;oBAC1C,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;iBAC3C;aACF;QACH,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE;YACX,IAAI,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,aAAa,EAAE;gBACpC,oEAAoE;gBACpE,OAAM;aACP;YAED,GAAG,CAAC,KAAK,CAAC,mDAAmD,EAAE,UAAU,EAAE,GAAG,CAAC,CAAA;QACjF,CAAC,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACH,aAAa,CAAE,GAA4B;QACzC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,MAAM,CAAA;QACrC,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;QAClG,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;QAEhG,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAEhD,IAAI,UAAU,IAAI,IAAI,EAAE;gBACtB,gDAAgD;gBAChD,SAAQ;aACT;YAED,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE;gBAC1C,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;aAC/B;SACF;QAED,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;YAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YAEhD,IAAI,UAAU,IAAI,IAAI,EAAE;gBACtB,gDAAgD;gBAChD,SAAQ;aACT;YAED,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE;gBAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;gBAE/E,IAAI,UAAU,IAAI,IAAI,EAAE;oBACtB,SAAQ;iBACT;gBACD,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;aACxC;SACF;IACH,CAAC;CACF"}
|
package/dist/src/version.d.ts
CHANGED
package/dist/src/version.js
CHANGED
package/package.json
CHANGED
package/src/registrar.ts
CHANGED
|
@@ -3,7 +3,6 @@ import { CodeError } from '@libp2p/interfaces/errors'
|
|
|
3
3
|
import { logger } from '@libp2p/logger'
|
|
4
4
|
import merge from 'merge-options'
|
|
5
5
|
import { codes } from './errors.js'
|
|
6
|
-
import type { Connection } from '@libp2p/interface-connection'
|
|
7
6
|
import type { ConnectionManager } from '@libp2p/interface-connection-manager'
|
|
8
7
|
import type { Libp2pEvents, PeerUpdate } from '@libp2p/interface-libp2p'
|
|
9
8
|
import type { PeerId } from '@libp2p/interface-peer-id'
|
|
@@ -39,8 +38,8 @@ export class DefaultRegistrar implements Registrar {
|
|
|
39
38
|
this._onPeerUpdate = this._onPeerUpdate.bind(this)
|
|
40
39
|
this._onConnect = this._onConnect.bind(this)
|
|
41
40
|
|
|
42
|
-
this.components.events.addEventListener('
|
|
43
|
-
this.components.events.addEventListener('
|
|
41
|
+
this.components.events.addEventListener('peer:disconnect', this._onDisconnect)
|
|
42
|
+
this.components.events.addEventListener('peer:connect', this._onConnect)
|
|
44
43
|
this.components.events.addEventListener('peer:update', this._onPeerUpdate)
|
|
45
44
|
}
|
|
46
45
|
|
|
@@ -158,10 +157,10 @@ export class DefaultRegistrar implements Registrar {
|
|
|
158
157
|
/**
|
|
159
158
|
* Remove a disconnected peer from the record
|
|
160
159
|
*/
|
|
161
|
-
_onDisconnect (evt: CustomEvent<
|
|
162
|
-
const
|
|
160
|
+
_onDisconnect (evt: CustomEvent<PeerId>): void {
|
|
161
|
+
const remotePeer = evt.detail
|
|
163
162
|
|
|
164
|
-
void this.components.peerStore.get(
|
|
163
|
+
void this.components.peerStore.get(remotePeer)
|
|
165
164
|
.then(peer => {
|
|
166
165
|
for (const protocol of peer.protocols) {
|
|
167
166
|
const topologies = this.topologies.get(protocol)
|
|
@@ -172,12 +171,17 @@ export class DefaultRegistrar implements Registrar {
|
|
|
172
171
|
}
|
|
173
172
|
|
|
174
173
|
for (const topology of topologies.values()) {
|
|
175
|
-
topology.onDisconnect(
|
|
174
|
+
topology.onDisconnect(remotePeer)
|
|
176
175
|
}
|
|
177
176
|
}
|
|
178
177
|
})
|
|
179
178
|
.catch(err => {
|
|
180
|
-
|
|
179
|
+
if (err.code === codes.ERR_NOT_FOUND) {
|
|
180
|
+
// peer has not completed identify so they are not in the peer store
|
|
181
|
+
return
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
log.error('could not inform topologies of disconnecting peer %p', remotePeer, err)
|
|
181
185
|
})
|
|
182
186
|
}
|
|
183
187
|
|
|
@@ -185,11 +189,19 @@ export class DefaultRegistrar implements Registrar {
|
|
|
185
189
|
* On peer connected if we already have their protocols. Usually used for reconnects
|
|
186
190
|
* as change:protocols event won't be emitted due to identical protocols.
|
|
187
191
|
*/
|
|
188
|
-
_onConnect (evt: CustomEvent<
|
|
189
|
-
const
|
|
192
|
+
_onConnect (evt: CustomEvent<PeerId>): void {
|
|
193
|
+
const remotePeer = evt.detail
|
|
190
194
|
|
|
191
|
-
void this.components.peerStore.get(
|
|
195
|
+
void this.components.peerStore.get(remotePeer)
|
|
192
196
|
.then(peer => {
|
|
197
|
+
const connection = this.components.connectionManager.getConnections(peer.id)[0]
|
|
198
|
+
|
|
199
|
+
if (connection == null) {
|
|
200
|
+
log('peer %p connected but the connection manager did not have a connection', peer)
|
|
201
|
+
// peer disconnected while we were loading their details from the peer store
|
|
202
|
+
return
|
|
203
|
+
}
|
|
204
|
+
|
|
193
205
|
for (const protocol of peer.protocols) {
|
|
194
206
|
const topologies = this.topologies.get(protocol)
|
|
195
207
|
|
|
@@ -199,12 +211,17 @@ export class DefaultRegistrar implements Registrar {
|
|
|
199
211
|
}
|
|
200
212
|
|
|
201
213
|
for (const topology of topologies.values()) {
|
|
202
|
-
topology.onConnect(
|
|
214
|
+
topology.onConnect(remotePeer, connection)
|
|
203
215
|
}
|
|
204
216
|
}
|
|
205
217
|
})
|
|
206
218
|
.catch(err => {
|
|
207
|
-
|
|
219
|
+
if (err.code === codes.ERR_NOT_FOUND) {
|
|
220
|
+
// peer has not completed identify so they are not in the peer store
|
|
221
|
+
return
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
log.error('could not inform topologies of connecting peer %p', remotePeer, err)
|
|
208
225
|
})
|
|
209
226
|
}
|
|
210
227
|
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const version = '0.45.
|
|
1
|
+
export const version = '0.45.4'
|
|
2
2
|
export const name = 'libp2p'
|