@aztec/p2p 0.66.0 → 0.67.1-devnet
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/bootstrap/bootstrap.d.ts +4 -1
- package/dest/bootstrap/bootstrap.d.ts.map +1 -1
- package/dest/bootstrap/bootstrap.js +21 -9
- package/dest/client/index.d.ts +5 -4
- package/dest/client/index.d.ts.map +1 -1
- package/dest/client/index.js +18 -12
- package/dest/client/p2p_client.d.ts +13 -20
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +32 -15
- package/dest/config.d.ts +1 -1
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +2 -2
- package/dest/errors/reqresp.error.d.ts +12 -1
- package/dest/errors/reqresp.error.d.ts.map +1 -1
- package/dest/errors/reqresp.error.js +15 -2
- package/dest/index.d.ts +1 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -2
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +9 -0
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +3 -0
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +171 -0
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +29 -0
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +114 -0
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +3 -3
- package/dest/mem_pools/instrumentation.d.ts.map +1 -1
- package/dest/mem_pools/instrumentation.js +2 -20
- package/dest/mem_pools/interface.d.ts +4 -3
- package/dest/mem_pools/interface.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +4 -4
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.js +4 -4
- package/dest/mocks/index.d.ts +6 -6
- package/dest/mocks/index.d.ts.map +1 -1
- package/dest/mocks/index.js +9 -9
- package/dest/services/data_store.d.ts.map +1 -0
- package/dest/services/data_store.js +188 -0
- package/dest/{service → services/discv5}/discV5_service.d.ts +4 -2
- package/dest/services/discv5/discV5_service.d.ts.map +1 -0
- package/dest/services/discv5/discV5_service.js +144 -0
- package/dest/{service → services}/dummy_service.d.ts +3 -1
- package/dest/services/dummy_service.d.ts.map +1 -0
- package/dest/{service → services}/dummy_service.js +5 -1
- package/dest/{service → services}/encoding.d.ts +5 -0
- package/dest/services/encoding.d.ts.map +1 -0
- package/dest/services/encoding.js +65 -0
- package/dest/services/index.d.ts +3 -0
- package/dest/services/index.d.ts.map +1 -0
- package/dest/services/index.js +3 -0
- package/dest/{service → services/libp2p}/libp2p_service.d.ts +50 -11
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -0
- package/dest/services/libp2p/libp2p_service.js +573 -0
- package/dest/{service → services/peer-scoring}/peer_scoring.d.ts +5 -2
- package/dest/services/peer-scoring/peer_scoring.d.ts.map +1 -0
- package/dest/services/peer-scoring/peer_scoring.js +72 -0
- package/dest/{service → services}/peer_manager.d.ts +8 -3
- package/dest/services/peer_manager.d.ts.map +1 -0
- package/dest/services/peer_manager.js +230 -0
- package/dest/services/reqresp/config.d.ts.map +1 -0
- package/dest/{service → services}/reqresp/config.js +1 -1
- package/dest/services/reqresp/handlers.d.ts.map +1 -0
- package/dest/{service → services}/reqresp/handlers.js +1 -1
- package/dest/services/reqresp/index.d.ts.map +1 -0
- package/dest/{service → services}/reqresp/index.js +1 -1
- package/dest/services/reqresp/interface.d.ts.map +1 -0
- package/dest/{service → services}/reqresp/interface.js +1 -1
- package/dest/services/reqresp/rate_limiter/index.d.ts.map +1 -0
- package/dest/{service → services}/reqresp/rate_limiter/index.js +1 -1
- package/dest/services/reqresp/rate_limiter/rate_limiter.d.ts.map +1 -0
- package/dest/{service → services}/reqresp/rate_limiter/rate_limiter.js +2 -2
- package/dest/services/reqresp/rate_limiter/rate_limits.d.ts.map +1 -0
- package/dest/{service → services}/reqresp/rate_limiter/rate_limits.js +1 -1
- package/dest/{service → services}/reqresp/reqresp.d.ts +16 -0
- package/dest/services/reqresp/reqresp.d.ts.map +1 -0
- package/dest/{service → services}/reqresp/reqresp.js +69 -20
- package/dest/{service → services}/service.d.ts +2 -1
- package/dest/services/service.d.ts.map +1 -0
- package/dest/{service → services}/service.js +1 -1
- package/dest/tx_validator/aggregate_tx_validator.d.ts +1 -1
- package/dest/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
- package/dest/tx_validator/aggregate_tx_validator.js +5 -3
- package/dest/tx_validator/data_validator.js +3 -3
- package/dest/tx_validator/double_spend_validator.d.ts +3 -2
- package/dest/tx_validator/double_spend_validator.d.ts.map +1 -1
- package/dest/tx_validator/double_spend_validator.js +8 -8
- package/dest/tx_validator/metadata_validator.js +3 -3
- package/dest/tx_validator/tx_proof_validator.js +3 -3
- package/package.json +12 -8
- package/src/bootstrap/bootstrap.ts +24 -10
- package/src/client/index.ts +44 -19
- package/src/client/p2p_client.ts +58 -36
- package/src/config.ts +1 -1
- package/src/errors/reqresp.error.ts +15 -1
- package/src/index.ts +1 -1
- package/src/mem_pools/attestation_pool/attestation_pool.ts +10 -0
- package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +237 -0
- package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +153 -0
- package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +2 -2
- package/src/mem_pools/instrumentation.ts +1 -21
- package/src/mem_pools/interface.ts +5 -3
- package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +3 -3
- package/src/mem_pools/tx_pool/memory_tx_pool.ts +3 -3
- package/src/mocks/index.ts +14 -11
- package/src/{service → services/discv5}/discV5_service.ts +20 -15
- package/src/{service → services}/dummy_service.ts +6 -1
- package/src/{service → services}/encoding.ts +21 -3
- package/src/services/index.ts +2 -0
- package/src/{service → services/libp2p}/libp2p_service.ts +208 -96
- package/src/{service → services/peer-scoring}/peer_scoring.ts +9 -2
- package/src/{service → services}/peer_manager.ts +73 -24
- package/src/{service → services}/reqresp/rate_limiter/rate_limiter.ts +1 -1
- package/src/{service → services}/reqresp/reqresp.ts +87 -21
- package/src/{service → services}/service.ts +3 -1
- package/src/tx_validator/aggregate_tx_validator.ts +5 -3
- package/src/tx_validator/data_validator.ts +2 -2
- package/src/tx_validator/double_spend_validator.ts +8 -10
- package/src/tx_validator/metadata_validator.ts +2 -2
- package/src/tx_validator/tx_proof_validator.ts +2 -2
- package/dest/service/data_store.d.ts.map +0 -1
- package/dest/service/data_store.js +0 -188
- package/dest/service/discV5_service.d.ts.map +0 -1
- package/dest/service/discV5_service.js +0 -141
- package/dest/service/dummy_service.d.ts.map +0 -1
- package/dest/service/encoding.d.ts.map +0 -1
- package/dest/service/encoding.js +0 -49
- package/dest/service/index.d.ts +0 -3
- package/dest/service/index.d.ts.map +0 -1
- package/dest/service/index.js +0 -3
- package/dest/service/libp2p_service.d.ts.map +0 -1
- package/dest/service/libp2p_service.js +0 -496
- package/dest/service/peer_manager.d.ts.map +0 -1
- package/dest/service/peer_manager.js +0 -176
- package/dest/service/peer_scoring.d.ts.map +0 -1
- package/dest/service/peer_scoring.js +0 -67
- package/dest/service/reqresp/config.d.ts.map +0 -1
- package/dest/service/reqresp/handlers.d.ts.map +0 -1
- package/dest/service/reqresp/index.d.ts.map +0 -1
- package/dest/service/reqresp/interface.d.ts.map +0 -1
- package/dest/service/reqresp/rate_limiter/index.d.ts.map +0 -1
- package/dest/service/reqresp/rate_limiter/rate_limiter.d.ts.map +0 -1
- package/dest/service/reqresp/rate_limiter/rate_limits.d.ts.map +0 -1
- package/dest/service/reqresp/reqresp.d.ts.map +0 -1
- package/dest/service/service.d.ts.map +0 -1
- package/src/service/index.ts +0 -2
- /package/dest/{service → services}/data_store.d.ts +0 -0
- /package/dest/{service → services}/reqresp/config.d.ts +0 -0
- /package/dest/{service → services}/reqresp/handlers.d.ts +0 -0
- /package/dest/{service → services}/reqresp/index.d.ts +0 -0
- /package/dest/{service → services}/reqresp/interface.d.ts +0 -0
- /package/dest/{service → services}/reqresp/rate_limiter/index.d.ts +0 -0
- /package/dest/{service → services}/reqresp/rate_limiter/rate_limiter.d.ts +0 -0
- /package/dest/{service → services}/reqresp/rate_limiter/rate_limits.d.ts +0 -0
- /package/src/{service → services}/data_store.ts +0 -0
- /package/src/{service → services}/reqresp/config.ts +0 -0
- /package/src/{service → services}/reqresp/handlers.ts +0 -0
- /package/src/{service → services}/reqresp/index.ts +0 -0
- /package/src/{service → services}/reqresp/interface.ts +0 -0
- /package/src/{service → services}/reqresp/rate_limiter/index.ts +0 -0
- /package/src/{service → services}/reqresp/rate_limiter/rate_limits.ts +0 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { median } from '@aztec/foundation/collection';
|
|
2
|
+
export var PeerErrorSeverity;
|
|
3
|
+
(function (PeerErrorSeverity) {
|
|
4
|
+
/**
|
|
5
|
+
* Not malicious action, but it must not be tolerated
|
|
6
|
+
* ~2 occurrences will get the peer banned
|
|
7
|
+
*/
|
|
8
|
+
PeerErrorSeverity["LowToleranceError"] = "LowToleranceError";
|
|
9
|
+
/**
|
|
10
|
+
* Negative action that can be tolerated only sometimes
|
|
11
|
+
* ~10 occurrences will get the peer banned
|
|
12
|
+
*/
|
|
13
|
+
PeerErrorSeverity["MidToleranceError"] = "MidToleranceError";
|
|
14
|
+
/**
|
|
15
|
+
* Some error that can be tolerated multiple times
|
|
16
|
+
* ~50 occurrences will get the peer banned
|
|
17
|
+
*/
|
|
18
|
+
PeerErrorSeverity["HighToleranceError"] = "HighToleranceError";
|
|
19
|
+
})(PeerErrorSeverity || (PeerErrorSeverity = {}));
|
|
20
|
+
const DefaultPeerPenalties = {
|
|
21
|
+
[PeerErrorSeverity.LowToleranceError]: 2,
|
|
22
|
+
[PeerErrorSeverity.MidToleranceError]: 10,
|
|
23
|
+
[PeerErrorSeverity.HighToleranceError]: 50,
|
|
24
|
+
};
|
|
25
|
+
export class PeerScoring {
|
|
26
|
+
constructor(config) {
|
|
27
|
+
this.scores = new Map();
|
|
28
|
+
this.lastUpdateTime = new Map();
|
|
29
|
+
this.decayInterval = 1000 * 60; // 1 minute
|
|
30
|
+
this.decayFactor = 0.9;
|
|
31
|
+
const orderedValues = config.peerPenaltyValues?.sort((a, b) => a - b);
|
|
32
|
+
this.peerPenalties = {
|
|
33
|
+
[PeerErrorSeverity.HighToleranceError]: orderedValues?.[0] ?? DefaultPeerPenalties[PeerErrorSeverity.LowToleranceError],
|
|
34
|
+
[PeerErrorSeverity.MidToleranceError]: orderedValues?.[1] ?? DefaultPeerPenalties[PeerErrorSeverity.MidToleranceError],
|
|
35
|
+
[PeerErrorSeverity.LowToleranceError]: orderedValues?.[2] ?? DefaultPeerPenalties[PeerErrorSeverity.HighToleranceError],
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
updateScore(peerId, scoreDelta) {
|
|
39
|
+
const currentTime = Date.now();
|
|
40
|
+
const lastUpdate = this.lastUpdateTime.get(peerId) || currentTime;
|
|
41
|
+
const timePassed = currentTime - lastUpdate;
|
|
42
|
+
const decayPeriods = Math.floor(timePassed / this.decayInterval);
|
|
43
|
+
let currentScore = this.scores.get(peerId) || 0;
|
|
44
|
+
// Apply decay
|
|
45
|
+
currentScore *= Math.pow(this.decayFactor, decayPeriods);
|
|
46
|
+
// Apply new score delta
|
|
47
|
+
currentScore += scoreDelta;
|
|
48
|
+
this.scores.set(peerId, currentScore);
|
|
49
|
+
this.lastUpdateTime.set(peerId, currentTime);
|
|
50
|
+
return currentScore;
|
|
51
|
+
}
|
|
52
|
+
decayAllScores() {
|
|
53
|
+
const currentTime = Date.now();
|
|
54
|
+
for (const [peerId, lastUpdate] of this.lastUpdateTime.entries()) {
|
|
55
|
+
const timePassed = currentTime - lastUpdate;
|
|
56
|
+
const decayPeriods = Math.floor(timePassed / this.decayInterval);
|
|
57
|
+
if (decayPeriods > 0) {
|
|
58
|
+
let score = this.scores.get(peerId) || 0;
|
|
59
|
+
score *= Math.pow(this.decayFactor, decayPeriods);
|
|
60
|
+
this.scores.set(peerId, score);
|
|
61
|
+
this.lastUpdateTime.set(peerId, currentTime);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
getScore(peerId) {
|
|
66
|
+
return this.scores.get(peerId) || 0;
|
|
67
|
+
}
|
|
68
|
+
getStats() {
|
|
69
|
+
return { medianScore: median(Array.from(this.scores.values())) ?? 0 };
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVlcl9zY29yaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3BlZXItc2NvcmluZy9wZWVyX3Njb3JpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBSXRELE1BQU0sQ0FBTixJQUFZLGlCQWdCWDtBQWhCRCxXQUFZLGlCQUFpQjtJQUMzQjs7O09BR0c7SUFDSCw0REFBdUMsQ0FBQTtJQUN2Qzs7O09BR0c7SUFDSCw0REFBdUMsQ0FBQTtJQUN2Qzs7O09BR0c7SUFDSCw4REFBeUMsQ0FBQTtBQUMzQyxDQUFDLEVBaEJXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFnQjVCO0FBRUQsTUFBTSxvQkFBb0IsR0FBRztJQUMzQixDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRTtJQUN6QyxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLEVBQUUsRUFBRTtDQUMzQyxDQUFDO0FBRUYsTUFBTSxPQUFPLFdBQVc7SUFPdEIsWUFBWSxNQUFpQjtRQU5yQixXQUFNLEdBQXdCLElBQUksR0FBRyxFQUFFLENBQUM7UUFDeEMsbUJBQWMsR0FBd0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoRCxrQkFBYSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxXQUFXO1FBQ3RDLGdCQUFXLEdBQUcsR0FBRyxDQUFDO1FBSXhCLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLEVBQ3BDLGFB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
|
|
@@ -1,19 +1,24 @@
|
|
|
1
|
+
import { type PeerInfo } from '@aztec/circuit-types';
|
|
2
|
+
import { type Traceable, type Tracer } from '@aztec/telemetry-client';
|
|
1
3
|
import { type PeerId } from '@libp2p/interface';
|
|
2
4
|
import { type P2PConfig } from '../config.js';
|
|
3
5
|
import { type PubSubLibp2p } from '../util.js';
|
|
4
|
-
import { type PeerErrorSeverity } from './peer_scoring.js';
|
|
6
|
+
import { type PeerErrorSeverity } from './peer-scoring/peer_scoring.js';
|
|
5
7
|
import { type PeerDiscoveryService } from './service.js';
|
|
6
|
-
export declare class PeerManager {
|
|
8
|
+
export declare class PeerManager implements Traceable {
|
|
7
9
|
private libP2PNode;
|
|
8
10
|
private peerDiscoveryService;
|
|
9
11
|
private config;
|
|
12
|
+
readonly tracer: Tracer;
|
|
10
13
|
private logger;
|
|
11
14
|
private cachedPeers;
|
|
12
15
|
private peerScoring;
|
|
13
|
-
|
|
16
|
+
private heartbeatCounter;
|
|
17
|
+
constructor(libP2PNode: PubSubLibp2p, peerDiscoveryService: PeerDiscoveryService, config: P2PConfig, tracer: Tracer, logger?: import("@aztec/foundation/log").Logger);
|
|
14
18
|
heartbeat(): void;
|
|
15
19
|
penalizePeer(peerId: PeerId, penalty: PeerErrorSeverity): void;
|
|
16
20
|
getPeerScore(peerId: string): number;
|
|
21
|
+
getPeers(includePending?: boolean): PeerInfo[];
|
|
17
22
|
/**
|
|
18
23
|
* Discovers peers.
|
|
19
24
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peer_manager.d.ts","sourceRoot":"","sources":["../../src/services/peer_manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,MAAM,EAAa,MAAM,yBAAyB,CAAC;AAGjF,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAIhD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,KAAK,iBAAiB,EAAe,MAAM,gCAAgC,CAAC;AACrF,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAYzD,qBAAa,WAAY,YAAW,SAAS;IAMzC,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,MAAM;aACE,MAAM,EAAE,MAAM;IAC9B,OAAO,CAAC,MAAM;IAThB,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,gBAAgB,CAAa;gBAG3B,UAAU,EAAE,YAAY,EACxB,oBAAoB,EAAE,oBAAoB,EAC1C,MAAM,EAAE,SAAS,EACT,MAAM,EAAE,MAAM,EACtB,MAAM,yCAAmC;IA8B5C,SAAS;IAMT,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB;IAOvD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAIpC,QAAQ,CAAC,cAAc,UAAQ,GAAG,QAAQ,EAAE;IAiCnD;;OAEG;IACH,OAAO,CAAC,QAAQ;IAsDhB;;;OAGG;YACW,oBAAoB;YA+CpB,QAAQ;IAmBtB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,gBAAgB;CAgBzB"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
3
|
+
import { trackSpan } from '@aztec/telemetry-client';
|
|
4
|
+
import { inspect } from 'util';
|
|
5
|
+
import { PeerScoring } from './peer-scoring/peer_scoring.js';
|
|
6
|
+
const MAX_DIAL_ATTEMPTS = 3;
|
|
7
|
+
const MAX_CACHED_PEERS = 100;
|
|
8
|
+
let PeerManager = (() => {
|
|
9
|
+
var _a;
|
|
10
|
+
let _instanceExtraInitializers = [];
|
|
11
|
+
let _heartbeat_decorators;
|
|
12
|
+
return _a = class PeerManager {
|
|
13
|
+
constructor(libP2PNode, peerDiscoveryService, config, tracer, logger = createLogger('p2p:peer-manager')) {
|
|
14
|
+
this.libP2PNode = (__runInitializers(this, _instanceExtraInitializers), libP2PNode);
|
|
15
|
+
this.peerDiscoveryService = peerDiscoveryService;
|
|
16
|
+
this.config = config;
|
|
17
|
+
this.tracer = tracer;
|
|
18
|
+
this.logger = logger;
|
|
19
|
+
this.cachedPeers = new Map();
|
|
20
|
+
this.heartbeatCounter = 0;
|
|
21
|
+
this.peerScoring = new PeerScoring(config);
|
|
22
|
+
// Handle new established connections
|
|
23
|
+
this.libP2PNode.addEventListener('peer:connect', evt => {
|
|
24
|
+
const peerId = evt.detail;
|
|
25
|
+
if (this.peerDiscoveryService.isBootstrapPeer(peerId)) {
|
|
26
|
+
this.logger.verbose(`Connected to bootstrap peer ${peerId.toString()}`);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
this.logger.verbose(`Connected to transaction peer ${peerId.toString()}`);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
// Handle lost connections
|
|
33
|
+
this.libP2PNode.addEventListener('peer:disconnect', evt => {
|
|
34
|
+
const peerId = evt.detail;
|
|
35
|
+
if (this.peerDiscoveryService.isBootstrapPeer(peerId)) {
|
|
36
|
+
this.logger.verbose(`Disconnected from bootstrap peer ${peerId.toString()}`);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.logger.verbose(`Disconnected from transaction peer ${peerId.toString()}`);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
// Handle Discovered peers
|
|
43
|
+
this.peerDiscoveryService.on('peer:discovered', async (enr) => {
|
|
44
|
+
await this.handleDiscoveredPeer(enr);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
heartbeat() {
|
|
48
|
+
this.heartbeatCounter++;
|
|
49
|
+
this.discover();
|
|
50
|
+
this.peerScoring.decayAllScores();
|
|
51
|
+
}
|
|
52
|
+
penalizePeer(peerId, penalty) {
|
|
53
|
+
const id = peerId.toString();
|
|
54
|
+
const penaltyValue = this.peerScoring.peerPenalties[penalty];
|
|
55
|
+
const newScore = this.peerScoring.updateScore(id, -penaltyValue);
|
|
56
|
+
this.logger.verbose(`Penalizing peer ${id} with ${penalty} (new score is ${newScore})`);
|
|
57
|
+
}
|
|
58
|
+
getPeerScore(peerId) {
|
|
59
|
+
return this.peerScoring.getScore(peerId);
|
|
60
|
+
}
|
|
61
|
+
getPeers(includePending = false) {
|
|
62
|
+
const connected = this.libP2PNode
|
|
63
|
+
.getPeers()
|
|
64
|
+
.map(peer => ({ id: peer.toString(), score: this.getPeerScore(peer.toString()), status: 'connected' }));
|
|
65
|
+
if (!includePending) {
|
|
66
|
+
return connected;
|
|
67
|
+
}
|
|
68
|
+
const dialQueue = this.libP2PNode
|
|
69
|
+
.getDialQueue()
|
|
70
|
+
.filter(peer => !!peer.peerId)
|
|
71
|
+
.map(peer => ({
|
|
72
|
+
id: peer.peerId.toString(),
|
|
73
|
+
status: 'dialing',
|
|
74
|
+
dialStatus: peer.status,
|
|
75
|
+
addresses: peer.multiaddrs.map(m => m.toString()),
|
|
76
|
+
}));
|
|
77
|
+
const cachedPeers = Array.from(this.cachedPeers.values())
|
|
78
|
+
.filter(peer => !dialQueue.some(dialPeer => dialPeer.id && peer.peerId.toString() === dialPeer.id.toString()))
|
|
79
|
+
.filter(peer => !connected.some(connPeer => connPeer.id.toString() === peer.peerId.toString()))
|
|
80
|
+
.map(peer => ({
|
|
81
|
+
status: 'cached',
|
|
82
|
+
id: peer.peerId.toString(),
|
|
83
|
+
addresses: [peer.multiaddrTcp.toString()],
|
|
84
|
+
dialAttempts: peer.dialAttempts,
|
|
85
|
+
enr: peer.enr.encodeTxt(),
|
|
86
|
+
}));
|
|
87
|
+
return [...connected, ...dialQueue, ...cachedPeers];
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Discovers peers.
|
|
91
|
+
*/
|
|
92
|
+
discover() {
|
|
93
|
+
// Get current connections
|
|
94
|
+
const connections = this.libP2PNode.getConnections();
|
|
95
|
+
// Calculate how many connections we're looking to make
|
|
96
|
+
const peersToConnect = this.config.maxPeerCount - connections.length;
|
|
97
|
+
const logLevel = this.heartbeatCounter % 60 === 0 ? 'info' : 'debug';
|
|
98
|
+
this.logger[logLevel](`Connected to ${connections.length} peers`, {
|
|
99
|
+
connections: connections.length,
|
|
100
|
+
maxPeerCount: this.config.maxPeerCount,
|
|
101
|
+
cachedPeers: this.cachedPeers.size,
|
|
102
|
+
...this.peerScoring.getStats(),
|
|
103
|
+
});
|
|
104
|
+
// Exit if no peers to connect
|
|
105
|
+
if (peersToConnect <= 0) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
const cachedPeersToDial = [];
|
|
109
|
+
const pendingDials = new Set(this.libP2PNode
|
|
110
|
+
.getDialQueue()
|
|
111
|
+
.map(pendingDial => pendingDial.peerId?.toString())
|
|
112
|
+
.filter(Boolean));
|
|
113
|
+
for (const [id, peerData] of this.cachedPeers.entries()) {
|
|
114
|
+
// if already dialling or connected to, remove from cache
|
|
115
|
+
if (pendingDials.has(id) || connections.some(conn => conn.remotePeer.equals(peerData.peerId))) {
|
|
116
|
+
this.cachedPeers.delete(id);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
// cachedPeersToDial.set(id, enr);
|
|
120
|
+
cachedPeersToDial.push(peerData);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// reverse to dial older entries first
|
|
124
|
+
cachedPeersToDial.reverse();
|
|
125
|
+
for (const peer of cachedPeersToDial) {
|
|
126
|
+
this.cachedPeers.delete(peer.peerId.toString());
|
|
127
|
+
void this.dialPeer(peer);
|
|
128
|
+
}
|
|
129
|
+
// if we need more peers, start randomNodesQuery
|
|
130
|
+
if (peersToConnect > 0) {
|
|
131
|
+
this.logger.trace(`Running random nodes query to connect to ${peersToConnect} peers`);
|
|
132
|
+
void this.peerDiscoveryService.runRandomNodesQuery();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Handles a discovered peer.
|
|
137
|
+
* @param enr - The discovered peer's ENR.
|
|
138
|
+
*/
|
|
139
|
+
async handleDiscoveredPeer(enr) {
|
|
140
|
+
// TODO: Will be handling peer scoring here
|
|
141
|
+
// check if peer is already connected
|
|
142
|
+
const [peerId, multiaddrTcp] = await Promise.all([enr.peerId(), enr.getFullMultiaddr('tcp')]);
|
|
143
|
+
this.logger.trace(`Handling discovered peer ${peerId.toString()} at ${multiaddrTcp?.toString() ?? 'undefined address'}`);
|
|
144
|
+
// throw if no tcp addr in multiaddr
|
|
145
|
+
if (!multiaddrTcp) {
|
|
146
|
+
this.logger.debug(`No TCP address in discovered node's multiaddr ${enr.encodeTxt()}`);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
const connections = this.libP2PNode.getConnections();
|
|
150
|
+
if (connections.some(conn => conn.remotePeer.equals(peerId))) {
|
|
151
|
+
this.logger.trace(`Already connected to peer ${peerId.toString()}`);
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
// check if peer is already in cache
|
|
155
|
+
const id = peerId.toString();
|
|
156
|
+
if (this.cachedPeers.has(id)) {
|
|
157
|
+
this.logger.trace(`Peer already in cache ${id}`);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
// create cached peer object
|
|
161
|
+
const cachedPeer = {
|
|
162
|
+
peerId,
|
|
163
|
+
enr,
|
|
164
|
+
multiaddrTcp,
|
|
165
|
+
dialAttempts: 0,
|
|
166
|
+
};
|
|
167
|
+
// Determine if we should dial immediately or not
|
|
168
|
+
if (this.shouldDialPeer()) {
|
|
169
|
+
void this.dialPeer(cachedPeer);
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
this.logger.trace(`Caching peer ${id}`);
|
|
173
|
+
this.cachedPeers.set(id, cachedPeer);
|
|
174
|
+
// Prune set of cached peers
|
|
175
|
+
this.pruneCachedPeers();
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
async dialPeer(peer) {
|
|
179
|
+
const id = peer.peerId.toString();
|
|
180
|
+
await this.libP2PNode.peerStore.merge(peer.peerId, { multiaddrs: [peer.multiaddrTcp] });
|
|
181
|
+
this.logger.trace(`Dialing peer ${id}`);
|
|
182
|
+
try {
|
|
183
|
+
await this.libP2PNode.dial(peer.multiaddrTcp);
|
|
184
|
+
}
|
|
185
|
+
catch (error) {
|
|
186
|
+
peer.dialAttempts++;
|
|
187
|
+
if (peer.dialAttempts < MAX_DIAL_ATTEMPTS) {
|
|
188
|
+
this.logger.trace(`Failed to dial peer ${id} (attempt ${peer.dialAttempts})`, { error: inspect(error) });
|
|
189
|
+
this.cachedPeers.set(id, peer);
|
|
190
|
+
}
|
|
191
|
+
else {
|
|
192
|
+
this.logger.debug(`Failed to dial peer ${id} (dropping)`, { error: inspect(error) });
|
|
193
|
+
this.cachedPeers.delete(id);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
shouldDialPeer() {
|
|
198
|
+
const connections = this.libP2PNode.getConnections().length;
|
|
199
|
+
if (connections >= this.config.maxPeerCount) {
|
|
200
|
+
this.logger.trace(`Not dialing peer due to max peer count of ${this.config.maxPeerCount} reached (${connections} current connections)`);
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
return true;
|
|
204
|
+
}
|
|
205
|
+
pruneCachedPeers() {
|
|
206
|
+
let peersToDelete = this.cachedPeers.size - MAX_CACHED_PEERS;
|
|
207
|
+
if (peersToDelete <= 0) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
// Remove the oldest peers
|
|
211
|
+
for (const key of this.cachedPeers.keys()) {
|
|
212
|
+
this.cachedPeers.delete(key);
|
|
213
|
+
this.logger.trace(`Pruning peer ${key} from cache`);
|
|
214
|
+
peersToDelete--;
|
|
215
|
+
if (peersToDelete <= 0) {
|
|
216
|
+
break;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
(() => {
|
|
222
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
|
|
223
|
+
_heartbeat_decorators = [trackSpan('PeerManager.heartbeat')];
|
|
224
|
+
__esDecorate(_a, null, _heartbeat_decorators, { kind: "method", name: "heartbeat", static: false, private: false, access: { has: obj => "heartbeat" in obj, get: obj => obj.heartbeat }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
225
|
+
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
226
|
+
})(),
|
|
227
|
+
_a;
|
|
228
|
+
})();
|
|
229
|
+
export { PeerManager };
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVlcl9tYW5hZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL3BlZXJfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBK0IsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFLakYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUkvQixPQUFPLEVBQTBCLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3JGLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0FBQzVCLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxDQUFDO0lBU2hCLFdBQVc7Ozs7c0JBQVgsV0FBVztZQUt0QixZQUNVLFVBQXdCLEVBQ3hCLG9CQUEwQyxFQUMxQyxNQUFpQixFQUNULE1BQWMsRUFDdEIsU0FBUyxZQUFZLENBQUMsa0JBQWtCLENBQUM7Z0JBSnpDLGVBQVUsSUFOVCxtREFBVyxFQU1aLFVBQVUsRUFBYztnQkFDeEIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtnQkFDMUMsV0FBTSxHQUFOLE1BQU0sQ0FBVztnQkFDVCxXQUFNLEdBQU4sTUFBTSxDQUFRO2dCQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFtQztnQkFUM0MsZ0JBQVcsR0FBNEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFFakQscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO2dCQVNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMzQyxxQ0FBcUM7Z0JBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxFQUFFO29CQUNyRCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO29CQUMxQixJQUFJLElBQUksQ0FBQyxvQkFBb0Is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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAsB,MAAM,0BAA0B,CAAC;AAElF,eAAO,MAAM,qCAAqC,OAAO,CAAC;AAC1D,eAAO,MAAM,kCAAkC,OAAO,CAAC;AAGvD,eAAO,MAAM,0BAA0B,EAAE,gBAGxC,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,uBAAuB,EAAE,MAAM,CAAC;IAEhC;;OAEG;IACH,0BAA0B,EAAE,MAAM,CAAC;CACpC;AAED,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,gBAAgB,EAAE,aAAa,CAWlF,CAAC"}
|
|
@@ -18,4 +18,4 @@ export const p2pReqRespConfigMappings = {
|
|
|
18
18
|
...numberConfigHelper(DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS),
|
|
19
19
|
},
|
|
20
20
|
};
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3JlcXJlc3AvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0Isa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVsRixNQUFNLENBQUMsTUFBTSxxQ0FBcUMsR0FBRyxJQUFJLENBQUM7QUFDMUQsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsSUFBSSxDQUFDO0FBRXZELG9CQUFvQjtBQUNwQixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBcUI7SUFDMUQsdUJBQXVCLEVBQUUsa0NBQWtDO0lBQzNELDBCQUEwQixFQUFFLHFDQUFxQztDQUNsRSxDQUFDO0FBY0YsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQWtEO0lBQ3JGLHVCQUF1QixFQUFFO1FBQ3ZCLEdBQUcsRUFBRSx3Q0FBd0M7UUFDN0MsV0FBVyxFQUFFLHVEQUF1RDtRQUNwRSxHQUFHLGtCQUFrQixDQUFDLGtDQUFrQyxDQUFDO0tBQzFEO0lBQ0QsMEJBQTBCLEVBQUU7UUFDMUIsR0FBRyxFQUFFLDJDQUEyQztRQUNoRCxXQUFXLEVBQUUsa0VBQWtFO1FBQy9FLEdBQUcsa0JBQWtCLENBQUMscUNBQXFDLENBQUM7S0FDN0Q7Q0FDRixDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/handlers.ts"],"names":[],"mappings":";;AAAA;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAExD"}
|
|
@@ -14,4 +14,4 @@ export function pingHandler(_msg) {
|
|
|
14
14
|
export function statusHandler(_msg) {
|
|
15
15
|
return Promise.resolve(Buffer.from('ok'));
|
|
16
16
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9oYW5kbGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxJQUFTO0lBQ25DLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLElBQVM7SUFDckMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM1QyxDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/index.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
|
@@ -3,4 +3,4 @@ export {};
|
|
|
3
3
|
* Request Response protocol allows nodes to ask their peers for data
|
|
4
4
|
* that they missed via the traditional gossip protocol.
|
|
5
5
|
*/
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/interface.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKhD,eAAO,MAAM,aAAa,0BAA0B,CAAC;AACrD,eAAO,MAAM,eAAe,4BAA4B,CAAC;AACzD,eAAO,MAAM,eAAe,wBAAwB,CAAC;AAGrD,MAAM,MAAM,kBAAkB,GAAG,OAAO,aAAa,GAAG,OAAO,eAAe,GAAG,OAAO,eAAe,CAAC;AAExG;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAEzE;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,MAAM,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAC;AAE9F;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,SAAS,EAAE,cAAc,CAAC;IAC1B;;OAEG;IACH,WAAW,EAAE,cAAc,CAAC;CAC7B;AAED,eAAO,MAAM,aAAa,wBAA8B,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC,kBAAkB,EAAE,yBAAyB,CAAC,CAAC;AAE/F,KAAK,iBAAiB,CAAC,iBAAiB,EAAE,QAAQ,IAAI,CACpD,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,MAAM,4BAA4B,GAAG;KACxC,CAAC,IAAI,kBAAkB,GAAG,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC;CACvD,CAAC;AAEF,eAAO,MAAM,+BAA+B,EAAE,4BAI7C,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;KAC1B,CAAC,IAAI,kBAAkB,GAAG,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC;CACzD,CAAC;AAUF;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,0BAI3C,CAAC;AAEF;;;GAGG;AACH,UAAU,mBAAmB,CAAC,GAAG,EAAE,GAAG;IACpC,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IACrC;;OAEG;IACH,QAAQ,EAAE;QACR,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;QAC1B,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAAC;KACjC,CAAC;CACH;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IACT,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;IAEjC,QAAQ;IAIR,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM;CAGjC;AAED;;;;GAIG;AACH,eAAO,MAAM,cAAc,EAAE,cAa5B,CAAC"}
|
|
@@ -62,4 +62,4 @@ export const subProtocolMap = {
|
|
|
62
62
|
response: Tx,
|
|
63
63
|
},
|
|
64
64
|
};
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3JlcXJlc3AvaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJbEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsdUJBQXVCLENBQUM7QUFDckQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLHlCQUF5QixDQUFDO0FBQ3pELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxxQkFBcUIsQ0FBQztBQXlDckQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFpQnpELE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFpQztJQUMzRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLGFBQWE7SUFDOUIsQ0FBQyxlQUFlLENBQUMsRUFBRSxhQUFhO0lBQ2hDLENBQUMsZUFBZSxDQUFDLEVBQUUsYUFBYTtDQUNqQyxDQUFDO0FBVUY7OztHQUdHO0FBQ0gsTUFBTSxjQUFjLEdBQUcsQ0FBQyxJQUFTLEVBQW1CLEVBQUU7SUFDcEQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUErQjtJQUN2RSxDQUFDLGFBQWEsQ0FBQyxFQUFFLGNBQWM7SUFDL0IsQ0FBQyxlQUFlLENBQUMsRUFBRSxjQUFjO0lBQ2pDLENBQUMsZUFBZSxDQUFDLEVBQUUsY0FBYztDQUNsQyxDQUFDO0FBaUJGOzs7OztHQUtHO0FBQ0gsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUFtQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUFHLENBQUM7SUFFckMsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFjO1FBQzlCLE9BQU8sSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFtQjtJQUM1QyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1FBQ2YsT0FBTyxFQUFFLGlCQUFpQjtRQUMxQixRQUFRLEVBQUUsaUJBQWlCO0tBQzVCO0lBQ0QsQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUNqQixPQUFPLEVBQUUsaUJBQWlCO1FBQzFCLFFBQVEsRUFBRSxpQkFBaUI7S0FDNUI7SUFDRCxDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQ2pCLE9BQU8sRUFBRSxNQUFNO1FBQ2YsUUFBUSxFQUFFLEVBQUU7S0FDYjtDQUNGLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/rate_limiter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { RequestResponseRateLimiter } from './rate_limiter.js';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9yYXRlX2xpbWl0ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUMifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate_limiter.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/rate_limiter/rate_limiter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAM7F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,eAAe;IAE1B,OAAO,CAAC,GAAG,CAAS;IAEpB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAE1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC;;;OAGG;gBACS,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAMnD,KAAK,IAAI,OAAO;CAWjB;AASD,aAAK,eAAe;IAClB,OAAO,IAAA;IACP,YAAY,IAAA;IACZ,UAAU,IAAA;CACX;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,YAAY,CAA2C;IAC/D,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAE7B,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM;IAOhH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;IAwBtC,oBAAoB;CAQrB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,0BAA0B;IAKzB,OAAO,CAAC,WAAW;IAJ/B,OAAO,CAAC,uBAAuB,CAAkD;IAEjF,OAAO,CAAC,eAAe,CAAyC;gBAE5C,WAAW,EAAE,WAAW,EAAE,UAAU,GAAE,4BAAkD;IAgB5G,KAAK;IAML,KAAK,CAAC,WAAW,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAkB/D,oBAAoB;IAIpB;;OAEG;IACH,IAAI;CAGL"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PeerErrorSeverity } from '../../peer_scoring.js';
|
|
1
|
+
import { PeerErrorSeverity } from '../../peer-scoring/peer_scoring.js';
|
|
2
2
|
import { DEFAULT_RATE_LIMITS } from './rate_limits.js';
|
|
3
3
|
// Check for disconnected peers every 10 minutes
|
|
4
4
|
const CHECK_DISCONNECTED_PEERS_INTERVAL_MS = 10 * 60 * 1000;
|
|
@@ -167,4 +167,4 @@ export class RequestResponseRateLimiter {
|
|
|
167
167
|
clearInterval(this.cleanupInterval);
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
170
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZV9saW1pdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3JlcXJlc3AvcmF0ZV9saW1pdGVyL3JhdGVfbGltaXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUd2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV2RCxnREFBZ0Q7QUFDaEQsTUFBTSxvQ0FBb0MsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUU1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBUTFCOzs7T0FHRztJQUNILFlBQVksVUFBa0IsRUFBRSxXQUFtQjtRQUNqRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUNqRCxJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQztRQUNqQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsS0FBSztRQUNILE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUV2QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9ELElBQUksTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUM7WUFDbEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUFTRCxJQUFLLGVBSUo7QUFKRCxXQUFLLGVBQWU7SUFDbEIsMkRBQU8sQ0FB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate_limits.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/rate_limiter/rate_limits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,4BAA4B,EAAoC,MAAM,iBAAiB,CAAC;AAGrH,eAAO,MAAM,mBAAmB,EAAE,4BA+BjC,CAAC"}
|
|
@@ -32,4 +32,4 @@ export const DEFAULT_RATE_LIMITS = {
|
|
|
32
32
|
},
|
|
33
33
|
},
|
|
34
34
|
};
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZV9saW1pdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9yYXRlX2xpbWl0ZXIvcmF0ZV9saW1pdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBcUMsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXJILDRDQUE0QztBQUM1QyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBaUM7SUFDL0QsQ0FBQyxhQUFhLENBQUMsRUFBRTtRQUNmLFNBQVMsRUFBRTtZQUNULFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFVBQVUsRUFBRSxDQUFDO1NBQ2Q7UUFDRCxXQUFXLEVBQUU7WUFDWCxXQUFXLEVBQUUsSUFBSTtZQUNqQixVQUFVLEVBQUUsRUFBRTtTQUNmO0tBQ0Y7SUFDRCxDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQ2pCLFNBQVMsRUFBRTtZQUNULFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFVBQVUsRUFBRSxDQUFDO1NBQ2Q7UUFDRCxXQUFXLEVBQUU7WUFDWCxXQUFXLEVBQUUsSUFBSTtZQUNqQixVQUFVLEVBQUUsRUFBRTtTQUNmO0tBQ0Y7SUFDRCxDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQ2pCLFNBQVMsRUFBRTtZQUNULFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFVBQVUsRUFBRSxDQUFDO1NBQ2Q7UUFDRCxXQUFXLEVBQUU7WUFDWCxXQUFXLEVBQUUsSUFBSTtZQUNqQixVQUFVLEVBQUUsRUFBRTtTQUNmO0tBQ0Y7Q0FDRixDQUFDIn0=
|
|
@@ -29,6 +29,7 @@ export declare class ReqResp {
|
|
|
29
29
|
private subProtocolHandlers;
|
|
30
30
|
private subProtocolValidators;
|
|
31
31
|
private rateLimiter;
|
|
32
|
+
private snappyTransform;
|
|
32
33
|
constructor(config: P2PReqRespConfig, libp2p: Libp2p, peerManager: PeerManager);
|
|
33
34
|
/**
|
|
34
35
|
* Start the reqresp service
|
|
@@ -93,6 +94,21 @@ export declare class ReqResp {
|
|
|
93
94
|
* the stream is closed on the requester's end and sender (us) updates its peer score
|
|
94
95
|
*/
|
|
95
96
|
sendRequestToPeer(peerId: PeerId, subProtocol: ReqRespSubProtocol, payload: Buffer): Promise<Buffer | undefined>;
|
|
97
|
+
/**
|
|
98
|
+
* Handle a response error
|
|
99
|
+
*
|
|
100
|
+
* ReqResp errors are punished differently depending on the severity of the offense
|
|
101
|
+
*
|
|
102
|
+
* @param e - The error
|
|
103
|
+
* @param peerId - The peer id
|
|
104
|
+
* @param subProtocol - The sub protocol
|
|
105
|
+
* @returns If the error is non pubishable, then undefined is returned, otherwise the peer is penalized
|
|
106
|
+
*/
|
|
107
|
+
private handleResponseError;
|
|
108
|
+
/**
|
|
109
|
+
* Categorize the error and log it.
|
|
110
|
+
*/
|
|
111
|
+
private categorizeError;
|
|
96
112
|
/**
|
|
97
113
|
* Read a message returned from a stream into a single buffer
|
|
98
114
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reqresp.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/reqresp.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAA2B,KAAK,MAAM,EAAe,MAAM,mBAAmB,CAAC;AAEtF,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAUrC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAC;AAGxB;;;;;;;;;;;;;GAaG;AACH,qBAAa,OAAO;IAcoB,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAAE,OAAO,CAAC,WAAW;IAb5F,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAElC,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,0BAA0B,CAAS;IAG3C,OAAO,CAAC,mBAAmB,CAA6D;IACxF,OAAO,CAAC,qBAAqB,CAAiE;IAE9F,OAAO,CAAC,WAAW,CAA6B;IAEhD,OAAO,CAAC,eAAe,CAAkB;gBAE7B,MAAM,EAAE,gBAAgB,EAAqB,MAAM,EAAE,MAAM,EAAU,WAAW,EAAE,WAAW;IAUzG;;OAEG;IACG,KAAK,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,4BAA4B;IAWhH;;OAEG;IACG,IAAI;IAiBV;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;IAuC7E;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IA8B9B;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACH,OAAO,CAAC,eAAe;IA4CvB;;OAEG;YACW,WAAW;IASzB;;;;;;;;;;;;;;;OAeG;YACW,aAAa;CA+B5B"}
|