@lodestar/beacon-node 1.35.0-dev.792fcea33a → 1.35.0-dev.7a240d3631

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 (62) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +56 -12
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/config/constants.d.ts +9 -9
  5. package/lib/api/impl/config/constants.js +16 -9
  6. package/lib/api/impl/config/constants.js.map +1 -1
  7. package/lib/api/impl/validator/index.d.ts.map +1 -1
  8. package/lib/api/impl/validator/index.js +4 -8
  9. package/lib/api/impl/validator/index.js.map +1 -1
  10. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  11. package/lib/chain/blocks/blockInput/blockInput.js +2 -1
  12. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  13. package/lib/chain/chain.d.ts +1 -1
  14. package/lib/chain/chain.d.ts.map +1 -1
  15. package/lib/chain/chain.js +1 -2
  16. package/lib/chain/chain.js.map +1 -1
  17. package/lib/chain/lightClient/index.d.ts +2 -2
  18. package/lib/chain/lightClient/index.d.ts.map +1 -1
  19. package/lib/chain/lightClient/index.js +2 -0
  20. package/lib/chain/lightClient/index.js.map +1 -1
  21. package/lib/chain/produceBlock/produceBlockBody.d.ts +1 -4
  22. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  23. package/lib/chain/produceBlock/produceBlockBody.js +13 -4
  24. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  25. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  26. package/lib/chain/seenCache/seenGossipBlockInput.js +8 -1
  27. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  28. package/lib/network/gossip/topic.js +2 -2
  29. package/lib/network/gossip/topic.js.map +1 -1
  30. package/lib/network/peers/datastore.d.ts +2 -2
  31. package/lib/network/peers/datastore.d.ts.map +1 -1
  32. package/lib/network/peers/datastore.js +2 -2
  33. package/lib/network/peers/datastore.js.map +1 -1
  34. package/lib/network/peers/datastore_bun.d.ts +3 -0
  35. package/lib/network/peers/datastore_bun.d.ts.map +1 -0
  36. package/lib/network/peers/datastore_bun.js +3 -0
  37. package/lib/network/peers/datastore_bun.js.map +1 -0
  38. package/lib/sync/utils/downloadByRange.d.ts +2 -1
  39. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  40. package/lib/sync/utils/downloadByRange.js +8 -3
  41. package/lib/sync/utils/downloadByRange.js.map +1 -1
  42. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  43. package/lib/sync/utils/downloadByRoot.js +2 -1
  44. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  45. package/lib/util/dataColumns.d.ts.map +1 -1
  46. package/lib/util/dataColumns.js +4 -2
  47. package/lib/util/dataColumns.js.map +1 -1
  48. package/package.json +19 -14
  49. package/src/api/impl/beacon/blocks/index.ts +84 -13
  50. package/src/api/impl/config/constants.ts +17 -9
  51. package/src/api/impl/validator/index.ts +4 -11
  52. package/src/chain/blocks/blockInput/blockInput.ts +5 -3
  53. package/src/chain/chain.ts +0 -2
  54. package/src/chain/lightClient/index.ts +11 -3
  55. package/src/chain/produceBlock/produceBlockBody.ts +16 -14
  56. package/src/chain/seenCache/seenGossipBlockInput.ts +10 -2
  57. package/src/network/gossip/topic.ts +2 -2
  58. package/src/network/peers/datastore.ts +4 -4
  59. package/src/network/peers/datastore_bun.ts +3 -0
  60. package/src/sync/utils/downloadByRange.ts +12 -6
  61. package/src/sync/utils/downloadByRoot.ts +12 -4
  62. package/src/util/dataColumns.ts +11 -2
@@ -1,6 +1,6 @@
1
1
  import { digest } from "@chainsafe/as-sha256";
2
2
  import { Tree } from "@chainsafe/persistent-merkle-tree";
3
- import { KZG_COMMITMENTS_GINDEX, NUMBER_OF_COLUMNS } from "@lodestar/params";
3
+ import { KZG_COMMITMENTS_GINDEX, NUMBER_OF_COLUMNS, } from "@lodestar/params";
4
4
  import { signedBlockToSignedHeader } from "@lodestar/state-transition";
5
5
  import { ssz, } from "@lodestar/types";
6
6
  import { bytesToBigInt } from "@lodestar/utils";
