@lodestar/beacon-node 1.42.0-dev.7e96447c23 → 1.42.0-dev.b10dfaca8d

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.
Files changed (60) hide show
  1. package/lib/chain/chain.d.ts +1 -0
  2. package/lib/chain/chain.d.ts.map +1 -1
  3. package/lib/chain/chain.js +14 -0
  4. package/lib/chain/chain.js.map +1 -1
  5. package/lib/chain/interface.d.ts +1 -0
  6. package/lib/chain/interface.d.ts.map +1 -1
  7. package/lib/network/gossip/topic.d.ts +2 -729
  8. package/lib/network/gossip/topic.d.ts.map +1 -1
  9. package/lib/network/interface.d.ts +3 -1
  10. package/lib/network/interface.d.ts.map +1 -1
  11. package/lib/network/network.d.ts +3 -1
  12. package/lib/network/network.d.ts.map +1 -1
  13. package/lib/network/network.js +6 -0
  14. package/lib/network/network.js.map +1 -1
  15. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  16. package/lib/network/reqresp/ReqRespBeaconNode.js +9 -0
  17. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  18. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.d.ts +8 -0
  19. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.d.ts.map +1 -0
  20. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js +69 -0
  21. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js.map +1 -0
  22. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.d.ts +6 -0
  23. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.d.ts.map +1 -0
  24. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js +28 -0
  25. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js.map +1 -0
  26. package/lib/network/reqresp/handlers/index.d.ts.map +1 -1
  27. package/lib/network/reqresp/handlers/index.js +11 -1
  28. package/lib/network/reqresp/handlers/index.js.map +1 -1
  29. package/lib/network/reqresp/protocols.d.ts +2 -0
  30. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  31. package/lib/network/reqresp/protocols.js +10 -0
  32. package/lib/network/reqresp/protocols.js.map +1 -1
  33. package/lib/network/reqresp/rateLimit.d.ts.map +1 -1
  34. package/lib/network/reqresp/rateLimit.js +8 -0
  35. package/lib/network/reqresp/rateLimit.js.map +1 -1
  36. package/lib/network/reqresp/score.d.ts.map +1 -1
  37. package/lib/network/reqresp/score.js +2 -0
  38. package/lib/network/reqresp/score.js.map +1 -1
  39. package/lib/network/reqresp/types.d.ts +8 -2
  40. package/lib/network/reqresp/types.d.ts.map +1 -1
  41. package/lib/network/reqresp/types.js +7 -1
  42. package/lib/network/reqresp/types.js.map +1 -1
  43. package/lib/util/types.d.ts +2 -0
  44. package/lib/util/types.d.ts.map +1 -1
  45. package/lib/util/types.js +1 -0
  46. package/lib/util/types.js.map +1 -1
  47. package/package.json +15 -15
  48. package/src/chain/chain.ts +18 -0
  49. package/src/chain/interface.ts +1 -0
  50. package/src/network/interface.ts +14 -1
  51. package/src/network/network.ts +29 -1
  52. package/src/network/reqresp/ReqRespBeaconNode.ts +13 -0
  53. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts +94 -0
  54. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts +43 -0
  55. package/src/network/reqresp/handlers/index.ts +12 -0
  56. package/src/network/reqresp/protocols.ts +12 -0
  57. package/src/network/reqresp/rateLimit.ts +18 -0
  58. package/src/network/reqresp/score.ts +2 -0
  59. package/src/network/reqresp/types.ts +13 -0
  60. package/src/util/types.ts +6 -0
