@aztec/p2p 0.83.1-nightly.20250404 → 0.84.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -22,7 +22,7 @@ export declare class PeerManager {
|
|
|
22
22
|
private trustedPeers;
|
|
23
23
|
private trustedPeersInitialized;
|
|
24
24
|
private metrics;
|
|
25
|
-
private
|
|
25
|
+
private handlers;
|
|
26
26
|
constructor(libP2PNode: PubSubLibp2p, peerDiscoveryService: PeerDiscoveryService, config: P2PConfig, telemetryClient: TelemetryClient, logger: import("@aztec/foundation/log").Logger, peerScoring: PeerScoring, reqresp: ReqResp);
|
|
27
27
|
/**
|
|
28
28
|
* Initializes the trusted peers.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer_manager.d.ts","sourceRoot":"","sources":["../../../src/services/peer-manager/peer_manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,KAAK,eAAe,EAAa,MAAM,yBAAyB,CAAC;AAG1E,OAAO,KAAK,EAAc,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,aAAa,EAAuB,MAAM,iCAAiC,CAAC;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAoBrE,qBAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"peer_manager.d.ts","sourceRoot":"","sources":["../../../src/services/peer-manager/peer_manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,KAAK,eAAe,EAAa,MAAM,yBAAyB,CAAC;AAG1E,OAAO,KAAK,EAAc,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,aAAa,EAAuB,MAAM,iCAAiC,CAAC;AACrF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAoBrE,qBAAa,WAAW;IAgBpB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,OAAO;IArBjB,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,8BAA8B,CAAa;IACnD,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,uBAAuB,CAAkB;IAEjD,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,QAAQ,CAIF;gBAGJ,UAAU,EAAE,YAAY,EACxB,oBAAoB,EAAE,oBAAoB,EAC1C,MAAM,EAAE,SAAS,EACzB,eAAe,EAAE,eAAe,EACxB,MAAM,wCAAmC,EACzC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO;IAwB1B;;;;OAIG;IACG,sBAAsB;IAU5B,IAAI,MAAM,6CAET;IAGM,SAAS;IAShB;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAShC;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IASnC;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAQrB;;;OAGG;IACI,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM3C;;;;;;OAMG;IACI,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;IAQrD,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB;IAIvD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAIpC,QAAQ,CAAC,cAAc,UAAQ,GAAG,QAAQ,EAAE;IAiCnD;;OAEG;IACH,OAAO,CAAC,QAAQ;IAiEhB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,mBAAmB;IAwB3B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAwBvB;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;YAuBb,wBAAwB;YAcxB,cAAc;IAQ5B;;;OAGG;YACW,oBAAoB;YA8DpB,QAAQ;IA2BtB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,gBAAgB;IAsBxB;;;OAGG;IACU,IAAI;CAYlB"}
|
|
@@ -31,7 +31,7 @@ export class PeerManager {
|
|
|
31
31
|
trustedPeers;
|
|
32
32
|
trustedPeersInitialized;
|
|
33
33
|
metrics;
|
|
34
|
-
|
|
34
|
+
handlers;
|
|
35
35
|
constructor(libP2PNode, peerDiscoveryService, config, telemetryClient, logger = createLogger('p2p:peer-manager'), peerScoring, reqresp){
|
|
36
36
|
this.libP2PNode = libP2PNode;
|
|
37
37
|
this.peerDiscoveryService = peerDiscoveryService;
|
|
@@ -45,15 +45,20 @@ export class PeerManager {
|
|
|
45
45
|
this.timedOutPeers = new Map();
|
|
46
46
|
this.trustedPeers = new Set();
|
|
47
47
|
this.trustedPeersInitialized = false;
|
|
48
|
+
this.handlers = {};
|
|
48
49
|
this.metrics = new PeerManagerMetrics(telemetryClient, 'PeerManager');
|
|
50
|
+
// Handle Discovered peers
|
|
51
|
+
this.handlers = {
|
|
52
|
+
handleConnectedPeerEvent: this.handleConnectedPeerEvent.bind(this),
|
|
53
|
+
handleDisconnectedPeerEvent: this.handleDisconnectedPeerEvent.bind(this),
|
|
54
|
+
handleDiscoveredPeer: (enr)=>this.handleDiscoveredPeer(enr).catch((e)=>this.logger.error('Error handling discovered peer', e))
|
|
55
|
+
};
|
|
49
56
|
// Handle new established connections
|
|
50
|
-
this.libP2PNode.addEventListener(PeerEvent.CONNECTED, this.handleConnectedPeerEvent
|
|
57
|
+
this.libP2PNode.addEventListener(PeerEvent.CONNECTED, this.handlers.handleConnectedPeerEvent);
|
|
51
58
|
// Handle lost connections
|
|
52
|
-
this.libP2PNode.addEventListener(PeerEvent.DISCONNECTED, this.handleDisconnectedPeerEvent
|
|
53
|
-
// Handle Discovered peers
|
|
54
|
-
this.discoveredPeerHandler = (enr)=>this.handleDiscoveredPeer(enr).catch((e)=>this.logger.error('Error handling discovered peer', e));
|
|
59
|
+
this.libP2PNode.addEventListener(PeerEvent.DISCONNECTED, this.handlers.handleDisconnectedPeerEvent);
|
|
55
60
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
56
|
-
this.peerDiscoveryService.on(PeerEvent.DISCOVERED, this.
|
|
61
|
+
this.peerDiscoveryService.on(PeerEvent.DISCOVERED, this.handlers.handleDiscoveredPeer);
|
|
57
62
|
// Display peer counts every 60 seconds
|
|
58
63
|
this.displayPeerCountsPeerHeartbeat = Math.floor(60_000 / this.config.peerCheckIntervalMS);
|
|
59
64
|
}
|
|
@@ -447,11 +452,11 @@ export class PeerManager {
|
|
|
447
452
|
* Removing all event listeners.
|
|
448
453
|
*/ async stop() {
|
|
449
454
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
450
|
-
this.peerDiscoveryService.off(PeerEvent.DISCOVERED, this.
|
|
455
|
+
this.peerDiscoveryService.off(PeerEvent.DISCOVERED, this.handlers.handleDiscoveredPeer);
|
|
451
456
|
// Send goodbyes to all peers
|
|
452
457
|
await Promise.all(this.libP2PNode.getPeers().map((peer)=>this.goodbyeAndDisconnectPeer(peer, GoodByeReason.SHUTDOWN)));
|
|
453
|
-
this.libP2PNode.removeEventListener(PeerEvent.CONNECTED, this.handleConnectedPeerEvent);
|
|
454
|
-
this.libP2PNode.removeEventListener(PeerEvent.DISCONNECTED, this.handleDisconnectedPeerEvent);
|
|
458
|
+
this.libP2PNode.removeEventListener(PeerEvent.CONNECTED, this.handlers.handleConnectedPeerEvent);
|
|
459
|
+
this.libP2PNode.removeEventListener(PeerEvent.DISCONNECTED, this.handlers.handleDisconnectedPeerEvent);
|
|
455
460
|
}
|
|
456
461
|
}
|
|
457
462
|
_ts_decorate([
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/p2p",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.84.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -65,16 +65,16 @@
|
|
|
65
65
|
]
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@aztec/constants": "0.
|
|
69
|
-
"@aztec/epoch-cache": "0.
|
|
70
|
-
"@aztec/foundation": "0.
|
|
71
|
-
"@aztec/kv-store": "0.
|
|
72
|
-
"@aztec/noir-contracts.js": "0.
|
|
73
|
-
"@aztec/noir-protocol-circuits-types": "0.
|
|
74
|
-
"@aztec/protocol-contracts": "0.
|
|
75
|
-
"@aztec/simulator": "0.
|
|
76
|
-
"@aztec/stdlib": "0.
|
|
77
|
-
"@aztec/telemetry-client": "0.
|
|
68
|
+
"@aztec/constants": "0.84.0",
|
|
69
|
+
"@aztec/epoch-cache": "0.84.0",
|
|
70
|
+
"@aztec/foundation": "0.84.0",
|
|
71
|
+
"@aztec/kv-store": "0.84.0",
|
|
72
|
+
"@aztec/noir-contracts.js": "0.84.0",
|
|
73
|
+
"@aztec/noir-protocol-circuits-types": "0.84.0",
|
|
74
|
+
"@aztec/protocol-contracts": "0.84.0",
|
|
75
|
+
"@aztec/simulator": "0.84.0",
|
|
76
|
+
"@aztec/stdlib": "0.84.0",
|
|
77
|
+
"@aztec/telemetry-client": "0.84.0",
|
|
78
78
|
"@chainsafe/discv5": "9.0.0",
|
|
79
79
|
"@chainsafe/enr": "3.0.0",
|
|
80
80
|
"@chainsafe/libp2p-gossipsub": "13.0.0",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
"xxhash-wasm": "^1.1.0"
|
|
104
104
|
},
|
|
105
105
|
"devDependencies": {
|
|
106
|
-
"@aztec/archiver": "0.
|
|
106
|
+
"@aztec/archiver": "0.84.0",
|
|
107
107
|
"@jest/globals": "^29.5.0",
|
|
108
108
|
"@types/jest": "^29.5.0",
|
|
109
109
|
"@types/node": "^18.14.6",
|
|
@@ -45,7 +45,11 @@ export class PeerManager {
|
|
|
45
45
|
private trustedPeersInitialized: boolean = false;
|
|
46
46
|
|
|
47
47
|
private metrics: PeerManagerMetrics;
|
|
48
|
-
private
|
|
48
|
+
private handlers: {
|
|
49
|
+
handleConnectedPeerEvent: (e: CustomEvent<PeerId>) => void;
|
|
50
|
+
handleDisconnectedPeerEvent: (e: CustomEvent<PeerId>) => void;
|
|
51
|
+
handleDiscoveredPeer: (enr: ENR) => Promise<void>;
|
|
52
|
+
} = {} as any;
|
|
49
53
|
|
|
50
54
|
constructor(
|
|
51
55
|
private libP2PNode: PubSubLibp2p,
|
|
@@ -58,17 +62,21 @@ export class PeerManager {
|
|
|
58
62
|
) {
|
|
59
63
|
this.metrics = new PeerManagerMetrics(telemetryClient, 'PeerManager');
|
|
60
64
|
|
|
65
|
+
// Handle Discovered peers
|
|
66
|
+
this.handlers = {
|
|
67
|
+
handleConnectedPeerEvent: this.handleConnectedPeerEvent.bind(this),
|
|
68
|
+
handleDisconnectedPeerEvent: this.handleDisconnectedPeerEvent.bind(this),
|
|
69
|
+
handleDiscoveredPeer: (enr: ENR) =>
|
|
70
|
+
this.handleDiscoveredPeer(enr).catch(e => this.logger.error('Error handling discovered peer', e)),
|
|
71
|
+
};
|
|
72
|
+
|
|
61
73
|
// Handle new established connections
|
|
62
|
-
this.libP2PNode.addEventListener(PeerEvent.CONNECTED, this.handleConnectedPeerEvent
|
|
74
|
+
this.libP2PNode.addEventListener(PeerEvent.CONNECTED, this.handlers.handleConnectedPeerEvent);
|
|
63
75
|
// Handle lost connections
|
|
64
|
-
this.libP2PNode.addEventListener(PeerEvent.DISCONNECTED, this.handleDisconnectedPeerEvent
|
|
65
|
-
|
|
66
|
-
// Handle Discovered peers
|
|
67
|
-
this.discoveredPeerHandler = (enr: ENR) =>
|
|
68
|
-
this.handleDiscoveredPeer(enr).catch(e => this.logger.error('Error handling discovered peer', e));
|
|
76
|
+
this.libP2PNode.addEventListener(PeerEvent.DISCONNECTED, this.handlers.handleDisconnectedPeerEvent);
|
|
69
77
|
|
|
70
78
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
71
|
-
this.peerDiscoveryService.on(PeerEvent.DISCOVERED, this.
|
|
79
|
+
this.peerDiscoveryService.on(PeerEvent.DISCOVERED, this.handlers.handleDiscoveredPeer);
|
|
72
80
|
|
|
73
81
|
// Display peer counts every 60 seconds
|
|
74
82
|
this.displayPeerCountsPeerHeartbeat = Math.floor(60_000 / this.config.peerCheckIntervalMS);
|
|
@@ -538,15 +546,15 @@ export class PeerManager {
|
|
|
538
546
|
*/
|
|
539
547
|
public async stop() {
|
|
540
548
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
541
|
-
this.peerDiscoveryService.off(PeerEvent.DISCOVERED, this.
|
|
549
|
+
this.peerDiscoveryService.off(PeerEvent.DISCOVERED, this.handlers.handleDiscoveredPeer);
|
|
542
550
|
|
|
543
551
|
// Send goodbyes to all peers
|
|
544
552
|
await Promise.all(
|
|
545
553
|
this.libP2PNode.getPeers().map(peer => this.goodbyeAndDisconnectPeer(peer, GoodByeReason.SHUTDOWN)),
|
|
546
554
|
);
|
|
547
555
|
|
|
548
|
-
this.libP2PNode.removeEventListener(PeerEvent.CONNECTED, this.handleConnectedPeerEvent);
|
|
549
|
-
this.libP2PNode.removeEventListener(PeerEvent.DISCONNECTED, this.handleDisconnectedPeerEvent);
|
|
556
|
+
this.libP2PNode.removeEventListener(PeerEvent.CONNECTED, this.handlers.handleConnectedPeerEvent);
|
|
557
|
+
this.libP2PNode.removeEventListener(PeerEvent.DISCONNECTED, this.handlers.handleDisconnectedPeerEvent);
|
|
550
558
|
}
|
|
551
559
|
}
|
|
552
560
|
|