@@ -231,7 +231,9 @@ export function getDataColumnSidecars(signedBlockHeader, kzgCommitments, kzgComm
231
231
  * https://github.com/ethereum/consensus-specs/blob/v1.6.0-alpha.4/specs/fulu/validator.md#get_data_column_sidecars_from_block
232
232
  */
233
233
  export function getDataColumnSidecarsFromBlock(config, signedBlock, cellsAndKzgProofs) {
234
- const blobKzgCommitments = signedBlock.message.body.blobKzgCommitments;
234
+ // TODO GLOAS: Need to get blobKzgCommitments from somewhere else
235
+ const blobKzgCommitments = signedBlock.message.body
236
+ .blobKzgCommitments;
235
237
  // No need to create data column sidecars if there are no blobs
236
238
  if (blobKzgCommitments.length === 0) {
237
239
  return [];
@@ -1 +1 @@
1
- {"version":3,"file":"dataColumns.js","sourceRoot":"","sources":["../../src/util/dataColumns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataColumns.js","sourceRoot":"","sources":["../../src/util/dataColumns.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.35.0-dev.792fcea33a",
14
+ "version": "1.35.0-dev.7a240d3631",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -67,6 +67,10 @@
67
67
  "#prometheus-gc-stats-wrapper": {
68
68
  "bun": "./src/bun-wrappers/prometheus-gc-stats.ts",
69
69
  "default": "@chainsafe/prometheus-gc-stats"
70
+ },
71
+ "#datastore-wrapper": {
72
+ "bun": "./src/network/peers/datastore_bun.ts",
73
+ "default": "datastore-level"
70
74
  }
71
75
  },
72
76
  "typesVersions": {
@@ -134,21 +138,22 @@
134
138
  "@libp2p/peer-id": "^5.1.0",
135
139
  "@libp2p/prometheus-metrics": "^4.3.15",
136
140
  "@libp2p/tcp": "^10.1.8",
137
- "@lodestar/api": "1.35.0-dev.792fcea33a",
138
- "@lodestar/config": "1.35.0-dev.792fcea33a",
139
- "@lodestar/db": "1.35.0-dev.792fcea33a",
140
- "@lodestar/fork-choice": "1.35.0-dev.792fcea33a",
141
- "@lodestar/light-client": "1.35.0-dev.792fcea33a",
142
- "@lodestar/logger": "1.35.0-dev.792fcea33a",
143
- "@lodestar/params": "1.35.0-dev.792fcea33a",
144
- "@lodestar/reqresp": "1.35.0-dev.792fcea33a",
145
- "@lodestar/state-transition": "1.35.0-dev.792fcea33a",
146
- "@lodestar/types": "1.35.0-dev.792fcea33a",
147
- "@lodestar/utils": "1.35.0-dev.792fcea33a",
148
- "@lodestar/validator": "1.35.0-dev.792fcea33a",
141
+ "@lodestar/api": "1.35.0-dev.7a240d3631",
142
+ "@lodestar/config": "1.35.0-dev.7a240d3631",
143
+ "@lodestar/db": "1.35.0-dev.7a240d3631",
144
+ "@lodestar/fork-choice": "1.35.0-dev.7a240d3631",
145
+ "@lodestar/light-client": "1.35.0-dev.7a240d3631",
146
+ "@lodestar/logger": "1.35.0-dev.7a240d3631",
147
+ "@lodestar/params": "1.35.0-dev.7a240d3631",
148
+ "@lodestar/reqresp": "1.35.0-dev.7a240d3631",
149
+ "@lodestar/state-transition": "1.35.0-dev.7a240d3631",
150
+ "@lodestar/types": "1.35.0-dev.7a240d3631",
151
+ "@lodestar/utils": "1.35.0-dev.7a240d3631",
152
+ "@lodestar/validator": "1.35.0-dev.7a240d3631",
149
153
  "@multiformats/multiaddr": "^12.1.3",
150
154
  "datastore-core": "^10.0.2",
151
155
  "datastore-fs": "^10.0.6",
156
+ "datastore-level": "^11.0.3",
152
157
  "deepmerge": "^4.3.1",
153
158
  "fastify": "^5.2.1",
154
159
  "interface-datastore": "^8.3.0",
@@ -180,5 +185,5 @@
180
185
  "beacon",
181
186
  "blockchain"
182
187
  ],
183
- "gitHead": "5ca1808ccb7ea2b9e18aecf3fee56c84d02bb328"
188
+ "gitHead": "3865a83107cc3ed44707903e0b6993e880e0eb81"
184
189
  }
@@ -3,18 +3,21 @@ import {ApiError, ApplicationMethods} from "@lodestar/api/server";
3
3
  import {
4
4
  ForkPostBellatrix,
5
5
  ForkPostFulu,
6
+ ForkPreGloas,
6
7
  NUMBER_OF_COLUMNS,
7
8
  SLOTS_PER_HISTORICAL_ROOT,
8
9
  isForkPostBellatrix,
9
10
  isForkPostDeneb,
10
11
  isForkPostElectra,
11
12
  isForkPostFulu,
13
+ isForkPostGloas,
12
14
  } from "@lodestar/params";
13
15
  import {
14
16
  computeEpochAtSlot,
15
17
  computeTimeAtSlot,
16
18
  reconstructSignedBlockContents,
17
19
  signedBeaconBlockToBlinded,
20
+ signedBlockToSignedHeader,
18
21
  } from "@lodestar/state-transition";
19
22
  import {
20
23
  ProducedBlockSource,
@@ -42,7 +45,12 @@ import {
42
45
  } from "../../../../chain/produceBlock/index.js";
43
46
  import {validateGossipBlock} from "../../../../chain/validation/block.js";
44
47
  import {OpSource} from "../../../../chain/validatorMonitor.js";
45
- import {getBlobSidecars, kzgCommitmentToVersionedHash, reconstructBlobs} from "../../../../util/blobs.js";
48
+ import {
49
+ computePreFuluKzgCommitmentsInclusionProof,
50
+ getBlobSidecars,
51
+ kzgCommitmentToVersionedHash,
52
+ reconstructBlobs,
53
+ } from "../../../../util/blobs.js";
46
54
  import {getDataColumnSidecarsFromBlock} from "../../../../util/dataColumns.js";
47
55
  import {isOptimisticBlock} from "../../../../util/forkChoice.js";
48
56
  import {kzg} from "../../../../util/kzg.js";
@@ -360,6 +368,10 @@ export function getBeaconBlockApi({
360
368
  );
361
369
  const fork = config.getForkName(slot);
362
370
 
371
+ if (isForkPostGloas(fork)) {
372
+ throw new ApiError(400, `Blinded blocks are not available for post-gloas fork=${fork}`);
373
+ }
374
+
363
375
  // Either the payload/blobs are cached from i) engine locally or ii) they are from the builder
364
376
  const producedResult = chain.blockProductionCache.get(blockRoot);
365
377
  if (producedResult !== undefined && producedResult.type !== BlockType.Blinded) {
@@ -518,9 +530,12 @@ export function getBeaconBlockApi({
518
530
  async getBlindedBlock({blockId}) {
519
531
  const {block, executionOptimistic, finalized} = await getBlockResponse(chain, blockId);
520
532
  const fork = config.getForkName(block.message.slot);
533
+ if (isForkPostGloas(fork)) {
534
+ throw new ApiError(400, `Blinded blocks are not available for post-gloas fork=${fork}`);
535
+ }
521
536
  return {
522
537
  data: isForkPostBellatrix(fork)
523
- ? signedBeaconBlockToBlinded(config, block as SignedBeaconBlock<ForkPostBellatrix>)
538
+ ? signedBeaconBlockToBlinded(config, block as SignedBeaconBlock<ForkPostBellatrix & ForkPreGloas>)
524
539
  : block,
525
540
  meta: {
526
541
  executionOptimistic,
@@ -610,24 +625,79 @@ export function getBeaconBlockApi({
610
625
 
611
626
  const {block, executionOptimistic, finalized} = await getBlockResponse(chain, blockId);
612
627
  const fork = config.getForkName(block.message.slot);
628
+ const blockRoot = sszTypesFor(fork).BeaconBlock.hashTreeRoot(block.message);
629
+
630
+ let data: deneb.BlobSidecars;
613
631
 
614
632
  if (isForkPostFulu(fork)) {
615
- throw new ApiError(400, `Use getBlobs to retrieve blobs for post-fulu fork=${fork}`);
616
- }
633
+ const {targetCustodyGroupCount} = chain.custodyConfig;
634
+ if (targetCustodyGroupCount < NUMBER_OF_COLUMNS / 2) {
635
+ throw new ApiError(
636
+ 503,
637
+ `Custody group count of ${targetCustodyGroupCount} is not sufficient to serve blob sidecars, must custody at least ${NUMBER_OF_COLUMNS / 2} data columns`
638
+ );
639
+ }
617
640
 
618
- const blockRoot = sszTypesFor(fork).BeaconBlock.hashTreeRoot(block.message);
641
+ const blobKzgCommitments = (block.message.body as deneb.BeaconBlockBody).blobKzgCommitments;
642
+ const blobCount = blobKzgCommitments.length;
619
643
 
620
- let {blobSidecars} = (await db.blobSidecars.get(blockRoot)) ?? {};
621
- if (!blobSidecars) {
622
- ({blobSidecars} = (await db.blobSidecarsArchive.get(block.message.slot)) ?? {});
623
- }
644
+ if (blobCount > 0) {
645
+ let dataColumnSidecars = await fromAsync(db.dataColumnSidecar.valuesStream(blockRoot));
646
+ if (dataColumnSidecars.length === 0) {
647
+ dataColumnSidecars = await fromAsync(db.dataColumnSidecarArchive.valuesStream(block.message.slot));
648
+ }
649
+
650
+ if (dataColumnSidecars.length === 0) {
651
+ throw new ApiError(
652
+ 404,
653
+ `dataColumnSidecars not found in db for slot=${block.message.slot} root=${toRootHex(blockRoot)} blobs=${blobCount}`
654
+ );
655
+ }
624
656
 
625
- if (!blobSidecars) {
626
- throw Error(`blobSidecars not found in db for slot=${block.message.slot} root=${toRootHex(blockRoot)}`);
657
+ const blobs = await reconstructBlobs(dataColumnSidecars);
658
+ const signedBlockHeader = signedBlockToSignedHeader(config, block);
659
+ const requestedIndices = indices ?? Array.from({length: blobKzgCommitments.length}, (_, i) => i);
660
+
661
+ data = await Promise.all(
662
+ requestedIndices.map(async (index) => {
663
+ // Reconstruct blob sidecar from blob
664
+ const kzgCommitment = blobKzgCommitments[index];
665
+ if (kzgCommitment === undefined) {
666
+ throw new ApiError(400, `Blob index ${index} not found in block`);
667
+ }
668
+ const blob = blobs[index];
669
+ const kzgProof = await kzg.asyncComputeBlobKzgProof(blob, kzgCommitment);
670
+ const kzgCommitmentInclusionProof = computePreFuluKzgCommitmentsInclusionProof(
671
+ fork,
672
+ block.message.body,
673
+ index
674
+ );
675
+ return {index, blob, kzgCommitment, kzgProof, signedBlockHeader, kzgCommitmentInclusionProof};
676
+ })
677
+ );
678
+ } else {
679
+ data = [];
680
+ }
681
+ } else if (isForkPostDeneb(fork)) {
682
+ let {blobSidecars} = (await db.blobSidecars.get(blockRoot)) ?? {};
683
+ if (!blobSidecars) {
684
+ ({blobSidecars} = (await db.blobSidecarsArchive.get(block.message.slot)) ?? {});
685
+ }
686
+
687
+ if (!blobSidecars) {
688
+ throw new ApiError(
689
+ 404,
690
+ `blobSidecars not found in db for slot=${block.message.slot} root=${toRootHex(blockRoot)}`
691
+ );
692
+ }
693
+
694
+ data = indices ? blobSidecars.filter(({index}) => indices.includes(index)) : blobSidecars;
695
+ } else {
696
+ data = [];
627
697
  }
628
698
 
629
699
  return {
630
- data: indices ? blobSidecars.filter(({index}) => indices.includes(index)) : blobSidecars,
700
+ data,
631
701
  meta: {
632
702
  executionOptimistic,
633
703
  finalized,
@@ -648,7 +718,8 @@ export function getBeaconBlockApi({
648
718
  if (isForkPostFulu(fork)) {
649
719
  const {targetCustodyGroupCount} = chain.custodyConfig;
650
720
  if (targetCustodyGroupCount < NUMBER_OF_COLUMNS / 2) {
651
- throw Error(
721
+ throw new ApiError(
722
+ 503,
652
723
  `Custody group count of ${targetCustodyGroupCount} is not sufficient to serve blobs, must custody at least ${NUMBER_OF_COLUMNS / 2} data columns`
653
724
  );
654
725
  }
@@ -65,10 +65,10 @@ export const specConstants = {
65
65
  JUSTIFICATION_BITS_LENGTH,
66
66
  ENDIANNESS: "little",
67
67
  // ## Withdrawal prefixes
68
- BLS_WITHDRAWAL_PREFIX,
69
- ETH1_ADDRESS_WITHDRAWAL_PREFIX,
70
- COMPOUNDING_WITHDRAWAL_PREFIX,
71
- BUILDER_WITHDRAWAL_PREFIX,
68
+ BLS_WITHDRAWAL_PREFIX: toHexByte(BLS_WITHDRAWAL_PREFIX),
69
+ ETH1_ADDRESS_WITHDRAWAL_PREFIX: toHexByte(ETH1_ADDRESS_WITHDRAWAL_PREFIX),
70
+ COMPOUNDING_WITHDRAWAL_PREFIX: toHexByte(COMPOUNDING_WITHDRAWAL_PREFIX),
71
+ BUILDER_WITHDRAWAL_PREFIX: toHexByte(BUILDER_WITHDRAWAL_PREFIX),
72
72
  // ## Domain types
73
73
  DOMAIN_BEACON_PROPOSER,
74
74
  DOMAIN_BEACON_ATTESTER,
@@ -113,15 +113,23 @@ export const specConstants = {
113
113
  DOMAIN_BLS_TO_EXECUTION_CHANGE,
114
114
 
115
115
  // Deneb types
116
- BLOB_TX_TYPE,
117
- VERSIONED_HASH_VERSION_KZG,
116
+ BLOB_TX_TYPE: toHexByte(BLOB_TX_TYPE),
117
+ VERSIONED_HASH_VERSION_KZG: toHexByte(VERSIONED_HASH_VERSION_KZG),
118
118
 
119
119
  // electra
120
120
  UNSET_DEPOSIT_REQUESTS_START_INDEX,
121
121
  FULL_EXIT_REQUEST_AMOUNT,
122
- DEPOSIT_REQUEST_TYPE,
123
- WITHDRAWAL_REQUEST_TYPE,
124
- CONSOLIDATION_REQUEST_TYPE,
122
+ DEPOSIT_REQUEST_TYPE: toHexByte(DEPOSIT_REQUEST_TYPE),
123
+ WITHDRAWAL_REQUEST_TYPE: toHexByte(WITHDRAWAL_REQUEST_TYPE),
124
+ CONSOLIDATION_REQUEST_TYPE: toHexByte(CONSOLIDATION_REQUEST_TYPE),
125
125
  BUILDER_PAYMENT_THRESHOLD_NUMERATOR,
126
126
  BUILDER_PAYMENT_THRESHOLD_DENOMINATOR,
127
127
  };
128
+
129
+ /** Convert single-byte numbers to hex strings for API spec compliance */
130
+ function toHexByte(n: number): string {
131
+ if (n < 0 || n > 255 || !Number.isInteger(n)) {
132
+ throw new Error("toHexByte expected a single-byte integer, but received " + n);
133
+ }
134
+ return "0x" + n.toString(16).padStart(2, "0");
135
+ }
@@ -5,6 +5,7 @@ import {ExecutionStatus} from "@lodestar/fork-choice";
5
5
  import {
6
6
  ForkName,
7
7
  ForkPostBellatrix,
8
+ ForkPreGloas,
8
9
  ForkSeq,
9
10
  GENESIS_SLOT,
10
11
  SLOTS_PER_EPOCH,
@@ -410,11 +411,9 @@ export function getValidatorApi(
410
411
  {
411
412
  commonBlockBodyPromise,
412
413
  parentBlockRoot,
413
- parentSlot,
414
414
  }: Omit<routes.validator.ExtraProduceBlockOpts, "builderSelection"> & {
415
415
  commonBlockBodyPromise: Promise<CommonBlockBody>;
416
416
  parentBlockRoot: Root;
417
- parentSlot: Slot;
418
417
  }
419
418
  ): Promise<ProduceBlindedBlockRes> {
420
419
  const version = config.getForkName(slot);
@@ -446,7 +445,6 @@ export function getValidatorApi(
446
445
  const {block, executionPayloadValue, consensusBlockValue} = await chain.produceBlindedBlock({
447
446
  slot,
448
447
  parentBlockRoot,
449
- parentSlot,
450
448
  randaoReveal,
451
449
  graffiti,
452
450
  commonBlockBodyPromise,
@@ -482,11 +480,9 @@ export function getValidatorApi(
482
480
  strictFeeRecipientCheck,
483
481
  commonBlockBodyPromise,
484
482
  parentBlockRoot,
485
- parentSlot,
486
483
  }: Omit<routes.validator.ExtraProduceBlockOpts, "builderSelection"> & {
487
484
  commonBlockBodyPromise: Promise<CommonBlockBody>;
488
485
  parentBlockRoot: Root;
489
- parentSlot: Slot;
490
486
  }
491
487
  ): Promise<ProduceBlockContentsRes & {shouldOverrideBuilder?: boolean}> {
492
488
  const source = ProducedBlockSource.engine;
@@ -498,7 +494,6 @@ export function getValidatorApi(
498
494
  const {block, executionPayloadValue, consensusBlockValue, shouldOverrideBuilder} = await chain.produceBlock({
499
495
  slot,
500
496
  parentBlockRoot,
501
- parentSlot,
502
497
  randaoReveal,
503
498
  graffiti,
504
499
  feeRecipient,
@@ -641,7 +636,6 @@ export function getValidatorApi(
641
636
  strictFeeRecipientCheck: false,
642
637
  commonBlockBodyPromise,
643
638
  parentBlockRoot,
644
- parentSlot,
645
639
  })
646
640
  : Promise.reject(new Error("Builder disabled"));
647
641
 
@@ -651,7 +645,6 @@ export function getValidatorApi(
651
645
  strictFeeRecipientCheck,
652
646
  commonBlockBodyPromise,
653
647
  parentBlockRoot,
654
- parentSlot,
655
648
  }).then((engineBlock) => {
656
649
  // Once the engine returns a block, in the event of either:
657
650
  // - suspected builder censorship
@@ -694,7 +687,6 @@ export function getValidatorApi(
694
687
  .produceCommonBlockBody({
695
688
  slot,
696
689
  parentBlockRoot,
697
- parentSlot,
698
690
  randaoReveal,
699
691
  graffiti: graffitiBytes,
700
692
  })
@@ -887,13 +879,14 @@ export function getValidatorApi(
887
879
  opts
888
880
  );
889
881
 
890
- if (opts.blindedLocal === true && ForkSeq[meta.version] >= ForkSeq.bellatrix) {
882
+ const fork = ForkSeq[meta.version];
883
+ if (opts.blindedLocal === true && fork >= ForkSeq.bellatrix && fork < ForkSeq.gloas) {
891
884
  if (meta.executionPayloadBlinded) {
892
885
  return {data, meta};
893
886
  }
894
887
 
895
888
  const {block} = data as BlockContents;
896
- const blindedBlock = beaconBlockToBlinded(config, block as BeaconBlock<ForkPostBellatrix>);
889
+ const blindedBlock = beaconBlockToBlinded(config, block as BeaconBlock<ForkPostBellatrix & ForkPreGloas>);
897
890
  return {
898
891
  data: blindedBlock,
899
892
  meta: {...meta, executionPayloadBlinded: true},
@@ -1,5 +1,5 @@
1
- import {ForkName, ForkPreDeneb} from "@lodestar/params";
2
- import {BlobIndex, ColumnIndex, SignedBeaconBlock, Slot, deneb, fulu} from "@lodestar/types";
1
+ import {ForkName, ForkPostFulu, ForkPreDeneb, ForkPreGloas} from "@lodestar/params";
2
+ import {BeaconBlockBody, BlobIndex, ColumnIndex, SignedBeaconBlock, Slot, deneb, fulu} from "@lodestar/types";
3
3
  import {fromHex, prettyBytes, toRootHex, withTimeout} from "@lodestar/utils";
4
4
  import {VersionedHashes} from "../../../execution/index.js";
5
5
  import {kzgCommitmentToVersionedHash} from "../../../util/blobs.js";
@@ -715,7 +715,9 @@ export class BlockInputColumns extends AbstractBlockInput<ForkColumnsDA, fulu.Da
715
715
  );
716
716
  }
717
717
 
718
- const hasAllData = props.block.message.body.blobKzgCommitments.length === 0 || this.state.hasAllData;
718
+ const hasAllData =
719
+ (props.block.message.body as BeaconBlockBody<ForkPostFulu & ForkPreGloas>).blobKzgCommitments.length === 0 ||
720
+ this.state.hasAllData;
719
721
 
720
722
  this.state = {
721
723
  ...this.state,
@@ -719,7 +719,6 @@ export class BeaconChain implements IBeaconChain {
719
719
  feeRecipient,
720
720
  commonBlockBodyPromise,
721
721
  parentBlockRoot,
722
- parentSlot,
723
722
  }: BlockAttributes & {commonBlockBodyPromise: Promise<CommonBlockBody>}
724
723
  ): Promise<{
725
724
  block: AssembledBlockType<T>;
@@ -745,7 +744,6 @@ export class BeaconChain implements IBeaconChain {
745
744
  graffiti,
746
745
  slot,
747
746
  feeRecipient,
748
- parentSlot,
749
747
  parentBlockRoot,
750
748
  proposerIndex,
751
749
  proposerPubKey,
@@ -11,6 +11,7 @@ import {
11
11
  ForkName,
12
12
  ForkPostAltair,
13
13
  ForkPostBellatrix,
14
+ ForkPreGloas,
14
15
  ForkSeq,
15
16
  MIN_SYNC_COMMITTEE_PARTICIPANTS,
16
17
  SYNC_COMMITTEE_SIZE,
@@ -741,17 +742,24 @@ export function sumBits(bits: BitArray): number {
741
742
  return bits.getTrueBitIndexes().length;
742
743
  }
743
744
 
744
- export function blockToLightClientHeader(fork: ForkName, block: BeaconBlock<ForkPostAltair>): LightClientHeader {
745
+ // TODO GLOAS: Pending light-client spec but this function probably won't be used
746
+ // in Gloas. So we can assume any types here are pre-gloas
747
+ export function blockToLightClientHeader(
748
+ fork: ForkName,
749
+ block: BeaconBlock<ForkPostAltair & ForkPreGloas>
750
+ ): LightClientHeader {
745
751
  const blockSlot = block.slot;
746
752
  const beacon: phase0.BeaconBlockHeader = {
747
753
  slot: blockSlot,
748
754
  proposerIndex: block.proposerIndex,
749
755
  parentRoot: block.parentRoot,
750
756
  stateRoot: block.stateRoot,
751
- bodyRoot: (ssz[fork].BeaconBlockBody as SSZTypesFor<ForkPostAltair, "BeaconBlockBody">).hashTreeRoot(block.body),
757
+ bodyRoot: (ssz[fork].BeaconBlockBody as SSZTypesFor<ForkPostAltair & ForkPreGloas, "BeaconBlockBody">).hashTreeRoot(
758
+ block.body
759
+ ),
752
760
  };
753
761
  if (ForkSeq[fork] >= ForkSeq.capella) {
754
- const blockBody = block.body as BeaconBlockBody<ForkPostBellatrix>;
762
+ const blockBody = block.body as BeaconBlockBody<ForkPostBellatrix & ForkPreGloas>;
755
763
  const execution = executionPayloadToPayloadHeader(ForkSeq[fork], blockBody.executionPayload);
756
764
  return {
757
765
  beacon,
@@ -4,9 +4,11 @@ import {
4
4
  ForkPostBellatrix,
5
5
  ForkPostDeneb,
6
6
  ForkPostFulu,
7
+ ForkPreGloas,
7
8
  ForkSeq,
8
9
  isForkPostAltair,
9
10
  isForkPostBellatrix,
11
+ isForkPostGloas,
10
12
  } from "@lodestar/params";
11
13
  import {
12
14
  CachedBeaconStateAllForks,
@@ -90,7 +92,6 @@ export type BlockAttributes = {
90
92
  graffiti: Bytes32;
91
93
  slot: Slot;
92
94
  parentBlockRoot: Root;
93
- parentSlot: Slot;
94
95
  feeRecipient?: string;
95
96
  };
96
97
 
@@ -182,7 +183,14 @@ export async function produceBlockBody<T extends BlockType>(
182
183
  };
183
184
  this.logger.verbose("Producing beacon block body", logMeta);
184
185
 
185
- if (isForkPostBellatrix(fork)) {
186
+ if (isForkPostGloas(fork)) {
187
+ // TODO GLOAS: Set body.signedExecutionPayloadBid and body.payloadAttestation
188
+ const commonBlockBody = await commonBlockBodyPromise;
189
+ blockBody = Object.assign({}, commonBlockBody) as AssembledBodyType<T>;
190
+ executionPayloadValue = BigInt(0);
191
+
192
+ // We don't deal with blinded blocks, execution engine, blobs and execution requests post-gloas
193
+ } else if (isForkPostBellatrix(fork)) {
186
194
  const safeBlockHash = this.forkChoice.getJustifiedBlock().executionPayloadBlockHash ?? ZERO_HASH_HEX;
187
195
  const finalizedBlockHash = this.forkChoice.getFinalizedBlock().executionPayloadBlockHash ?? ZERO_HASH_HEX;
188
196
  const feeRecipient = requestedFeeRecipient ?? this.beaconProposerCache.getOrDefault(proposerIndex);
@@ -307,6 +315,7 @@ export async function produceBlockBody<T extends BlockType>(
307
315
 
308
316
  // blockType === BlockType.Full
309
317
  else {
318
+ // enginePromise only supports pre-gloas
310
319
  const enginePromise = (async () => {
311
320
  const endExecutionPayload = this.metrics?.executionBlockProductionTimeSteps.startTimer();
312
321
 
@@ -384,13 +393,13 @@ export async function produceBlockBody<T extends BlockType>(
384
393
  blockBody = Object.assign({}, commonBlockBody) as AssembledBodyType<BlockType.Blinded>;
385
394
 
386
395
  if (engineRes.isPremerge) {
387
- (blockBody as BeaconBlockBody<ForkPostBellatrix>).executionPayload = engineRes.executionPayload;
396
+ (blockBody as BeaconBlockBody<ForkPostBellatrix & ForkPreGloas>).executionPayload = engineRes.executionPayload;
388
397
  executionPayloadValue = engineRes.executionPayloadValue;
389
398
  } else {
390
399
  const {prepType, payloadId, executionPayload, blobsBundle, executionRequests} = engineRes;
391
400
  shouldOverrideBuilder = engineRes.shouldOverrideBuilder;
392
401
 
393
- (blockBody as BeaconBlockBody<ForkPostBellatrix>).executionPayload = executionPayload;
402
+ (blockBody as BeaconBlockBody<ForkPostBellatrix & ForkPreGloas>).executionPayload = executionPayload;
394
403
  (produceResult as ProduceFullBellatrix).executionPayload = executionPayload;
395
404
  executionPayloadValue = engineRes.executionPayloadValue;
396
405
  Object.assign(logMeta, {transactions: executionPayload.transactions.length, shouldOverrideBuilder});
@@ -723,15 +732,7 @@ export async function produceCommonBlockBody<T extends BlockType>(
723
732
  this: BeaconChain,
724
733
  blockType: T,
725
734
  currentState: CachedBeaconStateAllForks,
726
- {
727
- randaoReveal,
728
- graffiti,
729
- slot,
730
- parentSlot,
731
- parentBlockRoot,
732
- }: BlockAttributes & {
733
- parentSlot: Slot;
734
- }
735
+ {randaoReveal, graffiti, slot, parentBlockRoot}: BlockAttributes
735
736
  ): Promise<CommonBlockBody> {
736
737
  const stepsMetrics =
737
738
  blockType === BlockType.Full
@@ -783,7 +784,8 @@ export async function produceCommonBlockBody<T extends BlockType>(
783
784
 
784
785
  const endSyncAggregate = stepsMetrics?.startTimer();
785
786
  if (ForkSeq[fork] >= ForkSeq.altair) {
786
- const syncAggregate = this.syncContributionAndProofPool.getAggregate(parentSlot, parentBlockRoot);
787
+ const previousSlot = slot - 1;
788
+ const syncAggregate = this.syncContributionAndProofPool.getAggregate(previousSlot, parentBlockRoot);
787
789
  this.metrics?.production.producedSyncAggregateParticipants.observe(
788
790
  syncAggregate.syncCommitteeBits.getTrueBitIndexes().length
789
791
  );
@@ -1,6 +1,6 @@
1
1
  import {ChainForkConfig} from "@lodestar/config";
2
2
  import {CheckpointWithHex} from "@lodestar/fork-choice";
3
- import {ForkName, ForkPostFulu, isForkPostDeneb, isForkPostFulu} from "@lodestar/params";
3
+ import {ForkName, ForkPostFulu, ForkPreGloas, isForkPostDeneb, isForkPostFulu, isForkPostGloas} from "@lodestar/params";
4
4
  import {computeStartSlotAtEpoch} from "@lodestar/state-transition";
5
5
  import {RootHex, SignedBeaconBlock, Slot, deneb, fulu} from "@lodestar/types";
6
6
  import {LodestarError, Logger} from "@lodestar/utils";
@@ -155,6 +155,12 @@ export class SeenBlockInput {
155
155
  let blockInput = this.blockInputs.get(blockRootHex) as IBlockInput;
156
156
  if (!blockInput) {
157
157
  const {forkName, daOutOfRange} = this.buildCommonProps(block.message.slot);
158
+
159
+ // TODO GLOAS: Implement
160
+ if (isForkPostGloas(forkName)) {
161
+ throw Error("Not implemented");
162
+ }
163
+ // Pre-deneb
158
164
  if (!isForkPostDeneb(forkName)) {
159
165
  blockInput = BlockInputPreData.createFromBlock({
160
166
  block,
@@ -165,9 +171,10 @@ export class SeenBlockInput {
165
171
  seenTimestampSec,
166
172
  peerIdStr,
167
173
  });
174
+ // Fulu Only
168
175
  } else if (isForkPostFulu(forkName)) {
169
176
  blockInput = BlockInputColumns.createFromBlock({
170
- block: block as SignedBeaconBlock<ForkPostFulu>,
177
+ block: block as SignedBeaconBlock<ForkPostFulu & ForkPreGloas>,
171
178
  blockRootHex,
172
179
  daOutOfRange,
173
180
  forkName,
@@ -177,6 +184,7 @@ export class SeenBlockInput {
177
184
  seenTimestampSec,
178
185
  peerIdStr,
179
186
  });
187
+ // Deneb and Electra
180
188
  } else {
181
189
  blockInput = BlockInputBlobs.createFromBlock({
182
190
  block: block as SignedBeaconBlock<ForkBlobsDA>,
@@ -245,8 +245,8 @@ export function getCoreTopicsAtFork(
245
245
  topics.push(...getDataColumnSidecarTopics(networkConfig));
246
246
  }
247
247
 
248
- // After Deneb also track blob_sidecar_{subnet_id}
249
- if (ForkSeq[fork] >= ForkSeq.deneb) {
248
+ // After Deneb and before Fulu also track blob_sidecar_{subnet_id}
249
+ if (ForkSeq[fork] >= ForkSeq.deneb && ForkSeq[fork] < ForkSeq.fulu) {
250
250
  const {config} = networkConfig;
251
251
  const subnetCount = isForkPostElectra(fork)
252
252
  ? config.BLOB_SIDECAR_SUBNET_COUNT_ELECTRA