@lodestar/beacon-node 1.34.0-dev.d5be46d90d → 1.34.0-dev.ece38879ec

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 (77) hide show
  1. package/lib/api/impl/beacon/blocks/index.js +56 -33
  2. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  3. package/lib/api/impl/validator/index.js +35 -24
  4. package/lib/api/impl/validator/index.js.map +1 -1
  5. package/lib/chain/chain.d.ts +8 -80
  6. package/lib/chain/chain.js +25 -65
  7. package/lib/chain/chain.js.map +1 -1
  8. package/lib/chain/interface.d.ts +3 -10
  9. package/lib/chain/interface.js.map +1 -1
  10. package/lib/chain/prepareNextSlot.js +2 -1
  11. package/lib/chain/prepareNextSlot.js.map +1 -1
  12. package/lib/chain/produceBlock/produceBlockBody.d.ts +30 -18
  13. package/lib/chain/produceBlock/produceBlockBody.js +27 -32
  14. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  15. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts +6 -4
  16. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js +22 -21
  17. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
  18. package/lib/execution/builder/http.d.ts +20 -4
  19. package/lib/execution/builder/http.js +30 -11
  20. package/lib/execution/builder/http.js.map +1 -1
  21. package/lib/execution/builder/interface.d.ts +5 -4
  22. package/lib/execution/engine/http.d.ts +4 -3
  23. package/lib/execution/engine/http.js +25 -50
  24. package/lib/execution/engine/http.js.map +1 -1
  25. package/lib/execution/engine/interface.d.ts +2 -11
  26. package/lib/execution/engine/types.d.ts +2 -2
  27. package/lib/execution/engine/types.js +1 -1
  28. package/lib/execution/engine/types.js.map +1 -1
  29. package/lib/metrics/metrics/beacon.d.ts +1 -5
  30. package/lib/metrics/metrics/beacon.js +4 -14
  31. package/lib/metrics/metrics/beacon.js.map +1 -1
  32. package/lib/metrics/metrics/lodestar.d.ts +1 -0
  33. package/lib/metrics/metrics/lodestar.js +6 -0
  34. package/lib/metrics/metrics/lodestar.js.map +1 -1
  35. package/lib/network/core/networkCore.d.ts +5 -0
  36. package/lib/network/core/networkCore.js +44 -14
  37. package/lib/network/core/networkCore.js.map +1 -1
  38. package/lib/network/gossip/gossipsub.d.ts +2 -2
  39. package/lib/network/gossip/gossipsub.js +8 -6
  40. package/lib/network/gossip/gossipsub.js.map +1 -1
  41. package/lib/network/gossip/scoringParameters.d.ts +6 -2
  42. package/lib/network/gossip/scoringParameters.js.map +1 -1
  43. package/lib/network/gossip/topic.d.ts +7 -2
  44. package/lib/network/gossip/topic.js +15 -6
  45. package/lib/network/gossip/topic.js.map +1 -1
  46. package/lib/network/network.js +5 -0
  47. package/lib/network/network.js.map +1 -1
  48. package/lib/network/peers/peerManager.js +15 -6
  49. package/lib/network/peers/peerManager.js.map +1 -1
  50. package/lib/network/processor/gossipHandlers.js +22 -16
  51. package/lib/network/processor/gossipHandlers.js.map +1 -1
  52. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +6 -3
  53. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +45 -17
  54. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -1
  55. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +3 -3
  56. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
  57. package/lib/network/subnets/interface.js +2 -2
  58. package/lib/network/subnets/interface.js.map +1 -1
  59. package/lib/sync/constants.d.ts +1 -1
  60. package/lib/sync/constants.js +1 -1
  61. package/lib/sync/range/chain.d.ts +1 -1
  62. package/lib/sync/range/chain.js +2 -2
  63. package/lib/sync/range/chain.js.map +1 -1
  64. package/lib/sync/range/range.js +2 -2
  65. package/lib/sync/range/range.js.map +1 -1
  66. package/lib/sync/range/utils/peerBalancer.d.ts +3 -1
  67. package/lib/sync/range/utils/peerBalancer.js +20 -1
  68. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  69. package/lib/sync/unknownBlock.js +4 -5
  70. package/lib/sync/unknownBlock.js.map +1 -1
  71. package/lib/util/blobs.d.ts +3 -13
  72. package/lib/util/blobs.js +9 -47
  73. package/lib/util/blobs.js.map +1 -1
  74. package/lib/util/dataColumns.d.ts +4 -2
  75. package/lib/util/dataColumns.js +9 -4
  76. package/lib/util/dataColumns.js.map +1 -1
  77. package/package.json +16 -16
@@ -1,7 +1,7 @@
1
1
  import { ChainForkConfig } from "@lodestar/config";
2
- import { ForkPostBellatrix } from "@lodestar/params";
2
+ import { ForkName, ForkPostBellatrix, ForkPostDeneb, ForkPostFulu } from "@lodestar/params";
3
3
  import { CachedBeaconStateAllForks, CachedBeaconStateExecutions } from "@lodestar/state-transition";
