@lodestar/beacon-node 1.50.0-dev.0edec865c8 → 1.50.0-dev.14e68493c6

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 (69) hide show
  1. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/state/index.js +6 -4
  3. package/lib/api/impl/beacon/state/index.js.map +1 -1
  4. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  5. package/lib/chain/blocks/importBlock.js +13 -6
  6. package/lib/chain/blocks/importBlock.js.map +1 -1
  7. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  8. package/lib/chain/blocks/verifyBlock.js +6 -6
  9. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  10. package/lib/chain/chain.d.ts.map +1 -1
  11. package/lib/chain/chain.js +38 -17
  12. package/lib/chain/chain.js.map +1 -1
  13. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +4 -2
  14. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  15. package/lib/chain/opPools/aggregatedAttestationPool.js +30 -8
  16. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  17. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +7 -0
  18. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  19. package/lib/chain/seenCache/seenGossipBlockInput.js +21 -0
  20. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  21. package/lib/chain/shufflingCache.d.ts +18 -8
  22. package/lib/chain/shufflingCache.d.ts.map +1 -1
  23. package/lib/chain/shufflingCache.js +72 -18
  24. package/lib/chain/shufflingCache.js.map +1 -1
  25. package/lib/metrics/metrics/lodestar.d.ts +7 -0
  26. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  27. package/lib/metrics/metrics/lodestar.js +17 -0
  28. package/lib/metrics/metrics/lodestar.js.map +1 -1
  29. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  30. package/lib/network/processor/gossipHandlers.js +59 -63
  31. package/lib/network/processor/gossipHandlers.js.map +1 -1
  32. package/lib/sync/range/batch.d.ts +5 -5
  33. package/lib/sync/range/batch.d.ts.map +1 -1
  34. package/lib/sync/range/batch.js +11 -17
  35. package/lib/sync/range/batch.js.map +1 -1
  36. package/lib/sync/range/chain.d.ts +4 -4
  37. package/lib/sync/range/chain.d.ts.map +1 -1
  38. package/lib/sync/range/chain.js +7 -5
  39. package/lib/sync/range/chain.js.map +1 -1
  40. package/lib/sync/range/range.d.ts.map +1 -1
  41. package/lib/sync/range/range.js +25 -11
  42. package/lib/sync/range/range.js.map +1 -1
  43. package/lib/sync/unknownBlock.d.ts +5 -2
  44. package/lib/sync/unknownBlock.d.ts.map +1 -1
  45. package/lib/sync/unknownBlock.js +44 -20
  46. package/lib/sync/unknownBlock.js.map +1 -1
  47. package/lib/sync/utils/downloadByRange.d.ts +38 -14
  48. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  49. package/lib/sync/utils/downloadByRange.js +84 -39
  50. package/lib/sync/utils/downloadByRange.js.map +1 -1
  51. package/lib/util/metadata.d.ts.map +1 -1
  52. package/lib/util/metadata.js +2 -1
  53. package/lib/util/metadata.js.map +1 -1
  54. package/package.json +15 -15
  55. package/src/api/impl/beacon/state/index.ts +13 -4
  56. package/src/chain/blocks/importBlock.ts +16 -5
  57. package/src/chain/blocks/verifyBlock.ts +7 -6
  58. package/src/chain/chain.ts +48 -17
  59. package/src/chain/opPools/aggregatedAttestationPool.ts +34 -10
  60. package/src/chain/seenCache/seenGossipBlockInput.ts +23 -0
  61. package/src/chain/shufflingCache.ts +84 -22
  62. package/src/metrics/metrics/lodestar.ts +18 -0
  63. package/src/network/processor/gossipHandlers.ts +90 -76
  64. package/src/sync/range/batch.ts +14 -19
  65. package/src/sync/range/chain.ts +9 -7
  66. package/src/sync/range/range.ts +26 -12
  67. package/src/sync/unknownBlock.ts +57 -21
  68. package/src/sync/utils/downloadByRange.ts +123 -58
  69. package/src/util/metadata.ts +2 -1
@@ -1,5 +1,5 @@
1
1
  import { isForkPostFulu, isForkPostGloas, } from "@lodestar/params";
2
- import { isGloasDataColumnSidecar, } from "@lodestar/types";
2
+ import { isGloasBeaconBlock, isGloasDataColumnSidecar, } from "@lodestar/types";
3
3
  import { LodestarError, byteArrayEquals, fromHex, prettyPrintIndices, toRootHex } from "@lodestar/utils";
4
4
  import { BlockInputSource, DAType, isBlockInputBlobs, isBlockInputColumns, } from "../../chain/blocks/blockInput/index.js";
