@lodestar/beacon-node 1.23.0-dev.e01142b1f8 → 1.23.0-dev.e770ebe0ab

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.
@@ -22,6 +22,12 @@ export declare class ExecutionBuilderHttp implements IExecutionBuilder {
22
22
  status: boolean;
23
23
  faultInspectionWindow: number;
24
24
  allowedFaults: number;
25
+ /**
26
+ * Determine if SSZ is supported by requesting an SSZ encoded response in the `getHeader` request.
27
+ * The builder responding with a SSZ serialized `SignedBuilderBid` indicates support to handle the
28
+ * `SignedBlindedBeaconBlock` as SSZ serialized bytes instead of JSON when calling `submitBlindedBlock`.
29
+ */
30
+ private sszSupported;
25
31
  constructor(opts: ExecutionBuilderHttpOpts, config: ChainForkConfig, metrics?: Metrics | null, logger?: Logger);
26
32
  updateStatus(shouldEnable: boolean): void;
27
33
  checkStatus(): Promise<void>;
@@ -2,6 +2,7 @@ import { parseExecutionPayloadAndBlobsBundle, reconstructFullBlockOrContents } f
2
2
  import { getClient } from "@lodestar/api/builder";
3
3
  import { SLOTS_PER_EPOCH } from "@lodestar/params";
4
4
  import { toPrintableUrl } from "@lodestar/utils";
5
+ import { WireFormat } from "@lodestar/api";
5
6
  export const defaultExecutionBuilderHttpOpts = {
6
7
  enabled: false,
7
8
  url: "http://localhost:8661",
@@ -16,6 +17,12 @@ export class ExecutionBuilderHttp {
16
17
  constructor(opts, config, metrics = null, logger) {
17
18
  // Builder needs to be explicity enabled using updateStatus
18
19
  this.status = false;
20
+ /**
21
+ * Determine if SSZ is supported by requesting an SSZ encoded response in the `getHeader` request.
22
+ * The builder responding with a SSZ serialized `SignedBuilderBid` indicates support to handle the
23
+ * `SignedBlindedBeaconBlock` as SSZ serialized bytes instead of JSON when calling `submitBlindedBlock`.
24
+ */
25
+ this.sszSupported = false;
19
26
  const baseUrl = opts.url;
20
27
  if (!baseUrl)
21
28
  throw Error("No Url provided for executionBuilder");
@@ -58,18 +65,20 @@ export class ExecutionBuilderHttp {
58
65
  (await this.api.registerValidator({ registrations })).assertOk();
59
66
  }
60
67
  async getHeader(_fork, slot, parentHash, proposerPubkey) {
61
- const signedBuilderBid = (await this.api.getHeader({ slot, parentHash, proposerPubkey }, { timeoutMs: BUILDER_PROPOSAL_DELAY_TOLERANCE })).value();
68
+ const res = await this.api.getHeader({ slot, parentHash, proposerPubkey }, { timeoutMs: BUILDER_PROPOSAL_DELAY_TOLERANCE });
69
+ const signedBuilderBid = res.value();
62
70
  if (!signedBuilderBid) {
63
71
  throw Error("No bid received");
64
72
  }
73
+ this.sszSupported = res.wireFormat() === WireFormat.ssz;
65
74
  const { header, value: executionPayloadValue } = signedBuilderBid.message;
66
75
  const { blobKzgCommitments } = signedBuilderBid.message;
67
76
  const { executionRequests } = signedBuilderBid.message;
68
77
  return { header, executionPayloadValue, blobKzgCommitments, executionRequests };
69
78
  }
70
79
  async submitBlindedBlock(signedBlindedBlock) {
71
- const data = (await this.api.submitBlindedBlock({ signedBlindedBlock }, { retries: 2 })).value();
72
- const { executionPayload, blobsBundle } = parseExecutionPayloadAndBlobsBundle(data);
80
+ const res = await this.api.submitBlindedBlock({ signedBlindedBlock }, { retries: 2, requestWireFormat: this.sszSupported ? WireFormat.ssz : WireFormat.json });
81
+ const { executionPayload, blobsBundle } = parseExecutionPayloadAndBlobsBundle(res.value());
73
82
  // for the sake of timely proposals we can skip matching the payload with payloadHeader
74
83
  // if the roots (transactions, withdrawals) don't match, this will likely lead to a block with
75
84
  // invalid signature, but there is no recourse to this anyway so lets just proceed and will
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/execution/builder/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/execution/builder/http.ts"],"names":[],"mappings":"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"}
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.23.0-dev.e01142b1f8",
14
+ "version": "1.23.0-dev.e770ebe0ab",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -119,18 +119,18 @@
119
119
  "@libp2p/peer-id": "^5.0.4",
120
120
  "@libp2p/prometheus-metrics": "^4.1.2",
121
121
  "@libp2p/tcp": "10.0.4",
122
- "@lodestar/api": "1.23.0-dev.e01142b1f8",
123
- "@lodestar/config": "1.23.0-dev.e01142b1f8",
124
- "@lodestar/db": "1.23.0-dev.e01142b1f8",
125
- "@lodestar/fork-choice": "1.23.0-dev.e01142b1f8",
126
- "@lodestar/light-client": "1.23.0-dev.e01142b1f8",
127
- "@lodestar/logger": "1.23.0-dev.e01142b1f8",
128
- "@lodestar/params": "1.23.0-dev.e01142b1f8",
129
- "@lodestar/reqresp": "1.23.0-dev.e01142b1f8",
130
- "@lodestar/state-transition": "1.23.0-dev.e01142b1f8",
131
- "@lodestar/types": "1.23.0-dev.e01142b1f8",
132
- "@lodestar/utils": "1.23.0-dev.e01142b1f8",
133
- "@lodestar/validator": "1.23.0-dev.e01142b1f8",
122
+ "@lodestar/api": "1.23.0-dev.e770ebe0ab",
123
+ "@lodestar/config": "1.23.0-dev.e770ebe0ab",
124
+ "@lodestar/db": "1.23.0-dev.e770ebe0ab",
125
+ "@lodestar/fork-choice": "1.23.0-dev.e770ebe0ab",
126
+ "@lodestar/light-client": "1.23.0-dev.e770ebe0ab",
127
+ "@lodestar/logger": "1.23.0-dev.e770ebe0ab",
128
+ "@lodestar/params": "1.23.0-dev.e770ebe0ab",
129
+ "@lodestar/reqresp": "1.23.0-dev.e770ebe0ab",
130
+ "@lodestar/state-transition": "1.23.0-dev.e770ebe0ab",
131
+ "@lodestar/types": "1.23.0-dev.e770ebe0ab",
132
+ "@lodestar/utils": "1.23.0-dev.e770ebe0ab",
133
+ "@lodestar/validator": "1.23.0-dev.e770ebe0ab",
134
134
  "@multiformats/multiaddr": "^12.1.3",
135
135
  "c-kzg": "^2.1.2",
136
136
  "datastore-core": "^10.0.0",
@@ -167,5 +167,5 @@
167
167
  "beacon",
168
168
  "blockchain"
169
169
  ],
170
- "gitHead": "c9816562f541146dbe9f8d00e4209239693d98f1"
170
+ "gitHead": "e642418882cf0ffc48820ddbecf109b3c973ada4"
171
171
  }