4
- import { BLSPubkey, BLSSignature, BeaconBlock, BeaconBlockBody, BlindedBeaconBlock, BlindedBeaconBlockBody, Bytes32, Root, RootHex, SSEPayloadAttributes, Slot, ValidatorIndex, Wei, deneb, fulu } from "@lodestar/types";
4
+ import { BLSPubkey, BLSSignature, BeaconBlock, BeaconBlockBody, BlindedBeaconBlock, BlindedBeaconBlockBody, BlobsBundle, Bytes32, ExecutionPayload, Root, RootHex, SSEPayloadAttributes, Slot, ValidatorIndex, Wei, fulu } from "@lodestar/types";
5
5
  import { Logger } from "@lodestar/utils";
6
6
  import { IEth1ForBlockProduction } from "../../eth1/index.js";
7
7
  import { IExecutionEngine, PayloadId } from "../../execution/index.js";
@@ -40,29 +40,41 @@ export declare enum BlockType {
40
40
  }
41
41
  export type AssembledBodyType<T extends BlockType> = T extends BlockType.Full ? BeaconBlockBody : BlindedBeaconBlockBody;
42
42
  export type AssembledBlockType<T extends BlockType> = T extends BlockType.Full ? BeaconBlock : BlindedBeaconBlock;
43
- export declare enum BlobsResultType {
44
- preDeneb = 0,
45
- produced = 1,
46
- blinded = 2
47
- }
48
- export type BlobsResult = {
49
- type: BlobsResultType.preDeneb;
50
- } | {
51
- type: BlobsResultType.produced;
52
- contents: deneb.Contents & {
53
- cells?: fulu.Cell[][];
54
- };
55
- blockHash: RootHex;
56
- } | {
57
- type: BlobsResultType.blinded;
43
+ export type ProduceFullFulu = {
44
+ type: BlockType.Full;
45
+ fork: ForkPostFulu;
46
+ executionPayload: ExecutionPayload<ForkPostFulu>;
47
+ blobsBundle: BlobsBundle<ForkPostFulu>;
48
+ cells: fulu.Cell[][];
49
+ };
50
+ export type ProduceFullDeneb = {
51
+ type: BlockType.Full;
52
+ fork: ForkName.deneb | ForkName.electra;
53
+ executionPayload: ExecutionPayload<ForkPostDeneb>;
54
+ blobsBundle: BlobsBundle<ForkPostDeneb>;
55
+ };
56
+ export type ProduceFullBellatrix = {
57
+ type: BlockType.Full;
58
+ fork: ForkName.bellatrix | ForkName.capella;
59
+ executionPayload: ExecutionPayload<ForkPostBellatrix>;
60
+ };
61
+ export type ProduceFullPhase0 = {
62
+ type: BlockType.Full;
63
+ fork: ForkName.phase0 | ForkName.altair;
64
+ };
65
+ export type ProduceBlinded = {
66
+ type: BlockType.Blinded;
67
+ fork: ForkName;
58
68
  };
69
+ /** The result of local block production, everything that's not the block itself */
70
+ export type ProduceResult = ProduceFullFulu | ProduceFullDeneb | ProduceFullBellatrix | ProduceFullPhase0 | ProduceBlinded;
59
71
  export declare function produceBlockBody<T extends BlockType>(this: BeaconChain, blockType: T, currentState: CachedBeaconStateAllForks, blockAttr: BlockAttributes & {
60
72
  proposerIndex: ValidatorIndex;
61
73
  proposerPubKey: BLSPubkey;
62
74
  commonBlockBodyPromise?: Promise<CommonBlockBody>;
63
75
  }): Promise<{
64
76
  body: AssembledBodyType<T>;
65
- blobs: BlobsResult;
77
+ produceResult: ProduceResult;
66
78
  executionPayloadValue: Wei;
67
79
  shouldOverrideBuilder?: boolean;
68
80
  }>;
@@ -1,4 +1,4 @@
1
- import { ForkSeq, isForkPostAltair, isForkPostBellatrix } from "@lodestar/params";
1
+ import { ForkSeq, isForkPostAltair, isForkPostBellatrix, } from "@lodestar/params";
2
2
  import { computeTimeAtSlot, getCurrentEpoch, getExpectedWithdrawals, getRandaoMix, isMergeTransitionComplete, } from "@lodestar/state-transition";
3
3
  import { ssz, sszTypesFor, } from "@lodestar/types";
4
4
  import { sleep, toHex, toPubkeyHex, toRootHex } from "@lodestar/utils";
@@ -7,7 +7,7 @@ import { numToQuantity } from "../../eth1/provider/utils.js";
7
7
  import { getExpectedGasLimit, } from "../../execution/index.js";
8
8
  import { fromGraffitiBytes } from "../../util/graffiti.js";
9
9
  import { kzg } from "../../util/kzg.js";
10
- import { validateBlobsAndKzgCommitments } from "./validateBlobsAndKzgCommitments.js";
10
+ import { validateBlobsAndKzgCommitments, validateCellsAndKzgCommitments } from "./validateBlobsAndKzgCommitments.js";
11
11
  // Time to provide the EL to generate a payload from new payload id
12
12
  const PAYLOAD_GENERATION_TIME_MS = 500;
13
13
  export var PayloadPreparationType;
@@ -36,24 +36,18 @@ export var BlockType;
36
36
  BlockType["Full"] = "Full";
37
37
  BlockType["Blinded"] = "Blinded";
38
38
  })(BlockType || (BlockType = {}));
