@lodestar/reqresp 1.8.0 → 1.9.0-dev.06226b5f17
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/README.md +19 -7
- package/lib/ReqResp.d.ts +7 -7
- package/lib/ReqResp.js +4 -2
- package/lib/ReqResp.js.map +1 -1
- package/lib/encoders/requestDecode.d.ts +2 -2
- package/lib/encoders/requestDecode.js +3 -3
- package/lib/encoders/requestDecode.js.map +1 -1
- package/lib/encoders/requestEncode.d.ts +2 -2
- package/lib/encoders/requestEncode.js +2 -4
- package/lib/encoders/requestEncode.js.map +1 -1
- package/lib/encoders/responseDecode.d.ts +4 -4
- package/lib/encoders/responseDecode.js +7 -2
- package/lib/encoders/responseDecode.js.map +1 -1
- package/lib/encoders/responseEncode.d.ts +5 -3
- package/lib/encoders/responseEncode.js +7 -32
- package/lib/encoders/responseEncode.js.map +1 -1
- package/lib/encodingStrategies/index.d.ts +3 -3
- package/lib/encodingStrategies/index.js +2 -2
- package/lib/encodingStrategies/index.js.map +1 -1
- package/lib/encodingStrategies/sszSnappy/decode.d.ts +3 -3
- package/lib/encodingStrategies/sszSnappy/decode.js +1 -14
- package/lib/encodingStrategies/sszSnappy/decode.js.map +1 -1
- package/lib/encodingStrategies/sszSnappy/encode.d.ts +1 -2
- package/lib/encodingStrategies/sszSnappy/encode.js +2 -23
- package/lib/encodingStrategies/sszSnappy/encode.js.map +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/metrics.d.ts +2 -0
- package/lib/metrics.js +18 -2
- package/lib/metrics.js.map +1 -1
- package/lib/rate_limiter/ReqRespRateLimiter.d.ts +1 -1
- package/lib/rate_limiter/ReqRespRateLimiter.js.map +1 -1
- package/lib/request/errors.d.ts +9 -16
- package/lib/request/errors.js +10 -11
- package/lib/request/errors.js.map +1 -1
- package/lib/request/index.d.ts +4 -2
- package/lib/request/index.js +16 -18
- package/lib/request/index.js.map +1 -1
- package/lib/response/errors.d.ts +5 -2
- package/lib/response/errors.js +15 -2
- package/lib/response/errors.js.map +1 -1
- package/lib/response/index.d.ts +6 -4
- package/lib/response/index.js +19 -7
- package/lib/response/index.js.map +1 -1
- package/lib/types.d.ts +62 -79
- package/lib/types.js +0 -8
- package/lib/types.js.map +1 -1
- package/lib/utils/bufferedSource.d.ts +1 -1
- package/lib/utils/bufferedSource.js.map +1 -1
- package/lib/utils/collectExactOne.js +2 -2
- package/lib/utils/collectExactOne.js.map +1 -1
- package/lib/utils/protocolId.d.ts +2 -2
- package/lib/utils/protocolId.js.map +1 -1
- package/package.json +11 -10
- package/lib/protocols/BeaconBlockAndBlobsSidecarByRoot.d.ts +0 -4
- package/lib/protocols/BeaconBlockAndBlobsSidecarByRoot.js +0 -27
- package/lib/protocols/BeaconBlockAndBlobsSidecarByRoot.js.map +0 -1
- package/lib/protocols/BeaconBlocksByRange.d.ts +0 -5
- package/lib/protocols/BeaconBlocksByRange.js +0 -38
- package/lib/protocols/BeaconBlocksByRange.js.map +0 -1
- package/lib/protocols/BeaconBlocksByRoot.d.ts +0 -5
- package/lib/protocols/BeaconBlocksByRoot.js +0 -38
- package/lib/protocols/BeaconBlocksByRoot.js.map +0 -1
- package/lib/protocols/BlobsSidecarsByRange.d.ts +0 -4
- package/lib/protocols/BlobsSidecarsByRange.js +0 -27
- package/lib/protocols/BlobsSidecarsByRange.js.map +0 -1
- package/lib/protocols/Goodbye.d.ts +0 -4
- package/lib/protocols/Goodbye.js +0 -21
- package/lib/protocols/Goodbye.js.map +0 -1
- package/lib/protocols/LightClientBootstrap.d.ts +0 -4
- package/lib/protocols/LightClientBootstrap.js +0 -30
- package/lib/protocols/LightClientBootstrap.js.map +0 -1
- package/lib/protocols/LightClientFinalityUpdate.d.ts +0 -4
- package/lib/protocols/LightClientFinalityUpdate.js +0 -29
- package/lib/protocols/LightClientFinalityUpdate.js.map +0 -1
- package/lib/protocols/LightClientOptimisticUpdate.d.ts +0 -4
- package/lib/protocols/LightClientOptimisticUpdate.js +0 -29
- package/lib/protocols/LightClientOptimisticUpdate.js.map +0 -1
- package/lib/protocols/LightClientUpdatesByRange.d.ts +0 -4
- package/lib/protocols/LightClientUpdatesByRange.js +0 -28
- package/lib/protocols/LightClientUpdatesByRange.js.map +0 -1
- package/lib/protocols/Metadata.d.ts +0 -5
- package/lib/protocols/Metadata.js +0 -31
- package/lib/protocols/Metadata.js.map +0 -1
- package/lib/protocols/Ping.d.ts +0 -4
- package/lib/protocols/Ping.js +0 -20
- package/lib/protocols/Ping.js.map +0 -1
- package/lib/protocols/Status.d.ts +0 -4
- package/lib/protocols/Status.js +0 -24
- package/lib/protocols/Status.js.map +0 -1
- package/lib/protocols/index.d.ts +0 -13
- package/lib/protocols/index.js +0 -13
- package/lib/protocols/index.js.map +0 -1
- package/lib/protocols/utils.d.ts +0 -7
- package/lib/protocols/utils.js +0 -9
- package/lib/protocols/utils.js.map +0 -1
package/lib/types.d.ts
CHANGED
|
@@ -1,54 +1,40 @@
|
|
|
1
1
|
import { PeerId } from "@libp2p/interface-peer-id";
|
|
2
|
-
import { BeaconConfig,
|
|
2
|
+
import { BeaconConfig, ForkDigestContext } from "@lodestar/config";
|
|
3
3
|
import { ForkName } from "@lodestar/params";
|
|
4
|
-
import { Slot } from "@lodestar/types";
|
|
5
4
|
import { LodestarError } from "@lodestar/utils";
|
|
6
5
|
import { RateLimiterQuota } from "./rate_limiter/rateLimiterGRCA.js";
|
|
6
|
+
export declare const protocolPrefix = "/eth2/beacon_chain/req";
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
9
|
-
|
|
10
|
-
export declare enum EncodedPayloadType {
|
|
11
|
-
ssz = 0,
|
|
12
|
-
bytes = 1
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Wrapper for the request/response payload for SSZ type data
|
|
16
|
-
*/
|
|
17
|
-
export interface EncodedPayloadSsz<T> {
|
|
18
|
-
type: EncodedPayloadType.ssz;
|
|
19
|
-
data: T;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Wrapper for the request/response payload for binary type data
|
|
8
|
+
* Available request/response encoding strategies:
|
|
9
|
+
* https://github.com/ethereum/consensus-specs/blob/v1.1.10/specs/phase0/p2p-interface.md#encoding-strategies
|
|
23
10
|
*/
|
|
24
|
-
export
|
|
25
|
-
|
|
26
|
-
bytes: Uint8Array;
|
|
27
|
-
contextBytes: ContextBytes;
|
|
11
|
+
export declare enum Encoding {
|
|
12
|
+
SSZ_SNAPPY = "ssz_snappy"
|
|
28
13
|
}
|
|
14
|
+
export declare const CONTEXT_BYTES_FORK_DIGEST_LENGTH = 4;
|
|
29
15
|
/**
|
|
30
16
|
* Wrapper for the request/response payload
|
|
31
17
|
*/
|
|
32
|
-
export type
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
18
|
+
export type ResponseIncoming = {
|
|
19
|
+
data: Uint8Array;
|
|
20
|
+
fork: ForkName;
|
|
21
|
+
protocolVersion: number;
|
|
22
|
+
};
|
|
23
|
+
export type ResponseOutgoing = {
|
|
24
|
+
data: Uint8Array;
|
|
25
|
+
fork: ForkName;
|
|
26
|
+
};
|
|
37
27
|
/**
|
|
38
|
-
*
|
|
28
|
+
* Rate limiter options for the requests
|
|
39
29
|
*/
|
|
40
|
-
export interface
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
readonly method: string;
|
|
44
|
-
/** Version counter: `1`, `2` etc */
|
|
45
|
-
readonly version: number;
|
|
46
|
-
readonly encoding: Encoding;
|
|
30
|
+
export interface ReqRespRateLimiterOpts {
|
|
31
|
+
rateLimitMultiplier?: number;
|
|
32
|
+
onRateLimit?: (peer: PeerId, method: string) => void;
|
|
47
33
|
}
|
|
48
34
|
/**
|
|
49
35
|
* Inbound rate limiter quota for the protocol
|
|
50
36
|
*/
|
|
51
|
-
export interface InboundRateLimitQuota
|
|
37
|
+
export interface InboundRateLimitQuota {
|
|
52
38
|
/**
|
|
53
39
|
* Will be tracked for the protocol per peer
|
|
54
40
|
*/
|
|
@@ -61,24 +47,44 @@ export interface InboundRateLimitQuota<Req = unknown> {
|
|
|
61
47
|
* Some requests may be counted multiple e.g. getBlocksByRange
|
|
62
48
|
* for such implement this method else `1` will be used default
|
|
63
49
|
*/
|
|
64
|
-
getRequestCount?: (req:
|
|
50
|
+
getRequestCount?: (req: Uint8Array) => number;
|
|
65
51
|
}
|
|
52
|
+
export type ReqRespRequest = {
|
|
53
|
+
data: Uint8Array;
|
|
54
|
+
version: number;
|
|
55
|
+
};
|
|
66
56
|
/**
|
|
67
|
-
*
|
|
57
|
+
* Request handler
|
|
68
58
|
*/
|
|
69
|
-
export
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
59
|
+
export type ProtocolHandler = (req: ReqRespRequest, peerId: PeerId) => AsyncIterable<ResponseOutgoing>;
|
|
60
|
+
/**
|
|
61
|
+
* ReqResp Protocol Deceleration
|
|
62
|
+
*/
|
|
63
|
+
export interface ProtocolAttributes {
|
|
64
|
+
readonly protocolPrefix: string;
|
|
65
|
+
/** Protocol name identifier `beacon_blocks_by_range` or `status` */
|
|
66
|
+
readonly method: string;
|
|
67
|
+
/** Version counter: `1`, `2` etc */
|
|
68
|
+
readonly version: number;
|
|
69
|
+
readonly encoding: Encoding;
|
|
70
|
+
}
|
|
71
|
+
export interface ProtocolDescriptor extends Omit<ProtocolAttributes, "protocolPrefix"> {
|
|
72
|
+
contextBytes: ContextBytesFactory;
|
|
73
73
|
ignoreResponse?: boolean;
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* ReqResp Protocol definition for full duplex protocols
|
|
77
|
+
*/
|
|
78
|
+
export interface Protocol extends ProtocolDescriptor {
|
|
79
|
+
handler: ProtocolHandler;
|
|
80
|
+
inboundRateLimits?: InboundRateLimitQuota;
|
|
81
|
+
requestSizes: TypeSizes | null;
|
|
82
|
+
responseSizes: (fork: ForkName) => TypeSizes;
|
|
77
83
|
}
|
|
78
84
|
/**
|
|
79
85
|
* ReqResp Protocol definition for dial only protocols
|
|
80
86
|
*/
|
|
81
|
-
export interface
|
|
87
|
+
export interface DialOnlyProtocol extends Omit<Protocol, "handler" | "inboundRateLimits" | "renderRequestBody"> {
|
|
82
88
|
handler?: never;
|
|
83
89
|
inboundRateLimits?: never;
|
|
84
90
|
renderRequestBody?: never;
|
|
@@ -86,43 +92,33 @@ export interface DialOnlyProtocolDefinition<Req = unknown, Resp = unknown> exten
|
|
|
86
92
|
/**
|
|
87
93
|
* ReqResp Protocol definition for full duplex and dial only protocols
|
|
88
94
|
*/
|
|
89
|
-
export type
|
|
95
|
+
export type MixedProtocol = DialOnlyProtocol | Protocol;
|
|
90
96
|
/**
|
|
91
97
|
* ReqResp protocol definition descriptor for full duplex and dial only protocols
|
|
92
98
|
* If handler is not provided, the protocol will be dial only
|
|
93
99
|
* If handler is provided, the protocol will be full duplex
|
|
94
100
|
*/
|
|
95
|
-
export type
|
|
101
|
+
export type MixedProtocolGenerators = <H extends ProtocolHandler | undefined = undefined>(modules: {
|
|
96
102
|
config: BeaconConfig;
|
|
97
|
-
}, handler?: H) => H extends undefined ?
|
|
103
|
+
}, handler?: H) => H extends undefined ? DialOnlyProtocol : Protocol;
|
|
98
104
|
/**
|
|
99
105
|
* ReqResp protocol definition descriptor for full duplex protocols
|
|
100
106
|
*/
|
|
101
|
-
export type
|
|
107
|
+
export type ProtocolGenerator = (modules: {
|
|
102
108
|
config: BeaconConfig;
|
|
103
|
-
}, handler:
|
|
104
|
-
export type HandlerTypeFromMessage<T> = T extends
|
|
105
|
-
export
|
|
106
|
-
/**
|
|
107
|
-
* Available request/response encoding strategies:
|
|
108
|
-
* https://github.com/ethereum/consensus-specs/blob/v1.1.10/specs/phase0/p2p-interface.md#encoding-strategies
|
|
109
|
-
*/
|
|
110
|
-
export declare enum Encoding {
|
|
111
|
-
SSZ_SNAPPY = "ssz_snappy"
|
|
112
|
-
}
|
|
113
|
-
export declare const CONTEXT_BYTES_FORK_DIGEST_LENGTH = 4;
|
|
114
|
-
export type ContextBytesFactory<Resp> = {
|
|
109
|
+
}, handler: ProtocolHandler) => Protocol;
|
|
110
|
+
export type HandlerTypeFromMessage<T> = T extends ProtocolGenerator ? ProtocolHandler : never;
|
|
111
|
+
export type ContextBytesFactory = {
|
|
115
112
|
type: ContextBytesType.Empty;
|
|
116
113
|
} | {
|
|
117
114
|
type: ContextBytesType.ForkDigest;
|
|
118
|
-
forkDigestContext: ForkDigestContext
|
|
119
|
-
forkFromResponse: (response: Resp) => ForkName;
|
|
115
|
+
forkDigestContext: ForkDigestContext;
|
|
120
116
|
};
|
|
121
117
|
export type ContextBytes = {
|
|
122
118
|
type: ContextBytesType.Empty;
|
|
123
119
|
} | {
|
|
124
120
|
type: ContextBytesType.ForkDigest;
|
|
125
|
-
|
|
121
|
+
fork: ForkName;
|
|
126
122
|
};
|
|
127
123
|
export declare enum ContextBytesType {
|
|
128
124
|
/** 0 bytes chunk, can be ignored */
|
|
@@ -138,21 +134,8 @@ export type LightClientServerErrorType = {
|
|
|
138
134
|
};
|
|
139
135
|
export declare class LightClientServerError extends LodestarError<LightClientServerErrorType> {
|
|
140
136
|
}
|
|
141
|
-
|
|
142
|
-
* Lightweight interface of ssz Type<T>
|
|
143
|
-
*/
|
|
144
|
-
export interface TypeSerializer<T> {
|
|
145
|
-
serialize(data: T): Uint8Array;
|
|
146
|
-
deserialize(bytes: Uint8Array): T;
|
|
137
|
+
export type TypeSizes = {
|
|
147
138
|
maxSize: number;
|
|
148
139
|
minSize: number;
|
|
149
|
-
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Rate limiter options for the requests
|
|
153
|
-
*/
|
|
154
|
-
export interface ReqRespRateLimiterOpts {
|
|
155
|
-
rateLimitMultiplier?: number;
|
|
156
|
-
onRateLimit?: (peer: PeerId, method: string) => void;
|
|
157
|
-
}
|
|
140
|
+
};
|
|
158
141
|
//# sourceMappingURL=types.d.ts.map
|
package/lib/types.js
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
import { LodestarError } from "@lodestar/utils";
|
|
2
|
-
/**
|
|
3
|
-
* The encoding of the request/response payload
|
|
4
|
-
*/
|
|
5
|
-
export var EncodedPayloadType;
|
|
6
|
-
(function (EncodedPayloadType) {
|
|
7
|
-
EncodedPayloadType[EncodedPayloadType["ssz"] = 0] = "ssz";
|
|
8
|
-
EncodedPayloadType[EncodedPayloadType["bytes"] = 1] = "bytes";
|
|
9
|
-
})(EncodedPayloadType || (EncodedPayloadType = {}));
|
|
10
2
|
export const protocolPrefix = "/eth2/beacon_chain/req";
|
|
11
3
|
/**
|
|
12
4
|
* Available request/response encoding strategies:
|
package/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAG9C,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;AAuHlD,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"}
|
|
@@ -10,7 +10,7 @@ export declare class BufferedSource {
|
|
|
10
10
|
isDone: boolean;
|
|
11
11
|
private buffer;
|
|
12
12
|
private source;
|
|
13
|
-
constructor(source: AsyncGenerator<Uint8ArrayList>);
|
|
13
|
+
constructor(source: AsyncGenerator<Uint8ArrayList | Uint8Array>);
|
|
14
14
|
[Symbol.asyncIterator](): AsyncIterator<Uint8ArrayList>;
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=bufferedSource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bufferedSource.js","sourceRoot":"","sources":["../../src/utils/bufferedSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,OAAO,cAAc;IAKzB,YAAY,
|
|
1
|
+
{"version":3,"file":"bufferedSource.js","sourceRoot":"","sources":["../../src/utils/bufferedSource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,OAAO,cAAc;IAKzB,YAAY,MAAmD;QAJ/D,WAAM,GAAG,KAAK,CAAC;QAKb,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,CAAC,MAAM,CAAC,aAAa,CAAC;QACpB,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,IAAI,SAAS,GAAG,IAAI,CAAC;QAErB,OAAO;YACL,KAAK,CAAC,IAAI;gBACR,0DAA0D;gBAC1D,8DAA8D;gBAC9D,IAAI,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBACvC,SAAS,GAAG,KAAK,CAAC;oBAClB,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC;iBAC1C;gBAED,mEAAmE;gBACnE,MAAM,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBACtD,IAAI,IAAI,KAAK,IAAI,EAAE;oBACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;oBACnB,OAAO,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAC,CAAC;iBACvC;qBAAM;oBACL,qEAAqE;oBACrE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC1B,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC;iBAC1C;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RequestErrorCode,
|
|
1
|
+
import { RequestErrorCode, RequestError } from "../request/errors.js";
|
|
2
2
|
/**
|
|
3
3
|
* Sink for `<response_chunk>*`, from
|
|
4
4
|
* ```bnf
|
|
@@ -10,6 +10,6 @@ export async function collectExactOne(source) {
|
|
|
10
10
|
for await (const response of source) {
|
|
11
11
|
return response;
|
|
12
12
|
}
|
|
13
|
-
throw new
|
|
13
|
+
throw new RequestError({ code: RequestErrorCode.EMPTY_RESPONSE });
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=collectExactOne.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collectExactOne.js","sourceRoot":"","sources":["../../src/utils/collectExactOne.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"collectExactOne.js","sourceRoot":"","sources":["../../src/utils/collectExactOne.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAE,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAEpE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAI,MAAwB;IAC/D,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,MAAM,EAAE;QACnC,OAAO,QAAQ,CAAC;KACjB;IACD,MAAM,IAAI,YAAY,CAAC,EAAC,IAAI,EAAE,gBAAgB,CAAC,cAAc,EAAC,CAAC,CAAC;AAClE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Encoding,
|
|
1
|
+
import { Encoding, ProtocolAttributes } from "../types.js";
|
|
2
2
|
/**
|
|
3
3
|
* https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/phase0/p2p-interface.md#protocol-identification
|
|
4
4
|
*/
|
|
@@ -6,5 +6,5 @@ export declare function formatProtocolID(protocolPrefix: string, method: string,
|
|
|
6
6
|
/**
|
|
7
7
|
* https://github.com/ethereum/consensus-specs/blob/v1.2.0/specs/phase0/p2p-interface.md#protocol-identification
|
|
8
8
|
*/
|
|
9
|
-
export declare function parseProtocolID(protocolId: string):
|
|
9
|
+
export declare function parseProtocolID(protocolId: string): ProtocolAttributes;
|
|
10
10
|
//# sourceMappingURL=protocolId.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocolId.js","sourceRoot":"","sources":["../../src/utils/protocolId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"protocolId.js","sourceRoot":"","sources":["../../src/utils/protocolId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAqB,MAAM,aAAa,CAAC;AAEzD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,cAAsB,EAAE,MAAc,EAAE,OAAe,EAAE,QAAkB;IAC1G,OAAO,GAAG,cAAc,IAAI,MAAM,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACrB,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;KACvD;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAa,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAC/C,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;KAC5E;IAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE;QACjD,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;KAC3E;IAED,6CAA6C;IAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAEpD,mGAAmG;IACnG,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEzC,wFAAwF;IACxF,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEpE,OAAO;QACL,cAAc;QACd,MAAM;QACN,OAAO;QACP,QAAQ;KACT,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -11,15 +11,12 @@
|
|
|
11
11
|
"bugs": {
|
|
12
12
|
"url": "https://github.com/ChainSafe/lodestar/issues"
|
|
13
13
|
},
|
|
14
|
-
"version": "1.
|
|
14
|
+
"version": "1.9.0-dev.06226b5f17",
|
|
15
15
|
"type": "module",
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
18
18
|
"import": "./lib/index.js"
|
|
19
19
|
},
|
|
20
|
-
"./protocols": {
|
|
21
|
-
"import": "./lib/protocols/index.js"
|
|
22
|
-
},
|
|
23
20
|
"./utils": {
|
|
24
21
|
"import": "./lib/utils/index.js"
|
|
25
22
|
}
|
|
@@ -44,6 +41,7 @@
|
|
|
44
41
|
"scripts": {
|
|
45
42
|
"clean": "rm -rf lib && rm -f *.tsbuildinfo",
|
|
46
43
|
"build": "tsc -p tsconfig.build.json",
|
|
44
|
+
"build:watch": "yarn run build --watch",
|
|
47
45
|
"build:release": "yarn clean && yarn run build",
|
|
48
46
|
"check-build": "node -e \"(async function() { await import('./lib/index.js') })()\"",
|
|
49
47
|
"check-types": "tsc",
|
|
@@ -59,18 +57,21 @@
|
|
|
59
57
|
"@chainsafe/snappy-stream": "^5.1.2",
|
|
60
58
|
"@libp2p/interface-connection": "^3.0.2",
|
|
61
59
|
"@libp2p/interface-peer-id": "^2.0.1",
|
|
62
|
-
"@lodestar/config": "
|
|
63
|
-
"@lodestar/params": "
|
|
64
|
-
"@lodestar/
|
|
65
|
-
"@lodestar/utils": "^1.8.0",
|
|
60
|
+
"@lodestar/config": "1.9.0-dev.06226b5f17",
|
|
61
|
+
"@lodestar/params": "1.9.0-dev.06226b5f17",
|
|
62
|
+
"@lodestar/utils": "1.9.0-dev.06226b5f17",
|
|
66
63
|
"it-all": "^3.0.1",
|
|
67
64
|
"snappyjs": "^0.7.0",
|
|
68
65
|
"stream-to-it": "^0.2.4",
|
|
69
66
|
"uint8arraylist": "^2.4.3",
|
|
70
67
|
"varint": "^6.0.0"
|
|
71
68
|
},
|
|
69
|
+
"devDependencies": {
|
|
70
|
+
"@lodestar/logger": "1.9.0-dev.06226b5f17",
|
|
71
|
+
"@lodestar/types": "1.9.0-dev.06226b5f17"
|
|
72
|
+
},
|
|
72
73
|
"peerDependencies": {
|
|
73
|
-
"libp2p": "0.
|
|
74
|
+
"libp2p": "~0.42.2"
|
|
74
75
|
},
|
|
75
76
|
"keywords": [
|
|
76
77
|
"ethereum",
|
|
@@ -80,5 +81,5 @@
|
|
|
80
81
|
"reqresp",
|
|
81
82
|
"blockchain"
|
|
82
83
|
],
|
|
83
|
-
"gitHead": "
|
|
84
|
+
"gitHead": "c3b576af944902ba4b3c6283cf7323236e47a8ff"
|
|
84
85
|
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { deneb } from "@lodestar/types";
|
|
2
|
-
import { DuplexProtocolDefinitionGenerator } from "../types.js";
|
|
3
|
-
export declare const BeaconBlockAndBlobsSidecarByRoot: DuplexProtocolDefinitionGenerator<deneb.BeaconBlockAndBlobsSidecarByRootRequest, deneb.SignedBeaconBlockAndBlobsSidecar>;
|
|
4
|
-
//# sourceMappingURL=BeaconBlockAndBlobsSidecarByRoot.d.ts.map
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { ssz } from "@lodestar/types";
|
|
2
|
-
import { toHex } from "@lodestar/utils";
|
|
3
|
-
import { ContextBytesType, Encoding } from "../types.js";
|
|
4
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
5
|
-
export const BeaconBlockAndBlobsSidecarByRoot = (modules, handler) => {
|
|
6
|
-
return {
|
|
7
|
-
method: "beacon_block_and_blobs_sidecar_by_root",
|
|
8
|
-
version: 1,
|
|
9
|
-
encoding: Encoding.SSZ_SNAPPY,
|
|
10
|
-
handler,
|
|
11
|
-
requestType: () => ssz.deneb.BeaconBlockAndBlobsSidecarByRootRequest,
|
|
12
|
-
// TODO: Make it fork compliant
|
|
13
|
-
responseType: () => ssz.deneb.SignedBeaconBlockAndBlobsSidecar,
|
|
14
|
-
renderRequestBody: (req) => req.map((root) => toHex(root)).join(","),
|
|
15
|
-
contextBytes: {
|
|
16
|
-
type: ContextBytesType.ForkDigest,
|
|
17
|
-
forkDigestContext: modules.config,
|
|
18
|
-
forkFromResponse: ({ beaconBlock }) => modules.config.getForkName(beaconBlock.message.slot),
|
|
19
|
-
},
|
|
20
|
-
inboundRateLimits: {
|
|
21
|
-
// TODO DENEB: For now same value as BeaconBlocksByRoot https://github.com/sigp/lighthouse/blob/bf533c8e42cc73c35730e285c21df8add0195369/beacon_node/lighthouse_network/src/rpc/mod.rs#L118-L130
|
|
22
|
-
byPeer: { quota: 128, quotaTimeMs: 10000 },
|
|
23
|
-
getRequestCount: (req) => req.length,
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=BeaconBlockAndBlobsSidecarByRoot.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
import { allForks, phase0 } from "@lodestar/types";
|
|
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
|
-
//# sourceMappingURL=BeaconBlocksByRange.d.ts.map
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { MAX_REQUEST_BLOCKS } from "@lodestar/params";
|
|
2
|
-
import { ssz } from "@lodestar/types";
|
|
3
|
-
import { ContextBytesType, Encoding } from "../types.js";
|
|
4
|
-
/* eslint-disable @typescript-eslint/naming-convention */
|
|
5
|
-
const BeaconBlocksByRangeCommon = {
|
|
6
|
-
method: "beacon_blocks_by_range",
|
|
7
|
-
encoding: Encoding.SSZ_SNAPPY,
|
|
8
|
-
requestType: () => ssz.phase0.BeaconBlocksByRangeRequest,
|
|
9
|
-
renderRequestBody: (req) => `${req.startSlot},${req.step},${req.count}`,
|
|
10
|
-
inboundRateLimits: {
|
|
11
|
-
// Rationale: https://github.com/sigp/lighthouse/blob/bf533c8e42cc73c35730e285c21df8add0195369/beacon_node/lighthouse_network/src/rpc/mod.rs#L118-L130
|
|
12
|
-
byPeer: { quota: MAX_REQUEST_BLOCKS, quotaTimeMs: 10000 },
|
|
13
|
-
getRequestCount: (req) => req.count,
|
|
14
|
-
},
|
|
15
|
-
};
|
|
16
|
-
export const BeaconBlocksByRange = (_modules, handler) => {
|
|
17
|
-
return {
|
|
18
|
-
...BeaconBlocksByRangeCommon,
|
|
19
|
-
version: 1,
|
|
20
|
-
handler,
|
|
21
|
-
responseType: () => ssz.phase0.SignedBeaconBlock,
|
|
22
|
-
contextBytes: { type: ContextBytesType.Empty },
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
export const BeaconBlocksByRangeV2 = (modules, handler) => {
|
|
26
|
-
return {
|
|
27
|
-
...BeaconBlocksByRangeCommon,
|
|
28
|
-
version: 2,
|
|
29
|
-
handler,
|
|
30
|
-
responseType: (forkName) => ssz[forkName].SignedBeaconBlock,
|
|
31
|
-
contextBytes: {
|
|
32
|
-
type: ContextBytesType.ForkDigest,
|
|
33
|
-
forkDigestContext: modules.config,
|
|
34
|
-
forkFromResponse: (block) => modules.config.getForkName(block.message.slot),
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
//# sourceMappingURL=BeaconBlocksByRange.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
import { allForks, phase0 } from "@lodestar/types";
|
|
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
|
-
//# sourceMappingURL=BeaconBlocksByRoot.d.ts.map
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { ssz } from "@lodestar/types";
|
|
2
|
-
import { toHex } from "@lodestar/utils";
|
|
3
|
-
import { ContextBytesType, Encoding } from "../types.js";
|
|
4
|
-
/* eslint-disable @typescript-eslint/naming-convention */
|
|
5
|
-
const BeaconBlocksByRootCommon = {
|
|
6
|
-
method: "beacon_blocks_by_root",
|
|
7
|
-
encoding: Encoding.SSZ_SNAPPY,
|
|
8
|
-
requestType: () => ssz.phase0.BeaconBlocksByRootRequest,
|
|
9
|
-
renderRequestBody: (req) => req.map((root) => toHex(root)).join(","),
|
|
10
|
-
inboundRateLimits: {
|
|
11
|
-
// Rationale: https://github.com/sigp/lighthouse/blob/bf533c8e42cc73c35730e285c21df8add0195369/beacon_node/lighthouse_network/src/rpc/mod.rs#L118-L130
|
|
12
|
-
byPeer: { quota: 128, quotaTimeMs: 10000 },
|
|
13
|
-
getRequestCount: (req) => req.length,
|
|
14
|
-
},
|
|
15
|
-
};
|
|
16
|
-
export const BeaconBlocksByRoot = (_modules, handler) => {
|
|
17
|
-
return {
|
|
18
|
-
...BeaconBlocksByRootCommon,
|
|
19
|
-
version: 1,
|
|
20
|
-
handler,
|
|
21
|
-
responseType: () => ssz.phase0.SignedBeaconBlock,
|
|
22
|
-
contextBytes: { type: ContextBytesType.Empty },
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
export const BeaconBlocksByRootV2 = (modules, handler) => {
|
|
26
|
-
return {
|
|
27
|
-
...BeaconBlocksByRootCommon,
|
|
28
|
-
version: 2,
|
|
29
|
-
handler,
|
|
30
|
-
responseType: (forkName) => ssz[forkName].SignedBeaconBlock,
|
|
31
|
-
contextBytes: {
|
|
32
|
-
type: ContextBytesType.ForkDigest,
|
|
33
|
-
forkDigestContext: modules.config,
|
|
34
|
-
forkFromResponse: (block) => modules.config.getForkName(block.message.slot),
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
};
|
|
38
|
-
//# sourceMappingURL=BeaconBlocksByRoot.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
import { deneb } from "@lodestar/types";
|
|
2
|
-
import { DuplexProtocolDefinitionGenerator } from "../types.js";
|
|
3
|
-
export declare const BlobsSidecarsByRange: DuplexProtocolDefinitionGenerator<deneb.BlobsSidecarsByRangeRequest, deneb.BlobsSidecar>;
|
|
4
|
-
//# sourceMappingURL=BlobsSidecarsByRange.d.ts.map
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { MAX_REQUEST_BLOCKS } from "@lodestar/params";
|
|
2
|
-
import { ssz } from "@lodestar/types";
|
|
3
|
-
import { ContextBytesType, Encoding } from "../types.js";
|
|
4
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
5
|
-
export const BlobsSidecarsByRange = (modules, handler) => {
|
|
6
|
-
return {
|
|
7
|
-
method: "blobs_sidecars_by_range",
|
|
8
|
-
version: 1,
|
|
9
|
-
encoding: Encoding.SSZ_SNAPPY,
|
|
10
|
-
handler,
|
|
11
|
-
requestType: () => ssz.deneb.BlobsSidecarsByRangeRequest,
|
|
12
|
-
// TODO: Make it fork compliant
|
|
13
|
-
responseType: () => ssz.deneb.BlobsSidecar,
|
|
14
|
-
renderRequestBody: (req) => `${req.startSlot},${req.count}`,
|
|
15
|
-
contextBytes: {
|
|
16
|
-
type: ContextBytesType.ForkDigest,
|
|
17
|
-
forkDigestContext: modules.config,
|
|
18
|
-
forkFromResponse: (blobsSidecar) => modules.config.getForkName(blobsSidecar.beaconBlockSlot),
|
|
19
|
-
},
|
|
20
|
-
inboundRateLimits: {
|
|
21
|
-
// TODO DENEB: For now same value as BeaconBlocksByRange https://github.com/sigp/lighthouse/blob/bf533c8e42cc73c35730e285c21df8add0195369/beacon_node/lighthouse_network/src/rpc/mod.rs#L118-L130
|
|
22
|
-
byPeer: { quota: MAX_REQUEST_BLOCKS, quotaTimeMs: 10000 },
|
|
23
|
-
getRequestCount: (req) => req.count,
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=BlobsSidecarsByRange.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/lib/protocols/Goodbye.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { ssz } from "@lodestar/types";
|
|
2
|
-
import { ContextBytesType, Encoding } from "../types.js";
|
|
3
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
4
|
-
export const Goodbye = (_modules, handler) => {
|
|
5
|
-
return {
|
|
6
|
-
method: "goodbye",
|
|
7
|
-
version: 1,
|
|
8
|
-
encoding: Encoding.SSZ_SNAPPY,
|
|
9
|
-
handler,
|
|
10
|
-
requestType: () => ssz.phase0.Goodbye,
|
|
11
|
-
responseType: () => ssz.phase0.Goodbye,
|
|
12
|
-
ignoreResponse: true,
|
|
13
|
-
renderRequestBody: (req) => req.toString(10),
|
|
14
|
-
contextBytes: { type: ContextBytesType.Empty },
|
|
15
|
-
inboundRateLimits: {
|
|
16
|
-
// Rationale: https://github.com/sigp/lighthouse/blob/bf533c8e42cc73c35730e285c21df8add0195369/beacon_node/lighthouse_network/src/rpc/mod.rs#L118-L130
|
|
17
|
-
byPeer: { quota: 1, quotaTimeMs: 10000 },
|
|
18
|
-
},
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=Goodbye.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
import { Root, allForks } from "@lodestar/types";
|
|
2
|
-
import { MixedProtocolDefinitionGenerator } from "../types.js";
|
|
3
|
-
export declare const LightClientBootstrap: MixedProtocolDefinitionGenerator<Root, allForks.LightClientBootstrap>;
|
|
4
|
-
//# sourceMappingURL=LightClientBootstrap.d.ts.map
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { ssz } from "@lodestar/types";
|
|
2
|
-
import { isForkLightClient } from "@lodestar/params";
|
|
3
|
-
import { toHex } from "@lodestar/utils";
|
|
4
|
-
import { Encoding } from "../types.js";
|
|
5
|
-
import { getContextBytesLightclient } from "./utils.js";
|
|
6
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
7
|
-
export const LightClientBootstrap = ((modules, handler) => {
|
|
8
|
-
const dialProtocol = {
|
|
9
|
-
method: "light_client_bootstrap",
|
|
10
|
-
version: 1,
|
|
11
|
-
encoding: Encoding.SSZ_SNAPPY,
|
|
12
|
-
requestType: () => ssz.Root,
|
|
13
|
-
responseType: (forkName) => isForkLightClient(forkName)
|
|
14
|
-
? ssz.allForksLightClient[forkName].LightClientBootstrap
|
|
15
|
-
: ssz.altair.LightClientBootstrap,
|
|
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),
|
|
24
|
-
inboundRateLimits: {
|
|
25
|
-
// As similar in the nature of `Status` protocol so we use the same rate limits.
|
|
26
|
-
byPeer: { quota: 5, quotaTimeMs: 15000 },
|
|
27
|
-
},
|
|
28
|
-
};
|
|
29
|
-
});
|
|
30
|
-
//# sourceMappingURL=LightClientBootstrap.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
import { allForks } from "@lodestar/types";
|
|
2
|
-
import { MixedProtocolDefinitionGenerator } from "../types.js";
|
|
3
|
-
export declare const LightClientFinalityUpdate: MixedProtocolDefinitionGenerator<null, allForks.LightClientFinalityUpdate>;
|
|
4
|
-
//# sourceMappingURL=LightClientFinalityUpdate.d.ts.map
|