@libp2p/kad-dht 13.0.3-c258b35af → 13.0.4-fa83ee1c7
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.min.js +1 -1
- package/dist/src/rpc/index.d.ts +3 -1
- package/dist/src/rpc/index.d.ts.map +1 -1
- package/dist/src/rpc/index.js +14 -1
- package/dist/src/rpc/index.js.map +1 -1
- package/package.json +11 -11
- package/src/rpc/index.ts +17 -3
package/dist/src/rpc/index.d.ts
CHANGED
@@ -7,7 +7,7 @@ import type { PeerInfoMapper, Validators } from '../index.js';
|
|
7
7
|
import type { PeerRouting } from '../peer-routing';
|
8
8
|
import type { Providers } from '../providers';
|
9
9
|
import type { RoutingTable } from '../routing-table';
|
10
|
-
import type { PeerId } from '@libp2p/interface';
|
10
|
+
import type { Metrics, PeerId } from '@libp2p/interface';
|
11
11
|
import type { IncomingStreamData } from '@libp2p/interface-internal';
|
12
12
|
export interface DHTMessageHandler {
|
13
13
|
handle(peerId: PeerId, msg: Message): Promise<Message | undefined>;
|
@@ -21,11 +21,13 @@ export interface RPCInit {
|
|
21
21
|
peerInfoMapper: PeerInfoMapper;
|
22
22
|
}
|
23
23
|
export interface RPCComponents extends GetValueHandlerComponents, PutValueHandlerComponents, FindNodeHandlerComponents, GetProvidersHandlerComponents {
|
24
|
+
metrics?: Metrics;
|
24
25
|
}
|
25
26
|
export declare class RPC {
|
26
27
|
private readonly handlers;
|
27
28
|
private readonly routingTable;
|
28
29
|
private readonly log;
|
30
|
+
private readonly metrics?;
|
29
31
|
constructor(components: RPCComponents, init: RPCInit);
|
30
32
|
/**
|
31
33
|
* Process incoming DHT messages
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAe,MAAM,mBAAmB,CAAA;AAExD,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,EAAuB,KAAK,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AACrG,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAEzF,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAe,MAAM,mBAAmB,CAAA;AAExD,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,EAAuB,KAAK,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AACrG,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAEzF,OAAO,EAAmB,KAAK,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,KAAK,EAAwB,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAEpE,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAA;CACnE;AAED,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,SAAS,CAAA;IACpB,WAAW,EAAE,WAAW,CAAA;IACxB,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,MAAM,WAAW,aAAc,SAAQ,yBAAyB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,6BAA6B;IACnJ,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,qBAAa,GAAG;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAc;gBAE1B,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO;IAgBrD;;OAEG;IACG,aAAa,CAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IA8BhF;;OAEG;IACH,gBAAgB,CAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI;CAqClD"}
|
package/dist/src/rpc/index.js
CHANGED
@@ -11,8 +11,10 @@ export class RPC {
|
|
11
11
|
handlers;
|
12
12
|
routingTable;
|
13
13
|
log;
|
14
|
+
metrics;
|
14
15
|
constructor(components, init) {
|
15
16
|
const { providers, peerRouting, validators, logPrefix, peerInfoMapper } = init;
|
17
|
+
this.metrics = components.metrics?.registerCounterGroup(`${logPrefix.replaceAll(':', '_')}_inbound_rpc_requests`);
|
16
18
|
this.log = components.logger.forComponent(`${logPrefix}:rpc`);
|
17
19
|
this.routingTable = init.routingTable;
|
18
20
|
this.handlers = {
|
@@ -40,7 +42,18 @@ export class RPC {
|
|
40
42
|
this.log.error(`no handler found for message type: ${msg.type}`);
|
41
43
|
return;
|
42
44
|
}
|
43
|
-
|
45
|
+
try {
|
46
|
+
const value = await handler.handle(peerId, msg);
|
47
|
+
this.metrics?.increment({
|
48
|
+
[`${msg.type}_SUCCESS`]: true
|
49
|
+
});
|
50
|
+
return value;
|
51
|
+
}
|
52
|
+
catch {
|
53
|
+
this.metrics?.increment({
|
54
|
+
[`${msg.type}_ERROR`]: true
|
55
|
+
});
|
56
|
+
}
|
44
57
|
}
|
45
58
|
/**
|
46
59
|
* Handle incoming streams on the dht protocol
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,oBAAoB,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,EAAE,eAAe,EAAkC,MAAM,yBAAyB,CAAA;AACzF,OAAO,EAAE,mBAAmB,EAAsC,MAAM,6BAA6B,CAAA;AACrG,OAAO,EAAE,eAAe,EAAkC,MAAM,yBAAyB,CAAA;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAkC,MAAM,yBAAyB,CAAA;AAyBzF,MAAM,OAAO,GAAG;IACG,QAAQ,CAAmC;IAC3C,YAAY,CAAc;IAC1B,GAAG,CAAQ;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rpc/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@libp2p/kad-dht",
|
3
|
-
"version": "13.0.
|
3
|
+
"version": "13.0.4-fa83ee1c7",
|
4
4
|
"description": "JavaScript implementation of the Kad-DHT for libp2p",
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/kad-dht#readme",
|
@@ -57,13 +57,13 @@
|
|
57
57
|
"doc-check": "aegir doc-check"
|
58
58
|
},
|
59
59
|
"dependencies": {
|
60
|
-
"@libp2p/crypto": "5.0.
|
61
|
-
"@libp2p/interface": "2.1.
|
62
|
-
"@libp2p/interface-internal": "2.0.
|
63
|
-
"@libp2p/peer-collections": "6.0.
|
64
|
-
"@libp2p/peer-id": "5.0.
|
65
|
-
"@libp2p/record": "4.0.4-
|
66
|
-
"@libp2p/utils": "6.0.
|
60
|
+
"@libp2p/crypto": "5.0.4-fa83ee1c7",
|
61
|
+
"@libp2p/interface": "2.1.2-fa83ee1c7",
|
62
|
+
"@libp2p/interface-internal": "2.0.4-fa83ee1c7",
|
63
|
+
"@libp2p/peer-collections": "6.0.4-fa83ee1c7",
|
64
|
+
"@libp2p/peer-id": "5.0.4-fa83ee1c7",
|
65
|
+
"@libp2p/record": "4.0.4-fa83ee1c7",
|
66
|
+
"@libp2p/utils": "6.0.4-fa83ee1c7",
|
67
67
|
"@multiformats/multiaddr": "^12.2.3",
|
68
68
|
"any-signal": "^4.1.1",
|
69
69
|
"hashlru": "^2.3.0",
|
@@ -89,9 +89,9 @@
|
|
89
89
|
"uint8arrays": "^5.1.0"
|
90
90
|
},
|
91
91
|
"devDependencies": {
|
92
|
-
"@libp2p/interface-compliance-tests": "6.1.
|
93
|
-
"@libp2p/logger": "5.0.
|
94
|
-
"@libp2p/peer-store": "11.0.
|
92
|
+
"@libp2p/interface-compliance-tests": "6.1.2-fa83ee1c7",
|
93
|
+
"@libp2p/logger": "5.0.4-fa83ee1c7",
|
94
|
+
"@libp2p/peer-store": "11.0.4-fa83ee1c7",
|
95
95
|
"@types/lodash.random": "^3.2.9",
|
96
96
|
"@types/lodash.range": "^3.2.9",
|
97
97
|
"@types/sinon": "^17.0.3",
|
package/src/rpc/index.ts
CHANGED
@@ -11,7 +11,7 @@ import type { PeerInfoMapper, Validators } from '../index.js'
|
|
11
11
|
import type { PeerRouting } from '../peer-routing'
|
12
12
|
import type { Providers } from '../providers'
|
13
13
|
import type { RoutingTable } from '../routing-table'
|
14
|
-
import type { Logger, PeerId } from '@libp2p/interface'
|
14
|
+
import type { CounterGroup, Logger, Metrics, PeerId } from '@libp2p/interface'
|
15
15
|
import type { IncomingStreamData } from '@libp2p/interface-internal'
|
16
16
|
|
17
17
|
export interface DHTMessageHandler {
|
@@ -28,16 +28,18 @@ export interface RPCInit {
|
|
28
28
|
}
|
29
29
|
|
30
30
|
export interface RPCComponents extends GetValueHandlerComponents, PutValueHandlerComponents, FindNodeHandlerComponents, GetProvidersHandlerComponents {
|
31
|
-
|
31
|
+
metrics?: Metrics
|
32
32
|
}
|
33
33
|
|
34
34
|
export class RPC {
|
35
35
|
private readonly handlers: Record<string, DHTMessageHandler>
|
36
36
|
private readonly routingTable: RoutingTable
|
37
37
|
private readonly log: Logger
|
38
|
+
private readonly metrics?: CounterGroup
|
38
39
|
|
39
40
|
constructor (components: RPCComponents, init: RPCInit) {
|
40
41
|
const { providers, peerRouting, validators, logPrefix, peerInfoMapper } = init
|
42
|
+
this.metrics = components.metrics?.registerCounterGroup(`${logPrefix.replaceAll(':', '_')}_inbound_rpc_requests`)
|
41
43
|
|
42
44
|
this.log = components.logger.forComponent(`${logPrefix}:rpc`)
|
43
45
|
this.routingTable = init.routingTable
|
@@ -69,7 +71,19 @@ export class RPC {
|
|
69
71
|
return
|
70
72
|
}
|
71
73
|
|
72
|
-
|
74
|
+
try {
|
75
|
+
const value = await handler.handle(peerId, msg)
|
76
|
+
|
77
|
+
this.metrics?.increment({
|
78
|
+
[`${msg.type}_SUCCESS`]: true
|
79
|
+
})
|
80
|
+
|
81
|
+
return value
|
82
|
+
} catch {
|
83
|
+
this.metrics?.increment({
|
84
|
+
[`${msg.type}_ERROR`]: true
|
85
|
+
})
|
86
|
+
}
|
73
87
|
}
|
74
88
|
|
75
89
|
/**
|