39
- export var BlobsResultType;
40
- (function (BlobsResultType) {
41
- BlobsResultType[BlobsResultType["preDeneb"] = 0] = "preDeneb";
42
- BlobsResultType[BlobsResultType["produced"] = 1] = "produced";
43
- BlobsResultType[BlobsResultType["blinded"] = 2] = "blinded";
44
- })(BlobsResultType || (BlobsResultType = {}));
45
39
  export async function produceBlockBody(blockType, currentState, blockAttr) {
46
40
  const { slot: blockSlot, feeRecipient: requestedFeeRecipient, parentBlockRoot, proposerIndex, proposerPubKey, commonBlockBodyPromise, } = blockAttr;
47
- // Type-safe for blobs variable. Translate 'null' value into 'preDeneb' enum
48
- // TODO: Not ideal, but better than just using null.
49
- // TODO: Does not guarantee that preDeneb enum goes with a preDeneb block
50
- let blobsResult;
51
41
  let executionPayloadValue;
52
42
  let blockBody;
53
43
  // even though shouldOverrideBuilder is relevant for the engine response, for simplicity of typing
54
44
  // we just return it undefined for the builder which anyway doesn't get consumed downstream
55
45
  let shouldOverrideBuilder;
56
46
  const fork = currentState.config.getForkName(blockSlot);
47
+ const produceResult = {
48
+ type: blockType,
49
+ fork,
50
+ };
57
51
  const logMeta = {
58
52
  fork,
59
53
  blockType,
@@ -72,7 +66,7 @@ export async function produceBlockBody(blockType, currentState, blockAttr) {
72
66
  Object.assign(logMeta, { feeRecipientType, feeRecipient });
73
67
  if (blockType === BlockType.Blinded) {
74
68
  if (!this.executionBuilder)
75
- throw Error("Execution Builder not available");
69
+ throw Error("External builder not configured");
76
70
  const executionBuilder = this.executionBuilder;
77
71
  const builderPromise = (async () => {
78
72
  const endExecutionPayloadHeader = this.metrics?.builderBlockProductionTimeSteps.startTimer();
@@ -145,12 +139,8 @@ export async function produceBlockBody(blockType, currentState, blockAttr) {
145
139
  throw Error(`Invalid builder getHeader response for fork=${fork}, missing blobKzgCommitments`);
146
140
  }
147
141
  blockBody.blobKzgCommitments = blobKzgCommitments;
148
- blobsResult = { type: BlobsResultType.blinded };
149
142
  Object.assign(logMeta, { blobs: blobKzgCommitments.length });
150
143
  }
151
- else {
152
- blobsResult = { type: BlobsResultType.preDeneb };
153
- }
154
144
  if (ForkSeq[fork] >= ForkSeq.electra) {
155
145
  const { executionRequests } = builderRes;
156
146
  if (executionRequests === undefined) {
@@ -219,13 +209,13 @@ export async function produceBlockBody(blockType, currentState, blockAttr) {
219
209
  blockBody = Object.assign({}, commonBlockBody);
220
210
  if (engineRes.isPremerge) {
221
211
  blockBody.executionPayload = engineRes.executionPayload;
222
- blobsResult = { type: BlobsResultType.preDeneb };
223
212
  executionPayloadValue = engineRes.executionPayloadValue;
224
213
  }
225
214
  else {
226
215
  const { prepType, payloadId, executionPayload, blobsBundle, executionRequests } = engineRes;
227
216
  shouldOverrideBuilder = engineRes.shouldOverrideBuilder;
228
217
  blockBody.executionPayload = executionPayload;
218
+ produceResult.executionPayload = executionPayload;
229
219
  executionPayloadValue = engineRes.executionPayloadValue;
230
220
  Object.assign(logMeta, { transactions: executionPayload.transactions.length, shouldOverrideBuilder });
231
221
  const fetchedTime = Date.now() / 1000 - computeTimeAtSlot(this.config, blockSlot, this.genesisTime);
@@ -241,25 +231,31 @@ export async function produceBlockBody(blockType, currentState, blockAttr) {
241
231
  if (executionPayload.transactions.length === 0) {
242
232
  this.metrics?.blockPayload.emptyPayloads.inc({ prepType });
243
233
  }
244
- if (ForkSeq[fork] >= ForkSeq.deneb) {
234
+ if (ForkSeq[fork] >= ForkSeq.fulu) {
245
235
  if (blobsBundle === undefined) {
246
236
  throw Error(`Missing blobsBundle response from getPayload at fork=${fork}`);
247
237
  }
248
- let cells;
249
- if (ForkSeq[fork] >= ForkSeq.fulu) {
250
- cells = blobsBundle.blobs.map((blob) => kzg.computeCells(blob));
251
- }
238
+ // NOTE: Even though the fulu.BlobsBundle type is superficially the same as deneb.BlobsBundle, it is NOT.
239
+ // In fulu, proofs are _cell_ proofs, vs in deneb they are _blob_ proofs.
240
+ const cells = blobsBundle.blobs.map((blob) => kzg.computeCells(blob));
252
241
  if (this.opts.sanityCheckExecutionEngineBlobs) {
253
- await validateBlobsAndKzgCommitments(fork, executionPayload, blobsBundle, cells);
242
+ await validateCellsAndKzgCommitments(blobsBundle.commitments, blobsBundle.proofs, cells);
254
243
  }
255
244
  blockBody.blobKzgCommitments = blobsBundle.commitments;
256
- const blockHash = toRootHex(executionPayload.blockHash);
257
- const contents = { kzgProofs: blobsBundle.proofs, blobs: blobsBundle.blobs, cells };
258
- blobsResult = { type: BlobsResultType.produced, contents, blockHash };
245
+ produceResult.blobsBundle = blobsBundle;
246
+ produceResult.cells = cells;
259
247
  Object.assign(logMeta, { blobs: blobsBundle.commitments.length });
260
248
  }
261
- else {
262
- blobsResult = { type: BlobsResultType.preDeneb };
249
+ else if (ForkSeq[fork] >= ForkSeq.deneb) {
250
+ if (blobsBundle === undefined) {
251
+ throw Error(`Missing blobsBundle response from getPayload at fork=${fork}`);
252
+ }
253
+ if (this.opts.sanityCheckExecutionEngineBlobs) {
254
+ await validateBlobsAndKzgCommitments(blobsBundle.commitments, blobsBundle.proofs, blobsBundle.blobs);
255
+ }
256
+ blockBody.blobKzgCommitments = blobsBundle.commitments;
257
+ produceResult.blobsBundle = blobsBundle;
258
+ Object.assign(logMeta, { blobs: blobsBundle.commitments.length });
263
259
  }
264
260
  if (ForkSeq[fork] >= ForkSeq.electra) {
265
261
  if (executionRequests === undefined) {
@@ -274,7 +270,6 @@ export async function produceBlockBody(blockType, currentState, blockAttr) {
274
270
  const commonBlockBody = await (commonBlockBodyPromise ??
275
271
  produceCommonBlockBody.call(this, blockType, currentState, blockAttr));
276
272
  blockBody = Object.assign({}, commonBlockBody);
277
- blobsResult = { type: BlobsResultType.preDeneb };
278
273
  executionPayloadValue = BigInt(0);
279
274
  }
280
275
  const { graffiti, attestations, deposits, voluntaryExits, attesterSlashings, proposerSlashings } = blockBody;
@@ -306,7 +301,7 @@ export async function produceBlockBody(blockType, currentState, blockAttr) {
306
301
  }
307
302
  Object.assign(logMeta, { executionPayloadValue });
308
303
  this.logger.verbose("Produced beacon block body", logMeta);
309
- return { body: blockBody, blobs: blobsResult, executionPayloadValue, shouldOverrideBuilder };
304
+ return { body: blockBody, produceResult, executionPayloadValue, shouldOverrideBuilder };
310
305
  }
311
306
  /**
312
307
  * Produce ExecutionPayload for pre-merge, merge, and post-merge.
@@ -374,7 +369,7 @@ async function prepareExecutionPayloadHeader(chain, fork, state, proposerPubKey)
374
369
  }
375
370
  const parentHashRes = await getExecutionPayloadParentHash(chain, state);
376
371
  if (parentHashRes.isPremerge) {
377
- throw Error("Execution builder disabled pre-merge");
372
+ throw Error("External builder disabled pre-merge");
378
373
  }
379
374
  const { parentHash } = parentHashRes;
380
375
  return chain.executionBuilder.getHeader(fork, state.slot, parentHash, proposerPubKey);
@@ -1 +1 @@
1
- {"version":3,"file":"produceBlockBody.js","sourceRoot":"","sources":["../../../src/chain/produceBlock/produceBlockBody.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"produceBlockBody.js","sourceRoot":"","sources":["../../../src/chain/produceBlock/produceBlockBody.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
- import { ForkPostDeneb } from "@lodestar/params";
2
- import { ExecutionPayload, fulu } from "@lodestar/types";
3
- import { BlobsBundle } from "../../execution/index.js";
1
+ import { deneb, fulu } from "@lodestar/types";
4
2
  /**
5
3
  * Optionally sanity-check that the KZG commitments match the versioned hashes in the transactions
6
4
  * https://github.com/ethereum/consensus-specs/blob/11a037fd9227e29ee809c9397b09f8cc3383a8c0/specs/eip4844/validator.md#blob-kzg-commitments
7
5
  */
8
- export declare function validateBlobsAndKzgCommitments(fork: ForkPostDeneb, _payload: ExecutionPayload, blobsBundle: BlobsBundle, cells?: fulu.Cell[][]): Promise<void>;
6
+ export declare function validateBlobsAndKzgCommitments(commitments: deneb.KZGCommitment[], proofs: deneb.KZGProof[], blobs: deneb.Blobs): Promise<void>;
7
+ /**
8
+ * Optionally sanity-check that the KZG commitments match the versioned hashes in the transactions
9
+ */
10
+ export declare function validateCellsAndKzgCommitments(commitments: deneb.KZGCommitment[], proofs: fulu.KZGProof[], cells: fulu.Cell[][]): Promise<void>;
9
11
  //# sourceMappingURL=validateBlobsAndKzgCommitments.d.ts.map
@@ -1,33 +1,34 @@
1
- import { CELLS_PER_EXT_BLOB, ForkSeq } from "@lodestar/params";
1
+ import { CELLS_PER_EXT_BLOB } from "@lodestar/params";
2
2
  import { kzg } from "../../util/kzg.js";
3
3
  /**
4
4
  * Optionally sanity-check that the KZG commitments match the versioned hashes in the transactions
5
5
  * https://github.com/ethereum/consensus-specs/blob/11a037fd9227e29ee809c9397b09f8cc3383a8c0/specs/eip4844/validator.md#blob-kzg-commitments
6
6
  */
7
- export async function validateBlobsAndKzgCommitments(fork, _payload, blobsBundle, cells) {
8
- if (blobsBundle.blobs.length !== blobsBundle.commitments.length) {
9
- throw Error(`Blobs bundle blobs len ${blobsBundle.blobs.length} != commitments len ${blobsBundle.commitments.length}`);
7
+ export async function validateBlobsAndKzgCommitments(commitments, proofs, blobs) {
8
+ if (blobs.length !== commitments.length) {
9
+ throw Error(`Blobs bundle blobs len ${blobs.length} != commitments len ${commitments.length}`);
10
10
  }
11
- if (ForkSeq[fork] < ForkSeq.fulu) {
12
- if (blobsBundle.proofs.length !== blobsBundle.blobs.length) {
13
- throw new Error(`Invalid proofs length for BlobsBundleV1 format: expected ${blobsBundle.blobs.length}, got ${blobsBundle.proofs.length}`);
14
- }
15
- if (!(await kzg.asyncVerifyBlobKzgProofBatch(blobsBundle.blobs, blobsBundle.commitments, blobsBundle.proofs))) {
16
- throw new Error("Error in verifyBlobKzgProofBatch");
17
- }
18
- return;
11
+ if (proofs.length !== blobs.length) {
12
+ throw new Error(`Invalid proofs length for BlobsBundleV1 format: expected ${blobs.length}, got ${proofs.length}`);
19
13
  }
20
- if (!cells) {
21
- cells = blobsBundle.blobs.map((blob) => kzg.computeCells(blob));
14
+ if (!(await kzg.asyncVerifyBlobKzgProofBatch(blobs, commitments, proofs))) {
15
+ throw new Error("Error in verifyBlobKzgProofBatch");
22
16
  }
23
- const expectedProofsLength = blobsBundle.blobs.length * CELLS_PER_EXT_BLOB;
24
- if (blobsBundle.proofs.length !== expectedProofsLength) {
25
- throw Error(`Invalid proofs length for BlobsBundleV2 format: expected ${expectedProofsLength}, got ${blobsBundle.proofs.length}`);
17
+ }
18
+ /**
19
+ * Optionally sanity-check that the KZG commitments match the versioned hashes in the transactions
20
+ */
21
+ export async function validateCellsAndKzgCommitments(commitments, proofs, cells) {
22
+ if (cells.length !== commitments.length) {
23
+ throw Error(`Blobs bundle cells len ${cells.length} != commitments len ${commitments.length}`);
24
+ }
25
+ const expectedProofsLength = cells.length * CELLS_PER_EXT_BLOB;
26
+ if (proofs.length !== expectedProofsLength) {
27
+ throw Error(`Invalid proofs length for BlobsBundleV2 format: expected ${expectedProofsLength}, got ${proofs.length}`);
26
28
  }
27
- const commitmentBytes = blobsBundle.commitments.flatMap((commitment) => Array(CELLS_PER_EXT_BLOB).fill(commitment));
28
- const cellIndices = Array.from({ length: blobsBundle.blobs.length }).flatMap(() => Array.from({ length: CELLS_PER_EXT_BLOB }, (_, i) => i));
29
- const proofBytes = blobsBundle.proofs.flat();
30
- if (!(await kzg.asyncVerifyCellKzgProofBatch(commitmentBytes, cellIndices, cells.flat(), proofBytes))) {
29
+ const commitmentBytes = commitments.flatMap((commitment) => Array(CELLS_PER_EXT_BLOB).fill(commitment));
30
+ const cellIndices = Array.from({ length: cells.length }).flatMap(() => Array.from({ length: CELLS_PER_EXT_BLOB }, (_, i) => i));
31
+ if (!(await kzg.asyncVerifyCellKzgProofBatch(commitmentBytes, cellIndices, cells.flat(), proofs.flat()))) {
31
32
  throw new Error("Error in verifyCellKzgProofBatch");
32
33
  }
33
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validateBlobsAndKzgCommitments.js","sourceRoot":"","sources":["../../../src/chain/produceBlock/validateBlobsAndKzgCommitments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAiB,OAAO,EAAC,MAAM,kBAAkB,CAAC;AAG5E,OAAO,EAAC,GAAG,EAAC,MAAM,mBAAmB,CAAC;AAEtC;;;GAGG;AAEH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,IAAmB,EACnB,QAA0B,EAC1B,WAAwB,EACxB,KAAqB;IAErB,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;QAChE,MAAM,KAAK,CACT,0BAA0B,WAAW,CAAC,KAAK,CAAC,MAAM,uBAAuB,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,CAC1G,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CACb,4DAA4D,WAAW,CAAC,KAAK,CAAC,MAAM,SAAS,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CACzH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,4BAA4B,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAC9G,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,OAAO;IACT,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,oBAAoB,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,kBAAkB,CAAC;IAC3E,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,KAAK,oBAAoB,EAAE,CAAC;QACvD,MAAM,KAAK,CACT,4DAA4D,oBAAoB,SAAS,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CACrH,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACpH,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,EAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAC9E,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,kBAAkB,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CACtD,CAAC;IACF,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAE7C,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,4BAA4B,CAAC,eAAe,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;QACtG,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"validateBlobsAndKzgCommitments.js","sourceRoot":"","sources":["../../../src/chain/produceBlock/validateBlobsAndKzgCommitments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAC,GAAG,EAAC,MAAM,mBAAmB,CAAC;AAEtC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,WAAkC,EAClC,MAAwB,EACxB,KAAkB;IAElB,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,KAAK,CAAC,0BAA0B,KAAK,CAAC,MAAM,uBAAuB,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,4DAA4D,KAAK,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACpH,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,4BAA4B,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,WAAkC,EAClC,MAAuB,EACvB,KAAoB;IAEpB,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,KAAK,CAAC,0BAA0B,KAAK,CAAC,MAAM,uBAAuB,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,MAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,GAAG,kBAAkB,CAAC;IAC/D,IAAI,MAAM,CAAC,MAAM,KAAK,oBAAoB,EAAE,CAAC;QAC3C,MAAM,KAAK,CACT,4DAA4D,oBAAoB,SAAS,MAAM,CAAC,MAAM,EAAE,CACzG,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IACxG,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAClE,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,kBAAkB,EAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CACtD,CAAC;IAEF,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,4BAA4B,CAAC,eAAe,EAAE,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QACzG,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;AACH,CAAC"}
@@ -2,7 +2,7 @@ import { ApiClient as BuilderApi } from "@lodestar/api/builder";
2
2
  import { ChainForkConfig } from "@lodestar/config";
3
3
  import { Logger } from "@lodestar/logger";
4
4
  import { ForkPostBellatrix } from "@lodestar/params";
5
- import { BLSPubkey, Epoch, ExecutionPayloadHeader, Root, SignedBeaconBlockOrContents, SignedBlindedBeaconBlock, Slot, Wei, WithOptionalBytes, bellatrix, deneb, electra } from "@lodestar/types";
5
+ import { BLSPubkey, Epoch, ExecutionPayloadHeader, Root, SignedBlindedBeaconBlock, SignedBlockContents, Slot, Wei, WithOptionalBytes, bellatrix, deneb, electra } from "@lodestar/types";
6
6
  import { Metrics } from "../../metrics/metrics.js";
7
7
  import { ValidatorRegistration, ValidatorRegistrationCache } from "./cache.js";
8
8
  import { IExecutionBuilder } from "./interface.js";
@@ -16,6 +16,22 @@ export type ExecutionBuilderHttpOpts = {
16
16
  userAgent?: string;
17
17
  };
18
18
  export declare const defaultExecutionBuilderHttpOpts: ExecutionBuilderHttpOpts;
19
+ export declare enum BuilderStatus {
20
+ /**
21
+ * Builder is enabled and operational
22
+ */
23
+ enabled = "enabled",
24
+ /**
25
+ * Builder is disabled due to failed status check
26
+ */
27
+ disabled = "disabled",
28
+ /**
29
+ * Circuit breaker condition that is triggered when the node determines the chain is unhealthy.
30
+ * When the circuit breaker is fired, proposers **MUST** not utilize the external builder
31
+ * network and exclusively build locally.
32
+ */
33
+ circuitBreaker = "circuit_breaker"
34
+ }
19
35
  /**
20
36
  * Expected error if builder does not provide a bid. Most of the time, this
21
37
  * is due to `min-bid` setting on the mev-boost side but in rare cases could
@@ -29,7 +45,7 @@ export declare class ExecutionBuilderHttp implements IExecutionBuilder {
29
45
  readonly config: ChainForkConfig;
30
46
  readonly registrations: ValidatorRegistrationCache;
31
47
  readonly issueLocalFcUWithFeeRecipient?: string;
32
- status: boolean;
48
+ status: BuilderStatus;
33
49
  faultInspectionWindow: number;
34
50
  allowedFaults: number;
35
51
  /**
@@ -39,7 +55,7 @@ export declare class ExecutionBuilderHttp implements IExecutionBuilder {
39
55
  */
40
56
  private sszSupported;
41
57
  constructor(opts: ExecutionBuilderHttpOpts, config: ChainForkConfig, metrics?: Metrics | null, logger?: Logger);
42
- updateStatus(shouldEnable: boolean): void;
58
+ updateStatus(status: BuilderStatus): void;
43
59
  checkStatus(): Promise<void>;
44
60
  registerValidator(epoch: Epoch, registrations: bellatrix.SignedValidatorRegistrationV1[]): Promise<void>;
45
61
  getValidatorRegistration(pubkey: BLSPubkey): ValidatorRegistration | undefined;
@@ -49,7 +65,7 @@ export declare class ExecutionBuilderHttp implements IExecutionBuilder {
49
65
  blobKzgCommitments?: deneb.BlobKzgCommitments;
50
66
  executionRequests?: electra.ExecutionRequests;
51
67
  }>;
52
- submitBlindedBlock(signedBlindedBlock: WithOptionalBytes<SignedBlindedBeaconBlock>): Promise<SignedBeaconBlockOrContents>;
68
+ submitBlindedBlock(signedBlindedBlock: WithOptionalBytes<SignedBlindedBeaconBlock>): Promise<SignedBlockContents>;
53
69
  submitBlindedBlockNoResponse(signedBlindedBlock: WithOptionalBytes<SignedBlindedBeaconBlock>): Promise<void>;
54
70
  }
55
71
  //# sourceMappingURL=http.d.ts.map
@@ -1,7 +1,7 @@
1
1
  import { WireFormat } from "@lodestar/api";
2
2
  import { getClient } from "@lodestar/api/builder";
3
3
  import { SLOTS_PER_EPOCH } from "@lodestar/params";
4
- import { parseExecutionPayloadAndBlobsBundle, reconstructFullBlockOrContents } from "@lodestar/state-transition";
4
+ import { parseExecutionPayloadAndBlobsBundle, reconstructSignedBlockContents } from "@lodestar/state-transition";
5
5
  import { toPrintableUrl } from "@lodestar/utils";
6
6
  import { ValidatorRegistrationCache } from "./cache.js";
7
7
  export const defaultExecutionBuilderHttpOpts = {
@@ -9,6 +9,23 @@ export const defaultExecutionBuilderHttpOpts = {
9
9
  url: "http://localhost:8661",
10
10
  timeout: 12000,
11
11
  };
12
+ export var BuilderStatus;
13
+ (function (BuilderStatus) {
14
+ /**
15
+ * Builder is enabled and operational
16
+ */
17
+ BuilderStatus["enabled"] = "enabled";
18
+ /**
19
+ * Builder is disabled due to failed status check
20
+ */
21
+ BuilderStatus["disabled"] = "disabled";
22
+ /**
23
+ * Circuit breaker condition that is triggered when the node determines the chain is unhealthy.
24
+ * When the circuit breaker is fired, proposers **MUST** not utilize the external builder
25
+ * network and exclusively build locally.
26
+ */
27
+ BuilderStatus["circuitBreaker"] = "circuit_breaker";
28
+ })(BuilderStatus || (BuilderStatus = {}));
12
29
  /**
13
30
  * Expected error if builder does not provide a bid. Most of the time, this
14
31
  * is due to `min-bid` setting on the mev-boost side but in rare cases could
@@ -32,7 +49,7 @@ const BUILDER_PROPOSAL_DELAY_TOLERANCE = 1000 + EVENT_LOOP_LAG_BUFFER;
32
49
  export class ExecutionBuilderHttp {
33
50
  constructor(opts, config, metrics = null, logger) {
34
51
  // Builder needs to be explicity enabled using updateStatus
35
- this.status = false;
52
+ this.status = BuilderStatus.disabled;
36
53
  /**
37
54
  * Determine if SSZ is supported by requesting an SSZ encoded response in the `getHeader` request.
38
55
  * The builder responding with a SSZ serialized `SignedBuilderBid` indicates support to handle the
@@ -57,24 +74,26 @@ export class ExecutionBuilderHttp {
57
74
  * Beacon clients select randomized values from the following ranges when initializing
58
75
  * the circuit breaker (so at boot time and once for each unique boot).
59
76
  *
60
- * ALLOWED_FAULTS: between 1 and SLOTS_PER_EPOCH // 2
77
+ * ALLOWED_FAULTS: between 1 and SLOTS_PER_EPOCH // 4
61
78
  * FAULT_INSPECTION_WINDOW: between SLOTS_PER_EPOCH and 2 * SLOTS_PER_EPOCH
62
79
  *
63
80
  */
64
81
  this.faultInspectionWindow = Math.max(opts.faultInspectionWindow ?? SLOTS_PER_EPOCH + Math.floor(Math.random() * SLOTS_PER_EPOCH), SLOTS_PER_EPOCH);
65
- // allowedFaults should be < faultInspectionWindow, limiting them to faultInspectionWindow/2
66
- this.allowedFaults = Math.min(opts.allowedFaults ?? Math.floor(this.faultInspectionWindow / 2), Math.floor(this.faultInspectionWindow / 2));
82
+ // allowedFaults should be < faultInspectionWindow, limiting them to faultInspectionWindow/4
83
+ this.allowedFaults = Math.min(opts.allowedFaults ?? Math.floor(this.faultInspectionWindow / 4), Math.floor(this.faultInspectionWindow / 4));
67
84
  }
68
- updateStatus(shouldEnable) {
69
- this.status = shouldEnable;
85
+ updateStatus(status) {
86
+ this.status = status;
70
87
  }
71
88
  async checkStatus() {
72
89
  try {
73
90
  (await this.api.status()).assertOk();
74
91
  }
75
92
  catch (e) {
76
- // Disable if the status was enabled
77
- this.status = false;
93
+ if (this.status === BuilderStatus.enabled) {
94
+ // Disable if the status was enabled
95
+ this.status = BuilderStatus.disabled;
96
+ }
78
97
  throw e;
79
98
  }
80
99
  }
@@ -108,8 +127,8 @@ export class ExecutionBuilderHttp {
108
127
  // invalid signature, but there is no recourse to this anyway so lets just proceed and will
109
128
  // probably need diagonis if this block turns out to be invalid because of some bug
110
129
  //
111
- const contents = blobsBundle ? { blobs: blobsBundle.blobs, kzgProofs: blobsBundle.proofs } : null;
112
- return reconstructFullBlockOrContents(signedBlindedBlock.data, { executionPayload, contents });
130
+ const fork = this.config.getForkName(signedBlindedBlock.data.message.slot);
131
+ return reconstructSignedBlockContents(fork, signedBlindedBlock.data, executionPayload, blobsBundle);
113
132
  }
114
133
  async submitBlindedBlockNoResponse(signedBlindedBlock) {
115
134
  (await this.api.submitBlindedBlockV2({ signedBlindedBlock }, { retries: 2, requestWireFormat: this.sszSupported ? WireFormat.ssz : WireFormat.json })).assertOk();
@@ -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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"}
@@ -1,6 +1,7 @@
1
1
  import { ForkPostBellatrix } from "@lodestar/params";
2
- import { BLSPubkey, Epoch, ExecutionPayloadHeader, Root, SignedBeaconBlockOrContents, SignedBlindedBeaconBlock, Slot, Wei, WithOptionalBytes, bellatrix, deneb, electra } from "@lodestar/types";
2
+ import { BLSPubkey, Epoch, ExecutionPayloadHeader, Root, SignedBlindedBeaconBlock, SignedBlockContents, Slot, Wei, WithOptionalBytes, bellatrix, deneb, electra } from "@lodestar/types";
3
3
  import { ValidatorRegistration } from "./cache.js";
4
+ import { BuilderStatus } from "./http.js";
4
5
  export interface IExecutionBuilder {
5
6
  /**
6
7
  * This param is only to for testing scripts using merge-mock which need
@@ -8,12 +9,12 @@ export interface IExecutionBuilder {
8
9
  * fetch
9
10
  */
10
11
  readonly issueLocalFcUWithFeeRecipient?: string;
11
- status: boolean;
12
+ status: BuilderStatus;
12
13
  /** Window to inspect missed slots for enabling/disabling builder circuit breaker */
13
14
  faultInspectionWindow: number;
14
15
  /** Number of missed slots allowed in the faultInspectionWindow for builder circuit*/
15
16
  allowedFaults: number;
16
- updateStatus(shouldEnable: boolean): void;
17
+ updateStatus(status: BuilderStatus): void;
17
18
  checkStatus(): Promise<void>;
18
19
  registerValidator(epoch: Epoch, registrations: bellatrix.SignedValidatorRegistrationV1[]): Promise<void>;
19
20
  getValidatorRegistration(pubkey: BLSPubkey): ValidatorRegistration | undefined;
@@ -23,7 +24,7 @@ export interface IExecutionBuilder {
23
24
  blobKzgCommitments?: deneb.BlobKzgCommitments;
24
25
  executionRequests?: electra.ExecutionRequests;
25
26
  }>;
26
- submitBlindedBlock(signedBlindedBlock: WithOptionalBytes<SignedBlindedBeaconBlock>): Promise<SignedBeaconBlockOrContents>;
27
+ submitBlindedBlock(signedBlindedBlock: WithOptionalBytes<SignedBlindedBeaconBlock>): Promise<SignedBlockContents>;
27
28
  submitBlindedBlockNoResponse(signedBlindedBlock: WithOptionalBytes<SignedBlindedBeaconBlock>): Promise<void>;
28
29
  }
29
30
  //# sourceMappingURL=interface.d.ts.map
@@ -1,11 +1,11 @@
1
1
  import { Logger } from "@lodestar/logger";
2
2
  import { ForkName, ForkPostFulu, ForkPreFulu } from "@lodestar/params";
3
- import { ExecutionPayload, ExecutionRequests, Root, RootHex, Wei } from "@lodestar/types";
3
+ import { BlobsBundle, ExecutionPayload, ExecutionRequests, Root, RootHex, Wei } from "@lodestar/types";
4
4
  import { BlobAndProof } from "@lodestar/types/deneb";
5
5
  import { BlobAndProofV2 } from "@lodestar/types/fulu";
6
6
  import { IJsonRpcHttpClient } from "../../eth1/provider/jsonRpcHttpClient.js";
7
7
  import { Metrics } from "../../metrics/index.js";
8
- import { BlobsBundle, ClientVersion, ExecutePayloadResponse, ExecutionEngineState, IExecutionEngine, PayloadAttributes, PayloadId, VersionedHashes } from "./interface.js";
8
+ import { ClientVersion, ExecutePayloadResponse, ExecutionEngineState, IExecutionEngine, PayloadAttributes, PayloadId, VersionedHashes } from "./interface.js";
9
9
  import { PayloadIdCache } from "./payloadIdCache.js";
10
10
  import { ExecutionPayloadBody } from "./types.js";
11
11
  export type ExecutionEngineModules = {
@@ -56,7 +56,6 @@ export declare class ExecutionEngineHttp implements IExecutionEngine {
56
56
  private readonly rpc;
57
57
  private readonly opts?;
58
58
  private logger;
59
- private lastGetBlobsV1ErrorTime;
60
59
  state: ExecutionEngineState;
61
60
  /** Cached EL client version from the latest getClientVersion call */
62
61
  clientVersion?: ClientVersion | null;
@@ -149,6 +148,8 @@ export declare class ExecutionEngineHttp implements IExecutionEngine {
149
148
  getPayloadBodiesByRange(_fork: ForkName, startBlockNumber: number, blockCount: number): Promise<(ExecutionPayloadBody | null)[]>;
150
149
  getBlobs(fork: ForkPostFulu, versionedHashes: VersionedHashes): Promise<BlobAndProofV2[] | null>;
151
150
  getBlobs(fork: ForkPreFulu, versionedHashes: VersionedHashes): Promise<(BlobAndProof | null)[]>;
151
+ private getBlobsV1;
152
+ private getBlobsV2;
152
153
  private getClientVersion;
153
154
  private updateEngineState;
154
155
  }