@lodestar/reqresp 1.7.2 → 1.8.0-dev.fb90b02871
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/lib/ReqResp.d.ts +12 -4
- package/lib/ReqResp.js +28 -8
- package/lib/ReqResp.js.map +1 -1
- package/lib/encoders/requestDecode.d.ts +2 -2
- package/lib/encoders/requestDecode.js.map +1 -1
- package/lib/encoders/requestEncode.d.ts +2 -2
- package/lib/encoders/requestEncode.js.map +1 -1
- package/lib/encoders/responseDecode.d.ts +3 -3
- package/lib/encoders/responseDecode.js.map +1 -1
- package/lib/encoders/responseEncode.d.ts +2 -2
- package/lib/encoders/responseEncode.js.map +1 -1
- package/lib/encodingStrategies/sszSnappy/decode.js +2 -2
- package/lib/encodingStrategies/sszSnappy/decode.js.map +1 -1
- package/lib/protocols/BeaconBlockAndBlobsSidecarByRoot.d.ts +2 -2
- package/lib/protocols/BeaconBlockAndBlobsSidecarByRoot.js.map +1 -1
- package/lib/protocols/BeaconBlocksByRange.d.ts +3 -3
- package/lib/protocols/BeaconBlocksByRange.js.map +1 -1
- package/lib/protocols/BeaconBlocksByRoot.d.ts +3 -3
- package/lib/protocols/BeaconBlocksByRoot.js.map +1 -1
- package/lib/protocols/BlobsSidecarsByRange.d.ts +2 -2
- package/lib/protocols/BlobsSidecarsByRange.js.map +1 -1
- package/lib/protocols/Goodbye.d.ts +2 -2
- package/lib/protocols/Goodbye.js.map +1 -1
- package/lib/protocols/LightClientBootstrap.d.ts +2 -2
- package/lib/protocols/LightClientBootstrap.js +10 -5
- package/lib/protocols/LightClientBootstrap.js.map +1 -1
- package/lib/protocols/LightClientFinalityUpdate.d.ts +2 -2
- package/lib/protocols/LightClientFinalityUpdate.js +9 -4
- package/lib/protocols/LightClientFinalityUpdate.js.map +1 -1
- package/lib/protocols/LightClientOptimisticUpdate.d.ts +2 -2
- package/lib/protocols/LightClientOptimisticUpdate.js +9 -4
- package/lib/protocols/LightClientOptimisticUpdate.js.map +1 -1
- package/lib/protocols/LightClientUpdatesByRange.d.ts +2 -2
- package/lib/protocols/LightClientUpdatesByRange.js +10 -5
- package/lib/protocols/LightClientUpdatesByRange.js.map +1 -1
- package/lib/protocols/Metadata.d.ts +3 -3
- package/lib/protocols/Metadata.js.map +1 -1
- package/lib/protocols/Ping.d.ts +1 -1
- package/lib/protocols/Status.d.ts +2 -2
- package/lib/protocols/Status.js +9 -4
- package/lib/protocols/Status.js.map +1 -1
- package/lib/request/index.d.ts +2 -2
- package/lib/request/index.js.map +1 -1
- package/lib/types.d.ts +64 -4
- package/lib/types.js +3 -0
- package/lib/types.js.map +1 -1
- package/package.json +9 -9
package/lib/ReqResp.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Libp2p } from "libp2p";
|
|
|
3
3
|
import { Logger } from "@lodestar/utils";
|
|
4
4
|
import { Metrics, MetricsRegister } from "./metrics.js";
|
|
5
5
|
import { RequestError, SendRequestOpts } from "./request/index.js";
|
|
6
|
-
import { Encoding,
|
|
6
|
+
import { DialOnlyProtocolDefinition, Encoding, MixedProtocolDefinition, ReqRespRateLimiterOpts, ProtocolDefinition } from "./types.js";
|
|
7
7
|
type ProtocolID = string;
|
|
8
8
|
export declare const DEFAULT_PROTOCOL_PREFIX = "/eth2/beacon_chain/req";
|
|
9
9
|
export interface ReqRespProtocolModules {
|
|
@@ -37,7 +37,15 @@ export declare class ReqResp {
|
|
|
37
37
|
private readonly protocolPrefix;
|
|
38
38
|
/** `${protocolPrefix}/${method}/${version}/${encoding}` */
|
|
39
39
|
private readonly registeredProtocols;
|
|
40
|
+
private readonly dialOnlyProtocols;
|
|
40
41
|
constructor(modules: ReqRespProtocolModules, opts?: ReqRespOpts);
|
|
42
|
+
/**
|
|
43
|
+
* Register protocol which will be used only to dial to other peers
|
|
44
|
+
* The libp2p instance will not handle that protocol
|
|
45
|
+
*
|
|
46
|
+
* Made it explicit method to avoid any developer mistake
|
|
47
|
+
*/
|
|
48
|
+
registerDialOnlyProtocol<Req, Resp>(protocol: DialOnlyProtocolDefinition<Req, Resp>, opts?: ReqRespRegisterOpts): void;
|
|
41
49
|
/**
|
|
42
50
|
* Register protocol as supported and to libp2p.
|
|
43
51
|
* async because libp2p registar persists the new protocol list in the peer-store.
|
|
@@ -61,8 +69,8 @@ export declare class ReqResp {
|
|
|
61
69
|
stop(): Promise<void>;
|
|
62
70
|
protected sendRequest<Req, Resp>(peerId: PeerId, method: string, versions: number[], encoding: Encoding, body: Req): AsyncIterable<Resp>;
|
|
63
71
|
private getRequestHandler;
|
|
64
|
-
protected onIncomingRequest(_peerId: PeerId, _protocol:
|
|
65
|
-
protected onIncomingRequestError(_protocol:
|
|
72
|
+
protected onIncomingRequest(_peerId: PeerId, _protocol: MixedProtocolDefinition): void;
|
|
73
|
+
protected onIncomingRequestError(_protocol: MixedProtocolDefinition<any, any>, _error: RequestError): void;
|
|
66
74
|
protected onOutgoingRequestError(_peerId: PeerId, _method: string, _error: RequestError): void;
|
|
67
75
|
/**
|
|
68
76
|
* ```
|
|
@@ -70,7 +78,7 @@ export declare class ReqResp {
|
|
|
70
78
|
* ```
|
|
71
79
|
* https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/phase0/p2p-interface.md#protocol-identification
|
|
72
80
|
*/
|
|
73
|
-
protected formatProtocolID(protocol: Pick<
|
|
81
|
+
protected formatProtocolID(protocol: Pick<MixedProtocolDefinition, "method" | "version" | "encoding">): string;
|
|
74
82
|
}
|
|
75
83
|
export {};
|
|
76
84
|
//# sourceMappingURL=ReqResp.d.ts.map
|
package/lib/ReqResp.js
CHANGED
|
@@ -19,13 +19,32 @@ export class ReqResp {
|
|
|
19
19
|
/** Tracks request and responses in a sequential counter */
|
|
20
20
|
this.reqCount = 0;
|
|
21
21
|
/** `${protocolPrefix}/${method}/${version}/${encoding}` */
|
|
22
|
+
// Use any to avoid TS error on registering protocol
|
|
23
|
+
// Type 'unknown' is not assignable to type 'Resp'
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
25
|
this.registeredProtocols = new Map();
|
|
26
|
+
this.dialOnlyProtocols = new Map();
|
|
23
27
|
this.libp2p = modules.libp2p;
|
|
24
28
|
this.logger = modules.logger;
|
|
25
29
|
this.metrics = modules.metricsRegister ? getMetrics(modules.metricsRegister) : null;
|
|
26
30
|
this.protocolPrefix = (_a = opts.protocolPrefix) !== null && _a !== void 0 ? _a : DEFAULT_PROTOCOL_PREFIX;
|
|
27
31
|
this.rateLimiter = new ReqRespRateLimiter(opts);
|
|
28
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Register protocol which will be used only to dial to other peers
|
|
35
|
+
* The libp2p instance will not handle that protocol
|
|
36
|
+
*
|
|
37
|
+
* Made it explicit method to avoid any developer mistake
|
|
38
|
+
*/
|
|
39
|
+
registerDialOnlyProtocol(protocol, opts) {
|
|
40
|
+
const protocolID = this.formatProtocolID(protocol);
|
|
41
|
+
// libp2p will throw on error on duplicates, allow to overwrite behavior
|
|
42
|
+
if ((opts === null || opts === void 0 ? void 0 : opts.ignoreIfDuplicate) && this.registeredProtocols.has(protocolID)) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
this.registeredProtocols.set(protocolID, protocol);
|
|
46
|
+
this.dialOnlyProtocols.set(protocolID, true);
|
|
47
|
+
}
|
|
29
48
|
/**
|
|
30
49
|
* Register protocol as supported and to libp2p.
|
|
31
50
|
* async because libp2p registar persists the new protocol list in the peer-store.
|
|
@@ -34,13 +53,11 @@ export class ReqResp {
|
|
|
34
53
|
*/
|
|
35
54
|
async registerProtocol(protocol, opts) {
|
|
36
55
|
const protocolID = this.formatProtocolID(protocol);
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
if (protocol.inboundRateLimits) {
|
|
43
|
-
this.rateLimiter.initRateLimits(protocolID, protocol.inboundRateLimits);
|
|
56
|
+
const { handler: _handler, renderRequestBody: _renderRequestBody, inboundRateLimits, ...rest } = protocol;
|
|
57
|
+
this.registerDialOnlyProtocol(rest, opts);
|
|
58
|
+
this.dialOnlyProtocols.set(protocolID, false);
|
|
59
|
+
if (inboundRateLimits) {
|
|
60
|
+
this.rateLimiter.initRateLimits(protocolID, inboundRateLimits);
|
|
44
61
|
}
|
|
45
62
|
return this.libp2p.handle(protocolID, this.getRequestHandler(protocol, protocolID));
|
|
46
63
|
}
|
|
@@ -112,6 +129,9 @@ export class ReqResp {
|
|
|
112
129
|
getRequestHandler(protocol, protocolID) {
|
|
113
130
|
return async ({ connection, stream }) => {
|
|
114
131
|
var _a, _b, _c, _d, _e, _f;
|
|
132
|
+
if (this.dialOnlyProtocols.get(protocolID)) {
|
|
133
|
+
throw new Error(`Received request on dial only protocol '${protocolID}'`);
|
|
134
|
+
}
|
|
115
135
|
const peerId = connection.remotePeer;
|
|
116
136
|
const peerClient = (_b = (_a = this.opts).getPeerLogMetadata) === null || _b === void 0 ? void 0 : _b.call(_a, peerId.toString());
|
|
117
137
|
const { method } = protocol;
|
|
@@ -123,7 +143,7 @@ export class ReqResp {
|
|
|
123
143
|
logger: this.logger,
|
|
124
144
|
stream,
|
|
125
145
|
peerId,
|
|
126
|
-
protocol,
|
|
146
|
+
protocol: protocol,
|
|
127
147
|
protocolID,
|
|
128
148
|
rateLimiter: this.rateLimiter,
|
|
129
149
|
signal: this.controller.signal,
|
package/lib/ReqResp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReqResp.js","sourceRoot":"","sources":["../src/ReqResp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAK5C,OAAO,EAAC,UAAU,EAA2B,MAAM,cAAc,CAAC;AAClE,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAkB,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"ReqResp.js","sourceRoot":"","sources":["../src/ReqResp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Sink } from "it-stream-types";
|
|
2
2
|
import { Uint8ArrayList } from "uint8arraylist";
|
|
3
|
-
import {
|
|
3
|
+
import { MixedProtocolDefinition } from "../types.js";
|
|
4
4
|
/**
|
|
5
5
|
* Consumes a stream source to read a `<request>`
|
|
6
6
|
* ```bnf
|
|
7
7
|
* request ::= <encoding-dependent-header> | <encoded-payload>
|
|
8
8
|
* ```
|
|
9
9
|
*/
|
|
10
|
-
export declare function requestDecode<Req, Resp>(protocol:
|
|
10
|
+
export declare function requestDecode<Req, Resp>(protocol: MixedProtocolDefinition<Req, Resp>): Sink<Uint8Array | Uint8ArrayList, Promise<Req>>;
|
|
11
11
|
//# sourceMappingURL=requestDecode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestDecode.js","sourceRoot":"","sources":["../../src/encoders/requestDecode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAClE;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,
|
|
1
|
+
{"version":3,"file":"requestDecode.js","sourceRoot":"","sources":["../../src/encoders/requestDecode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAClE;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,QAA4C;IAE5C,OAAO,KAAK,UAAU,iBAAiB,CAAC,MAAM;QAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,qBAAqB;YACrB,OAAO,IAAsB,CAAC;SAC/B;QAED,sDAAsD;QACtD,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,MAAwC,CAAC,CAAC;QACpF,OAAO,kBAAkB,CAAC,cAAc,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import {
|
|
2
|
+
import { MixedProtocolDefinition } from "../types.js";
|
|
3
3
|
/**
|
|
4
4
|
* Yields byte chunks for a `<request>`
|
|
5
5
|
* ```bnf
|
|
@@ -8,5 +8,5 @@ import { ProtocolDefinition } from "../types.js";
|
|
|
8
8
|
* Requests may contain no payload (e.g. /eth2/beacon_chain/req/metadata/1/)
|
|
9
9
|
* if so, it would yield no byte chunks
|
|
10
10
|
*/
|
|
11
|
-
export declare function requestEncode<Req>(protocol:
|
|
11
|
+
export declare function requestEncode<Req>(protocol: MixedProtocolDefinition<Req>, requestBody: Req): AsyncGenerator<Buffer>;
|
|
12
12
|
//# sourceMappingURL=requestEncode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestEncode.js","sourceRoot":"","sources":["../../src/encoders/requestEncode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"requestEncode.js","sourceRoot":"","sources":["../../src/encoders/requestEncode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,kBAAkB,EAA0B,MAAM,aAAa,CAAC;AACxE,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,aAAa,CAClC,QAAsC,EACtC,WAAgB;IAEhB,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEnD,IAAI,IAAI,IAAI,WAAW,KAAK,IAAI,EAAE;QAChC,KAAK,CAAC,CAAC,mBAAmB,CAAC,EAAC,IAAI,EAAE,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,EAAC,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;KACxG;AACH,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Uint8ArrayList } from "uint8arraylist";
|
|
2
2
|
import { ForkName } from "@lodestar/params";
|
|
3
3
|
import { BufferedSource } from "../utils/index.js";
|
|
4
|
-
import { ContextBytesFactory,
|
|
4
|
+
import { ContextBytesFactory, MixedProtocolDefinition } from "../types.js";
|
|
5
5
|
import { RespStatus } from "../interface.js";
|
|
6
6
|
/**
|
|
7
7
|
* Internal helper type to signal stream ended early
|
|
@@ -17,7 +17,7 @@ declare enum StreamStatus {
|
|
|
17
17
|
* result ::= "0" | "1" | "2" | ["128" ... "255"]
|
|
18
18
|
* ```
|
|
19
19
|
*/
|
|
20
|
-
export declare function responseDecode<Resp>(protocol:
|
|
20
|
+
export declare function responseDecode<Resp>(protocol: MixedProtocolDefinition, cbs: {
|
|
21
21
|
onFirstHeader: () => void;
|
|
22
22
|
onFirstResponseChunk: () => void;
|
|
23
23
|
}): (source: AsyncIterable<Uint8Array | Uint8ArrayList>) => AsyncIterable<Resp>;
|
|
@@ -42,7 +42,7 @@ export declare function readErrorMessage(bufferedSource: BufferedSource): Promis
|
|
|
42
42
|
* While `<context-bytes>` has a single type of `ForkDigest`, this function only parses the `ForkName`
|
|
43
43
|
* of the `ForkDigest` or defaults to `phase0`
|
|
44
44
|
*/
|
|
45
|
-
export declare function readContextBytes
|
|
45
|
+
export declare function readContextBytes(contextBytes: ContextBytesFactory<unknown>, bufferedSource: BufferedSource): Promise<ForkName>;
|
|
46
46
|
/**
|
|
47
47
|
* Consumes a stream source to read `<context-bytes>`, where it's a fixed-width 4 byte
|
|
48
48
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responseDecode.js","sourceRoot":"","sources":["../../src/encoders/responseDecode.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAE,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAC,kBAAkB,EAAC,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,gBAAgB,EAChB,gCAAgC,GAIjC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAE3C;;GAEG;AACH,IAAK,YAEJ;AAFD,WAAK,YAAY;IACf,sCAAsB,CAAA;AACxB,CAAC,EAFI,YAAY,KAAZ,YAAY,QAEhB;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,
|
|
1
|
+
{"version":3,"file":"responseDecode.js","sourceRoot":"","sources":["../../src/encoders/responseDecode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import {
|
|
2
|
+
import { MixedProtocolDefinition, EncodedPayload, ProtocolDefinition } from "../types.js";
|
|
3
3
|
import { RpcResponseStatusError } from "../interface.js";
|
|
4
4
|
/**
|
|
5
5
|
* Yields byte chunks for a `<response>` with a zero response code `<result>`
|
|
@@ -21,5 +21,5 @@ export declare function responseEncodeSuccess<Req, Resp>(protocol: ProtocolDefin
|
|
|
21
21
|
* Only the last `<response_chunk>` is allowed to have a non-zero error code, so this
|
|
22
22
|
* fn yields exactly one `<error_response>` and afterwards the stream must be terminated
|
|
23
23
|
*/
|
|
24
|
-
export declare function responseEncodeError(protocol: Pick<
|
|
24
|
+
export declare function responseEncodeError(protocol: Pick<MixedProtocolDefinition, "encoding">, status: RpcResponseStatusError, errorMessage: string): AsyncGenerator<Buffer>;
|
|
25
25
|
//# sourceMappingURL=responseEncode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responseEncode.js","sourceRoot":"","sources":["../../src/encoders/responseEncode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAC,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,gBAAgB,EAIhB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"responseEncode.js","sourceRoot":"","sources":["../../src/encoders/responseEncode.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,8 +40,8 @@ export async function readSszSnappyHeader(bufferedSource, type) {
|
|
|
40
40
|
// MUST validate: the unsigned protobuf varint used for the length-prefix MUST not be longer than 10 bytes
|
|
41
41
|
// Check for varintBytes > 0 to guard against NaN, or 0 values
|
|
42
42
|
const varintBytes = varint.decode.bytes;
|
|
43
|
-
if (varintBytes > MAX_VARINT_BYTES || !(varintBytes > 0)) {
|
|
44
|
-
throw new SszSnappyError({ code: SszSnappyErrorCode.INVALID_VARINT_BYTES_COUNT, bytes: varintBytes });
|
|
43
|
+
if (varintBytes === undefined || varintBytes > MAX_VARINT_BYTES || !(varintBytes > 0)) {
|
|
44
|
+
throw new SszSnappyError({ code: SszSnappyErrorCode.INVALID_VARINT_BYTES_COUNT, bytes: varintBytes !== null && varintBytes !== void 0 ? varintBytes : 0 });
|
|
45
45
|
}
|
|
46
46
|
buffer.consume(varintBytes);
|
|
47
47
|
// MUST validate: the length-prefix is within the expected size bounds derived from the payload SSZ type.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decode.js","sourceRoot":"","sources":["../../../src/encodingStrategies/sszSnappy/decode.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAG9C,OAAO,EAAC,sBAAsB,EAAC,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,cAAc,EAAE,kBAAkB,EAAC,MAAM,aAAa,CAAC;AAE/D,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAI,cAA8B,EAAE,IAAuB;IACnG,MAAM,aAAa,GAAG,MAAM,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAEtE,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IACrE,OAAO,kBAAkB,CAAI,KAAK,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,cAA8B,EAC9B,IAA0D;IAE1D,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,cAAc,EAAE;QACzC,0BAA0B;QAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,SAAS;SACV;QAED,2GAA2G;QAC3G,kFAAkF;QAClF,qFAAqF;QACrF,0DAA0D;QAC1D,IAAI,aAAqB,CAAC;QAC1B,IAAI;YACF,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;SAC/C;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,cAAc,CAAC,EAAC,IAAI,EAAE,kBAAkB,CAAC,0BAA0B,EAAE,KAAK,EAAE,QAAQ,EAAC,CAAC,CAAC;SAClG;QAED,0GAA0G;QAC1G,8DAA8D;QAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QACxC,IAAI,WAAW,GAAG,gBAAgB,IAAI,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"decode.js","sourceRoot":"","sources":["../../../src/encodingStrategies/sszSnappy/decode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { deneb } from "@lodestar/types";
|
|
2
|
-
import {
|
|
3
|
-
export declare const BeaconBlockAndBlobsSidecarByRoot:
|
|
2
|
+
import { DuplexProtocolDefinitionGenerator } from "../types.js";
|
|
3
|
+
export declare const BeaconBlockAndBlobsSidecarByRoot: DuplexProtocolDefinitionGenerator<deneb.BeaconBlockAndBlobsSidecarByRootRequest, deneb.SignedBeaconBlockAndBlobsSidecar>;
|
|
4
4
|
//# sourceMappingURL=BeaconBlockAndBlobsSidecarByRoot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BeaconBlockAndBlobsSidecarByRoot.js","sourceRoot":"","sources":["../../src/protocols/BeaconBlockAndBlobsSidecarByRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"BeaconBlockAndBlobsSidecarByRoot.js","sourceRoot":"","sources":["../../src/protocols/BeaconBlockAndBlobsSidecarByRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,gBAAgB,EAAqC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAE1F,gEAAgE;AAChE,MAAM,CAAC,MAAM,gCAAgC,GAGzC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACvB,OAAO;QACL,MAAM,EAAE,wCAAwC;QAChD,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,OAAO;QACP,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC;QACpE,+BAA+B;QAC/B,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC;QAC9D,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QACpE,YAAY,EAAE;YACZ,IAAI,EAAE,gBAAgB,CAAC,UAAU;YACjC,iBAAiB,EAAE,OAAO,CAAC,MAAM;YACjC,gBAAgB,EAAE,CAAC,EAAC,WAAW,EAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAC1F;QACD,iBAAiB,EAAE;YACjB,gMAAgM;YAChM,MAAM,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,KAAM,EAAC;YACzC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM;SACrC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { allForks, phase0 } from "@lodestar/types";
|
|
2
|
-
import {
|
|
3
|
-
export declare const BeaconBlocksByRange:
|
|
4
|
-
export declare const BeaconBlocksByRangeV2:
|
|
2
|
+
import { DuplexProtocolDefinitionGenerator } from "../types.js";
|
|
3
|
+
export declare const BeaconBlocksByRange: DuplexProtocolDefinitionGenerator<phase0.BeaconBlocksByRangeRequest, allForks.SignedBeaconBlock>;
|
|
4
|
+
export declare const BeaconBlocksByRangeV2: DuplexProtocolDefinitionGenerator<phase0.BeaconBlocksByRangeRequest, allForks.SignedBeaconBlock>;
|
|
5
5
|
//# sourceMappingURL=BeaconBlocksByRange.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BeaconBlocksByRange.js","sourceRoot":"","sources":["../../src/protocols/BeaconBlocksByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAmB,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAC,gBAAgB,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"BeaconBlocksByRange.js","sourceRoot":"","sources":["../../src/protocols/BeaconBlocksByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAmB,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAC,gBAAgB,EAAE,QAAQ,EAA6D,MAAM,aAAa,CAAC;AAEnH,yDAAyD;AACzD,MAAM,yBAAyB,GAG3B;IACF,MAAM,EAAE,wBAAwB;IAChC,QAAQ,EAAE,QAAQ,CAAC,UAAU;IAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,0BAA0B;IACxD,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE;IACvE,iBAAiB,EAAE;QACjB,sJAAsJ;QACtJ,MAAM,EAAE,EAAC,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAM,EAAC;QACxD,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK;KACpC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAG5B,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;IACxB,OAAO;QACL,GAAG,yBAAyB;QAC5B,OAAO,EAAE,CAAC;QACV,OAAO;QACP,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB;QAChD,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAC;KAC7C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAG9B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACvB,OAAO;QACL,GAAG,yBAAyB;QAC5B,OAAO,EAAE,CAAC;QACV,OAAO;QACP,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,iBAAiB;QAC3D,YAAY,EAAE;YACZ,IAAI,EAAE,gBAAgB,CAAC,UAAU;YACjC,iBAAiB,EAAE,OAAO,CAAC,MAAM;YACjC,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;SAC5E;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { allForks, phase0 } from "@lodestar/types";
|
|
2
|
-
import {
|
|
3
|
-
export declare const BeaconBlocksByRoot:
|
|
4
|
-
export declare const BeaconBlocksByRootV2:
|
|
2
|
+
import { DuplexProtocolDefinitionGenerator } from "../types.js";
|
|
3
|
+
export declare const BeaconBlocksByRoot: DuplexProtocolDefinitionGenerator<phase0.BeaconBlocksByRootRequest, allForks.SignedBeaconBlock>;
|
|
4
|
+
export declare const BeaconBlocksByRootV2: DuplexProtocolDefinitionGenerator<phase0.BeaconBlocksByRootRequest, allForks.SignedBeaconBlock>;
|
|
5
5
|
//# sourceMappingURL=BeaconBlocksByRoot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BeaconBlocksByRoot.js","sourceRoot":"","sources":["../../src/protocols/BeaconBlocksByRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"BeaconBlocksByRoot.js","sourceRoot":"","sources":["../../src/protocols/BeaconBlocksByRoot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,gBAAgB,EAAqC,QAAQ,EAA0B,MAAM,aAAa,CAAC;AAEnH,yDAAyD;AACzD,MAAM,wBAAwB,GAG1B;IACF,MAAM,EAAE,uBAAuB;IAC/B,QAAQ,EAAE,QAAQ,CAAC,UAAU;IAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,yBAAyB;IACvD,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACpE,iBAAiB,EAAE;QACjB,sJAAsJ;QACtJ,MAAM,EAAE,EAAC,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,KAAM,EAAC;QACzC,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM;KACrC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAG3B,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;IACxB,OAAO;QACL,GAAG,wBAAwB;QAC3B,OAAO,EAAE,CAAC;QACV,OAAO;QACP,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB;QAChD,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAC;KAC7C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAG7B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACvB,OAAO;QACL,GAAG,wBAAwB;QAC3B,OAAO,EAAE,CAAC;QACV,OAAO;QACP,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,iBAAiB;QAC3D,YAAY,EAAE;YACZ,IAAI,EAAE,gBAAgB,CAAC,UAAU;YACjC,iBAAiB,EAAE,OAAO,CAAC,MAAM;YACjC,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;SAC5E;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { deneb } from "@lodestar/types";
|
|
2
|
-
import {
|
|
3
|
-
export declare const BlobsSidecarsByRange:
|
|
2
|
+
import { DuplexProtocolDefinitionGenerator } from "../types.js";
|
|
3
|
+
export declare const BlobsSidecarsByRange: DuplexProtocolDefinitionGenerator<deneb.BlobsSidecarsByRangeRequest, deneb.BlobsSidecar>;
|
|
4
4
|
//# sourceMappingURL=BlobsSidecarsByRange.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlobsSidecarsByRange.js","sourceRoot":"","sources":["../../src/protocols/BlobsSidecarsByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAQ,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"BlobsSidecarsByRange.js","sourceRoot":"","sources":["../../src/protocols/BlobsSidecarsByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAQ,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAC,gBAAgB,EAAqC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAE1F,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAG7B,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACvB,OAAO;QACL,MAAM,EAAE,yBAAyB;QACjC,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,OAAO;QACP,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B;QACxD,+BAA+B;QAC/B,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY;QAC1C,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,KAAK,EAAE;QAC3D,YAAY,EAAE;YACZ,IAAI,EAAE,gBAAgB,CAAC,UAAU;YACjC,iBAAiB,EAAE,OAAO,CAAC,MAAM;YACjC,gBAAgB,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,eAAe,CAAC;SAC7F;QACD,iBAAiB,EAAE;YACjB,iMAAiM;YACjM,MAAM,EAAE,EAAC,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,KAAM,EAAC;YACxD,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK;SACpC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { phase0 } from "@lodestar/types";
|
|
2
|
-
import {
|
|
3
|
-
export declare const Goodbye:
|
|
2
|
+
import { DuplexProtocolDefinitionGenerator } from "../types.js";
|
|
3
|
+
export declare const Goodbye: DuplexProtocolDefinitionGenerator<phase0.Goodbye, phase0.Goodbye>;
|
|
4
4
|
//# sourceMappingURL=Goodbye.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Goodbye.js","sourceRoot":"","sources":["../../src/protocols/Goodbye.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"Goodbye.js","sourceRoot":"","sources":["../../src/protocols/Goodbye.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,gBAAgB,EAAqC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAE1F,gEAAgE;AAChE,MAAM,CAAC,MAAM,OAAO,GAAsE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;IAC9G,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,OAAO;QACP,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO;QACrC,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO;QACtC,cAAc,EAAE,IAAI;QACpB,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5C,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAC;QAC5C,iBAAiB,EAAE;YACjB,sJAAsJ;YACtJ,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAM,EAAC;SACxC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Root, allForks } from "@lodestar/types";
|
|
2
|
-
import {
|
|
3
|
-
export declare const LightClientBootstrap:
|
|
2
|
+
import { MixedProtocolDefinitionGenerator } from "../types.js";
|
|
3
|
+
export declare const LightClientBootstrap: MixedProtocolDefinitionGenerator<Root, allForks.LightClientBootstrap>;
|
|
4
4
|
//# sourceMappingURL=LightClientBootstrap.d.ts.map
|
|
@@ -4,22 +4,27 @@ import { toHex } from "@lodestar/utils";
|
|
|
4
4
|
import { Encoding } from "../types.js";
|
|
5
5
|
import { getContextBytesLightclient } from "./utils.js";
|
|
6
6
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
7
|
-
export const LightClientBootstrap = (modules, handler) => {
|
|
8
|
-
|
|
7
|
+
export const LightClientBootstrap = ((modules, handler) => {
|
|
8
|
+
const dialProtocol = {
|
|
9
9
|
method: "light_client_bootstrap",
|
|
10
10
|
version: 1,
|
|
11
11
|
encoding: Encoding.SSZ_SNAPPY,
|
|
12
|
-
handler,
|
|
13
12
|
requestType: () => ssz.Root,
|
|
14
13
|
responseType: (forkName) => isForkLightClient(forkName)
|
|
15
14
|
? ssz.allForksLightClient[forkName].LightClientBootstrap
|
|
16
15
|
: ssz.altair.LightClientBootstrap,
|
|
17
|
-
renderRequestBody: (req) => toHex(req),
|
|
18
16
|
contextBytes: getContextBytesLightclient((bootstrap) => modules.config.getForkName(bootstrap.header.beacon.slot), modules),
|
|
17
|
+
};
|
|
18
|
+
if (!handler)
|
|
19
|
+
return dialProtocol;
|
|
20
|
+
return {
|
|
21
|
+
...dialProtocol,
|
|
22
|
+
handler,
|
|
23
|
+
renderRequestBody: (req) => toHex(req),
|
|
19
24
|
inboundRateLimits: {
|
|
20
25
|
// As similar in the nature of `Status` protocol so we use the same rate limits.
|
|
21
26
|
byPeer: { quota: 5, quotaTimeMs: 15000 },
|
|
22
27
|
},
|
|
23
28
|
};
|
|
24
|
-
};
|
|
29
|
+
});
|
|
25
30
|
//# sourceMappingURL=LightClientBootstrap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightClientBootstrap.js","sourceRoot":"","sources":["../../src/protocols/LightClientBootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,GAAG,EAAW,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"LightClientBootstrap.js","sourceRoot":"","sources":["../../src/protocols/LightClientBootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,GAAG,EAAW,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAA6B,QAAQ,EAAmC,MAAM,aAAa,CAAC;AACnG,OAAO,EAAC,0BAA0B,EAAC,MAAM,YAAY,CAAC;AAEtD,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAA0E,CAAC,CAC1G,OAAO,EACP,OAAO,EACP,EAAE;IACF,MAAM,YAAY,GAAoE;QACpF,MAAM,EAAE,wBAAwB;QAChC,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI;QAC3B,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzB,iBAAiB,CAAC,QAAQ,CAAC;YACzB,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,oBAAoB;YACxD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,oBAAoB;QACrC,YAAY,EAAE,0BAA0B,CACtC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EACvE,OAAO,CACR;KACF,CAAC;IAEF,IAAI,CAAC,OAAO;QAAE,OAAO,YAAY,CAAC;IAElC,OAAO;QACL,GAAG,YAAY;QACf,OAAO;QACP,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;QACtC,iBAAiB,EAAE;YACjB,gFAAgF;YAChF,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAM,EAAC;SACxC;KACF,CAAC;AACJ,CAAC,CAA0E,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { allForks } from "@lodestar/types";
|
|
2
|
-
import {
|
|
3
|
-
export declare const LightClientFinalityUpdate:
|
|
2
|
+
import { MixedProtocolDefinitionGenerator } from "../types.js";
|
|
3
|
+
export declare const LightClientFinalityUpdate: MixedProtocolDefinitionGenerator<null, allForks.LightClientFinalityUpdate>;
|
|
4
4
|
//# sourceMappingURL=LightClientFinalityUpdate.d.ts.map
|
|
@@ -3,22 +3,27 @@ import { isForkLightClient } from "@lodestar/params";
|
|
|
3
3
|
import { Encoding } from "../types.js";
|
|
4
4
|
import { getContextBytesLightclient } from "./utils.js";
|
|
5
5
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
6
|
-
export const LightClientFinalityUpdate = (modules, handler) => {
|
|
7
|
-
|
|
6
|
+
export const LightClientFinalityUpdate = ((modules, handler) => {
|
|
7
|
+
const dialProtocol = {
|
|
8
8
|
method: "light_client_finality_update",
|
|
9
9
|
version: 1,
|
|
10
10
|
encoding: Encoding.SSZ_SNAPPY,
|
|
11
|
-
handler,
|
|
12
11
|
requestType: () => null,
|
|
13
12
|
responseType: (forkName) => isForkLightClient(forkName)
|
|
14
13
|
? ssz.allForksLightClient[forkName].LightClientFinalityUpdate
|
|
15
14
|
: ssz.altair.LightClientFinalityUpdate,
|
|
16
15
|
contextBytes: getContextBytesLightclient((update) => modules.config.getForkName(update.signatureSlot), modules),
|
|
16
|
+
};
|
|
17
|
+
if (!handler)
|
|
18
|
+
return dialProtocol;
|
|
19
|
+
return {
|
|
20
|
+
...dialProtocol,
|
|
21
|
+
handler,
|
|
17
22
|
inboundRateLimits: {
|
|
18
23
|
// Finality updates should not be requested more than once per epoch.
|
|
19
24
|
// Allow 2 per slot and a very safe bound until there's more testing of real usage.
|
|
20
25
|
byPeer: { quota: 2, quotaTimeMs: 12000 },
|
|
21
26
|
},
|
|
22
27
|
};
|
|
23
|
-
};
|
|
28
|
+
});
|
|
24
29
|
//# sourceMappingURL=LightClientFinalityUpdate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightClientFinalityUpdate.js","sourceRoot":"","sources":["../../src/protocols/LightClientFinalityUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAW,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,
|
|
1
|
+
{"version":3,"file":"LightClientFinalityUpdate.js","sourceRoot":"","sources":["../../src/protocols/LightClientFinalityUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAW,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAA6B,QAAQ,EAAmC,MAAM,aAAa,CAAC;AACnG,OAAO,EAAC,0BAA0B,EAAC,MAAM,YAAY,CAAC;AAEtD,gEAAgE;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAA+E,CAAC,CACpH,OAAO,EACP,OAAO,EACP,EAAE;IACF,MAAM,YAAY,GAAyE;QACzF,MAAM,EAAE,8BAA8B;QACtC,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI;QACvB,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzB,iBAAiB,CAAC,QAAQ,CAAC;YACzB,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,yBAAyB;YAC7D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,yBAAyB;QAC1C,YAAY,EAAE,0BAA0B,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;KAChH,CAAC;IAEF,IAAI,CAAC,OAAO;QAAE,OAAO,YAAY,CAAC;IAElC,OAAO;QACL,GAAG,YAAY;QACf,OAAO;QACP,iBAAiB,EAAE;YACjB,qEAAqE;YACrE,mFAAmF;YACnF,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAM,EAAC;SACxC;KACF,CAAC;AACJ,CAAC,CAA+E,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { allForks } from "@lodestar/types";
|
|
2
|
-
import {
|
|
3
|
-
export declare const LightClientOptimisticUpdate:
|
|
2
|
+
import { MixedProtocolDefinitionGenerator } from "../types.js";
|
|
3
|
+
export declare const LightClientOptimisticUpdate: MixedProtocolDefinitionGenerator<null, allForks.LightClientOptimisticUpdate>;
|
|
4
4
|
//# sourceMappingURL=LightClientOptimisticUpdate.d.ts.map
|
|
@@ -3,22 +3,27 @@ import { isForkLightClient } from "@lodestar/params";
|
|
|
3
3
|
import { Encoding } from "../types.js";
|
|
4
4
|
import { getContextBytesLightclient } from "./utils.js";
|
|
5
5
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
6
|
-
export const LightClientOptimisticUpdate = (modules, handler) => {
|
|
7
|
-
|
|
6
|
+
export const LightClientOptimisticUpdate = ((modules, handler) => {
|
|
7
|
+
const dialProtocol = {
|
|
8
8
|
method: "light_client_optimistic_update",
|
|
9
9
|
version: 1,
|
|
10
10
|
encoding: Encoding.SSZ_SNAPPY,
|
|
11
|
-
handler,
|
|
12
11
|
requestType: () => null,
|
|
13
12
|
responseType: (forkName) => isForkLightClient(forkName)
|
|
14
13
|
? ssz.allForksLightClient[forkName].LightClientOptimisticUpdate
|
|
15
14
|
: ssz.altair.LightClientOptimisticUpdate,
|
|
16
15
|
contextBytes: getContextBytesLightclient((update) => modules.config.getForkName(update.signatureSlot), modules),
|
|
16
|
+
};
|
|
17
|
+
if (!handler)
|
|
18
|
+
return dialProtocol;
|
|
19
|
+
return {
|
|
20
|
+
...dialProtocol,
|
|
21
|
+
handler,
|
|
17
22
|
inboundRateLimits: {
|
|
18
23
|
// Optimistic updates should not be requested more than once per slot.
|
|
19
24
|
// Allow 2 per slot and a very safe bound until there's more testing of real usage.
|
|
20
25
|
byPeer: { quota: 2, quotaTimeMs: 12000 },
|
|
21
26
|
},
|
|
22
27
|
};
|
|
23
|
-
};
|
|
28
|
+
});
|
|
24
29
|
//# sourceMappingURL=LightClientOptimisticUpdate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightClientOptimisticUpdate.js","sourceRoot":"","sources":["../../src/protocols/LightClientOptimisticUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAW,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,
|
|
1
|
+
{"version":3,"file":"LightClientOptimisticUpdate.js","sourceRoot":"","sources":["../../src/protocols/LightClientOptimisticUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAW,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAA6B,QAAQ,EAAmC,MAAM,aAAa,CAAC;AACnG,OAAO,EAAC,0BAA0B,EAAC,MAAM,YAAY,CAAC;AAEtD,gEAAgE;AAChE,MAAM,CAAC,MAAM,2BAA2B,GACtC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACpB,MAAM,YAAY,GAA2E;QAC3F,MAAM,EAAE,gCAAgC;QACxC,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI;QACvB,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzB,iBAAiB,CAAC,QAAQ,CAAC;YACzB,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,2BAA2B;YAC/D,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,2BAA2B;QAC5C,YAAY,EAAE,0BAA0B,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;KAChH,CAAC;IAEF,IAAI,CAAC,OAAO;QAAE,OAAO,YAAY,CAAC;IAElC,OAAO;QACL,GAAG,YAAY;QACf,OAAO;QACP,iBAAiB,EAAE;YACjB,sEAAsE;YACtE,mFAAmF;YACnF,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAM,EAAC;SACxC;KACF,CAAC;AACJ,CAAC,CAAiF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { altair, allForks } from "@lodestar/types";
|
|
2
|
-
import {
|
|
3
|
-
export declare const LightClientUpdatesByRange:
|
|
2
|
+
import { MixedProtocolDefinitionGenerator } from "../types.js";
|
|
3
|
+
export declare const LightClientUpdatesByRange: MixedProtocolDefinitionGenerator<altair.LightClientUpdatesByRange, allForks.LightClientUpdate>;
|
|
4
4
|
//# sourceMappingURL=LightClientUpdatesByRange.d.ts.map
|
|
@@ -3,21 +3,26 @@ import { ssz } from "@lodestar/types";
|
|
|
3
3
|
import { Encoding } from "../types.js";
|
|
4
4
|
import { getContextBytesLightclient } from "./utils.js";
|
|
5
5
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
6
|
-
export const LightClientUpdatesByRange = (modules, handler) => {
|
|
7
|
-
|
|
6
|
+
export const LightClientUpdatesByRange = ((modules, handler) => {
|
|
7
|
+
const dialProtocol = {
|
|
8
8
|
method: "light_client_updates_by_range",
|
|
9
9
|
version: 1,
|
|
10
10
|
encoding: Encoding.SSZ_SNAPPY,
|
|
11
|
-
handler,
|
|
12
11
|
requestType: () => ssz.altair.LightClientUpdatesByRange,
|
|
13
12
|
responseType: (forkName) => isForkLightClient(forkName) ? ssz.allForksLightClient[forkName].LightClientUpdate : ssz.altair.LightClientUpdate,
|
|
14
|
-
renderRequestBody: (req) => `${req.startPeriod},${req.count}`,
|
|
15
13
|
contextBytes: getContextBytesLightclient((update) => modules.config.getForkName(update.signatureSlot), modules),
|
|
14
|
+
};
|
|
15
|
+
if (!handler)
|
|
16
|
+
return dialProtocol;
|
|
17
|
+
return {
|
|
18
|
+
...dialProtocol,
|
|
19
|
+
handler,
|
|
20
|
+
renderRequestBody: (req) => `${req.startPeriod},${req.count}`,
|
|
16
21
|
inboundRateLimits: {
|
|
17
22
|
// Same rationale as for BeaconBlocksByRange
|
|
18
23
|
byPeer: { quota: MAX_REQUEST_LIGHT_CLIENT_UPDATES, quotaTimeMs: 10000 },
|
|
19
24
|
getRequestCount: (req) => req.count,
|
|
20
25
|
},
|
|
21
26
|
};
|
|
22
|
-
};
|
|
27
|
+
});
|
|
23
28
|
//# sourceMappingURL=LightClientUpdatesByRange.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LightClientUpdatesByRange.js","sourceRoot":"","sources":["../../src/protocols/LightClientUpdatesByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gCAAgC,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAS,GAAG,EAAW,MAAM,iBAAiB,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"LightClientUpdatesByRange.js","sourceRoot":"","sources":["../../src/protocols/LightClientUpdatesByRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gCAAgC,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAS,GAAG,EAAW,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAA6B,QAAQ,EAAmC,MAAM,aAAa,CAAC;AACnG,OAAO,EAAC,0BAA0B,EAAC,MAAM,YAAY,CAAC;AAEtD,gEAAgE;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAGlC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,YAAY,GAA6F;QAC7G,MAAM,EAAE,+BAA+B;QACvC,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,yBAAyB;QACvD,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CACzB,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,iBAAiB;QAClH,YAAY,EAAE,0BAA0B,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;KAChH,CAAC;IAEF,IAAI,CAAC,OAAO;QAAE,OAAO,YAAY,CAAC;IAElC,OAAO;QACL,GAAG,YAAY;QACf,OAAO;QACP,iBAAiB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,KAAK,EAAE;QAC7D,iBAAiB,EAAE;YACjB,4CAA4C;YAC5C,MAAM,EAAE,EAAC,KAAK,EAAE,gCAAgC,EAAE,WAAW,EAAE,KAAM,EAAC;YACtE,eAAe,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK;SACpC;KACF,CAAC;AACJ,CAAC,CAAmG,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { allForks } from "@lodestar/types";
|
|
2
|
-
import {
|
|
3
|
-
export declare const Metadata:
|
|
4
|
-
export declare const MetadataV2:
|
|
2
|
+
import { DuplexProtocolDefinitionGenerator } from "../types.js";
|
|
3
|
+
export declare const Metadata: DuplexProtocolDefinitionGenerator<null, allForks.Metadata>;
|
|
4
|
+
export declare const MetadataV2: DuplexProtocolDefinitionGenerator<null, allForks.Metadata>;
|
|
5
5
|
//# sourceMappingURL=Metadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Metadata.js","sourceRoot":"","sources":["../../src/protocols/Metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"Metadata.js","sourceRoot":"","sources":["../../src/protocols/Metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,gBAAgB,EAAqC,QAAQ,EAA0B,MAAM,aAAa,CAAC;AAEnH,yDAAyD;AACzD,MAAM,cAAc,GAGhB;IACF,MAAM,EAAE,UAAU;IAClB,QAAQ,EAAE,QAAQ,CAAC,UAAU;IAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI;IACvB,iBAAiB,EAAE;QACjB,sJAAsJ;QACtJ,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,IAAK,EAAC;KACvC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAA+D,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACvG,OAAO;QACL,GAAG,cAAc;QACjB,OAAO,EAAE,CAAC;QACV,OAAO;QACP,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ;QACvC,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAC;KAC7C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAA+D,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;IACzG,OAAO;QACL,GAAG,cAAc;QACjB,OAAO,EAAE,CAAC;QACV,OAAO;QACP,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ;QACvC,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAC;KAC7C,CAAC;AACJ,CAAC,CAAC"}
|
package/lib/protocols/Ping.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { phase0 } from "@lodestar/types";
|
|
2
|
-
import {
|
|
2
|
+
import { ReqRespHandler, ProtocolDefinition } from "../types.js";
|
|
3
3
|
export declare function Ping(handler: ReqRespHandler<phase0.Ping, phase0.Ping>): ProtocolDefinition<phase0.Ping, phase0.Ping>;
|
|
4
4
|
//# sourceMappingURL=Ping.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { phase0 } from "@lodestar/types";
|
|
2
|
-
import {
|
|
3
|
-
export declare const Status:
|
|
2
|
+
import { MixedProtocolDefinitionGenerator } from "../types.js";
|
|
3
|
+
export declare const Status: MixedProtocolDefinitionGenerator<phase0.Status, phase0.Status>;
|
|
4
4
|
//# sourceMappingURL=Status.d.ts.map
|
package/lib/protocols/Status.js
CHANGED
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import { ssz } from "@lodestar/types";
|
|
2
2
|
import { ContextBytesType, Encoding } from "../types.js";
|
|
3
3
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
4
|
-
export const Status = (_modules, handler) => {
|
|
5
|
-
|
|
4
|
+
export const Status = ((_modules, handler) => {
|
|
5
|
+
const dialProtocol = {
|
|
6
6
|
method: "status",
|
|
7
7
|
version: 1,
|
|
8
8
|
encoding: Encoding.SSZ_SNAPPY,
|
|
9
|
-
handler,
|
|
10
9
|
requestType: () => ssz.phase0.Status,
|
|
11
10
|
responseType: () => ssz.phase0.Status,
|
|
12
11
|
contextBytes: { type: ContextBytesType.Empty },
|
|
12
|
+
};
|
|
13
|
+
if (!handler)
|
|
14
|
+
return dialProtocol;
|
|
15
|
+
return {
|
|
16
|
+
...dialProtocol,
|
|
17
|
+
handler,
|
|
13
18
|
inboundRateLimits: {
|
|
14
19
|
// Rationale: https://github.com/sigp/lighthouse/blob/bf533c8e42cc73c35730e285c21df8add0195369/beacon_node/lighthouse_network/src/rpc/mod.rs#L118-L130
|
|
15
20
|
byPeer: { quota: 5, quotaTimeMs: 15000 },
|
|
16
21
|
},
|
|
17
22
|
};
|
|
18
|
-
};
|
|
23
|
+
});
|
|
19
24
|
//# sourceMappingURL=Status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Status.js","sourceRoot":"","sources":["../../src/protocols/Status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"Status.js","sourceRoot":"","sources":["../../src/protocols/Status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAC,gBAAgB,EAA8B,QAAQ,EAAmC,MAAM,aAAa,CAAC;AAErH,gEAAgE;AAChE,MAAM,CAAC,MAAM,MAAM,GAAmE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;IAC3G,MAAM,YAAY,GAA6D;QAC7E,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;QAC7B,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;QACpC,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM;QACrC,YAAY,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,KAAK,EAAC;KAC7C,CAAC;IAEF,IAAI,CAAC,OAAO;QAAE,OAAO,YAAY,CAAC;IAElC,OAAO;QACL,GAAG,YAAY;QACf,OAAO;QACP,iBAAiB,EAAE;YACjB,sJAAsJ;YACtJ,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAM,EAAC;SACxC;KACF,CAAC;AACJ,CAAC,CAAmE,CAAC"}
|
package/lib/request/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PeerId } from "@libp2p/interface-peer-id";
|
|
2
2
|
import { Libp2p } from "libp2p";
|
|
3
3
|
import { Logger } from "@lodestar/utils";
|
|
4
|
-
import {
|
|
4
|
+
import { MixedProtocolDefinition } from "../types.js";
|
|
5
5
|
import { RequestError, RequestErrorCode } from "./errors.js";
|
|
6
6
|
export { RequestError, RequestErrorCode };
|
|
7
7
|
export declare const DEFAULT_DIAL_TIMEOUT: number;
|
|
@@ -34,5 +34,5 @@ type SendRequestModules = {
|
|
|
34
34
|
* - Any part of the response_chunk fails validation. Throws a typed error (see `SszSnappyError`)
|
|
35
35
|
* - The maximum number of requested chunks are read. Does not throw, returns read chunks only.
|
|
36
36
|
*/
|
|
37
|
-
export declare function sendRequest<Req, Resp>({ logger, libp2p, peerClient }: SendRequestModules, peerId: PeerId, protocols:
|
|
37
|
+
export declare function sendRequest<Req, Resp>({ logger, libp2p, peerClient }: SendRequestModules, peerId: PeerId, protocols: MixedProtocolDefinition[], protocolIDs: string[], requestBody: Req, signal?: AbortSignal, opts?: SendRequestOpts, requestId?: number): AsyncIterable<Resp>;
|
|
38
38
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/request/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/request/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,SAAS,CAAC;AAI7B,OAAO,EAAC,YAAY,EAAU,WAAW,EAAE,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAEhF,OAAO,EAAC,iBAAiB,EAAE,eAAe,EAAC,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAC,aAAa,EAAC,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EAEpB,iCAAiC,GAClC,MAAM,aAAa,CAAC;AAErB,OAAO,EAAC,YAAY,EAAE,gBAAgB,EAAC,CAAC;AAExC,+HAA+H;AAC/H,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ;AACtD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ;AACtD,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AAmBxD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,WAAW,CAChC,EAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAqB,EAChD,MAAc,EACd,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/request/index.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
CHANGED
|
@@ -4,21 +4,39 @@ import { ForkName } from "@lodestar/params";
|
|
|
4
4
|
import { Slot } from "@lodestar/types";
|
|
5
5
|
import { LodestarError } from "@lodestar/utils";
|
|
6
6
|
import { RateLimiterQuota } from "./rate_limiter/rateLimiterGRCA.js";
|
|
7
|
+
/**
|
|
8
|
+
* The encoding of the request/response payload
|
|
9
|
+
*/
|
|
7
10
|
export declare enum EncodedPayloadType {
|
|
8
11
|
ssz = 0,
|
|
9
12
|
bytes = 1
|
|
10
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Wrapper for the request/response payload for SSZ type data
|
|
16
|
+
*/
|
|
11
17
|
export interface EncodedPayloadSsz<T> {
|
|
12
18
|
type: EncodedPayloadType.ssz;
|
|
13
19
|
data: T;
|
|
14
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Wrapper for the request/response payload for binary type data
|
|
23
|
+
*/
|
|
15
24
|
export interface EncodedPayloadBytes {
|
|
16
25
|
type: EncodedPayloadType.bytes;
|
|
17
26
|
bytes: Uint8Array;
|
|
18
27
|
contextBytes: ContextBytes;
|
|
19
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Wrapper for the request/response payload
|
|
31
|
+
*/
|
|
20
32
|
export type EncodedPayload<T> = EncodedPayloadSsz<T> | EncodedPayloadBytes;
|
|
33
|
+
/**
|
|
34
|
+
* Request handler
|
|
35
|
+
*/
|
|
21
36
|
export type ReqRespHandler<Req, Resp> = (req: Req, peerId: PeerId) => AsyncIterable<EncodedPayload<Resp>>;
|
|
37
|
+
/**
|
|
38
|
+
* ReqResp Protocol Deceleration
|
|
39
|
+
*/
|
|
22
40
|
export interface Protocol {
|
|
23
41
|
readonly protocolPrefix: string;
|
|
24
42
|
/** Protocol name identifier `beacon_blocks_by_range` or `status` */
|
|
@@ -27,11 +45,27 @@ export interface Protocol {
|
|
|
27
45
|
readonly version: number;
|
|
28
46
|
readonly encoding: Encoding;
|
|
29
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Inbound rate limiter quota for the protocol
|
|
50
|
+
*/
|
|
30
51
|
export interface InboundRateLimitQuota<Req = unknown> {
|
|
52
|
+
/**
|
|
53
|
+
* Will be tracked for the protocol per peer
|
|
54
|
+
*/
|
|
31
55
|
byPeer?: RateLimiterQuota;
|
|
56
|
+
/**
|
|
57
|
+
* Will be tracked regardless of the peer
|
|
58
|
+
*/
|
|
32
59
|
total?: RateLimiterQuota;
|
|
60
|
+
/**
|
|
61
|
+
* Some requests may be counted multiple e.g. getBlocksByRange
|
|
62
|
+
* for such implement this method else `1` will be used default
|
|
63
|
+
*/
|
|
33
64
|
getRequestCount?: (req: Req) => number;
|
|
34
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* ReqResp Protocol definition for full duplex protocols
|
|
68
|
+
*/
|
|
35
69
|
export interface ProtocolDefinition<Req = unknown, Resp = unknown> extends Omit<Protocol, "protocolPrefix"> {
|
|
36
70
|
handler: ReqRespHandler<Req, Resp>;
|
|
37
71
|
requestType: (fork: ForkName) => TypeSerializer<Req> | null;
|
|
@@ -41,10 +75,33 @@ export interface ProtocolDefinition<Req = unknown, Resp = unknown> extends Omit<
|
|
|
41
75
|
contextBytes: ContextBytesFactory<Resp>;
|
|
42
76
|
inboundRateLimits?: InboundRateLimitQuota<Req>;
|
|
43
77
|
}
|
|
44
|
-
|
|
78
|
+
/**
|
|
79
|
+
* ReqResp Protocol definition for dial only protocols
|
|
80
|
+
*/
|
|
81
|
+
export interface DialOnlyProtocolDefinition<Req = unknown, Resp = unknown> extends Omit<ProtocolDefinition<Req, Resp>, "handler" | "inboundRateLimits" | "renderRequestBody"> {
|
|
82
|
+
handler?: never;
|
|
83
|
+
inboundRateLimits?: never;
|
|
84
|
+
renderRequestBody?: never;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* ReqResp Protocol definition for full duplex and dial only protocols
|
|
88
|
+
*/
|
|
89
|
+
export type MixedProtocolDefinition<Req = unknown, Resp = unknown> = DialOnlyProtocolDefinition<Req, Resp> | ProtocolDefinition<Req, Resp>;
|
|
90
|
+
/**
|
|
91
|
+
* ReqResp protocol definition descriptor for full duplex and dial only protocols
|
|
92
|
+
* If handler is not provided, the protocol will be dial only
|
|
93
|
+
* If handler is provided, the protocol will be full duplex
|
|
94
|
+
*/
|
|
95
|
+
export type MixedProtocolDefinitionGenerator<Req, Res> = <H extends ReqRespHandler<Req, Res> | undefined = undefined>(modules: {
|
|
96
|
+
config: BeaconConfig;
|
|
97
|
+
}, handler?: H) => H extends undefined ? DialOnlyProtocolDefinition<Req, Res> : ProtocolDefinition<Req, Res>;
|
|
98
|
+
/**
|
|
99
|
+
* ReqResp protocol definition descriptor for full duplex protocols
|
|
100
|
+
*/
|
|
101
|
+
export type DuplexProtocolDefinitionGenerator<Req, Res> = (modules: {
|
|
45
102
|
config: BeaconConfig;
|
|
46
103
|
}, handler: ReqRespHandler<Req, Res>) => ProtocolDefinition<Req, Res>;
|
|
47
|
-
export type HandlerTypeFromMessage<T> = T extends
|
|
104
|
+
export type HandlerTypeFromMessage<T> = T extends DuplexProtocolDefinitionGenerator<infer Req, infer Res> ? ReqRespHandler<Req, Res> : never;
|
|
48
105
|
export declare const protocolPrefix = "/eth2/beacon_chain/req";
|
|
49
106
|
/**
|
|
50
107
|
* Available request/response encoding strategies:
|
|
@@ -54,12 +111,12 @@ export declare enum Encoding {
|
|
|
54
111
|
SSZ_SNAPPY = "ssz_snappy"
|
|
55
112
|
}
|
|
56
113
|
export declare const CONTEXT_BYTES_FORK_DIGEST_LENGTH = 4;
|
|
57
|
-
export type ContextBytesFactory<
|
|
114
|
+
export type ContextBytesFactory<Resp> = {
|
|
58
115
|
type: ContextBytesType.Empty;
|
|
59
116
|
} | {
|
|
60
117
|
type: ContextBytesType.ForkDigest;
|
|
61
118
|
forkDigestContext: ForkDigestContext & Pick<ForkConfig, "getForkName">;
|
|
62
|
-
forkFromResponse: (response:
|
|
119
|
+
forkFromResponse: (response: Resp) => ForkName;
|
|
63
120
|
};
|
|
64
121
|
export type ContextBytes = {
|
|
65
122
|
type: ContextBytesType.Empty;
|
|
@@ -91,6 +148,9 @@ export interface TypeSerializer<T> {
|
|
|
91
148
|
minSize: number;
|
|
92
149
|
equals(a: T, b: T): boolean;
|
|
93
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Rate limiter options for the requests
|
|
153
|
+
*/
|
|
94
154
|
export interface ReqRespRateLimiterOpts {
|
|
95
155
|
rateLimitMultiplier?: number;
|
|
96
156
|
onRateLimit?: (peer: PeerId, method: string) => void;
|
package/lib/types.js
CHANGED
package/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAG9C,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,yDAAG,CAAA;IACH,6DAAK,CAAA;AACP,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAG9C;;GAEG;AACH,MAAM,CAAN,IAAY,kBAGX;AAHD,WAAY,kBAAkB;IAC5B,yDAAG,CAAA;IACH,6DAAK,CAAA;AACP,CAAC,EAHW,kBAAkB,KAAlB,kBAAkB,QAG7B;AAkHD,MAAM,CAAC,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEvD;;;GAGG;AACH,MAAM,CAAN,IAAY,QAEX;AAFD,WAAY,QAAQ;IAClB,qCAAyB,CAAA;AAC3B,CAAC,EAFW,QAAQ,KAAR,QAAQ,QAEnB;AAED,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAYlD,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,oCAAoC;IACpC,yDAAK,CAAA;IACL,iJAAiJ;IACjJ,mEAAU,CAAA;AACZ,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;AAED,MAAM,CAAN,IAAY,0BAEX;AAFD,WAAY,0BAA0B;IACpC,2EAA6C,CAAA;AAC/C,CAAC,EAFW,0BAA0B,KAA1B,0BAA0B,QAErC;AAID,MAAM,OAAO,sBAAuB,SAAQ,aAAyC;CAAG"}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/ChainSafe/lodestar/issues"
|
|
13
13
|
},
|
|
14
|
-
"version": "1.
|
|
14
|
+
"version": "1.8.0-dev.fb90b02871",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -59,14 +59,14 @@
|
|
|
59
59
|
"@chainsafe/snappy-stream": "^5.1.2",
|
|
60
60
|
"@libp2p/interface-connection": "^3.0.2",
|
|
61
61
|
"@libp2p/interface-peer-id": "^2.0.1",
|
|
62
|
-
"@lodestar/config": "
|
|
63
|
-
"@lodestar/params": "
|
|
64
|
-
"@lodestar/types": "
|
|
65
|
-
"@lodestar/utils": "
|
|
66
|
-
"it-all": "^
|
|
62
|
+
"@lodestar/config": "1.8.0-dev.fb90b02871",
|
|
63
|
+
"@lodestar/params": "1.8.0-dev.fb90b02871",
|
|
64
|
+
"@lodestar/types": "1.8.0-dev.fb90b02871",
|
|
65
|
+
"@lodestar/utils": "1.8.0-dev.fb90b02871",
|
|
66
|
+
"it-all": "^3.0.1",
|
|
67
67
|
"snappyjs": "^0.7.0",
|
|
68
|
-
"stream-to-it": "^0.2.
|
|
69
|
-
"uint8arraylist": "^2.3
|
|
68
|
+
"stream-to-it": "^0.2.4",
|
|
69
|
+
"uint8arraylist": "^2.4.3",
|
|
70
70
|
"varint": "^6.0.0"
|
|
71
71
|
},
|
|
72
72
|
"peerDependencies": {
|
|
@@ -80,5 +80,5 @@
|
|
|
80
80
|
"reqresp",
|
|
81
81
|
"blockchain"
|
|
82
82
|
],
|
|
83
|
-
"gitHead": "
|
|
83
|
+
"gitHead": "1db37b1c290dcba4fdeed48a63e3aeb085a7cb5c"
|
|
84
84
|
}
|