@aztec/p2p 1.1.2 → 1.2.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.
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +1 -0
- package/dest/config.d.ts +1 -0
- package/dest/config.d.ts.map +1 -1
- package/dest/services/dummy_service.d.ts +3 -0
- package/dest/services/dummy_service.d.ts.map +1 -1
- package/dest/services/dummy_service.js +2 -0
- package/dest/services/libp2p/libp2p_service.d.ts +2 -0
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
- package/dest/services/libp2p/libp2p_service.js +3 -0
- package/dest/services/peer-manager/peer_manager.js +3 -3
- package/dest/services/reqresp/config.d.ts +3 -0
- package/dest/services/reqresp/config.d.ts.map +1 -1
- package/dest/services/reqresp/config.js +7 -0
- package/dest/services/reqresp/interface.d.ts +2 -0
- package/dest/services/reqresp/interface.d.ts.map +1 -1
- package/dest/services/reqresp/reqresp.d.ts +3 -1
- package/dest/services/reqresp/reqresp.d.ts.map +1 -1
- package/dest/services/reqresp/reqresp.js +32 -7
- package/dest/services/service.d.ts +2 -0
- package/dest/services/service.d.ts.map +1 -1
- package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
- package/dest/test-helpers/reqresp-nodes.js +1 -0
- package/package.json +13 -13
- package/src/client/p2p_client.ts +1 -0
- package/src/services/dummy_service.ts +4 -0
- package/src/services/libp2p/libp2p_service.ts +5 -0
- package/src/services/peer-manager/peer_manager.ts +3 -3
- package/src/services/reqresp/config.ts +10 -0
- package/src/services/reqresp/interface.ts +3 -0
- package/src/services/reqresp/reqresp.ts +38 -10
- package/src/services/service.ts +3 -0
- package/src/test-helpers/reqresp-nodes.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2p_client.d.ts","sourceRoot":"","sources":["../../src/client/p2p_client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAsC,MAAM,iBAAiB,CAAC;AAC7F,OAAO,KAAK,EAGV,aAAa,EAEb,kBAAkB,EAClB,MAAM,EAEP,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC7F,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAEL,KAAK,eAAe,EAEpB,UAAU,EAGX,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,cAAc,CAAC;AAEnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEnF,OAAO,EAAE,KAAK,GAAG,EAAkB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE7E;;GAEG;AACH,qBAAa,SAAS,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,CAAC,IAAI,CACjE,SAAQ,UACR,YAAW,GAAG,EAAE,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;;IAmCvC,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,aAAa;IAErB,OAAO,CAAC,UAAU;IAElB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,GAAG;IAvCb,0HAA0H;IAC1H,OAAO,CAAC,cAAc,CAAiB;IAEvC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,WAAW,CAAC,CAAyB;IAC7C,OAAO,CAAC,wBAAwB,CAAM;IACtC,OAAO,CAAC,wBAAwB,CAAM;IACtC,OAAO,CAAC,2BAA2B,CAAM;IAEzC,OAAO,CAAC,kBAAkB,CAAgC;IAC1D,OAAO,CAAC,wBAAwB,CAA8B;IAC9D,OAAO,CAAC,wBAAwB,CAA8B;IAC9D,OAAO,CAAC,2BAA2B,CAA8B;IACjE,OAAO,CAAC,iBAAiB,CAA8B;IAEvD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAA6D;IAEpF,OAAO,CAAC,MAAM,CAAY;IAE1B,OAAO,CAAC,WAAW,CAA4B;IAE/C;;;;;;;OAOG;gBAED,WAAW,EAAE,CAAC,EACN,KAAK,EAAE,iBAAiB,EACxB,aAAa,EAAE,aAAa,GAAG,kBAAkB,EACzD,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACb,UAAU,EAAE,UAAU,EAC9B,MAAM,GAAE,OAAO,CAAC,SAAS,CAAM,EACvB,SAAS,GAAE,eAAsC,EACjD,GAAG,yCAAsB;IAyB5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,WAAW,IAAI,IAAI;IAInB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAIvD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI3D,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"p2p_client.d.ts","sourceRoot":"","sources":["../../src/client/p2p_client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAsC,MAAM,iBAAiB,CAAC;AAC7F,OAAO,KAAK,EAGV,aAAa,EAEb,kBAAkB,EAClB,MAAM,EAEP,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC7F,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAEL,KAAK,eAAe,EAEpB,UAAU,EAGX,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,cAAc,CAAC;AAEnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEnF,OAAO,EAAE,KAAK,GAAG,EAAkB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE7E;;GAEG;AACH,qBAAa,SAAS,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,CAAC,IAAI,CACjE,SAAQ,UACR,YAAW,GAAG,EAAE,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;;IAmCvC,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,aAAa;IAErB,OAAO,CAAC,UAAU;IAElB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,GAAG;IAvCb,0HAA0H;IAC1H,OAAO,CAAC,cAAc,CAAiB;IAEvC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,WAAW,CAAC,CAAyB;IAC7C,OAAO,CAAC,wBAAwB,CAAM;IACtC,OAAO,CAAC,wBAAwB,CAAM;IACtC,OAAO,CAAC,2BAA2B,CAAM;IAEzC,OAAO,CAAC,kBAAkB,CAAgC;IAC1D,OAAO,CAAC,wBAAwB,CAA8B;IAC9D,OAAO,CAAC,wBAAwB,CAA8B;IAC9D,OAAO,CAAC,2BAA2B,CAA8B;IACjE,OAAO,CAAC,iBAAiB,CAA8B;IAEvD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAA6D;IAEpF,OAAO,CAAC,MAAM,CAAY;IAE1B,OAAO,CAAC,WAAW,CAA4B;IAE/C;;;;;;;OAOG;gBAED,WAAW,EAAE,CAAC,EACN,KAAK,EAAE,iBAAiB,EACxB,aAAa,EAAE,aAAa,GAAG,kBAAkB,EACzD,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACb,UAAU,EAAE,UAAU,EAC9B,MAAM,GAAE,OAAO,CAAC,SAAS,CAAM,EACvB,SAAS,GAAE,eAAsC,EACjD,GAAG,yCAAsB;IAyB5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,WAAW,IAAI,IAAI;IAInB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAIvD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI3D,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpD,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAsC5B,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;YAgC/D,YAAY;IAa1B;;;OAGG;IACU,KAAK;IA8DlB,OAAO,CAAC,eAAe;IAevB;;;OAGG;IACU,IAAI;IAWjB,yDAAyD;IAC5C,IAAI;IAWV,iBAAiB,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAQ5F,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhE,4BAA4B,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI;IAI5E;;;;;;;;OAQG;IACU,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAarE;;OAEG;IACU,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IA0BzG,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IAI5D,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,iBAAiB,IAAI,qBAAqB,CAAC,EAAE,CAAC;IAS5D;;;;;;OAMG;IACU,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IAmDvG;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAI5D;;;;OAIG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IAIrE,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAIpD;;;;;OAKG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAQ1D;;;;;OAKG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IAsCrG;;;;OAIG;IACH,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAI5D;;;;QAII;IACS,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1C;;;QAGI;IACS,YAAY,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAKrD;;;;OAIG;IACI,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IAIrE,MAAM,IAAI,GAAG,GAAG,SAAS;IAIzB,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAInD;;;;;QAKI;IACS,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzD;;;OAGG;IACI,OAAO;IAId;;;OAGG;IACU,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIvD;;;OAGG;IACU,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1C,0BAA0B,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1D,iEAAiE;IACpD,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAInD;;;OAGG;IACU,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IAgB/C;;;;OAIG;YACW,wBAAwB;IAOtC;;;;OAIG;YACW,mBAAmB;IAQjC;;;;OAIG;YACW,oBAAoB;IAyBlC,uFAAuF;YACzE,mCAAmC;IAsBjD;;;;OAIG;YACW,uBAAuB;IAkBrC;;;OAGG;YACW,mBAAmB;YAkDnB,qBAAqB;IA0BnC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAMhB,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC;;;OAGG;IACI,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAGhE"}
|
package/dest/config.d.ts
CHANGED
|
@@ -108,6 +108,7 @@ export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
|
|
|
108
108
|
overallRequestTimeoutMs: unknown;
|
|
109
109
|
individualRequestTimeoutMs: unknown;
|
|
110
110
|
p2pOptimisticNegotiation: unknown;
|
|
111
|
+
dialTimeoutMs: unknown;
|
|
111
112
|
p2pEnabled: unknown;
|
|
112
113
|
blockCheckIntervalMS: unknown;
|
|
113
114
|
blockRequestBatchSize: unknown;
|
package/dest/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import type { ENR } from '@chainsafe/enr';
|
|
|
5
5
|
import type { PeerId } from '@libp2p/interface';
|
|
6
6
|
import EventEmitter from 'events';
|
|
7
7
|
import type { PeerManagerInterface } from './peer-manager/interface.js';
|
|
8
|
+
import type { P2PReqRespConfig } from './reqresp/config.js';
|
|
8
9
|
import type { ReqRespInterface, ReqRespResponse, ReqRespSubProtocol, ReqRespSubProtocolHandlers, ReqRespSubProtocolValidators, SubProtocolMap } from './reqresp/interface.js';
|
|
9
10
|
import type { GoodByeReason } from './reqresp/protocols/goodbye.js';
|
|
10
11
|
import { type P2PBlockReceivedCallback, type P2PService, type PeerDiscoveryService, PeerDiscoveryState } from './service.js';
|
|
@@ -12,6 +13,7 @@ import { type P2PBlockReceivedCallback, type P2PService, type PeerDiscoveryServi
|
|
|
12
13
|
* A dummy implementation of the P2P Service.
|
|
13
14
|
*/
|
|
14
15
|
export declare class DummyP2PService implements P2PService {
|
|
16
|
+
updateConfig(_config: Partial<P2PReqRespConfig>): void;
|
|
15
17
|
/** Returns an empty array for peers. */
|
|
16
18
|
getPeers(): PeerInfo[];
|
|
17
19
|
/**
|
|
@@ -102,6 +104,7 @@ export declare class DummyPeerManager implements PeerManagerInterface {
|
|
|
102
104
|
penalizePeer(_peerId: PeerId, _penalty: PeerErrorSeverity): void;
|
|
103
105
|
}
|
|
104
106
|
export declare class DummyReqResp implements ReqRespInterface {
|
|
107
|
+
updateConfig(_config: Partial<P2PReqRespConfig>): void;
|
|
105
108
|
start(_subProtocolHandlers: ReqRespSubProtocolHandlers, _subProtocolValidators: ReqRespSubProtocolValidators): Promise<void>;
|
|
106
109
|
stop(): Promise<void>;
|
|
107
110
|
sendRequest<SubProtocol extends ReqRespSubProtocol>(_subProtocol: SubProtocol, _request: InstanceType<SubProtocolMap[SubProtocol]['request']>): Promise<InstanceType<SubProtocolMap[SubProtocol]['response']> | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dummy_service.d.ts","sourceRoot":"","sources":["../../src/services/dummy_service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dummy_service.d.ts","sourceRoot":"","sources":["../../src/services/dummy_service.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { PeerDiscoveryState } from './service.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* A dummy implementation of the P2P Service.
|
|
6
6
|
*/ export class DummyP2PService {
|
|
7
|
+
updateConfig(_config) {}
|
|
7
8
|
/** Returns an empty array for peers. */ getPeers() {
|
|
8
9
|
return [];
|
|
9
10
|
}
|
|
@@ -129,6 +130,7 @@ export class DummyPeerManager {
|
|
|
129
130
|
penalizePeer(_peerId, _penalty) {}
|
|
130
131
|
}
|
|
131
132
|
export class DummyReqResp {
|
|
133
|
+
updateConfig(_config) {}
|
|
132
134
|
start(_subProtocolHandlers, _subProtocolValidators) {
|
|
133
135
|
return Promise.resolve();
|
|
134
136
|
}
|
|
@@ -14,6 +14,7 @@ import type { P2PConfig } from '../../config.js';
|
|
|
14
14
|
import type { MemPools } from '../../mem_pools/interface.js';
|
|
15
15
|
import { type PubSubLibp2p } from '../../util.js';
|
|
16
16
|
import type { PeerManagerInterface } from '../peer-manager/interface.js';
|
|
17
|
+
import type { P2PReqRespConfig } from '../reqresp/config.js';
|
|
17
18
|
import { type ReqRespInterface, ReqRespSubProtocol, type SubProtocolMap } from '../reqresp/interface.js';
|
|
18
19
|
import type { P2PBlockReceivedCallback, P2PService, PeerDiscoveryService } from '../service.js';
|
|
19
20
|
/**
|
|
@@ -49,6 +50,7 @@ export declare class LibP2PService<T extends P2PClientType = P2PClientType.Full>
|
|
|
49
50
|
private gossipSubEventHandler;
|
|
50
51
|
private instrumentation;
|
|
51
52
|
constructor(clientType: T, config: P2PConfig, node: PubSubLibp2p, peerDiscoveryService: PeerDiscoveryService, reqresp: ReqRespInterface, peerManager: PeerManagerInterface, mempools: MemPools<T>, archiver: L2BlockSource & ContractDataSource, epochCache: EpochCacheInterface, proofVerifier: ClientProtocolCircuitVerifier, worldStateSynchronizer: WorldStateSynchronizer, telemetry: TelemetryClient, logger?: Logger);
|
|
53
|
+
updateConfig(config: Partial<P2PReqRespConfig>): void;
|
|
52
54
|
/**
|
|
53
55
|
* Creates an instance of the LibP2P service.
|
|
54
56
|
* @param config - The configuration to use when creating the service.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libp2p_service.d.ts","sourceRoot":"","sources":["../../../src/services/libp2p/libp2p_service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"libp2p_service.d.ts","sourceRoot":"","sources":["../../../src/services/libp2p/libp2p_service.ts"],"names":[],"mappings":"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"}
|
|
@@ -99,6 +99,9 @@ import { P2PInstrumentation } from './instrumentation.js';
|
|
|
99
99
|
return undefined;
|
|
100
100
|
};
|
|
101
101
|
}
|
|
102
|
+
updateConfig(config) {
|
|
103
|
+
this.reqresp.updateConfig(config);
|
|
104
|
+
}
|
|
102
105
|
/**
|
|
103
106
|
* Creates an instance of the LibP2P service.
|
|
104
107
|
* @param config - The configuration to use when creating the service.
|
|
@@ -535,20 +535,20 @@ export class PeerManager {
|
|
|
535
535
|
//TODO: maybe hard ban these peers in the future.
|
|
536
536
|
//We could allow this to happen up to N times, and then hard ban?
|
|
537
537
|
//Hard ban: Disallow connection via e.g. libp2p's Gater
|
|
538
|
-
this.logger.
|
|
538
|
+
this.logger.debug(`Disconnecting peer ${peerId} who failed to respond status handshake`, logData);
|
|
539
539
|
await this.disconnectPeer(peerId);
|
|
540
540
|
return;
|
|
541
541
|
}
|
|
542
542
|
const peerStatusMessage = StatusMessage.fromBuffer(data);
|
|
543
543
|
if (!ourStatus.validate(peerStatusMessage)) {
|
|
544
|
-
this.logger.
|
|
544
|
+
this.logger.debug(`Disconnecting peer ${peerId} due to failed status handshake.`, logData);
|
|
545
545
|
await this.disconnectPeer(peerId);
|
|
546
546
|
return;
|
|
547
547
|
}
|
|
548
548
|
this.logger.debug(`Successfully completed status handshake with peer ${peerId}`, logData);
|
|
549
549
|
} catch (err) {
|
|
550
550
|
//TODO: maybe hard ban these peers in the future
|
|
551
|
-
this.logger.
|
|
551
|
+
this.logger.debug(`Disconnecting peer ${peerId} due to error during status handshake: ${err.message ?? err}`, {
|
|
552
552
|
peerId
|
|
553
553
|
});
|
|
554
554
|
await this.disconnectPeer(peerId);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type ConfigMapping } from '@aztec/foundation/config';
|
|
2
2
|
export declare const DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS = 2000;
|
|
3
3
|
export declare const DEFAULT_OVERALL_REQUEST_TIMEOUT_MS = 4000;
|
|
4
|
+
export declare const DEFAULT_REQRESP_DIAL_TIMEOUT_MS = 1000;
|
|
4
5
|
export declare const DEFAULT_OPTIMISTIC_NEGOTIATION = false;
|
|
5
6
|
export declare const DEFAULT_P2P_REQRESP_CONFIG: P2PReqRespConfig;
|
|
6
7
|
export interface P2PReqRespConfig {
|
|
@@ -10,6 +11,8 @@ export interface P2PReqRespConfig {
|
|
|
10
11
|
individualRequestTimeoutMs: number;
|
|
11
12
|
/** Whether to use optimistic protocol negotiation when dialing to another peer (opposite of `negotiateFully`). */
|
|
12
13
|
p2pOptimisticNegotiation: boolean;
|
|
14
|
+
/** How long to wait for the dial protocol to establish a connection */
|
|
15
|
+
dialTimeoutMs: number;
|
|
13
16
|
}
|
|
14
17
|
export declare const p2pReqRespConfigMappings: Record<keyof P2PReqRespConfig, ConfigMapping>;
|
|
15
18
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAA2C,MAAM,0BAA0B,CAAC;AAEvG,eAAO,MAAM,qCAAqC,OAAO,CAAC;AAC1D,eAAO,MAAM,kCAAkC,OAAO,CAAC;AACvD,eAAO,MAAM,8BAA8B,QAAQ,CAAC;AAGpD,eAAO,MAAM,0BAA0B,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAA2C,MAAM,0BAA0B,CAAC;AAEvG,eAAO,MAAM,qCAAqC,OAAO,CAAC;AAC1D,eAAO,MAAM,kCAAkC,OAAO,CAAC;AACvD,eAAO,MAAM,+BAA+B,OAAO,CAAC;AACpD,eAAO,MAAM,8BAA8B,QAAQ,CAAC;AAGpD,eAAO,MAAM,0BAA0B,EAAE,gBAKxC,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,uBAAuB,EAAE,MAAM,CAAC;IAEhC,uEAAuE;IACvE,0BAA0B,EAAE,MAAM,CAAC;IAEnC,kHAAkH;IAClH,wBAAwB,EAAE,OAAO,CAAC;IAElC,uEAAuE;IACvE,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,gBAAgB,EAAE,aAAa,CAsBlF,CAAC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { booleanConfigHelper, numberConfigHelper } from '@aztec/foundation/config';
|
|
2
2
|
export const DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS = 2000;
|
|
3
3
|
export const DEFAULT_OVERALL_REQUEST_TIMEOUT_MS = 4000;
|
|
4
|
+
export const DEFAULT_REQRESP_DIAL_TIMEOUT_MS = 1000;
|
|
4
5
|
export const DEFAULT_OPTIMISTIC_NEGOTIATION = false;
|
|
5
6
|
// For use in tests.
|
|
6
7
|
export const DEFAULT_P2P_REQRESP_CONFIG = {
|
|
7
8
|
overallRequestTimeoutMs: DEFAULT_OVERALL_REQUEST_TIMEOUT_MS,
|
|
8
9
|
individualRequestTimeoutMs: DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS,
|
|
10
|
+
dialTimeoutMs: DEFAULT_REQRESP_DIAL_TIMEOUT_MS,
|
|
9
11
|
p2pOptimisticNegotiation: DEFAULT_OPTIMISTIC_NEGOTIATION
|
|
10
12
|
};
|
|
11
13
|
export const p2pReqRespConfigMappings = {
|
|
@@ -19,6 +21,11 @@ export const p2pReqRespConfigMappings = {
|
|
|
19
21
|
description: 'The timeout for an individual request response peer interaction.',
|
|
20
22
|
...numberConfigHelper(DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS)
|
|
21
23
|
},
|
|
24
|
+
dialTimeoutMs: {
|
|
25
|
+
env: 'P2P_REQRESP_DIAL_TIMEOUT_MS',
|
|
26
|
+
description: 'How long to wait for the dial protocol to establish a connection',
|
|
27
|
+
...numberConfigHelper(DEFAULT_REQRESP_DIAL_TIMEOUT_MS)
|
|
28
|
+
},
|
|
22
29
|
p2pOptimisticNegotiation: {
|
|
23
30
|
env: 'P2P_REQRESP_OPTIMISTIC_NEGOTIATION',
|
|
24
31
|
description: 'Whether to use optimistic protocol negotiation when dialing to another peer (opposite of `negotiateFully`).',
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { PeerId } from '@libp2p/interface';
|
|
2
|
+
import type { P2PReqRespConfig } from './config.js';
|
|
2
3
|
import type { ReqRespStatus } from './status.js';
|
|
3
4
|
export declare const PING_PROTOCOL = "/aztec/req/ping/0.1.0";
|
|
4
5
|
export declare const STATUS_PROTOCOL = "/aztec/req/status/0.1.0";
|
|
@@ -116,6 +117,7 @@ export interface ReqRespInterface {
|
|
|
116
117
|
sendRequest<SubProtocol extends ReqRespSubProtocol>(subProtocol: SubProtocol, request: InstanceType<SubProtocolMap[SubProtocol]['request']>): Promise<InstanceType<SubProtocolMap[SubProtocol]['response']> | undefined>;
|
|
117
118
|
sendBatchRequest<SubProtocol extends ReqRespSubProtocol>(subProtocol: SubProtocol, requests: InstanceType<SubProtocolMap[SubProtocol]['request']>[], pinnedPeer: PeerId | undefined, timeoutMs?: number, maxPeers?: number, maxRetryAttempts?: number): Promise<(InstanceType<SubProtocolMap[SubProtocol]['response']> | undefined)[]>;
|
|
118
119
|
sendRequestToPeer(peerId: PeerId, subProtocol: ReqRespSubProtocol, payload: Buffer, dialTimeout?: number): Promise<ReqRespResponse>;
|
|
120
|
+
updateConfig(config: Partial<P2PReqRespConfig>): void;
|
|
119
121
|
}
|
|
120
122
|
export {};
|
|
121
123
|
//# sourceMappingURL=interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/interface.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
|
2
2
|
import type { PeerId } from '@libp2p/interface';
|
|
3
3
|
import type { Libp2p } from 'libp2p';
|
|
4
4
|
import type { PeerScoring } from '../peer-manager/peer_scoring.js';
|
|
5
|
-
import type
|
|
5
|
+
import { type P2PReqRespConfig } from './config.js';
|
|
6
6
|
import { type ReqRespInterface, type ReqRespResponse, ReqRespSubProtocol, type ReqRespSubProtocolHandlers, type ReqRespSubProtocolRateLimits, type ReqRespSubProtocolValidators, type SubProtocolMap } from './interface.js';
|
|
7
7
|
/**
|
|
8
8
|
* The Request Response Service
|
|
@@ -24,6 +24,7 @@ export declare class ReqResp implements ReqRespInterface {
|
|
|
24
24
|
private logger;
|
|
25
25
|
private overallRequestTimeoutMs;
|
|
26
26
|
private individualRequestTimeoutMs;
|
|
27
|
+
private dialTimeoutMs;
|
|
27
28
|
private subProtocolHandlers;
|
|
28
29
|
private subProtocolValidators;
|
|
29
30
|
private connectionSampler;
|
|
@@ -31,6 +32,7 @@ export declare class ReqResp implements ReqRespInterface {
|
|
|
31
32
|
private snappyTransform;
|
|
32
33
|
private metrics;
|
|
33
34
|
constructor(config: P2PReqRespConfig, libp2p: Libp2p, peerScoring: PeerScoring, logger?: import("@aztec/foundation/log").Logger, rateLimits?: Partial<ReqRespSubProtocolRateLimits>, telemetryClient?: TelemetryClient);
|
|
35
|
+
updateConfig(config: Partial<P2PReqRespConfig>): void;
|
|
34
36
|
get tracer(): import("@aztec/telemetry-client").Tracer;
|
|
35
37
|
/**
|
|
36
38
|
* Start the reqresp service
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reqresp.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/reqresp.ts"],"names":[],"mappings":"AAMA,OAAO,EAAc,KAAK,eAAe,EAAiC,MAAM,yBAAyB,CAAC;AAE1G,OAAO,KAAK,EAAsB,MAAM,EAAU,MAAM,mBAAmB,CAAC;AAG5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AASrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"reqresp.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/reqresp.ts"],"names":[],"mappings":"AAMA,OAAO,EAAc,KAAK,eAAe,EAAiC,MAAM,yBAAyB,CAAC;AAE1G,OAAO,KAAK,EAAsB,MAAM,EAAU,MAAM,mBAAmB,CAAC;AAG5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AASrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,kBAAkB,EAClB,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAC;AASxB;;;;;;;;;;;;;GAaG;AACH,qBAAa,OAAQ,YAAW,gBAAgB;IAkB5C,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IAnBhB,OAAO,CAAC,uBAAuB,CAA8C;IAC7E,OAAO,CAAC,0BAA0B,CAAiD;IACnF,OAAO,CAAC,aAAa,CAA2C;IAGhE,OAAO,CAAC,mBAAmB,CAA6D;IACxF,OAAO,CAAC,qBAAqB,CAAiE;IAE9F,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,WAAW,CAA6B;IAEhD,OAAO,CAAC,eAAe,CAAkB;IAEzC,OAAO,CAAC,OAAO,CAAiB;gBAG9B,MAAM,EAAE,gBAAgB,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,MAAM,yCAA8B,EAC5C,UAAU,GAAE,OAAO,CAAC,4BAA4B,CAAM,EACtD,eAAe,GAAE,eAAsC;IAkBlD,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAc5D,IAAI,MAAM,6CAET;IAED;;OAEG;IACG,KAAK,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,4BAA4B;IAiBhH;;OAEG;IACG,IAAI;IAoBV;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,WAAW,CAAC,WAAW,SAAS,kBAAkB,EACtD,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,GAC5D,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC;IAiE7E;;;;;;;;;;;;;;;;;;;;;OAqBG;IAQG,gBAAgB,CAAC,WAAW,SAAS,kBAAkB,EAC3D,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAChE,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,SAAQ,EACjB,QAAQ,SAA+C,EACvD,gBAAgB,SAAI,GACnB,OAAO,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC;IAgJjF;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IAKU,iBAAiB,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,MAA2B,GACvC,OAAO,CAAC,eAAe,CAAC;IA4C3B;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAiEvB;;;;;;OAMG;YACW,WAAW;IAoCzB;;;;;;;;;;;;;;;OAeG;YAKW,aAAa;YAsFZ,cAAc;CAI9B"}
|
|
@@ -15,6 +15,7 @@ import { abortableDuplex, abortableSink } from 'abortable-iterator';
|
|
|
15
15
|
import { pipe } from 'it-pipe';
|
|
16
16
|
import { CollectiveReqRespTimeoutError, IndividualReqRespTimeoutError, InvalidResponseError } from '../../errors/reqresp.error.js';
|
|
17
17
|
import { SnappyTransform } from '../encoding.js';
|
|
18
|
+
import { DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS, DEFAULT_OVERALL_REQUEST_TIMEOUT_MS, DEFAULT_REQRESP_DIAL_TIMEOUT_MS } from './config.js';
|
|
18
19
|
import { BatchConnectionSampler } from './connection-sampler/batch_connection_sampler.js';
|
|
19
20
|
import { ConnectionSampler, RandomSampler } from './connection-sampler/connection_sampler.js';
|
|
20
21
|
import { DEFAULT_SUB_PROTOCOL_HANDLERS, DEFAULT_SUB_PROTOCOL_VALIDATORS, ReqRespSubProtocol, subProtocolMap } from './interface.js';
|
|
@@ -40,6 +41,7 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
40
41
|
logger;
|
|
41
42
|
overallRequestTimeoutMs;
|
|
42
43
|
individualRequestTimeoutMs;
|
|
44
|
+
dialTimeoutMs;
|
|
43
45
|
// Warning, if the `start` function is not called as the parent class constructor, then the default sub protocol handlers will be used ( not good )
|
|
44
46
|
subProtocolHandlers;
|
|
45
47
|
subProtocolValidators;
|
|
@@ -51,16 +53,29 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
51
53
|
this.libp2p = libp2p;
|
|
52
54
|
this.peerScoring = peerScoring;
|
|
53
55
|
this.logger = logger;
|
|
56
|
+
this.overallRequestTimeoutMs = DEFAULT_OVERALL_REQUEST_TIMEOUT_MS;
|
|
57
|
+
this.individualRequestTimeoutMs = DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS;
|
|
58
|
+
this.dialTimeoutMs = DEFAULT_REQRESP_DIAL_TIMEOUT_MS;
|
|
54
59
|
this.subProtocolHandlers = DEFAULT_SUB_PROTOCOL_HANDLERS;
|
|
55
60
|
this.subProtocolValidators = DEFAULT_SUB_PROTOCOL_VALIDATORS;
|
|
56
|
-
this.
|
|
57
|
-
this.individualRequestTimeoutMs = config.individualRequestTimeoutMs;
|
|
61
|
+
this.updateConfig(config);
|
|
58
62
|
this.rateLimiter = new RequestResponseRateLimiter(peerScoring, rateLimits);
|
|
59
63
|
// Connection sampler is used to sample our connected peers
|
|
60
64
|
this.connectionSampler = new ConnectionSampler(libp2p, new RandomSampler(), createLogger(`${logger.module}:connection-sampler`), config);
|
|
61
65
|
this.snappyTransform = new SnappyTransform();
|
|
62
66
|
this.metrics = new ReqRespMetrics(telemetryClient);
|
|
63
67
|
}
|
|
68
|
+
updateConfig(config) {
|
|
69
|
+
if (typeof config.overallRequestTimeoutMs === 'number') {
|
|
70
|
+
this.overallRequestTimeoutMs = config.overallRequestTimeoutMs;
|
|
71
|
+
}
|
|
72
|
+
if (typeof config.individualRequestTimeoutMs === 'number') {
|
|
73
|
+
this.individualRequestTimeoutMs = config.individualRequestTimeoutMs;
|
|
74
|
+
}
|
|
75
|
+
if (typeof config.dialTimeoutMs === 'number') {
|
|
76
|
+
this.dialTimeoutMs = config.dialTimeoutMs;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
64
79
|
get tracer() {
|
|
65
80
|
return this.metrics.tracer;
|
|
66
81
|
}
|
|
@@ -337,7 +352,7 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
337
352
|
*
|
|
338
353
|
* If the stream is not closed by the dialled peer, and a timeout occurs, then
|
|
339
354
|
* the stream is closed on the requester's end and sender (us) updates its peer score
|
|
340
|
-
*/ async sendRequestToPeer(peerId, subProtocol, payload, dialTimeout =
|
|
355
|
+
*/ async sendRequestToPeer(peerId, subProtocol, payload, dialTimeout = this.dialTimeoutMs) {
|
|
341
356
|
let stream;
|
|
342
357
|
try {
|
|
343
358
|
this.metrics.recordRequestSent(subProtocol);
|
|
@@ -403,7 +418,7 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
403
418
|
return undefined;
|
|
404
419
|
}
|
|
405
420
|
// Do not punish if we are stopping the service
|
|
406
|
-
if (e instanceof AbortError) {
|
|
421
|
+
if (e && (e instanceof AbortError || e.code === 'ABORT_ERR')) {
|
|
407
422
|
this.logger.debug(`Request aborted: ${e.message}`, logTags);
|
|
408
423
|
return undefined;
|
|
409
424
|
}
|
|
@@ -434,7 +449,10 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
434
449
|
return PeerErrorSeverity.HighToleranceError;
|
|
435
450
|
}
|
|
436
451
|
// Catch all error
|
|
437
|
-
this.logger.
|
|
452
|
+
this.logger.debug(`Unexpected error sending request to peer`, {
|
|
453
|
+
err: e,
|
|
454
|
+
logTags
|
|
455
|
+
});
|
|
438
456
|
return PeerErrorSeverity.HighToleranceError;
|
|
439
457
|
}
|
|
440
458
|
/**
|
|
@@ -494,7 +512,7 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
494
512
|
// Store a reference to from this for the async generator
|
|
495
513
|
const rateLimitStatus = this.rateLimiter.allow(protocol, connection.remotePeer);
|
|
496
514
|
if (rateLimitStatus != RateLimitStatus.Allowed) {
|
|
497
|
-
this.logger.
|
|
515
|
+
this.logger.verbose(`Rate limit exceeded ${prettyPrintRateLimitStatus(rateLimitStatus)} for ${protocol} from ${connection.remotePeer}`);
|
|
498
516
|
throw new ReqRespStatusError(ReqRespStatus.RATE_LIMIT_EXCEEDED);
|
|
499
517
|
}
|
|
500
518
|
const handler = this.subProtocolHandlers[protocol];
|
|
@@ -518,7 +536,14 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
518
536
|
}
|
|
519
537
|
}, stream);
|
|
520
538
|
} catch (e) {
|
|
521
|
-
|
|
539
|
+
let level = 'warn';
|
|
540
|
+
if (e && (e instanceof ReqRespStatusError && e.status === ReqRespStatus.RATE_LIMIT_EXCEEDED || e instanceof Error && [
|
|
541
|
+
'stream reset',
|
|
542
|
+
'Cannot push value onto an ended pushable'
|
|
543
|
+
].some((msg)=>e.message.includes(msg)))) {
|
|
544
|
+
level = 'debug';
|
|
545
|
+
}
|
|
546
|
+
this.logger[level](`Reqresp response error: ${String(e)}`, e);
|
|
522
547
|
this.metrics.recordResponseError(protocol);
|
|
523
548
|
// If we receive a known error, we use the error status in the response chunk, otherwise we categorize as unknown
|
|
524
549
|
let errorStatus = ReqRespStatus.UNKNOWN;
|
|
@@ -4,6 +4,7 @@ import type { Tx } from '@aztec/stdlib/tx';
|
|
|
4
4
|
import type { ENR } from '@chainsafe/enr';
|
|
5
5
|
import type { PeerId } from '@libp2p/interface';
|
|
6
6
|
import type EventEmitter from 'events';
|
|
7
|
+
import type { P2PReqRespConfig } from './reqresp/config.js';
|
|
7
8
|
import type { ReqRespSubProtocol, SubProtocolMap } from './reqresp/interface.js';
|
|
8
9
|
export declare enum PeerDiscoveryState {
|
|
9
10
|
RUNNING = "running",
|
|
@@ -49,6 +50,7 @@ export interface P2PService {
|
|
|
49
50
|
getEnr(): ENR | undefined;
|
|
50
51
|
getPeers(includePending?: boolean): PeerInfo[];
|
|
51
52
|
validate(txs: Tx[]): Promise<void>;
|
|
53
|
+
updateConfig(config: Partial<P2PReqRespConfig>): void;
|
|
52
54
|
}
|
|
53
55
|
/**
|
|
54
56
|
* The interface for a peer discovery service implementation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/services/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAC;AAEvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEjF,oBAAY,kBAAkB;IAC5B,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,MAAM,MAAM,wBAAwB,GAAG,CACrC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,gBAAgB,EAAE,GAAG,SAAS,CAAC,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;OAGG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D;;;;;;OAMG;IACH,WAAW,CAAC,QAAQ,SAAS,kBAAkB,EAC7C,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GACzD,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAE3E;;;;;;OAMG;IACH,gBAAgB,CAAC,QAAQ,SAAS,kBAAkB,EAClD,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAC7D,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IAG/E,6BAA6B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAExE,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC;IAE1B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;IAE/C,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/services/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reqresp-nodes.d.ts","sourceRoot":"","sources":["../../src/test-helpers/reqresp-nodes.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"reqresp-nodes.d.ts","sourceRoot":"","sources":["../../src/test-helpers/reqresp-nodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -147,6 +147,7 @@ export const createReqResp = async (peerScoring, rateLimits = {})=>{
|
|
|
147
147
|
const config = {
|
|
148
148
|
overallRequestTimeoutMs: 4000,
|
|
149
149
|
individualRequestTimeoutMs: 2000,
|
|
150
|
+
dialTimeoutMs: 1000,
|
|
150
151
|
p2pOptimisticNegotiation: false
|
|
151
152
|
};
|
|
152
153
|
const req = new ReqResp(config, p2p, peerScoring, undefined, rateLimits);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/p2p",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -67,17 +67,17 @@
|
|
|
67
67
|
]
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@aztec/constants": "1.
|
|
71
|
-
"@aztec/epoch-cache": "1.
|
|
72
|
-
"@aztec/ethereum": "1.
|
|
73
|
-
"@aztec/foundation": "1.
|
|
74
|
-
"@aztec/kv-store": "1.
|
|
75
|
-
"@aztec/noir-contracts.js": "1.
|
|
76
|
-
"@aztec/noir-protocol-circuits-types": "1.
|
|
77
|
-
"@aztec/protocol-contracts": "1.
|
|
78
|
-
"@aztec/simulator": "1.
|
|
79
|
-
"@aztec/stdlib": "1.
|
|
80
|
-
"@aztec/telemetry-client": "1.
|
|
70
|
+
"@aztec/constants": "1.2.0",
|
|
71
|
+
"@aztec/epoch-cache": "1.2.0",
|
|
72
|
+
"@aztec/ethereum": "1.2.0",
|
|
73
|
+
"@aztec/foundation": "1.2.0",
|
|
74
|
+
"@aztec/kv-store": "1.2.0",
|
|
75
|
+
"@aztec/noir-contracts.js": "1.2.0",
|
|
76
|
+
"@aztec/noir-protocol-circuits-types": "1.2.0",
|
|
77
|
+
"@aztec/protocol-contracts": "1.2.0",
|
|
78
|
+
"@aztec/simulator": "1.2.0",
|
|
79
|
+
"@aztec/stdlib": "1.2.0",
|
|
80
|
+
"@aztec/telemetry-client": "1.2.0",
|
|
81
81
|
"@chainsafe/discv5": "9.0.0",
|
|
82
82
|
"@chainsafe/enr": "3.0.0",
|
|
83
83
|
"@chainsafe/libp2p-gossipsub": "13.0.0",
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
"xxhash-wasm": "^1.1.0"
|
|
108
108
|
},
|
|
109
109
|
"devDependencies": {
|
|
110
|
-
"@aztec/archiver": "1.
|
|
110
|
+
"@aztec/archiver": "1.2.0",
|
|
111
111
|
"@jest/globals": "^30.0.0",
|
|
112
112
|
"@types/jest": "^30.0.0",
|
|
113
113
|
"@types/node": "^22.15.17",
|
package/src/client/p2p_client.ts
CHANGED
|
@@ -124,6 +124,7 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
|
|
|
124
124
|
|
|
125
125
|
public updateP2PConfig(config: Partial<P2PConfig>): Promise<void> {
|
|
126
126
|
this.txPool.updateConfig(config);
|
|
127
|
+
this.p2pService.updateConfig(config);
|
|
127
128
|
return Promise.resolve();
|
|
128
129
|
}
|
|
129
130
|
|
|
@@ -7,6 +7,7 @@ import type { PeerId } from '@libp2p/interface';
|
|
|
7
7
|
import EventEmitter from 'events';
|
|
8
8
|
|
|
9
9
|
import type { PeerManagerInterface } from './peer-manager/interface.js';
|
|
10
|
+
import type { P2PReqRespConfig } from './reqresp/config.js';
|
|
10
11
|
import type {
|
|
11
12
|
ReqRespInterface,
|
|
12
13
|
ReqRespResponse,
|
|
@@ -28,6 +29,8 @@ import {
|
|
|
28
29
|
* A dummy implementation of the P2P Service.
|
|
29
30
|
*/
|
|
30
31
|
export class DummyP2PService implements P2PService {
|
|
32
|
+
updateConfig(_config: Partial<P2PReqRespConfig>): void {}
|
|
33
|
+
|
|
31
34
|
/** Returns an empty array for peers. */
|
|
32
35
|
getPeers(): PeerInfo[] {
|
|
33
36
|
return [];
|
|
@@ -192,6 +195,7 @@ export class DummyPeerManager implements PeerManagerInterface {
|
|
|
192
195
|
}
|
|
193
196
|
|
|
194
197
|
export class DummyReqResp implements ReqRespInterface {
|
|
198
|
+
updateConfig(_config: Partial<P2PReqRespConfig>): void {}
|
|
195
199
|
start(
|
|
196
200
|
_subProtocolHandlers: ReqRespSubProtocolHandlers,
|
|
197
201
|
_subProtocolValidators: ReqRespSubProtocolValidators,
|
|
@@ -64,6 +64,7 @@ import { gossipScoreThresholds } from '../gossipsub/scoring.js';
|
|
|
64
64
|
import type { PeerManagerInterface } from '../peer-manager/interface.js';
|
|
65
65
|
import { PeerManager } from '../peer-manager/peer_manager.js';
|
|
66
66
|
import { PeerScoring } from '../peer-manager/peer_scoring.js';
|
|
67
|
+
import type { P2PReqRespConfig } from '../reqresp/config.js';
|
|
67
68
|
import {
|
|
68
69
|
DEFAULT_SUB_PROTOCOL_VALIDATORS,
|
|
69
70
|
type ReqRespInterface,
|
|
@@ -165,6 +166,10 @@ export class LibP2PService<T extends P2PClientType = P2PClientType.Full> extends
|
|
|
165
166
|
};
|
|
166
167
|
}
|
|
167
168
|
|
|
169
|
+
public updateConfig(config: Partial<P2PReqRespConfig>) {
|
|
170
|
+
this.reqresp.updateConfig(config);
|
|
171
|
+
}
|
|
172
|
+
|
|
168
173
|
/**
|
|
169
174
|
* Creates an instance of the LibP2P service.
|
|
170
175
|
* @param config - The configuration to use when creating the service.
|
|
@@ -649,21 +649,21 @@ export class PeerManager implements PeerManagerInterface {
|
|
|
649
649
|
//TODO: maybe hard ban these peers in the future.
|
|
650
650
|
//We could allow this to happen up to N times, and then hard ban?
|
|
651
651
|
//Hard ban: Disallow connection via e.g. libp2p's Gater
|
|
652
|
-
this.logger.
|
|
652
|
+
this.logger.debug(`Disconnecting peer ${peerId} who failed to respond status handshake`, logData);
|
|
653
653
|
await this.disconnectPeer(peerId);
|
|
654
654
|
return;
|
|
655
655
|
}
|
|
656
656
|
|
|
657
657
|
const peerStatusMessage = StatusMessage.fromBuffer(data);
|
|
658
658
|
if (!ourStatus.validate(peerStatusMessage)) {
|
|
659
|
-
this.logger.
|
|
659
|
+
this.logger.debug(`Disconnecting peer ${peerId} due to failed status handshake.`, logData);
|
|
660
660
|
await this.disconnectPeer(peerId);
|
|
661
661
|
return;
|
|
662
662
|
}
|
|
663
663
|
this.logger.debug(`Successfully completed status handshake with peer ${peerId}`, logData);
|
|
664
664
|
} catch (err: any) {
|
|
665
665
|
//TODO: maybe hard ban these peers in the future
|
|
666
|
-
this.logger.
|
|
666
|
+
this.logger.debug(`Disconnecting peer ${peerId} due to error during status handshake: ${err.message ?? err}`, {
|
|
667
667
|
peerId,
|
|
668
668
|
});
|
|
669
669
|
await this.disconnectPeer(peerId);
|
|
@@ -2,12 +2,14 @@ import { type ConfigMapping, booleanConfigHelper, numberConfigHelper } from '@az
|
|
|
2
2
|
|
|
3
3
|
export const DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS = 2000;
|
|
4
4
|
export const DEFAULT_OVERALL_REQUEST_TIMEOUT_MS = 4000;
|
|
5
|
+
export const DEFAULT_REQRESP_DIAL_TIMEOUT_MS = 1000;
|
|
5
6
|
export const DEFAULT_OPTIMISTIC_NEGOTIATION = false;
|
|
6
7
|
|
|
7
8
|
// For use in tests.
|
|
8
9
|
export const DEFAULT_P2P_REQRESP_CONFIG: P2PReqRespConfig = {
|
|
9
10
|
overallRequestTimeoutMs: DEFAULT_OVERALL_REQUEST_TIMEOUT_MS,
|
|
10
11
|
individualRequestTimeoutMs: DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS,
|
|
12
|
+
dialTimeoutMs: DEFAULT_REQRESP_DIAL_TIMEOUT_MS,
|
|
11
13
|
p2pOptimisticNegotiation: DEFAULT_OPTIMISTIC_NEGOTIATION,
|
|
12
14
|
};
|
|
13
15
|
|
|
@@ -20,6 +22,9 @@ export interface P2PReqRespConfig {
|
|
|
20
22
|
|
|
21
23
|
/** Whether to use optimistic protocol negotiation when dialing to another peer (opposite of `negotiateFully`). */
|
|
22
24
|
p2pOptimisticNegotiation: boolean;
|
|
25
|
+
|
|
26
|
+
/** How long to wait for the dial protocol to establish a connection */
|
|
27
|
+
dialTimeoutMs: number;
|
|
23
28
|
}
|
|
24
29
|
|
|
25
30
|
export const p2pReqRespConfigMappings: Record<keyof P2PReqRespConfig, ConfigMapping> = {
|
|
@@ -33,6 +38,11 @@ export const p2pReqRespConfigMappings: Record<keyof P2PReqRespConfig, ConfigMapp
|
|
|
33
38
|
description: 'The timeout for an individual request response peer interaction.',
|
|
34
39
|
...numberConfigHelper(DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS),
|
|
35
40
|
},
|
|
41
|
+
dialTimeoutMs: {
|
|
42
|
+
env: 'P2P_REQRESP_DIAL_TIMEOUT_MS',
|
|
43
|
+
description: 'How long to wait for the dial protocol to establish a connection',
|
|
44
|
+
...numberConfigHelper(DEFAULT_REQRESP_DIAL_TIMEOUT_MS),
|
|
45
|
+
},
|
|
36
46
|
p2pOptimisticNegotiation: {
|
|
37
47
|
env: 'P2P_REQRESP_OPTIMISTIC_NEGOTIATION',
|
|
38
48
|
description:
|
|
@@ -4,6 +4,7 @@ import { Tx, TxHash } from '@aztec/stdlib/tx';
|
|
|
4
4
|
|
|
5
5
|
import type { PeerId } from '@libp2p/interface';
|
|
6
6
|
|
|
7
|
+
import type { P2PReqRespConfig } from './config.js';
|
|
7
8
|
import { StatusMessage } from './protocols/status.js';
|
|
8
9
|
import type { ReqRespStatus } from './status.js';
|
|
9
10
|
|
|
@@ -209,4 +210,6 @@ export interface ReqRespInterface {
|
|
|
209
210
|
payload: Buffer,
|
|
210
211
|
dialTimeout?: number,
|
|
211
212
|
): Promise<ReqRespResponse>;
|
|
213
|
+
|
|
214
|
+
updateConfig(config: Partial<P2PReqRespConfig>): void;
|
|
212
215
|
}
|
|
@@ -19,7 +19,12 @@ import {
|
|
|
19
19
|
} from '../../errors/reqresp.error.js';
|
|
20
20
|
import { SnappyTransform } from '../encoding.js';
|
|
21
21
|
import type { PeerScoring } from '../peer-manager/peer_scoring.js';
|
|
22
|
-
import
|
|
22
|
+
import {
|
|
23
|
+
DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS,
|
|
24
|
+
DEFAULT_OVERALL_REQUEST_TIMEOUT_MS,
|
|
25
|
+
DEFAULT_REQRESP_DIAL_TIMEOUT_MS,
|
|
26
|
+
type P2PReqRespConfig,
|
|
27
|
+
} from './config.js';
|
|
23
28
|
import { BatchConnectionSampler } from './connection-sampler/batch_connection_sampler.js';
|
|
24
29
|
import { ConnectionSampler, RandomSampler } from './connection-sampler/connection_sampler.js';
|
|
25
30
|
import {
|
|
@@ -57,8 +62,9 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
57
62
|
* see: https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-reqresp-domain
|
|
58
63
|
*/
|
|
59
64
|
export class ReqResp implements ReqRespInterface {
|
|
60
|
-
private overallRequestTimeoutMs: number;
|
|
61
|
-
private individualRequestTimeoutMs: number;
|
|
65
|
+
private overallRequestTimeoutMs: number = DEFAULT_OVERALL_REQUEST_TIMEOUT_MS;
|
|
66
|
+
private individualRequestTimeoutMs: number = DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS;
|
|
67
|
+
private dialTimeoutMs: number = DEFAULT_REQRESP_DIAL_TIMEOUT_MS;
|
|
62
68
|
|
|
63
69
|
// Warning, if the `start` function is not called as the parent class constructor, then the default sub protocol handlers will be used ( not good )
|
|
64
70
|
private subProtocolHandlers: ReqRespSubProtocolHandlers = DEFAULT_SUB_PROTOCOL_HANDLERS;
|
|
@@ -79,8 +85,7 @@ export class ReqResp implements ReqRespInterface {
|
|
|
79
85
|
rateLimits: Partial<ReqRespSubProtocolRateLimits> = {},
|
|
80
86
|
telemetryClient: TelemetryClient = getTelemetryClient(),
|
|
81
87
|
) {
|
|
82
|
-
this.
|
|
83
|
-
this.individualRequestTimeoutMs = config.individualRequestTimeoutMs;
|
|
88
|
+
this.updateConfig(config);
|
|
84
89
|
|
|
85
90
|
this.rateLimiter = new RequestResponseRateLimiter(peerScoring, rateLimits);
|
|
86
91
|
|
|
@@ -96,6 +101,20 @@ export class ReqResp implements ReqRespInterface {
|
|
|
96
101
|
this.metrics = new ReqRespMetrics(telemetryClient);
|
|
97
102
|
}
|
|
98
103
|
|
|
104
|
+
public updateConfig(config: Partial<P2PReqRespConfig>): void {
|
|
105
|
+
if (typeof config.overallRequestTimeoutMs === 'number') {
|
|
106
|
+
this.overallRequestTimeoutMs = config.overallRequestTimeoutMs;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (typeof config.individualRequestTimeoutMs === 'number') {
|
|
110
|
+
this.individualRequestTimeoutMs = config.individualRequestTimeoutMs;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (typeof config.dialTimeoutMs === 'number') {
|
|
114
|
+
this.dialTimeoutMs = config.dialTimeoutMs;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
99
118
|
get tracer() {
|
|
100
119
|
return this.metrics.tracer;
|
|
101
120
|
}
|
|
@@ -453,7 +472,7 @@ export class ReqResp implements ReqRespInterface {
|
|
|
453
472
|
peerId: PeerId,
|
|
454
473
|
subProtocol: ReqRespSubProtocol,
|
|
455
474
|
payload: Buffer,
|
|
456
|
-
dialTimeout: number =
|
|
475
|
+
dialTimeout: number = this.dialTimeoutMs,
|
|
457
476
|
): Promise<ReqRespResponse> {
|
|
458
477
|
let stream: Stream | undefined;
|
|
459
478
|
try {
|
|
@@ -534,7 +553,7 @@ export class ReqResp implements ReqRespInterface {
|
|
|
534
553
|
}
|
|
535
554
|
|
|
536
555
|
// Do not punish if we are stopping the service
|
|
537
|
-
if (e instanceof AbortError) {
|
|
556
|
+
if (e && (e instanceof AbortError || e.code === 'ABORT_ERR')) {
|
|
538
557
|
this.logger.debug(`Request aborted: ${e.message}`, logTags);
|
|
539
558
|
return undefined;
|
|
540
559
|
}
|
|
@@ -579,7 +598,7 @@ export class ReqResp implements ReqRespInterface {
|
|
|
579
598
|
}
|
|
580
599
|
|
|
581
600
|
// Catch all error
|
|
582
|
-
this.logger.
|
|
601
|
+
this.logger.debug(`Unexpected error sending request to peer`, { err: e, logTags });
|
|
583
602
|
return PeerErrorSeverity.HighToleranceError;
|
|
584
603
|
}
|
|
585
604
|
|
|
@@ -653,7 +672,7 @@ export class ReqResp implements ReqRespInterface {
|
|
|
653
672
|
// Store a reference to from this for the async generator
|
|
654
673
|
const rateLimitStatus = this.rateLimiter.allow(protocol, connection.remotePeer);
|
|
655
674
|
if (rateLimitStatus != RateLimitStatus.Allowed) {
|
|
656
|
-
this.logger.
|
|
675
|
+
this.logger.verbose(
|
|
657
676
|
`Rate limit exceeded ${prettyPrintRateLimitStatus(rateLimitStatus)} for ${protocol} from ${
|
|
658
677
|
connection.remotePeer
|
|
659
678
|
}`,
|
|
@@ -689,7 +708,16 @@ export class ReqResp implements ReqRespInterface {
|
|
|
689
708
|
stream,
|
|
690
709
|
);
|
|
691
710
|
} catch (e: any) {
|
|
692
|
-
|
|
711
|
+
let level: 'warn' | 'debug' = 'warn';
|
|
712
|
+
if (
|
|
713
|
+
e &&
|
|
714
|
+
((e instanceof ReqRespStatusError && e.status === ReqRespStatus.RATE_LIMIT_EXCEEDED) ||
|
|
715
|
+
(e instanceof Error &&
|
|
716
|
+
['stream reset', 'Cannot push value onto an ended pushable'].some(msg => e.message.includes(msg))))
|
|
717
|
+
) {
|
|
718
|
+
level = 'debug';
|
|
719
|
+
}
|
|
720
|
+
this.logger[level](`Reqresp response error: ${String(e)}`, e);
|
|
693
721
|
this.metrics.recordResponseError(protocol);
|
|
694
722
|
|
|
695
723
|
// If we receive a known error, we use the error status in the response chunk, otherwise we categorize as unknown
|
package/src/services/service.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type { ENR } from '@chainsafe/enr';
|
|
|
6
6
|
import type { PeerId } from '@libp2p/interface';
|
|
7
7
|
import type EventEmitter from 'events';
|
|
8
8
|
|
|
9
|
+
import type { P2PReqRespConfig } from './reqresp/config.js';
|
|
9
10
|
import type { ReqRespSubProtocol, SubProtocolMap } from './reqresp/interface.js';
|
|
10
11
|
|
|
11
12
|
export enum PeerDiscoveryState {
|
|
@@ -76,6 +77,8 @@ export interface P2PService {
|
|
|
76
77
|
getPeers(includePending?: boolean): PeerInfo[];
|
|
77
78
|
|
|
78
79
|
validate(txs: Tx[]): Promise<void>;
|
|
80
|
+
|
|
81
|
+
updateConfig(config: Partial<P2PReqRespConfig>): void;
|
|
79
82
|
}
|
|
80
83
|
|
|
81
84
|
/**
|
|
@@ -236,6 +236,7 @@ export const createReqResp = async (
|
|
|
236
236
|
const config: P2PReqRespConfig = {
|
|
237
237
|
overallRequestTimeoutMs: 4000,
|
|
238
238
|
individualRequestTimeoutMs: 2000,
|
|
239
|
+
dialTimeoutMs: 1000,
|
|
239
240
|
p2pOptimisticNegotiation: false,
|
|
240
241
|
};
|
|
241
242
|
const req = new ReqResp(config, p2p, peerScoring, undefined, rateLimits);
|