@@ -1 +1 @@
1
- {"version":3,"file":"rateLimit.d.ts","sourceRoot":"","sources":["../../../src/network/reqresp/rateLimit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,QAAQ,EAAuE,MAAM,kBAAkB,CAAC;AAChH,OAAO,EAAC,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAC,aAAa,EAA8C,MAAM,YAAY,CAAC;AAEtF,eAAO,MAAM,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,KAAK,MAAM,CAAC,aAAa,EAAE,qBAAqB,CAyFjH,CAAC"}
1
+ {"version":3,"file":"rateLimit.d.ts","sourceRoot":"","sources":["../../../src/network/reqresp/rateLimit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,QAAQ,EAAuE,MAAM,kBAAkB,CAAC;AAChH,OAAO,EAAC,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAC,aAAa,EAA8C,MAAM,YAAY,CAAC;AAEtF,eAAO,MAAM,eAAe,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,KAAK,MAAM,CAAC,aAAa,EAAE,qBAAqB,CA2GjH,CAAC"}
@@ -60,6 +60,14 @@ export const rateLimitQuotas = (fork, config) => ({
60
60
  byPeer: { quota: config.MAX_REQUEST_DATA_COLUMN_SIDECARS, quotaTimeMs: 10_000 },
61
61
  getRequestCount: getRequestCountFn(fork, config, ReqRespMethod.DataColumnSidecarsByRoot, (req) => req.reduce((total, item) => total + item.columns.length, 0)),
62
62
  },
63
+ [ReqRespMethod.ExecutionPayloadEnvelopesByRoot]: {
64
+ byPeer: { quota: config.MAX_REQUEST_PAYLOADS, quotaTimeMs: 10_000 },
65
+ getRequestCount: getRequestCountFn(fork, config, ReqRespMethod.ExecutionPayloadEnvelopesByRoot, (req) => req.length),
66
+ },
67
+ [ReqRespMethod.ExecutionPayloadEnvelopesByRange]: {
68
+ byPeer: { quota: config.MAX_REQUEST_BLOCKS_DENEB, quotaTimeMs: 10_000 },
69
+ getRequestCount: getRequestCountFn(fork, config, ReqRespMethod.ExecutionPayloadEnvelopesByRange, (req) => req.count),
70
+ },
63
71
  [ReqRespMethod.LightClientBootstrap]: {
64
72
  // As similar in the nature of `Status` protocol so we use the same rate limits.
65
73
  byPeer: { quota: 5, quotaTimeMs: 15_000 },
@@ -1 +1 @@
1
- {"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../../../src/network/reqresp/rateLimit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../../../src/network/reqresp/rateLimit.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"score.d.ts","sourceRoot":"","sources":["../../../src/network/reqresp/score.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAmB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAmBzC,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,GAAG,UAAU,GAAG,IAAI,CA+ChG"}
1
+ {"version":3,"file":"score.d.ts","sourceRoot":"","sources":["../../../src/network/reqresp/score.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAmB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAmBzC,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,GAAG,UAAU,GAAG,IAAI,CAiDhG"}
@@ -40,6 +40,8 @@ export function onOutgoingReqRespError(e, method) {
40
40
  return PeerAction.LowToleranceError;
41
41
  case ReqRespMethod.BeaconBlocksByRange:
42
42
  case ReqRespMethod.BeaconBlocksByRoot:
43
+ case ReqRespMethod.ExecutionPayloadEnvelopesByRoot:
44
+ case ReqRespMethod.ExecutionPayloadEnvelopesByRange:
43
45
  return PeerAction.MidToleranceError;
44
46
  default:
45
47
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"score.js","sourceRoot":"","sources":["../../../src/network/reqresp/score.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAEzC;;;;GAIG;AACH,MAAM,gBAAgB,GAAG;IACvB,wBAAwB,EAAE,0BAA0B;CACrD,CAAC;AAEF;;;GAGG;AACH,MAAM,2BAA2B,GAAG;IAClC,uBAAuB,EAAE,2BAA2B;CACrD,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,CAAe,EAAE,MAAqB,EAAqB;IAChG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,gBAAgB,CAAC,eAAe,CAAC;QACtC,KAAK,gBAAgB,CAAC,oBAAoB,CAAC;QAC3C,KAAK,gBAAgB,CAAC,iBAAiB;YACrC,OAAO,UAAU,CAAC,iBAAiB,CAAC;QAEtC,KAAK,gBAAgB,CAAC,YAAY;YAChC,OAAO,UAAU,CAAC,iBAAiB,CAAC;QACtC,KAAK,gBAAgB,CAAC,oBAAoB;YACxC,OAAO,UAAU,CAAC,kBAAkB,CAAC;QAEvC,KAAK,gBAAgB,CAAC,YAAY,CAAC;QACnC,KAAK,gBAAgB,CAAC,UAAU;YAC9B,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,uBAAuB,CAAC,IAAI,MAAM,KAAK,aAAa,CAAC,IAAI;gBAC7G,CAAC,CAAC,UAAU,CAAC,KAAK;gBAClB,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC;QACnC,0DAA0D;QAE1D,KAAK,gBAAgB,CAAC,YAAY;YAChC,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,aAAa,CAAC,IAAI,CAAC;gBACxB,KAAK,aAAa,CAAC,MAAM,CAAC;gBAC1B,KAAK,aAAa,CAAC,QAAQ;oBACzB,OAAO,UAAU,CAAC,iBAAiB,CAAC;gBACtC,KAAK,aAAa,CAAC,mBAAmB,CAAC;gBACvC,KAAK,aAAa,CAAC,kBAAkB;oBACnC,OAAO,UAAU,CAAC,iBAAiB,CAAC;gBACtC;oBACE,OAAO,IAAI,CAAC;YAChB,CAAC;IACL,CAAC;IAED,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAClE,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,aAAa,CAAC,IAAI;gBACrB,OAAO,UAAU,CAAC,KAAK,CAAC;YAC1B,KAAK,aAAa,CAAC,QAAQ,CAAC;YAC5B,KAAK,aAAa,CAAC,MAAM;gBACvB,OAAO,UAAU,CAAC,iBAAiB,CAAC;YACtC;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAED,4HAA4H;IAC5H,OAAO,IAAI,CAAC;AAAA,CACb"}
1
+ {"version":3,"file":"score.js","sourceRoot":"","sources":["../../../src/network/reqresp/score.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AAEzC;;;;GAIG;AACH,MAAM,gBAAgB,GAAG;IACvB,wBAAwB,EAAE,0BAA0B;CACrD,CAAC;AAEF;;;GAGG;AACH,MAAM,2BAA2B,GAAG;IAClC,uBAAuB,EAAE,2BAA2B;CACrD,CAAC;AAEF,MAAM,UAAU,sBAAsB,CAAC,CAAe,EAAE,MAAqB,EAAqB;IAChG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,gBAAgB,CAAC,eAAe,CAAC;QACtC,KAAK,gBAAgB,CAAC,oBAAoB,CAAC;QAC3C,KAAK,gBAAgB,CAAC,iBAAiB;YACrC,OAAO,UAAU,CAAC,iBAAiB,CAAC;QAEtC,KAAK,gBAAgB,CAAC,YAAY;YAChC,OAAO,UAAU,CAAC,iBAAiB,CAAC;QACtC,KAAK,gBAAgB,CAAC,oBAAoB;YACxC,OAAO,UAAU,CAAC,kBAAkB,CAAC;QAEvC,KAAK,gBAAgB,CAAC,YAAY,CAAC;QACnC,KAAK,gBAAgB,CAAC,UAAU;YAC9B,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,uBAAuB,CAAC,IAAI,MAAM,KAAK,aAAa,CAAC,IAAI;gBAC7G,CAAC,CAAC,UAAU,CAAC,KAAK;gBAClB,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC;QACnC,0DAA0D;QAE1D,KAAK,gBAAgB,CAAC,YAAY;YAChC,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,aAAa,CAAC,IAAI,CAAC;gBACxB,KAAK,aAAa,CAAC,MAAM,CAAC;gBAC1B,KAAK,aAAa,CAAC,QAAQ;oBACzB,OAAO,UAAU,CAAC,iBAAiB,CAAC;gBACtC,KAAK,aAAa,CAAC,mBAAmB,CAAC;gBACvC,KAAK,aAAa,CAAC,kBAAkB,CAAC;gBACtC,KAAK,aAAa,CAAC,+BAA+B,CAAC;gBACnD,KAAK,aAAa,CAAC,gCAAgC;oBACjD,OAAO,UAAU,CAAC,iBAAiB,CAAC;gBACtC;oBACE,OAAO,IAAI,CAAC;YAChB,CAAC;IACL,CAAC;IAED,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAClE,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,aAAa,CAAC,IAAI;gBACrB,OAAO,UAAU,CAAC,KAAK,CAAC;YAC1B,KAAK,aAAa,CAAC,QAAQ,CAAC;YAC5B,KAAK,aAAa,CAAC,MAAM;gBACvB,OAAO,UAAU,CAAC,iBAAiB,CAAC;YACtC;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAED,4HAA4H;IAC5H,OAAO,IAAI,CAAC;AAAA,CACb"}
@@ -2,8 +2,8 @@ import { Type } from "@chainsafe/ssz";
2
2
  import { BeaconConfig } from "@lodestar/config";
3
3
  import { ForkName } from "@lodestar/params";
4
4
  import { Protocol, ProtocolHandler, ReqRespRequest } from "@lodestar/reqresp";
5
- import { LightClientBootstrap, LightClientFinalityUpdate, LightClientOptimisticUpdate, LightClientUpdate, Metadata, Root, SignedBeaconBlock, Status, altair, deneb, fulu, phase0 } from "@lodestar/types";
6
- import { BeaconBlocksByRootRequest, BlobSidecarsByRootRequest, DataColumnSidecarsByRootRequest } from "../../util/types.js";
5
+ import { LightClientBootstrap, LightClientFinalityUpdate, LightClientOptimisticUpdate, LightClientUpdate, Metadata, Root, SignedBeaconBlock, Status, altair, deneb, fulu, gloas, phase0 } from "@lodestar/types";
6
+ import { BeaconBlocksByRootRequest, BlobSidecarsByRootRequest, DataColumnSidecarsByRootRequest, ExecutionPayloadEnvelopesByRootRequest } from "../../util/types.js";
7
7
  export type ProtocolNoHandler = Omit<Protocol, "handler">;
8
8
  /** ReqResp protocol names or methods. Each ReqRespMethod can have multiple versions and encodings */
9
9
  export declare enum ReqRespMethod {
@@ -17,6 +17,8 @@ export declare enum ReqRespMethod {
17
17
  BlobSidecarsByRoot = "blob_sidecars_by_root",
18
18
  DataColumnSidecarsByRange = "data_column_sidecars_by_range",
19
19
  DataColumnSidecarsByRoot = "data_column_sidecars_by_root",
20
+ ExecutionPayloadEnvelopesByRoot = "execution_payload_envelopes_by_root",
21
+ ExecutionPayloadEnvelopesByRange = "execution_payload_envelopes_by_range",
20
22
  LightClientBootstrap = "light_client_bootstrap",
21
23
  LightClientUpdatesByRange = "light_client_updates_by_range",
22
24
  LightClientFinalityUpdate = "light_client_finality_update",
@@ -33,6 +35,8 @@ export type RequestBodyByMethod = {
33
35
  [ReqRespMethod.BlobSidecarsByRoot]: BlobSidecarsByRootRequest;
34
36
  [ReqRespMethod.DataColumnSidecarsByRange]: fulu.DataColumnSidecarsByRangeRequest;
35
37
  [ReqRespMethod.DataColumnSidecarsByRoot]: DataColumnSidecarsByRootRequest;
38
+ [ReqRespMethod.ExecutionPayloadEnvelopesByRoot]: ExecutionPayloadEnvelopesByRootRequest;
39
+ [ReqRespMethod.ExecutionPayloadEnvelopesByRange]: gloas.ExecutionPayloadEnvelopesByRangeRequest;
36
40
  [ReqRespMethod.LightClientBootstrap]: Root;
37
41
  [ReqRespMethod.LightClientUpdatesByRange]: altair.LightClientUpdatesByRange;
38
42
  [ReqRespMethod.LightClientFinalityUpdate]: null;
@@ -49,6 +53,8 @@ type ResponseBodyByMethod = {
49
53
  [ReqRespMethod.BlobSidecarsByRoot]: deneb.BlobSidecar;
50
54
  [ReqRespMethod.DataColumnSidecarsByRange]: fulu.DataColumnSidecar;
51
55
  [ReqRespMethod.DataColumnSidecarsByRoot]: fulu.DataColumnSidecar;
56
+ [ReqRespMethod.ExecutionPayloadEnvelopesByRoot]: gloas.SignedExecutionPayloadEnvelope;
57
+ [ReqRespMethod.ExecutionPayloadEnvelopesByRange]: gloas.SignedExecutionPayloadEnvelope;
52
58
  [ReqRespMethod.LightClientBootstrap]: LightClientBootstrap;
53
59
  [ReqRespMethod.LightClientUpdatesByRange]: LightClientUpdate;
54
60
  [ReqRespMethod.LightClientFinalityUpdate]: LightClientFinalityUpdate;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/network/reqresp/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/network/reqresp/types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { isForkPostAltair } from "@lodestar/params";
2
2
  import { ssz, sszTypesFor, } from "@lodestar/types";
3
- import { BeaconBlocksByRootRequestType, BlobSidecarsByRootRequestType, DataColumnSidecarsByRootRequestType, } from "../../util/types.js";
3
+ import { BeaconBlocksByRootRequestType, BlobSidecarsByRootRequestType, DataColumnSidecarsByRootRequestType, ExecutionPayloadEnvelopesByRootRequestType, } from "../../util/types.js";
4
4
  export { ReqRespMethod };
5
5
  /** ReqResp protocol names or methods. Each ReqRespMethod can have multiple versions and encodings */
6
6
  var ReqRespMethod;
@@ -16,6 +16,8 @@ var ReqRespMethod;
16
16
  ReqRespMethod["BlobSidecarsByRoot"] = "blob_sidecars_by_root";
17
17
  ReqRespMethod["DataColumnSidecarsByRange"] = "data_column_sidecars_by_range";
18
18
  ReqRespMethod["DataColumnSidecarsByRoot"] = "data_column_sidecars_by_root";
19
+ ReqRespMethod["ExecutionPayloadEnvelopesByRoot"] = "execution_payload_envelopes_by_root";
20
+ ReqRespMethod["ExecutionPayloadEnvelopesByRange"] = "execution_payload_envelopes_by_range";
19
21
  ReqRespMethod["LightClientBootstrap"] = "light_client_bootstrap";
20
22
  ReqRespMethod["LightClientUpdatesByRange"] = "light_client_updates_by_range";
21
23
  ReqRespMethod["LightClientFinalityUpdate"] = "light_client_finality_update";
@@ -35,6 +37,8 @@ export const requestSszTypeByMethod = (fork, config) => ({
35
37
  [ReqRespMethod.BlobSidecarsByRoot]: BlobSidecarsByRootRequestType(fork, config),
36
38
  [ReqRespMethod.DataColumnSidecarsByRange]: ssz.fulu.DataColumnSidecarsByRangeRequest,
37
39
  [ReqRespMethod.DataColumnSidecarsByRoot]: DataColumnSidecarsByRootRequestType(config),
40
+ [ReqRespMethod.ExecutionPayloadEnvelopesByRoot]: ExecutionPayloadEnvelopesByRootRequestType(config),
41
+ [ReqRespMethod.ExecutionPayloadEnvelopesByRange]: ssz.gloas.ExecutionPayloadEnvelopesByRangeRequest,
38
42
  [ReqRespMethod.LightClientBootstrap]: ssz.Root,
39
43
  [ReqRespMethod.LightClientUpdatesByRange]: ssz.altair.LightClientUpdatesByRange,
40
44
  [ReqRespMethod.LightClientFinalityUpdate]: null,
@@ -60,6 +64,8 @@ export const responseSszTypeByMethod = {
60
64
  [ReqRespMethod.LightClientFinalityUpdate]: (fork) => sszTypesFor(onlyPostAltairFork(fork)).LightClientFinalityUpdate,
61
65
  [ReqRespMethod.DataColumnSidecarsByRange]: () => ssz.fulu.DataColumnSidecar,
62
66
  [ReqRespMethod.DataColumnSidecarsByRoot]: () => ssz.fulu.DataColumnSidecar,
67
+ [ReqRespMethod.ExecutionPayloadEnvelopesByRoot]: () => ssz.gloas.SignedExecutionPayloadEnvelope,
68
+ [ReqRespMethod.ExecutionPayloadEnvelopesByRange]: () => ssz.gloas.SignedExecutionPayloadEnvelope,
63
69
  [ReqRespMethod.LightClientOptimisticUpdate]: (fork) => sszTypesFor(onlyPostAltairFork(fork)).LightClientOptimisticUpdate,
64
70
  };
65
71
  function onlyPostAltairFork(fork) {
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/network/reqresp/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/network/reqresp/types.ts"],"names":[],"mappings":"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"}
@@ -25,4 +25,6 @@ export declare const DataColumnSidecarsByRootRequestType: (config: BeaconConfig)
25
25
  columns: import("@chainsafe/ssz").ListBasicType<import("@chainsafe/ssz").UintNumberType>;
26
26
  }>>;
27
27
  export type DataColumnSidecarsByRootRequest = ValueOf<ReturnType<typeof DataColumnSidecarsByRootRequestType>>;
28
+ export declare const ExecutionPayloadEnvelopesByRootRequestType: (config: BeaconConfig) => ListCompositeType<import("@chainsafe/ssz").ByteVectorType>;
29
+ export type ExecutionPayloadEnvelopesByRootRequest = ValueOf<ReturnType<typeof ExecutionPayloadEnvelopesByRootRequestType>>;
28
30
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/util/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,iBAAiB,EAAE,OAAO,EAAC,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,QAAQ,EAAqC,MAAM,kBAAkB,CAAC;AAK9E,eAAO,MAAM,uCAAuC;;;;;;;;;;EAOnD,CAAC;AACF,MAAM,MAAM,mCAAmC,GAAG,OAAO,CAAC,OAAO,uCAAuC,CAAC,CAAC;AAE1G,eAAO,MAAM,6BAA6B,sGAC4E,CAAC;AACvH,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC;AAElG,eAAO,MAAM,6BAA6B;;;GAIvC,CAAC;AACJ,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC;AAElG,eAAO,MAAM,mCAAmC;;;GAC8C,CAAC;AAC/F,MAAM,MAAM,+BAA+B,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,mCAAmC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/util/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,iBAAiB,EAAE,OAAO,EAAC,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,QAAQ,EAAqC,MAAM,kBAAkB,CAAC;AAK9E,eAAO,MAAM,uCAAuC;;;;;;;;;;EAOnD,CAAC;AACF,MAAM,MAAM,mCAAmC,GAAG,OAAO,CAAC,OAAO,uCAAuC,CAAC,CAAC;AAE1G,eAAO,MAAM,6BAA6B,sGAC4E,CAAC;AACvH,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC;AAElG,eAAO,MAAM,6BAA6B;;;GAIvC,CAAC;AACJ,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC;AAElG,eAAO,MAAM,mCAAmC;;;GAC8C,CAAC;AAC/F,MAAM,MAAM,+BAA+B,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,mCAAmC,CAAC,CAAC,CAAC;AAE9G,eAAO,MAAM,0CAA0C,sFACO,CAAC;AAC/D,MAAM,MAAM,sCAAsC,GAAG,OAAO,CAC1D,UAAU,CAAC,OAAO,0CAA0C,CAAC,CAC9D,CAAC"}
package/lib/util/types.js CHANGED
@@ -10,4 +10,5 @@ export const signedBLSToExecutionChangeVersionedType = new ContainerType({
10
10
  export const BeaconBlocksByRootRequestType = (fork, config) => new ListCompositeType(ssz.Root, isForkPostDeneb(fork) ? config.MAX_REQUEST_BLOCKS_DENEB : config.MAX_REQUEST_BLOCKS);
11
11
  export const BlobSidecarsByRootRequestType = (fork, config) => new ListCompositeType(ssz.deneb.BlobIdentifier, isForkPostElectra(fork) ? config.MAX_REQUEST_BLOB_SIDECARS_ELECTRA : config.MAX_REQUEST_BLOB_SIDECARS);
12
12
  export const DataColumnSidecarsByRootRequestType = (config) => new ListCompositeType(ssz.fulu.DataColumnsByRootIdentifier, config.MAX_REQUEST_BLOCKS_DENEB);
13
+ export const ExecutionPayloadEnvelopesByRootRequestType = (config) => new ListCompositeType(ssz.Root, config.MAX_REQUEST_PAYLOADS);
13
14
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/util/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,iBAAiB,EAAU,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAW,eAAe,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEpC,oFAAoF;AAEpF,MAAM,CAAC,MAAM,uCAAuC,GAAG,IAAI,aAAa,CACtE;IACE,iEAAiE;IACjE,UAAU,EAAE,GAAG,CAAC,OAAO;IACvB,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,0BAA0B;CAC7C,EACD,EAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,yCAAyC,EAAC,CACxE,CAAC;AAGF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,IAAc,EAAE,MAAoB,EAAE,EAAE,CACpF,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAGvH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,IAAc,EAAE,MAAoB,EAAE,EAAE,CACpF,IAAI,iBAAiB,CACnB,GAAG,CAAC,KAAK,CAAC,cAAc,EACxB,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CACtG,CAAC;AAGJ,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,MAAoB,EAAE,EAAE,CAC1E,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/util/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAE,iBAAiB,EAAU,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAW,eAAe,EAAE,iBAAiB,EAAC,MAAM,kBAAkB,CAAC;AAC9E,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAEpC,oFAAoF;AAEpF,MAAM,CAAC,MAAM,uCAAuC,GAAG,IAAI,aAAa,CACtE;IACE,iEAAiE;IACjE,UAAU,EAAE,GAAG,CAAC,OAAO;IACvB,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,0BAA0B;CAC7C,EACD,EAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,yCAAyC,EAAC,CACxE,CAAC;AAGF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,IAAc,EAAE,MAAoB,EAAE,EAAE,CACpF,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAGvH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,IAAc,EAAE,MAAoB,EAAE,EAAE,CACpF,IAAI,iBAAiB,CACnB,GAAG,CAAC,KAAK,CAAC,cAAc,EACxB,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CACtG,CAAC;AAGJ,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,MAAoB,EAAE,EAAE,CAC1E,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,EAAE,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAG/F,MAAM,CAAC,MAAM,0CAA0C,GAAG,CAAC,MAAoB,EAAE,EAAE,CACjF,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC"}
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.42.0-dev.7e96447c23",
14
+ "version": "1.42.0-dev.b10dfaca8d",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -135,18 +135,18 @@
135
135
  "@libp2p/peer-id": "^6.0.4",
136
136
  "@libp2p/prometheus-metrics": "^5.0.14",
137
137
  "@libp2p/tcp": "^11.0.13",
138
- "@lodestar/api": "^1.42.0-dev.7e96447c23",
139
- "@lodestar/config": "^1.42.0-dev.7e96447c23",
140
- "@lodestar/db": "^1.42.0-dev.7e96447c23",
141
- "@lodestar/fork-choice": "^1.42.0-dev.7e96447c23",
142
- "@lodestar/light-client": "^1.42.0-dev.7e96447c23",
143
- "@lodestar/logger": "^1.42.0-dev.7e96447c23",
144
- "@lodestar/params": "^1.42.0-dev.7e96447c23",
145
- "@lodestar/reqresp": "^1.42.0-dev.7e96447c23",
146
- "@lodestar/state-transition": "^1.42.0-dev.7e96447c23",
147
- "@lodestar/types": "^1.42.0-dev.7e96447c23",
148
- "@lodestar/utils": "^1.42.0-dev.7e96447c23",
149
- "@lodestar/validator": "^1.42.0-dev.7e96447c23",
138
+ "@lodestar/api": "^1.42.0-dev.b10dfaca8d",
139
+ "@lodestar/config": "^1.42.0-dev.b10dfaca8d",
140
+ "@lodestar/db": "^1.42.0-dev.b10dfaca8d",
141
+ "@lodestar/fork-choice": "^1.42.0-dev.b10dfaca8d",
142
+ "@lodestar/light-client": "^1.42.0-dev.b10dfaca8d",
143
+ "@lodestar/logger": "^1.42.0-dev.b10dfaca8d",
144
+ "@lodestar/params": "^1.42.0-dev.b10dfaca8d",
145
+ "@lodestar/reqresp": "^1.42.0-dev.b10dfaca8d",
146
+ "@lodestar/state-transition": "^1.42.0-dev.b10dfaca8d",
147
+ "@lodestar/types": "^1.42.0-dev.b10dfaca8d",
148
+ "@lodestar/utils": "^1.42.0-dev.b10dfaca8d",
149
+ "@lodestar/validator": "^1.42.0-dev.b10dfaca8d",
150
150
  "@multiformats/multiaddr": "^13.0.1",
151
151
  "datastore-core": "^11.0.2",
152
152
  "datastore-fs": "^11.0.2",
@@ -169,7 +169,7 @@
169
169
  "@libp2p/interface-internal": "^3.0.13",
170
170
  "@libp2p/logger": "^6.2.2",
171
171
  "@libp2p/utils": "^7.0.13",
172
- "@lodestar/spec-test-util": "^1.42.0-dev.7e96447c23",
172
+ "@lodestar/spec-test-util": "^1.42.0-dev.b10dfaca8d",
173
173
  "@types/js-yaml": "^4.0.5",
174
174
  "@types/qs": "^6.9.7",
175
175
  "@types/tmp": "^0.2.3",
@@ -186,5 +186,5 @@
186
186
  "beacon",
187
187
  "blockchain"
188
188
  ],
189
- "gitHead": "9e5900fb757e50b334727e747259069577572d93"
189
+ "gitHead": "a8a22c99e8c5e8c860d776ffbdb72c1c1e563186"
190
190
  }
@@ -855,6 +855,24 @@ export class BeaconChain implements IBeaconChain {
855
855
  return null;
856
856
  }
857
857
 
858
+ async getSerializedExecutionPayloadEnvelope(blockSlot: Slot, blockRootHex: string): Promise<Uint8Array | null> {
859
+ const payloadInput = this.seenPayloadEnvelopeInputCache.get(blockRootHex);
860
+ if (payloadInput?.hasPayloadEnvelope()) {
861
+ const envelope = payloadInput.getPayloadEnvelope();
862
+ const serialized = this.serializedCache.get(envelope);
863
+ if (serialized) {
864
+ return serialized;
865
+ }
866
+ return ssz.gloas.SignedExecutionPayloadEnvelope.serialize(envelope);
867
+ }
868
+
869
+ return (
870
+ (await this.db.executionPayloadEnvelope.getBinary(fromHex(blockRootHex))) ??
871
+ (await this.db.executionPayloadEnvelopeArchive.getBinary(blockSlot)) ??
872
+ null
873
+ );
874
+ }
875
+
858
876
  async getDataColumnSidecars(blockSlot: Slot, blockRootHex: string): Promise<DataColumnSidecars> {
859
877
  const blockInput = this.seenBlockInputCache.get(blockRootHex);
860
878
  if (blockInput) {
@@ -223,6 +223,7 @@ export interface IBeaconChain {
223
223
  blockRootHex: string,
224
224
  indices: number[]
225
225
  ): Promise<(Uint8Array | undefined)[]>;
226
+ getSerializedExecutionPayloadEnvelope(blockSlot: Slot, blockRootHex: string): Promise<Uint8Array | null>;
226
227
 
227
228
  produceCommonBlockBody(blockAttributes: BlockAttributes): Promise<CommonBlockBody>;
228
229
  produceBlock(blockAttributes: BlockAttributes & {commonBlockBodyPromise: Promise<CommonBlockBody>}): Promise<{
@@ -38,7 +38,12 @@ import {
38
38
  import {BlockInputSource} from "../chain/blocks/blockInput/types.js";
39
39
  import {CustodyConfig} from "../util/dataColumns.js";
40
40
  import {PeerIdStr} from "../util/peerId.js";
41
- import {BeaconBlocksByRootRequest, BlobSidecarsByRootRequest, DataColumnSidecarsByRootRequest} from "../util/types.js";
41
+ import {
42
+ BeaconBlocksByRootRequest,
43
+ BlobSidecarsByRootRequest,
44
+ DataColumnSidecarsByRootRequest,
45
+ ExecutionPayloadEnvelopesByRootRequest,
46
+ } from "../util/types.js";
42
47
  import {INetworkCorePublic} from "./core/types.js";
43
48
  import {INetworkEventBus} from "./events.js";
44
49
  import {GossipType} from "./gossip/interface.js";
@@ -82,6 +87,14 @@ export interface INetwork extends INetworkCorePublic {
82
87
  peerId: PeerIdStr,
83
88
  request: DataColumnSidecarsByRootRequest
84
89
  ): Promise<fulu.DataColumnSidecar[]>;
90
+ sendExecutionPayloadEnvelopesByRange(
91
+ peerId: PeerIdStr,
92
+ request: gloas.ExecutionPayloadEnvelopesByRangeRequest
93
+ ): Promise<gloas.SignedExecutionPayloadEnvelope[]>;
94
+ sendExecutionPayloadEnvelopesByRoot(
95
+ peerId: PeerIdStr,
96
+ request: ExecutionPayloadEnvelopesByRootRequest
97
+ ): Promise<gloas.SignedExecutionPayloadEnvelope[]>;
85
98
 
86
99
  // Gossip
87
100
  publishBeaconBlock(signedBlock: SignedBeaconBlock): Promise<number>;
@@ -40,7 +40,12 @@ import {IClock} from "../util/clock.js";
40
40
  import {CustodyConfig} from "../util/dataColumns.js";
41
41
  import {PeerIdStr, peerIdToString} from "../util/peerId.js";
42
42
  import {promiseAllMaybeAsync} from "../util/promises.js";
43
- import {BeaconBlocksByRootRequest, BlobSidecarsByRootRequest, DataColumnSidecarsByRootRequest} from "../util/types.js";
43
+ import {
44
+ BeaconBlocksByRootRequest,
45
+ BlobSidecarsByRootRequest,
46
+ DataColumnSidecarsByRootRequest,
47
+ ExecutionPayloadEnvelopesByRootRequest,
48
+ } from "../util/types.js";
44
49
  import {INetworkCore, NetworkCore, WorkerNetworkCore} from "./core/index.js";
45
50
  import {INetworkEventBus, NetworkEvent, NetworkEventBus, NetworkEventData} from "./events.js";
46
51
  import {getActiveForkBoundaries} from "./forks.js";
@@ -636,6 +641,29 @@ export class Network implements INetwork {
636
641
  );
637
642
  }
638
643
 
644
+ async sendExecutionPayloadEnvelopesByRange(
645
+ peerId: PeerIdStr,
646
+ request: gloas.ExecutionPayloadEnvelopesByRangeRequest
647
+ ): Promise<gloas.SignedExecutionPayloadEnvelope[]> {
648
+ return collectMaxResponseTyped(
649
+ this.sendReqRespRequest(peerId, ReqRespMethod.ExecutionPayloadEnvelopesByRange, [Version.V1], request),
650
+ request.count,
651
+ responseSszTypeByMethod[ReqRespMethod.ExecutionPayloadEnvelopesByRange]
652
+ );
653
+ }
654
+
655
+ async sendExecutionPayloadEnvelopesByRoot(
656
+ peerId: PeerIdStr,
657
+ request: ExecutionPayloadEnvelopesByRootRequest
658
+ ): Promise<gloas.SignedExecutionPayloadEnvelope[]> {
659
+ return collectMaxResponseTyped(
660
+ this.sendReqRespRequest(peerId, ReqRespMethod.ExecutionPayloadEnvelopesByRoot, [Version.V1], request),
661
+ request.length,
662
+ responseSszTypeByMethod[ReqRespMethod.ExecutionPayloadEnvelopesByRoot],
663
+ this.chain.serializedCache
664
+ );
665
+ }
666
+
639
667
  private sendReqRespRequest<Req>(
640
668
  peerId: PeerIdStr,
641
669
  method: ReqRespMethod,
@@ -297,6 +297,19 @@ export class ReqRespBeaconNode extends ReqResp {
297
297
  );
298
298
  }
299
299
 
300
+ if (ForkSeq[fork] >= ForkSeq.gloas) {
301
+ protocolsAtFork.push(
302
+ [
303
+ protocols.ExecutionPayloadEnvelopesByRoot(fork, this.config),
304
+ this.getHandler(ReqRespMethod.ExecutionPayloadEnvelopesByRoot),
305
+ ],
306
+ [
307
+ protocols.ExecutionPayloadEnvelopesByRange(fork, this.config),
308
+ this.getHandler(ReqRespMethod.ExecutionPayloadEnvelopesByRange),
309
+ ]
310
+ );
311
+ }
312
+
300
313
  return protocolsAtFork;
301
314
  }
302
315
 
@@ -0,0 +1,94 @@
1
+ import {ChainConfig} from "@lodestar/config";
2
+ import {PayloadStatus} from "@lodestar/fork-choice";
3
+ import {GENESIS_SLOT} from "@lodestar/params";
4
+ import {RespStatus, ResponseError, ResponseOutgoing} from "@lodestar/reqresp";
5
+ import {computeEpochAtSlot} from "@lodestar/state-transition";
6
+ import {gloas} from "@lodestar/types";
7
+ import {IBeaconChain} from "../../../chain/index.js";
8
+ import {IBeaconDb} from "../../../db/index.js";
9
+
10
+ export async function* onExecutionPayloadEnvelopesByRange(
11
+ request: gloas.ExecutionPayloadEnvelopesByRangeRequest,
12
+ chain: IBeaconChain,
13
+ db: IBeaconDb
14
+ ): AsyncIterable<ResponseOutgoing> {
15
+ const {startSlot, count} = validateExecutionPayloadEnvelopesByRangeRequest(chain.config, request);
16
+ const endSlot = startSlot + count;
17
+
18
+ if (startSlot < chain.earliestAvailableSlot) {
19
+ return;
20
+ }
21
+
22
+ const finalized = db.executionPayloadEnvelopeArchive;
23
+ const finalizedSlot = chain.forkChoice.getFinalizedCheckpointSlot();
24
+
25
+ // Finalized range of envelopes
26
+ if (startSlot <= finalizedSlot) {
27
+ for await (const {key, value: envelopeBytes} of finalized.binaryEntriesStream({
28
+ gte: startSlot,
29
+ lt: endSlot,
30
+ })) {
31
+ const slot = finalized.decodeKey(key);
32
+ yield {
33
+ data: envelopeBytes,
34
+ boundary: chain.config.getForkBoundaryAtEpoch(computeEpochAtSlot(slot)),
35
+ };
36
+ }
37
+ }
38
+
39
+ // Non-finalized range of envelopes
40
+ if (endSlot > finalizedSlot) {
41
+ const headBlock = chain.forkChoice.getHead();
42
+ const headRoot = headBlock.blockRoot;
43
+ const headChain = chain.forkChoice.getAllAncestorBlocks(headRoot, headBlock.payloadStatus);
44
+
45
+ // Iterate head chain with ascending block numbers
46
+ for (let i = headChain.length - 1; i >= 0; i--) {
47
+ const block = headChain[i];
48
+
49
+ if (block.slot >= startSlot && block.slot < endSlot) {
50
+ // Skip EMPTY blocks
51
+ if (block.payloadStatus !== PayloadStatus.FULL) {
52
+ continue;
53
+ }
54
+
55
+ const envelopeBytes = await chain.getSerializedExecutionPayloadEnvelope(block.slot, block.blockRoot);
56
+ if (!envelopeBytes) {
57
+ throw new ResponseError(
58
+ RespStatus.SERVER_ERROR,
59
+ `No envelope for root ${block.blockRoot} slot ${block.slot}, startSlot=${startSlot} endSlot=${endSlot} finalizedSlot=${finalizedSlot}`
60
+ );
61
+ }
62
+
63
+ yield {
64
+ data: envelopeBytes,
65
+ boundary: chain.config.getForkBoundaryAtEpoch(computeEpochAtSlot(block.slot)),
66
+ };
67
+ } else if (block.slot >= endSlot) {
68
+ break;
69
+ }
70
+ }
71
+ }
72
+ }
73
+
74
+ export function validateExecutionPayloadEnvelopesByRangeRequest(
75
+ config: ChainConfig,
76
+ request: gloas.ExecutionPayloadEnvelopesByRangeRequest
77
+ ): gloas.ExecutionPayloadEnvelopesByRangeRequest {
78
+ const {startSlot} = request;
79
+ let {count} = request;
80
+
81
+ if (count < 1) {
82
+ throw new ResponseError(RespStatus.INVALID_REQUEST, "count < 1");
83
+ }
84
+ // TODO: validate against MIN_EPOCHS_FOR_BLOCK_REQUESTS
85
+ if (startSlot < GENESIS_SLOT) {
86
+ throw new ResponseError(RespStatus.INVALID_REQUEST, "startSlot < genesis");
87
+ }
88
+
89
+ if (count > config.MAX_REQUEST_BLOCKS_DENEB) {
90
+ count = config.MAX_REQUEST_BLOCKS_DENEB;
91
+ }
92
+
93
+ return {startSlot, count};
94
+ }
@@ -0,0 +1,43 @@
1
+ import {ResponseOutgoing} from "@lodestar/reqresp";
2
+ import {computeEpochAtSlot} from "@lodestar/state-transition";
3
+ import {toRootHex} from "@lodestar/utils";
4
+ import {IBeaconChain} from "../../../chain/index.js";
5
+ import {IBeaconDb} from "../../../db/index.js";
6
+ import {ExecutionPayloadEnvelopesByRootRequest} from "../../../util/types.js";
7
+
8
+ export async function* onExecutionPayloadEnvelopesByRoot(
9
+ requestBody: ExecutionPayloadEnvelopesByRootRequest,
10
+ chain: IBeaconChain,
11
+ db: IBeaconDb
12
+ ): AsyncIterable<ResponseOutgoing> {
13
+ // Spec: [max(GLOAS_FORK_EPOCH, current_epoch - MIN_EPOCHS_FOR_BLOCK_REQUESTS), current_epoch]
14
+ const currentEpoch = chain.clock.currentEpoch;
15
+ const minimumRequestEpoch = Math.max(
16
+ currentEpoch - chain.config.MIN_EPOCHS_FOR_BLOCK_REQUESTS,
17
+ chain.config.GLOAS_FORK_EPOCH
18
+ );
19
+
20
+ for (const root of requestBody) {
21
+ const rootHex = toRootHex(root);
22
+ const block = chain.forkChoice.getBlockHexDefaultStatus(rootHex);
23
+ // If the block is not in fork choice, it may be finalized. Attempt to find its slot in block archive
24
+ const slot = block ? block.slot : await db.blockArchive.getSlotByRoot(root);
25
+
26
+ if (slot === null) {
27
+ continue;
28
+ }
29
+
30
+ const requestedEpoch = computeEpochAtSlot(slot);
31
+ if (requestedEpoch < minimumRequestEpoch) {
32
+ continue;
33
+ }
34
+
35
+ const envelopeBytes = await chain.getSerializedExecutionPayloadEnvelope(slot, rootHex);
36
+ if (envelopeBytes) {
37
+ yield {
38
+ data: envelopeBytes,
39
+ boundary: chain.config.getForkBoundaryAtEpoch(requestedEpoch),
40
+ };
41
+ }
42
+ }
43
+ }
@@ -6,6 +6,7 @@ import {
6
6
  BeaconBlocksByRootRequestType,
7
7
  BlobSidecarsByRootRequestType,
8
8
  DataColumnSidecarsByRootRequestType,
9
+ ExecutionPayloadEnvelopesByRootRequestType,
9
10
  } from "../../../util/types.js";
10
11
  import {GetReqRespHandlerFn, ReqRespMethod} from "../types.js";
11
12
  import {onBeaconBlocksByRange} from "./beaconBlocksByRange.js";
@@ -14,6 +15,8 @@ import {onBlobSidecarsByRange} from "./blobSidecarsByRange.js";
14
15
  import {onBlobSidecarsByRoot} from "./blobSidecarsByRoot.js";
15
16
  import {onDataColumnSidecarsByRange} from "./dataColumnSidecarsByRange.js";
16
17
  import {onDataColumnSidecarsByRoot} from "./dataColumnSidecarsByRoot.js";
18
+ import {onExecutionPayloadEnvelopesByRange} from "./executionPayloadEnvelopesByRange.js";
19
+ import {onExecutionPayloadEnvelopesByRoot} from "./executionPayloadEnvelopesByRoot.js";
17
20
  import {onLightClientBootstrap} from "./lightClientBootstrap.js";
18
21
  import {onLightClientFinalityUpdate} from "./lightClientFinalityUpdate.js";
19
22
  import {onLightClientOptimisticUpdate} from "./lightClientOptimisticUpdate.js";
@@ -62,6 +65,15 @@ export function getReqRespHandlers({db, chain}: {db: IBeaconDb; chain: IBeaconCh
62
65
  return onDataColumnSidecarsByRoot(body, chain, db, peerId, peerClient);
63
66
  },
64
67
 
68
+ [ReqRespMethod.ExecutionPayloadEnvelopesByRoot]: (req) => {
69
+ const body = ExecutionPayloadEnvelopesByRootRequestType(chain.config).deserialize(req.data);
70
+ return onExecutionPayloadEnvelopesByRoot(body, chain, db);
71
+ },
72
+ [ReqRespMethod.ExecutionPayloadEnvelopesByRange]: (req) => {
73
+ const body = ssz.gloas.ExecutionPayloadEnvelopesByRangeRequest.deserialize(req.data);
74
+ return onExecutionPayloadEnvelopesByRange(body, chain, db);
75
+ },
76
+
65
77
  [ReqRespMethod.LightClientBootstrap]: (req) => {
66
78
  const body = ssz.Root.deserialize(req.data);
67
79
  return onLightClientBootstrap(body, chain);
@@ -94,6 +94,18 @@ export const DataColumnSidecarsByRoot = toProtocol({
94
94
  contextBytesType: ContextBytesType.ForkDigest,
95
95
  });
96
96
 
97
+ export const ExecutionPayloadEnvelopesByRoot = toProtocol({
98
+ method: ReqRespMethod.ExecutionPayloadEnvelopesByRoot,
99
+ version: Version.V1,
100
+ contextBytesType: ContextBytesType.ForkDigest,
101
+ });
102
+
103
+ export const ExecutionPayloadEnvelopesByRange = toProtocol({
104
+ method: ReqRespMethod.ExecutionPayloadEnvelopesByRange,
105
+ version: Version.V1,
106
+ contextBytesType: ContextBytesType.ForkDigest,
107
+ });
108
+
97
109
  export const LightClientBootstrap = toProtocol({
98
110
  method: ReqRespMethod.LightClientBootstrap,
99
111
  version: Version.V1,
@@ -73,6 +73,24 @@ export const rateLimitQuotas: (fork: ForkName, config: BeaconConfig) => Record<R
73
73
  req.reduce((total, item) => total + item.columns.length, 0)
74
74
  ),
75
75
  },
76
+ [ReqRespMethod.ExecutionPayloadEnvelopesByRoot]: {
77
+ byPeer: {quota: config.MAX_REQUEST_PAYLOADS, quotaTimeMs: 10_000},
78
+ getRequestCount: getRequestCountFn(
79
+ fork,
80
+ config,
81
+ ReqRespMethod.ExecutionPayloadEnvelopesByRoot,
82
+ (req) => req.length
83
+ ),
84
+ },
85
+ [ReqRespMethod.ExecutionPayloadEnvelopesByRange]: {
86
+ byPeer: {quota: config.MAX_REQUEST_BLOCKS_DENEB, quotaTimeMs: 10_000},
87
+ getRequestCount: getRequestCountFn(
88
+ fork,
89
+ config,
90
+ ReqRespMethod.ExecutionPayloadEnvelopesByRange,
91
+ (req) => req.count
92
+ ),
93
+ },
76
94
  [ReqRespMethod.LightClientBootstrap]: {
77
95
  // As similar in the nature of `Status` protocol so we use the same rate limits.
78
96
  byPeer: {quota: 5, quotaTimeMs: 15_000},
@@ -46,6 +46,8 @@ export function onOutgoingReqRespError(e: RequestError, method: ReqRespMethod):
46
46
  return PeerAction.LowToleranceError;
47
47
  case ReqRespMethod.BeaconBlocksByRange:
48
48
  case ReqRespMethod.BeaconBlocksByRoot:
49
+ case ReqRespMethod.ExecutionPayloadEnvelopesByRoot:
50
+ case ReqRespMethod.ExecutionPayloadEnvelopesByRange:
49
51
  return PeerAction.MidToleranceError;
50
52
  default:
51
53
  return null;