5
5
  import { PayloadEnvelopeInputSource } from "../../chain/blocks/payloadEnvelopeInput/types.js";
@@ -9,7 +9,7 @@ import { getBlobKzgCommitments } from "../../util/dataColumns.js";
9
9
  /**
10
10
  * Given existing cached batch block inputs and newly validated responses, update the cache with the new data
11
11
  */
12
- export function cacheByRangeResponses({ cache, seenPayloadEnvelopeInputCache, peerIdStr, responses, batchBlocks, downloadedPayloadEnvelopes, existingPayloadEnvelopes, custodyConfig, seenTimestampSec, }) {
12
+ export function cacheByRangeResponses({ cache, seenPayloadEnvelopeInputCache, peerIdStr, responses, batchBlocks, downloadedPayloadEnvelopes, existingPayloadEnvelopes, parentPayload, custodyConfig, seenTimestampSec, }) {
13
13
  const source = BlockInputSource.byRange;
14
14
  const updatedBatchBlocks = new Map(batchBlocks.map((block) => [block.slot, block]));
15
15
  const payloadEnvelopes = new Map(existingPayloadEnvelopes);
@@ -90,16 +90,29 @@ export function cacheByRangeResponses({ cache, seenPayloadEnvelopeInputCache, pe
90
90
  }
91
91
  if (downloadedPayloadEnvelopes !== null) {
92
92
  for (const [slot, envelope] of downloadedPayloadEnvelopes) {
93
- // the only PayloadEnvelopeInput miss is the dangling parent, which we can get from the seen cache
93
+ // the only PayloadEnvelopeInput miss is the dangling parent
94
94
  let payloadInput = payloadEnvelopes.get(slot);
95
95
  if (payloadInput === undefined) {
96
+ const blockRootHex = toRootHex(envelope.message.beaconBlockRoot);
96
97
  if (updatedBatchBlocks.has(slot)) {
97
- throw new Error(`Missing PayloadEnvelopeInput for in-batch slot ${slot} root ${toRootHex(envelope.message.beaconBlockRoot)}`);
98
+ throw new Error(`Missing PayloadEnvelopeInput for in-batch slot ${slot} root ${blockRootHex}`);
98
99
  }
99
- payloadInput = seenPayloadEnvelopeInputCache.get(toRootHex(envelope.message.beaconBlockRoot));
100
- }
101
- if (payloadInput === undefined) {
102
- throw new Error(`Missing PayloadEnvelopeInput for slot ${slot} root ${toRootHex(envelope.message.beaconBlockRoot)}`);
100
+ if (parentPayload === undefined || blockRootHex !== parentPayload.blockRootHex) {
101
+ throw new Error(`Coding error: envelope for slot ${slot} root ${blockRootHex} is not the dangling parent`);
102
+ }
103
+ // Recreates the entry if it was evicted, by the cache cap or after an invalid envelope failed the import,
104
+ // the parent block is not part of the batch to recreate it from
105
+ payloadInput = seenPayloadEnvelopeInputCache.addFromBid({
106
+ blockRootHex,
107
+ slot: parentPayload.slot,
108
+ forkName: parentPayload.forkName,
109
+ proposerIndex: parentPayload.proposerIndex,
110
+ bid: parentPayload.bid,
111
+ sampledColumns: custodyConfig.sampledColumns,
112
+ custodyColumns: custodyConfig.custodyColumns,
113
+ seenTimestampSec,
114
+ source: PayloadEnvelopeInputSource.byRange,
115
+ });
103
116
  }
104
117
  if (!payloadInput.hasPayloadEnvelope()) {
105
118
  payloadInput.addPayloadEnvelope({
@@ -165,7 +178,7 @@ export function cacheByRangeResponses({ cache, seenPayloadEnvelopeInputCache, pe
165
178
  }
166
179
  return { blocks: Array.from(updatedBatchBlocks.values()), payloadEnvelopes };
167
180
  }
168
- export async function downloadByRange({ config, network, peerIdStr, batchBlocks, blocksRequest, blobsRequest, columnsRequest, envelopesRequest, parentPayloadRequest, parentPayloadCommitments, peerDasMetrics, }) {
181
+ export async function downloadByRange({ config, network, peerIdStr, batchBlocks, blocksRequest, blobsRequest, columnsRequest, envelopesRequest, parentPayloadRequest, parentPayload, peerDasMetrics, }) {
169
182
  let response;
170
183
  try {
171
184
  response = await requestByRange({
@@ -193,7 +206,7 @@ export async function downloadByRange({ config, network, peerIdStr, batchBlocks,
193
206
  columnsRequest,
194
207
  envelopesRequest,
195
208
  parentPayloadRequest,
196
- parentPayloadCommitments,
209
+ parentPayload,
197
210
  peerDasMetrics,
198
211
  ...response,
199
212
  });
@@ -256,7 +269,7 @@ export async function requestByRange({ network, peerIdStr, blocksRequest, blobsR
256
269
  /**
257
270
  * Should not be called directly. Only exported for unit testing purposes
258
271
  */
259
- export async function validateResponses({ config, batchBlocks, blocksRequest, blobsRequest, columnsRequest, envelopesRequest, parentPayloadRequest, parentPayloadCommitments, blocks, blobSidecars, columnSidecars, payloadEnvelopes, peerDasMetrics, }) {
272
+ export async function validateResponses({ config, batchBlocks, blocksRequest, blobsRequest, columnsRequest, envelopesRequest, parentPayloadRequest, parentPayload, blocks, blobSidecars, columnSidecars, payloadEnvelopes, peerDasMetrics, }) {
260
273
  // Blocks are always required for blob/column validation
261
274
  // If a blocksRequest is provided, blocks have just been downloaded
262
275
  // If no blocksRequest is provided, batchBlocks must have been provided from cache
@@ -266,9 +279,9 @@ export async function validateResponses({ config, batchBlocks, blocksRequest, bl
266
279
  ...requestsLogMeta({ blobsRequest, columnsRequest }),
267
280
  }, "No blocks to validate data requests against");
268
281
  }
269
- // `parentPayloadRequest` and `parentPayloadCommitments` must be supplied together
270
- if ((parentPayloadRequest === undefined) !== (parentPayloadCommitments === undefined)) {
271
- throw new Error("Coding error: parentPayloadRequest and parentPayloadCommitments must be both set or both unset");
282
+ // `parentPayloadRequest` and `parentPayload` must be supplied together
283
+ if ((parentPayloadRequest === undefined) !== (parentPayload === undefined)) {
284
+ throw new Error("Coding error: parentPayloadRequest and parentPayload must be both set or both unset");
272
285
  }
273
286
  const validatedResponses = {};
274
287
  let warnings = null;
@@ -279,20 +292,20 @@ export async function validateResponses({ config, batchBlocks, blocksRequest, bl
279
292
  }
280
293
  validatedResponses.validatedBlocks = result.result;
281
294
  }
282
- const needsEnvelopeValidation = !!envelopesRequest || parentPayloadCommitments !== undefined;
295
+ const needsEnvelopeValidation = !!envelopesRequest || parentPayload !== undefined;
283
296
  const dataRequest = blobsRequest ?? columnsRequest;
284
297
  if (!dataRequest && !needsEnvelopeValidation) {
285
298
  return { result: { responses: validatedResponses, payloadEnvelopes: null }, warnings };
286
299
  }
287
300
  if (!dataRequest) {
288
301
  // Only envelope and/or parent-by-root validation needed
289
- if (parentPayloadCommitments !== undefined) {
290
- const parentValidated = await validateParentPayloadColumns(parentPayloadCommitments, columnSidecars ?? [], peerDasMetrics);
302
+ if (parentPayload !== undefined) {
303
+ const parentValidated = await validateParentPayloadColumns(parentPayload, columnSidecars ?? [], peerDasMetrics);
291
304
  if (parentValidated) {
292
305
  validatedResponses.validatedColumnSidecars = [parentValidated];
293
306
  }
294
307
  }
295
- const validatedPayloadEnvelopes = validateEnvelopesByRangeResponse(validatedResponses.validatedBlocks ?? [], batchBlocks, payloadEnvelopes ?? [], parentPayloadCommitments);
308
+ const validatedPayloadEnvelopes = validateEnvelopesByRangeResponse(validatedResponses.validatedBlocks ?? [], batchBlocks, payloadEnvelopes ?? [], parentPayload);
296
309
  return { result: { responses: validatedResponses, payloadEnvelopes: validatedPayloadEnvelopes }, warnings };
297
310
  }
298
311
  const blocksForDataValidation = getBlocksForDataValidation(dataRequest, batchBlocks, validatedResponses.validatedBlocks?.length ? validatedResponses.validatedBlocks : undefined);
@@ -323,8 +336,8 @@ export async function validateResponses({ config, batchBlocks, blocksRequest, bl
323
336
  warnings = validatedColumnSidecarsResult.warnings;
324
337
  }
325
338
  // Parent columns (by-root): KZG-validate against parent's bid commitments and append.
326
- if (parentPayloadCommitments !== undefined) {
327
- const parentValidated = await validateParentPayloadColumns(parentPayloadCommitments, columnSidecars ?? [], peerDasMetrics);
339
+ if (parentPayload !== undefined) {
340
+ const parentValidated = await validateParentPayloadColumns(parentPayload, columnSidecars ?? [], peerDasMetrics);
328
341
  if (parentValidated) {
329
342
  validatedResponses.validatedColumnSidecars = [
330
343
  ...(validatedResponses.validatedColumnSidecars ?? []),
@@ -334,14 +347,14 @@ export async function validateResponses({ config, batchBlocks, blocksRequest, bl
334
347
  }
335
348
  let validatedPayloadEnvelopes = null;
336
349
  if (needsEnvelopeValidation) {
337
- validatedPayloadEnvelopes = validateEnvelopesByRangeResponse(validatedResponses.validatedBlocks ?? [], batchBlocks, payloadEnvelopes ?? [], parentPayloadCommitments);
350
+ validatedPayloadEnvelopes = validateEnvelopesByRangeResponse(validatedResponses.validatedBlocks ?? [], batchBlocks, payloadEnvelopes ?? [], parentPayload);
338
351
  }
339
352
  return { result: { responses: validatedResponses, payloadEnvelopes: validatedPayloadEnvelopes }, warnings };
340
353
  }
341
- async function validateParentPayloadColumns(parentPayloadCommitments, columnSidecars, peerDasMetrics) {
354
+ async function validateParentPayloadColumns(parentPayload, columnSidecars, peerDasMetrics) {
342
355
  const parentColumns = [];
343
356
  for (const cs of columnSidecars) {
344
- if (isGloasDataColumnSidecar(cs) && byteArrayEquals(cs.beaconBlockRoot, parentPayloadCommitments.blockRoot)) {
357
+ if (isGloasDataColumnSidecar(cs) && byteArrayEquals(cs.beaconBlockRoot, parentPayload.blockRoot)) {
345
358
  parentColumns.push(cs);
346
359
  }
347
360
  }
@@ -349,9 +362,8 @@ async function validateParentPayloadColumns(parentPayloadCommitments, columnSide
349
362
  return null;
350
363
  }
351
364
  parentColumns.sort((a, b) => a.index - b.index);
352
- const parentSlot = parentColumns[0].slot;
353
- await validateGloasBlockDataColumnSidecars(parentSlot, parentPayloadCommitments.blockRoot, parentPayloadCommitments.kzgCommitments, parentColumns, peerDasMetrics);
354
- return { blockRoot: parentPayloadCommitments.blockRoot, columnSidecars: parentColumns };
365
+ await validateGloasBlockDataColumnSidecars(parentPayload.slot, parentPayload.blockRoot, parentPayload.bid.blobKzgCommitments, parentColumns, peerDasMetrics);
366
+ return { blockRoot: parentPayload.blockRoot, columnSidecars: parentColumns };
355
367
  }
356
368
  /**
357
369
  * Should not be called directly. Only exported for unit testing purposes
@@ -724,6 +736,10 @@ export var DownloadByRangeErrorCode;
724
736
  DownloadByRangeErrorCode["MISMATCH_BLOCK_INPUT_TYPE"] = "DOWNLOAD_BY_RANGE_ERROR_MISMATCH_BLOCK_INPUT_TYPE";
725
737
  /** Envelope beaconBlockRoot does not match the block's root */
726
738
  DownloadByRangeErrorCode["INVALID_ENVELOPE_BEACON_BLOCK_ROOT"] = "DOWNLOAD_BY_RANGE_ERROR_INVALID_ENVELOPE_BEACON_BLOCK_ROOT";
739
+ /** Envelope payload.blockHash does not match the block's bid */
740
+ DownloadByRangeErrorCode["INVALID_ENVELOPE_BLOCK_HASH"] = "DOWNLOAD_BY_RANGE_ERROR_INVALID_ENVELOPE_BLOCK_HASH";
741
+ /** Dangling parent envelope payload.slotNumber does not match the parent's slot */
742
+ DownloadByRangeErrorCode["INVALID_ENVELOPE_SLOT"] = "DOWNLOAD_BY_RANGE_ERROR_INVALID_ENVELOPE_SLOT";
727
743
  /** Block segment + envelopes failed chain-segment linearity / FULL-chain checks */
728
744
  DownloadByRangeErrorCode["INVALID_CHAIN_SEGMENT"] = "DOWNLOAD_BY_RANGE_ERROR_INVALID_CHAIN_SEGMENT";
729
745
  })(DownloadByRangeErrorCode || (DownloadByRangeErrorCode = {}));
@@ -734,45 +750,74 @@ export class DownloadByRangeError extends LodestarError {
734
750
  *
735
751
  * Three categories of envelope slots:
736
752
  * - In-batch slot whose block we have: verify envelope.beaconBlockRoot matches.
737
- * - Dangling-parent envelope (only when `parentPayloadCommitments` is set, i.e. the first
738
- * batch of a `SyncChain`): keep if `envelope.beaconBlockRoot === parentPayloadCommitments.blockRoot`.
753
+ * - Dangling-parent envelope (only when `parentPayload` is set, i.e. the first
754
+ * batch of a `SyncChain`): keep if `envelope.beaconBlockRoot === parentPayload.blockRoot`, its slot and
755
+ * block hash must match the parent's bid.
739
756
  * - Other "orphan" envelopes (e.g. unrelated slots): ignored.
740
757
  */
741
- export function validateEnvelopesByRangeResponse(validatedBlocks, batchBlocks, payloadEnvelopes, parentPayloadCommitments) {
742
- // Build a map of slot -> blockRoot for all blocks in the batch
743
- const batchBlockRoots = new Map();
758
+ export function validateEnvelopesByRangeResponse(validatedBlocks, batchBlocks, payloadEnvelopes, parentPayload) {
759
+ // Build a map of slot -> block root and bid block hash for all blocks in the batch
760
+ const batchBlocksBySlot = new Map();
744
761
  if (batchBlocks) {
745
762
  for (const blockInput of batchBlocks) {
746
- batchBlockRoots.set(blockInput.slot, fromHex(blockInput.blockRootHex));
763
+ batchBlocksBySlot.set(blockInput.slot, {
764
+ blockRoot: fromHex(blockInput.blockRootHex),
765
+ block: blockInput.hasBlock() ? blockInput.getBlock() : null,
766
+ });
747
767
  }
748
768
  }
749
769
  for (const { block, blockRoot } of validatedBlocks) {
750
- batchBlockRoots.set(block.message.slot, blockRoot);
770
+ batchBlocksBySlot.set(block.message.slot, { blockRoot, block });
751
771
  }
752
772
  const payloadEnvelopeMap = new Map();
753
773
  for (const payloadEnvelope of payloadEnvelopes) {
754
774
  const slot = payloadEnvelope.message.payload.slotNumber;
755
- const batchBlockRoot = batchBlockRoots.get(slot);
756
- if (batchBlockRoot === undefined) {
775
+ const batchBlock = batchBlocksBySlot.get(slot);
776
+ if (batchBlock === undefined) {
757
777
  // Keep the requested dangling-parent envelope only when its beaconBlockRoot matches
758
778
  // exactly. All other unrelated envelopes are dropped.
759
- if (parentPayloadCommitments !== undefined &&
760
- byteArrayEquals(payloadEnvelope.message.beaconBlockRoot, parentPayloadCommitments.blockRoot)) {
779
+ if (parentPayload !== undefined &&
780
+ byteArrayEquals(payloadEnvelope.message.beaconBlockRoot, parentPayload.blockRoot)) {
781
+ if (slot !== parentPayload.slot) {
782
+ throw new DownloadByRangeError({
783
+ code: DownloadByRangeErrorCode.INVALID_ENVELOPE_SLOT,
784
+ expected: parentPayload.slot,
785
+ actual: slot,
786
+ });
787
+ }
788
+ assertEnvelopeBlockHash(payloadEnvelope, parentPayload.bid.blockHash);
761
789
  payloadEnvelopeMap.set(slot, payloadEnvelope);
762
790
  }
763
791
  continue;
764
792
  }
765
793
  // Verify beaconBlockRoot matches the block's root
766
- if (!byteArrayEquals(payloadEnvelope.message.beaconBlockRoot, batchBlockRoot)) {
794
+ if (!byteArrayEquals(payloadEnvelope.message.beaconBlockRoot, batchBlock.blockRoot)) {
767
795
  throw new DownloadByRangeError({
768
796
  code: DownloadByRangeErrorCode.INVALID_ENVELOPE_BEACON_BLOCK_ROOT,
769
797
  slot,
770
- expected: toRootHex(batchBlockRoot),
798
+ expected: toRootHex(batchBlock.blockRoot),
771
799
  actual: toRootHex(payloadEnvelope.message.beaconBlockRoot),
772
800
  });
773
801
  }
802
+ if (batchBlock.block !== null && isGloasBeaconBlock(batchBlock.block.message)) {
803
+ assertEnvelopeBlockHash(payloadEnvelope, batchBlock.block.message.body.signedExecutionPayloadBid.message.blockHash);
804
+ }
774
805
  payloadEnvelopeMap.set(slot, payloadEnvelope);
775
806
  }
776
807
  return payloadEnvelopeMap;
777
808
  }
809
+ /**
810
+ * Rejected before it is cached. In-batch, `assertLinearChainSegment` fails on a wrong hash without evicting the
811
+ * envelope. For the dangling parent, the mismatch would only be caught at import.
812
+ */
813
+ function assertEnvelopeBlockHash(payloadEnvelope, bidBlockHash) {
814
+ if (!byteArrayEquals(payloadEnvelope.message.payload.blockHash, bidBlockHash)) {
815
+ throw new DownloadByRangeError({
816
+ code: DownloadByRangeErrorCode.INVALID_ENVELOPE_BLOCK_HASH,
817
+ slot: payloadEnvelope.message.payload.slotNumber,
818
+ expected: toRootHex(bidBlockHash),
819
+ actual: toRootHex(payloadEnvelope.message.payload.blockHash),
820
+ });
821
+ }
822
+ }
778
823
  //# sourceMappingURL=downloadByRange.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"downloadByRange.js","sourceRoot":"","sources":["../../../src/sync/utils/downloadByRange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"downloadByRange.js","sourceRoot":"","sources":["../../../src/sync/utils/downloadByRange.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/util/metadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAEhE,wBAAgB,wBAAwB,CAAC,IAAI,CAAC,EAAE;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAC,GAAG,aAAa,CAOlG;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAEpD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAE3D"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/util/metadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAEhE,wBAAgB,wBAAwB,CAAC,IAAI,CAAC,EAAE;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAC,GAAG,aAAa,CAQlG;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAEpD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAE3D"}
@@ -5,7 +5,8 @@ export function getLodestarClientVersion(info) {
5
5
  code: ClientCode.LS,
6
6
  name: "Lodestar",
7
7
  version: info?.version ?? "",
8
- commit: info?.commit?.slice(0, 8) ?? "",
8
+ // engine_getClientVersionV1 defines commit as 4 bytes, so builds without git data must not send an empty one
9
+ commit: info?.commit ? info.commit.slice(0, 8) : "00000000",
9
10
  };
10
11
  }
11
12
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/util/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAC,UAAU,EAAgB,MAAM,uBAAuB,CAAC;AAEhE,MAAM,UAAU,wBAAwB,CAAC,IAA0C;IACjF,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,EAAE;QACnB,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE;QAC5B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;KACxC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAoB;IACjD,OAAO,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/util/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAC,UAAU,EAAgB,MAAM,uBAAuB,CAAC;AAEhE,MAAM,UAAU,wBAAwB,CAAC,IAA0C;IACjF,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,EAAE;QACnB,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,EAAE;QAC5B,6GAA6G;QAC7G,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;KAC5D,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAoB;IACjD,OAAO,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACpC,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.50.0-dev.0edec865c8",
14
+ "version": "1.50.0-dev.14e68493c6",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -127,17 +127,17 @@
127
127
  "@libp2p/prometheus-metrics": "^5.0.28",
128
128
  "@libp2p/tcp": "^11.0.27",
129
129
  "@libp2p/utils": "^7.4.0",
130
- "@lodestar/api": "^1.50.0-dev.0edec865c8",
131
- "@lodestar/config": "^1.50.0-dev.0edec865c8",
132
- "@lodestar/db": "^1.50.0-dev.0edec865c8",
133
- "@lodestar/fork-choice": "^1.50.0-dev.0edec865c8",
134
- "@lodestar/logger": "^1.50.0-dev.0edec865c8",
135
- "@lodestar/params": "^1.50.0-dev.0edec865c8",
136
- "@lodestar/reqresp": "^1.50.0-dev.0edec865c8",
137
- "@lodestar/state-transition": "^1.50.0-dev.0edec865c8",
138
- "@lodestar/types": "^1.50.0-dev.0edec865c8",
139
- "@lodestar/utils": "^1.50.0-dev.0edec865c8",
140
- "@lodestar/validator": "^1.50.0-dev.0edec865c8",
130
+ "@lodestar/api": "^1.50.0-dev.14e68493c6",
131
+ "@lodestar/config": "^1.50.0-dev.14e68493c6",
132
+ "@lodestar/db": "^1.50.0-dev.14e68493c6",
133
+ "@lodestar/fork-choice": "^1.50.0-dev.14e68493c6",
134
+ "@lodestar/logger": "^1.50.0-dev.14e68493c6",
135
+ "@lodestar/params": "^1.50.0-dev.14e68493c6",
136
+ "@lodestar/reqresp": "^1.50.0-dev.14e68493c6",
137
+ "@lodestar/state-transition": "^1.50.0-dev.14e68493c6",
138
+ "@lodestar/types": "^1.50.0-dev.14e68493c6",
139
+ "@lodestar/utils": "^1.50.0-dev.14e68493c6",
140
+ "@lodestar/validator": "^1.50.0-dev.14e68493c6",
141
141
  "@multiformats/multiaddr": "^13.0.1",
142
142
  "datastore-core": "^12.0.1",
143
143
  "datastore-level": "^13.0.1",
@@ -158,8 +158,8 @@
158
158
  "devDependencies": {
159
159
  "@libp2p/interface-internal": "^3.1.12",
160
160
  "@libp2p/logger": "^6.2.13",
161
- "@lodestar/spec-test-util": "^1.50.0-dev.0edec865c8",
162
- "@lodestar/test-utils": "^1.50.0-dev.0edec865c8",
161
+ "@lodestar/spec-test-util": "^1.50.0-dev.14e68493c6",
162
+ "@lodestar/test-utils": "^1.50.0-dev.14e68493c6",
163
163
  "@types/js-yaml": "^4.0.5",
164
164
  "@types/qs": "^6.9.7",
165
165
  "@types/tmp": "^0.2.3",
@@ -174,5 +174,5 @@
174
174
  "beacon",
175
175
  "blockchain"
176
176
  ],
177
- "gitHead": "1259f71df5e7291cc1623e493fd89d3e2cd0908d"
177
+ "gitHead": "55f5c8ad2322562c5572f72c3fe54285745a1749"
178
178
  }
@@ -16,7 +16,14 @@ import {
16
16
  isStatePostFulu,
17
17
  isStatePostGloas,
18
18
  } from "@lodestar/state-transition";
19
- import {ValidatorIndex, getBuilderStatus, getValidatorStatus, mapToGeneralStatus, ssz} from "@lodestar/types";
19
+ import {
20
+ ValidatorIndex,
21
+ getBuilderStatus,
22
+ getValidatorStatus,
23
+ mapToGeneralStatus,
24
+ ssz,
25
+ sszTypesFor,
26
+ } from "@lodestar/types";
20
27
  import {ApiError} from "../../errors.js";
21
28
  import {ApiModules} from "../../types.js";
22
29
  import {assertUniqueItems} from "../../utils.js";
@@ -413,7 +420,9 @@ export function getBeaconStateApi({
413
420
  const pendingDeposits = state.pendingDeposits;
414
421
 
415
422
  return {
416
- data: context?.returnBytes ? ssz.electra.PendingDeposits.serialize(pendingDeposits) : pendingDeposits,
423
+ data: context?.returnBytes
424
+ ? sszTypesFor(state.forkName).PendingDeposits.serialize(pendingDeposits)
425
+ : pendingDeposits,
417
426
  meta: {executionOptimistic, finalized, version: fork},
418
427
  };
419
428
  },
@@ -430,7 +439,7 @@ export function getBeaconStateApi({
430
439
 
431
440
  return {
432
441
  data: context?.returnBytes
433
- ? ssz.electra.PendingPartialWithdrawals.serialize(pendingPartialWithdrawals)
442
+ ? sszTypesFor(state.forkName).PendingPartialWithdrawals.serialize(pendingPartialWithdrawals)
434
443
  : pendingPartialWithdrawals,
435
444
  meta: {executionOptimistic, finalized, version: fork},
436
445
  };
@@ -448,7 +457,7 @@ export function getBeaconStateApi({
448
457
 
449
458
  return {
450
459
  data: context?.returnBytes
451
- ? ssz.electra.PendingConsolidations.serialize(pendingConsolidations)
460
+ ? sszTypesFor(state.forkName).PendingConsolidations.serialize(pendingConsolidations)
452
461
  : pendingConsolidations,
453
462
  meta: {executionOptimistic, finalized, version: fork},
454
463
  };
@@ -22,6 +22,7 @@ import {
22
22
  RootCache,
23
23
  computeEpochAtSlot,
24
24
  computeTimeAtSlot,
25
+ getBeaconCommittees,
25
26
  isStatePostAltair,
26
27
  isStatePostBellatrix,
27
28
  } from "@lodestar/state-transition";
@@ -129,11 +130,17 @@ export async function importBlock(
129
130
 
130
131
  // Should compute checkpoint balances before forkchoice.onBlock
131
132
  this.checkpointBalancesCache.processState(blockRootHex, postState);
132
- if (fork >= ForkSeq.gloas) {
133
+ if (isGloasBeaconBlock(block.message)) {
134
+ // A gloas block has no payload of its own, it inherits the status of the payload it builds on,
135
+ // i.e. the parent variant matching the bid's parent block hash. The parent's default (PENDING)
136
+ // variant does not reflect a SYNCING parent payload, and onBlock would then mark that payload VALID.
133
137
  const parentRootHex = toRootHex(block.message.parentRoot);
134
- const parentBlock = this.forkChoice.getBlockHexDefaultStatus(parentRootHex);
138
+ const parentBlockHashHex = toRootHex(block.message.body.signedExecutionPayloadBid.message.parentBlockHash);
139
+ const parentBlock = this.forkChoice.getBlockHexAndBlockHash(parentRootHex, parentBlockHashHex);
135
140
  if (parentBlock === null) {
136
- throw Error(`Parent block not found in forkChoice, parentRoot=${parentRootHex}`);
141
+ throw Error(
142
+ `Parent block not found in forkChoice, parentRoot=${parentRootHex} parentBlockHash=${parentBlockHashHex}`
143
+ );
137
144
  }
138
145
  if (parentBlock.executionStatus === ExecutionStatus.Invalid) {
139
146
  throw Error(`Parent block has invalid execution status, parentRoot=${parentRootHex}`);
@@ -657,8 +664,12 @@ export function addAttestationPostElectra(
657
664
  } else {
658
665
  const attSlot = attestation.data.slot;
659
666
  const attEpoch = computeEpochAtSlot(attSlot);
660
- const decisionRoot = state.getShufflingDecisionRoot(attEpoch);
661
- const committees = this.shufflingCache.getBeaconCommittees(attEpoch, decisionRoot, attSlot, committeeIndices);
667
+ // calling getShufflingAtEpoch may take some time for NativeBeaconStateView
668
+ // we should have the shuffling inside ShufflingCache most of the time
669
+ const shuffling =
670
+ this.shufflingCache.getSync(attEpoch, state.getShufflingDecisionRoot(attEpoch)) ??
671
+ state.getShufflingAtEpoch(attEpoch);
672
+ const committees = getBeaconCommittees(shuffling, attSlot, committeeIndices);
662
673
  const aggregationBools = attestation.aggregationBits.toBoolArray();
663
674
  let offset = 0;
664
675
  for (let i = 0; i < committees.length; i++) {
@@ -4,6 +4,7 @@ import {
4
4
  DataAvailabilityStatus,
5
5
  IBeaconStateView,
6
6
  computeEpochAtSlot,
7
+ getIndexedAttestation,
7
8
  signedBlockToSignedHeader,
8
9
  } from "@lodestar/state-transition";
9
10
  import {IndexedAttestation, Slot, deneb} from "@lodestar/types";
@@ -81,10 +82,6 @@ export async function verifyBlocksInEpoch(
81
82
  throw new BlockError(block0, {code: BlockErrorCode.PRESTATE_MISSING, error: e as Error});
82
83
  });
83
84
 
84
- // in forky condition, make sure to populate ShufflingCache with regened state
85
- // otherwise it may fail to get indexed attestations from shuffling cache later
86
- this.shufflingCache.processState(preState0);
87
-
88
85
  if (!preState0.isStateValidatorsNodesPopulated()) {
89
86
  this.logger.verbose("verifyBlocksInEpoch preState0 SSZ cache stats", {
90
87
  slot: preState0.slot,
@@ -117,8 +114,12 @@ export async function verifyBlocksInEpoch(
117
114
  for (const [i, block] of blocks.entries()) {
118
115
  indexedAttestationsByBlock[i] = block.message.body.attestations.map((attestation) => {
119
116
  const attEpoch = computeEpochAtSlot(attestation.data.slot);
120
- const decisionRoot = preState0.getShufflingDecisionRoot(attEpoch);
121
- return this.shufflingCache.getIndexedAttestation(attEpoch, decisionRoot, fork, attestation);
117
+ // calling getShufflingAtEpoch may take some time for NativeBeaconStateView
118
+ // we should have the shuffling inside ShufflingCache most of the time
119
+ const shuffling =
120
+ this.shufflingCache.getSync(attEpoch, preState0.getShufflingDecisionRoot(attEpoch)) ??
121
+ preState0.getShufflingAtEpoch(attEpoch);
122
+ return getIndexedAttestation(shuffling, fork, attestation);
122
123
  });
123
124
  }
124
125