@lodestar/beacon-node 1.34.0-dev.27285cdee9 → 1.34.0-dev.44611dcdcc

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 (140) hide show
  1. package/lib/api/impl/beacon/blocks/index.js +35 -34
  2. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  3. package/lib/api/impl/beacon/pool/index.js +3 -3
  4. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  5. package/lib/api/impl/beacon/state/index.js +15 -16
  6. package/lib/api/impl/beacon/state/index.js.map +1 -1
  7. package/lib/api/impl/debug/index.js +2 -2
  8. package/lib/api/impl/debug/index.js.map +1 -1
  9. package/lib/api/impl/validator/index.js +37 -26
  10. package/lib/api/impl/validator/index.js.map +1 -1
  11. package/lib/api/impl/validator/utils.d.ts +3 -3
  12. package/lib/api/impl/validator/utils.js +2 -2
  13. package/lib/api/impl/validator/utils.js.map +1 -1
  14. package/lib/chain/archiveStore/utils/archiveBlocks.js +19 -20
  15. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  16. package/lib/chain/blocks/utils/zebraBanner.d.ts +2 -0
  17. package/lib/chain/blocks/utils/zebraBanner.js +45 -0
  18. package/lib/chain/blocks/utils/zebraBanner.js.map +1 -0
  19. package/lib/chain/blocks/verifyBlock.js +18 -5
  20. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  21. package/lib/chain/blocks/writeBlockInputToDb.js +7 -34
  22. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  23. package/lib/chain/chain.d.ts +8 -80
  24. package/lib/chain/chain.js +51 -76
  25. package/lib/chain/chain.js.map +1 -1
  26. package/lib/chain/interface.d.ts +3 -10
  27. package/lib/chain/interface.js.map +1 -1
  28. package/lib/chain/prepareNextSlot.js +2 -1
  29. package/lib/chain/prepareNextSlot.js.map +1 -1
  30. package/lib/chain/produceBlock/produceBlockBody.d.ts +30 -18
  31. package/lib/chain/produceBlock/produceBlockBody.js +27 -32
  32. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  33. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts +6 -4
  34. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js +21 -23
  35. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
  36. package/lib/chain/validation/dataColumnSidecar.d.ts +2 -1
  37. package/lib/chain/validation/dataColumnSidecar.js +9 -8
  38. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  39. package/lib/db/beacon.d.ts +3 -3
  40. package/lib/db/beacon.js +3 -3
  41. package/lib/db/beacon.js.map +1 -1
  42. package/lib/db/interface.d.ts +3 -3
  43. package/lib/db/repositories/dataColumnSidecar.d.ts +26 -0
  44. package/lib/db/repositories/dataColumnSidecar.js +39 -0
  45. package/lib/db/repositories/dataColumnSidecar.js.map +1 -0
  46. package/lib/db/repositories/dataColumnSidecarArchive.d.ts +24 -0
  47. package/lib/db/repositories/dataColumnSidecarArchive.js +39 -0
  48. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -0
  49. package/lib/db/repositories/index.d.ts +2 -2
  50. package/lib/db/repositories/index.js +2 -2
  51. package/lib/db/repositories/index.js.map +1 -1
  52. package/lib/execution/builder/http.d.ts +20 -4
  53. package/lib/execution/builder/http.js +30 -11
  54. package/lib/execution/builder/http.js.map +1 -1
  55. package/lib/execution/builder/interface.d.ts +5 -4
  56. package/lib/execution/engine/http.d.ts +2 -2
  57. package/lib/execution/engine/http.js.map +1 -1
  58. package/lib/execution/engine/interface.d.ts +2 -11
  59. package/lib/execution/engine/mock.d.ts +4 -1
  60. package/lib/execution/engine/mock.js +54 -16
  61. package/lib/execution/engine/mock.js.map +1 -1
  62. package/lib/execution/engine/types.d.ts +5 -5
  63. package/lib/execution/engine/types.js +2 -2
  64. package/lib/execution/engine/types.js.map +1 -1
  65. package/lib/metrics/metrics/beacon.d.ts +1 -5
  66. package/lib/metrics/metrics/beacon.js +4 -14
  67. package/lib/metrics/metrics/beacon.js.map +1 -1
  68. package/lib/metrics/metrics/lodestar.d.ts +5 -0
  69. package/lib/metrics/metrics/lodestar.js +14 -0
  70. package/lib/metrics/metrics/lodestar.js.map +1 -1
  71. package/lib/network/core/networkCore.js +11 -6
  72. package/lib/network/core/networkCore.js.map +1 -1
  73. package/lib/network/gossip/topic.d.ts +579 -51
  74. package/lib/network/interface.d.ts +3 -3
  75. package/lib/network/network.d.ts +3 -3
  76. package/lib/network/network.js +1 -1
  77. package/lib/network/network.js.map +1 -1
  78. package/lib/network/options.js +2 -2
  79. package/lib/network/peers/discover.js +1 -1
  80. package/lib/network/peers/discover.js.map +1 -1
  81. package/lib/network/peers/peerManager.js +5 -5
  82. package/lib/network/peers/peerManager.js.map +1 -1
  83. package/lib/network/peers/utils/prioritizePeers.d.ts +2 -1
  84. package/lib/network/peers/utils/prioritizePeers.js +5 -5
  85. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  86. package/lib/network/processor/gossipHandlers.js +9 -6
  87. package/lib/network/processor/gossipHandlers.js.map +1 -1
  88. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +6 -3
  89. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +45 -17
  90. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -1
  91. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +7 -2
  92. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +7 -7
  93. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -1
  94. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +3 -3
  95. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  96. package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts +2 -2
  97. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
  98. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts +2 -2
  99. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +2 -3
  100. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
  101. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts +3 -3
  102. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +27 -46
  103. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  104. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts +2 -2
  105. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +7 -21
  106. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  107. package/lib/network/reqresp/handlers/index.js +4 -3
  108. package/lib/network/reqresp/handlers/index.js.map +1 -1
  109. package/lib/network/reqresp/rateLimit.js +11 -5
  110. package/lib/network/reqresp/rateLimit.js.map +1 -1
  111. package/lib/network/reqresp/types.d.ts +3 -3
  112. package/lib/network/reqresp/types.js +3 -3
  113. package/lib/network/reqresp/types.js.map +1 -1
  114. package/lib/sync/range/chain.d.ts +1 -1
  115. package/lib/sync/range/chain.js +2 -2
  116. package/lib/sync/range/chain.js.map +1 -1
  117. package/lib/sync/range/range.js +2 -2
  118. package/lib/sync/range/range.js.map +1 -1
  119. package/lib/sync/range/utils/peerBalancer.d.ts +3 -1
  120. package/lib/sync/range/utils/peerBalancer.js +20 -1
  121. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  122. package/lib/sync/unknownBlock.d.ts +46 -4
  123. package/lib/sync/unknownBlock.js +305 -201
  124. package/lib/sync/unknownBlock.js.map +1 -1
  125. package/lib/util/blobs.d.ts +3 -13
  126. package/lib/util/blobs.js +9 -47
  127. package/lib/util/blobs.js.map +1 -1
  128. package/lib/util/dataColumns.d.ts +7 -5
  129. package/lib/util/dataColumns.js +32 -27
  130. package/lib/util/dataColumns.js.map +1 -1
  131. package/lib/util/types.d.ts +7 -0
  132. package/lib/util/types.js +3 -0
  133. package/lib/util/types.js.map +1 -1
  134. package/package.json +16 -16
  135. package/lib/db/repositories/dataColumnSidecars.d.ts +0 -47
  136. package/lib/db/repositories/dataColumnSidecars.js +0 -40
  137. package/lib/db/repositories/dataColumnSidecars.js.map +0 -1
  138. package/lib/db/repositories/dataColumnSidecarsArchive.d.ts +0 -15
  139. package/lib/db/repositories/dataColumnSidecarsArchive.js +0 -23
  140. package/lib/db/repositories/dataColumnSidecarsArchive.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"verifyBlock.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifyBlock.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlock.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,5 @@
1
- import { ForkName, NUMBER_OF_COLUMNS, isForkPostDeneb, isForkPostFulu } from "@lodestar/params";
2
- import { ssz } from "@lodestar/types";
3
- import { toRootHex } from "@lodestar/utils";
4
- import { toHex } from "@lodestar/utils";
1
+ import { ForkName, isForkPostDeneb, isForkPostFulu } from "@lodestar/params";
2
+ import { toHex, toRootHex } from "@lodestar/utils";
5
3
  import { BlockInputType } from "./types.js";
6
4
  /**
7
5
  * Persists block input data to DB. This operation must be eventually completed if a block is imported to the fork-choice.
@@ -38,38 +36,22 @@ export async function writeBlockInputToDb(blocksInput) {
38
36
  // NOTE: Old data is pruned on archive
39
37
  if (isForkPostFulu(blockData.fork)) {
40
38
  const { custodyConfig } = this;
41
- const { custodyColumnsIndex, custodyColumns } = custodyConfig;
39
+ const { custodyColumns } = custodyConfig;
42
40
  const blobsLen = block.message.body.blobKzgCommitments.length;
43
41
  let dataColumnsLen;
44
- let dataColumnsIndex;
45
42
  if (blobsLen === 0) {
46
43
  dataColumnsLen = 0;
47
- dataColumnsIndex = new Uint8Array(NUMBER_OF_COLUMNS);
48
44
  }
49
45
  else {
50
46
  dataColumnsLen = custodyColumns.length;
51
- dataColumnsIndex = custodyColumnsIndex;
52
47
  }
53
48
  const blockDataColumns = blockData.dataColumns;
54
49
  const dataColumnSidecars = blockDataColumns.filter((dataColumnSidecar) => custodyColumns.includes(dataColumnSidecar.index));
55
50
  if (dataColumnSidecars.length !== dataColumnsLen) {
56
51
  throw Error(`Invalid dataColumnSidecars=${dataColumnSidecars.length} for custody expected custodyColumnsLen=${dataColumnsLen}`);
57
52
  }
58
- const dataColumnsSize = ssz.fulu.DataColumnSidecar.minSize +
59
- blobsLen * (ssz.fulu.Cell.fixedSize + ssz.deneb.KZGCommitment.fixedSize + ssz.deneb.KZGProof.fixedSize);
60
- const slot = block.message.slot;
61
- const writeData = {
62
- blockRoot,
63
- slot,
64
- dataColumnsLen,
65
- dataColumnsSize,
66
- dataColumnsIndex,
67
- dataColumnSidecars,
68
- };
69
- fnPromises.push(this.db.dataColumnSidecars.add(writeData));
53
+ fnPromises.push(this.db.dataColumnSidecar.putMany(blockRoot, dataColumnSidecars));
70
54
  this.logger.debug("Persisted dataColumnSidecars to hot DB", {
71
- dataColumnsSize,
72
- dataColumnsLen,
73
55
  dataColumnSidecars: dataColumnSidecars.length,
74
56
  slot: block.message.slot,
75
57
  root: blockRootHex,
@@ -114,22 +96,13 @@ export async function removeEagerlyPersistedBlockInputs(blockInputs) {
114
96
  }
115
97
  else {
116
98
  const { custodyConfig } = this;
117
- const { custodyColumnsIndex: dataColumnsIndex, custodyColumns } = custodyConfig;
99
+ const { custodyColumns } = custodyConfig;
118
100
  const dataColumnsLen = custodyColumns.length;
119
101
  const dataColumnSidecars = blockData.dataColumns.filter((dataColumnSidecar) => custodyColumns.includes(dataColumnSidecar.index));
120
102
  if (dataColumnSidecars.length !== dataColumnsLen) {
121
103
  throw Error(`Invalid dataColumnSidecars=${dataColumnSidecars.length} for custody expected custodyColumnsLen=${dataColumnsLen}`);
122
104
  }
123
- const blobsLen = block.message.body.blobKzgCommitments.length;
124
- const dataColumnsSize = ssz.fulu.Cell.fixedSize * blobsLen;
125
- dataColumnsToRemove.push({
126
- blockRoot,
127
- slot,
128
- dataColumnsLen,
129
- dataColumnsSize,
130
- dataColumnsIndex,
131
- dataColumnSidecars,
132
- });
105
+ dataColumnsToRemove.push(blockRoot);
133
106
  }
134
107
  }
135
108
  }
@@ -138,7 +111,7 @@ export async function removeEagerlyPersistedBlockInputs(blockInputs) {
138
111
  // TODO: Batch DB operations not with Promise.all but with level db ops
139
112
  this.db.block.batchRemove(blockToRemove),
140
113
  this.db.blobSidecars.batchRemove(blobsToRemove),
141
- this.db.dataColumnSidecars.batchRemove(dataColumnsToRemove),
114
+ this.db.dataColumnSidecar.deleteMany(dataColumnsToRemove),
142
115
  ]);
143
116
  }
144
117
  //# sourceMappingURL=writeBlockInputToDb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"writeBlockInputToDb.js","sourceRoot":"","sources":["../../../src/chain/blocks/writeBlockInputToDb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writeBlockInputToDb.js","sourceRoot":"","sources":["../../../src/chain/blocks/writeBlockInputToDb.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { CompositeTypeAny, TreeView, Type } from "@chainsafe/ssz";
3
3
  import { BeaconConfig } from "@lodestar/config";
4
4
  import { CheckpointWithHex, IForkChoice, ProtoBlock } from "@lodestar/fork-choice";
5
5
  import { BeaconStateAllForks, CachedBeaconStateAllForks, EpochShuffling, Index2PubkeyCache } from "@lodestar/state-transition";
6
- import { BeaconBlock, BlindedBeaconBlock, Epoch, Root, RootHex, SignedBeaconBlock, Slot, Status, UintNum64, ValidatorIndex, Wei, deneb, fulu } from "@lodestar/types";
6
+ import { BeaconBlock, BlindedBeaconBlock, Epoch, Root, RootHex, SignedBeaconBlock, Slot, Status, UintNum64, ValidatorIndex, Wei } from "@lodestar/types";
7
7
  import { Logger } from "@lodestar/utils";
8
8
  import { ProcessShutdownCallback } from "@lodestar/validator";
9
9
  import { PrivateKey } from "@libp2p/interface";
@@ -27,7 +27,7 @@ import { CommonBlockBody, IBeaconChain, ProposerPreparationData, StateGetOpts }
27
27
  import { LightClientServer } from "./lightClient/index.js";
28
28
  import { AggregatedAttestationPool, AttestationPool, OpPool, SyncCommitteeMessagePool, SyncContributionAndProofPool } from "./opPools/index.js";
29
29
  import { IChainOptions } from "./options.js";
30
- import { AssembledBlockType, BlockType } from "./produceBlock/index.js";
30
+ import { AssembledBlockType, BlockType, ProduceResult } from "./produceBlock/index.js";
31
31
  import { BlockAttributes } from "./produceBlock/produceBlockBody.js";
32
32
  import { QueuedStateRegenerator, RegenCaller } from "./regen/index.js";
33
33
  import { ReprocessController } from "./reprocess.js";
@@ -83,71 +83,12 @@ export declare class BeaconChain implements IBeaconChain {
83
83
  readonly beaconProposerCache: BeaconProposerCache;
84
84
  readonly checkpointBalancesCache: CheckpointBalancesCache;
85
85
  readonly shufflingCache: ShufflingCache;
86
- /** Map keyed by executionPayload.blockHash of the block for those blobs */
87
- readonly producedContentsCache: Map<string, deneb.Contents & {
88
- cells?: fulu.Cell[][];
89
- }>;
90
- readonly producedBlockRoot: Map<string, import("@chainsafe/ssz").ValueOfFields<{
91
- transactions: import("@chainsafe/ssz").ListCompositeType<import("@chainsafe/ssz").ByteListType>;
92
- parentHash: import("@chainsafe/ssz").ByteVectorType;
93
- feeRecipient: import("@lodestar/types/lib/utils/executionAddress.js").ExecutionAddressType;
94
- stateRoot: import("@chainsafe/ssz").ByteVectorType;
95
- receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
96
- logsBloom: import("@chainsafe/ssz").ByteVectorType;
97
- prevRandao: import("@chainsafe/ssz").ByteVectorType;
98
- blockNumber: import("@chainsafe/ssz").UintNumberType;
99
- gasLimit: import("@chainsafe/ssz").UintNumberType;
100
- gasUsed: import("@chainsafe/ssz").UintNumberType;
101
- timestamp: import("@chainsafe/ssz").UintNumberType;
102
- extraData: import("@chainsafe/ssz").ByteListType;
103
- baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
104
- blockHash: import("@chainsafe/ssz").ByteVectorType;
105
- }> | import("@chainsafe/ssz").ValueOfFields<{
106
- withdrawals: import("@chainsafe/ssz").ListCompositeType<import("@chainsafe/ssz").ContainerType<{
107
- index: import("@chainsafe/ssz").UintNumberType;
108
- validatorIndex: import("@chainsafe/ssz").UintNumberType;
109
- address: import("@lodestar/types/lib/utils/executionAddress.js").ExecutionAddressType;
110
- amount: import("@chainsafe/ssz").UintBigintType;
111
- }>>;
112
- transactions: import("@chainsafe/ssz").ListCompositeType<import("@chainsafe/ssz").ByteListType>;
113
- parentHash: import("@chainsafe/ssz").ByteVectorType;
114
- feeRecipient: import("@lodestar/types/lib/utils/executionAddress.js").ExecutionAddressType;
115
- stateRoot: import("@chainsafe/ssz").ByteVectorType;
116
- receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
117
- logsBloom: import("@chainsafe/ssz").ByteVectorType;
118
- prevRandao: import("@chainsafe/ssz").ByteVectorType;
119
- blockNumber: import("@chainsafe/ssz").UintNumberType;
120
- gasLimit: import("@chainsafe/ssz").UintNumberType;
121
- gasUsed: import("@chainsafe/ssz").UintNumberType;
122
- timestamp: import("@chainsafe/ssz").UintNumberType;
123
- extraData: import("@chainsafe/ssz").ByteListType;
124
- baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
125
- blockHash: import("@chainsafe/ssz").ByteVectorType;
126
- }> | import("@chainsafe/ssz").ValueOfFields<{
127
- blobGasUsed: import("@chainsafe/ssz").UintBigintType;
128
- excessBlobGas: import("@chainsafe/ssz").UintBigintType;
129
- withdrawals: import("@chainsafe/ssz").ListCompositeType<import("@chainsafe/ssz").ContainerType<{
130
- index: import("@chainsafe/ssz").UintNumberType;
131
- validatorIndex: import("@chainsafe/ssz").UintNumberType;
132
- address: import("@lodestar/types/lib/utils/executionAddress.js").ExecutionAddressType;
133
- amount: import("@chainsafe/ssz").UintBigintType;
134
- }>>;
135
- transactions: import("@chainsafe/ssz").ListCompositeType<import("@chainsafe/ssz").ByteListType>;
136
- parentHash: import("@chainsafe/ssz").ByteVectorType;
137
- feeRecipient: import("@lodestar/types/lib/utils/executionAddress.js").ExecutionAddressType;
138
- stateRoot: import("@chainsafe/ssz").ByteVectorType;
139
- receiptsRoot: import("@chainsafe/ssz").ByteVectorType;
140
- logsBloom: import("@chainsafe/ssz").ByteVectorType;
141
- prevRandao: import("@chainsafe/ssz").ByteVectorType;
142
- blockNumber: import("@chainsafe/ssz").UintNumberType;
143
- gasLimit: import("@chainsafe/ssz").UintNumberType;
144
- gasUsed: import("@chainsafe/ssz").UintNumberType;
145
- timestamp: import("@chainsafe/ssz").UintNumberType;
146
- extraData: import("@chainsafe/ssz").ByteListType;
147
- baseFeePerGas: import("@chainsafe/ssz").UintBigintType;
148
- blockHash: import("@chainsafe/ssz").ByteVectorType;
149
- }> | null>;
150
- readonly producedBlindedBlockRoot: Set<string>;
86
+ /**
87
+ * Cache produced results (ExecutionPayload, DA Data) from the local execution so that we can send
88
+ * and get signed/published blinded versions which beacon node can
89
+ * assemble into full blocks before publishing to the network.
90
+ */
91
+ readonly blockProductionCache: Map<string, ProduceResult>;
151
92
  readonly blacklistedBlocks: Map<RootHex, Slot | null>;
152
93
  readonly serializedCache: SerializedCache;
153
94
  readonly opts: IChainOptions;
@@ -247,19 +188,6 @@ export declare class BeaconChain implements IBeaconChain {
247
188
  consensusBlockValue: Wei;
248
189
  shouldOverrideBuilder?: boolean;
249
190
  }>;
250
- /**
251
- * https://github.com/ethereum/consensus-specs/blob/dev/specs/eip4844/validator.md#sidecar
252
- * def get_blobs_sidecar(block: BeaconBlock, blobs: Sequence[Blob]) -> BlobSidecars:
253
- * return BlobSidecars(
254
- * beacon_block_root=hash_tree_root(block),
255
- * beacon_block_slot=block.slot,
256
- * blobs=blobs,
257
- * kzg_aggregated_proof=compute_proof_from_blobs(blobs),
258
- * )
259
- */
260
- getContents(beaconBlock: deneb.BeaconBlock): deneb.Contents & {
261
- cells?: fulu.Cell[][];
262
- };
263
191
  processBlock(block: BlockInput, opts?: ImportBlockOpts): Promise<void>;
264
192
  processChainSegment(blocks: BlockInput[], opts?: ImportBlockOpts): Promise<void>;
265
193
  getStatus(): Status;
@@ -1,12 +1,12 @@
1
1
  import path from "node:path";
2
2
  import { PubkeyIndexMap } from "@chainsafe/pubkey-index-map";
3
3
  import { ExecutionStatus, UpdateHeadOpt } from "@lodestar/fork-choice";
4
- import { ForkSeq, GENESIS_SLOT, NUMBER_OF_CUSTODY_GROUPS, SLOTS_PER_EPOCH, isForkPostElectra } from "@lodestar/params";
5
- import { computeAnchorCheckpoint, computeEndSlotAtEpoch, computeEpochAtSlot, computeStartSlotAtEpoch, createCachedBeaconState, getEffectiveBalanceIncrementsZeroInactive, isCachedBeaconState, processSlots, } from "@lodestar/state-transition";
4
+ import { EFFECTIVE_BALANCE_INCREMENT, GENESIS_SLOT, SLOTS_PER_EPOCH, isForkPostElectra } from "@lodestar/params";
5
+ import { computeAnchorCheckpoint, computeEndSlotAtEpoch, computeEpochAtSlot, computeStartSlotAtEpoch, createCachedBeaconState, getEffectiveBalanceIncrementsZeroInactive, getEffectiveBalancesFromStateBytes, isCachedBeaconState, processSlots, } from "@lodestar/state-transition";
6
6
  import { isBlindedBeaconBlock, } from "@lodestar/types";
7
7
  import { fromHex, gweiToWei, isErrorAborted, pruneSetToMax, sleep, toRootHex } from "@lodestar/utils";
8
- import { getEffectiveBalancesFromStateBytes } from "@lodestar/state-transition";
9
8
  import { GENESIS_EPOCH, ZERO_HASH } from "../constants/index.js";
9
+ import { BuilderStatus } from "../execution/builder/http.js";
10
10
  import { computeNodeIdFromPrivateKey } from "../network/subnets/interface.js";
11
11
  import { BufferPool } from "../util/bufferPool.js";
12
12
  import { Clock, ClockEvent } from "../util/clock.js";
@@ -21,12 +21,12 @@ import { BlockProcessor } from "./blocks/index.js";
21
21
  import { BlsMultiThreadWorkerPool, BlsSingleThreadVerifier } from "./bls/index.js";
22
22
  import { ChainEvent, ChainEventEmitter } from "./emitter.js";
23
23
  import { initializeForkChoice } from "./forkChoice/index.js";
24
- import { FindHeadFnName, } from "./interface.js";
24
+ import { FindHeadFnName } from "./interface.js";
25
25
  import { LightClientServer } from "./lightClient/index.js";
26
26
  import { AggregatedAttestationPool, AttestationPool, OpPool, SyncCommitteeMessagePool, SyncContributionAndProofPool, } from "./opPools/index.js";
27
27
  import { PrepareNextSlotScheduler } from "./prepareNextSlot.js";
28
28
  import { computeNewStateRoot } from "./produceBlock/computeNewStateRoot.js";
29
- import { BlobsResultType, BlockType } from "./produceBlock/index.js";
29
+ import { BlockType } from "./produceBlock/index.js";
30
30
  import { produceBlockBody, produceCommonBlockBody } from "./produceBlock/produceBlockBody.js";
31
31
  import { QueuedStateRegenerator, RegenCaller } from "./regen/index.js";
32
32
  import { ReprocessController } from "./reprocess.js";
@@ -47,11 +47,13 @@ import { FIFOBlockStateCache } from "./stateCache/fifoBlockStateCache.js";
47
47
  import { InMemoryCheckpointStateCache } from "./stateCache/inMemoryCheckpointsCache.js";
48
48
  import { PersistentCheckpointStateCache } from "./stateCache/persistentCheckpointsCache.js";
49
49
  /**
50
- * Arbitrary constants, blobs and payloads should be consumed immediately in the same slot
50
+ * The maximum number of cached produced results to keep in memory.
51
+ *
52
+ * Arbitrary constant. Blobs and payloads should be consumed immediately in the same slot
51
53
  * they are produced. A value of 1 would probably be sufficient. However it's sensible to
52
54
  * allow some margin if the node overloads.
53
55
  */
54
- const DEFAULT_MAX_CACHED_PRODUCED_ROOTS = 4;
56
+ const DEFAULT_MAX_CACHED_PRODUCED_RESULTS = 4;
55
57
  export class BeaconChain {
56
58
  get earliestAvailableSlot() {
57
59
  return this._earliestAvailableSlot;
@@ -71,13 +73,12 @@ export class BeaconChain {
71
73
  this.seenSyncCommitteeMessages = new SeenSyncCommitteeMessages();
72
74
  // Seen cache for liveness checks
73
75
  this.seenBlockAttesters = new SeenBlockAttesters();
74
- /** Map keyed by executionPayload.blockHash of the block for those blobs */
75
- this.producedContentsCache = new Map();
76
- // Cache payloads from the local execution so that we can send
77
- // and get signed/published blinded versions which beacon node can
78
- // assemble into full blocks before publishing to the network.
79
- this.producedBlockRoot = new Map();
80
- this.producedBlindedBlockRoot = new Set();
76
+ /**
77
+ * Cache produced results (ExecutionPayload, DA Data) from the local execution so that we can send
78
+ * and get signed/published blinded versions which beacon node can
79
+ * assemble into full blocks before publishing to the network.
80
+ */
81
+ this.blockProductionCache = new Map();
81
82
  this.abortController = new AbortController();
82
83
  this.opts = opts;
83
84
  this.config = config;
@@ -110,7 +111,7 @@ export class BeaconChain {
110
111
  this.seenContributionAndProof = new SeenContributionAndProof(metrics);
111
112
  this.seenAttestationDatas = new SeenAttestationDatas(metrics, this.opts?.attDataCacheSlotDistance);
112
113
  const nodeId = computeNodeIdFromPrivateKey(privateKey);
113
- const initialCustodyGroupCount = opts.initialCustodyGroupCount ?? (opts.supernode ? NUMBER_OF_CUSTODY_GROUPS : config.CUSTODY_REQUIREMENT);
114
+ const initialCustodyGroupCount = opts.initialCustodyGroupCount ?? (opts.supernode ? config.NUMBER_OF_CUSTODY_GROUPS : config.CUSTODY_REQUIREMENT);
114
115
  this.metrics?.peerDas.targetCustodyGroupCount.set(initialCustodyGroupCount);
115
116
  this.custodyConfig = new CustodyConfig({
116
117
  nodeId,
@@ -437,7 +438,7 @@ export class BeaconChain {
437
438
  const state = await this.regen.getBlockSlotState(toRootHex(parentBlockRoot), slot, { dontTransferCache: true }, RegenCaller.produceBlock);
438
439
  const proposerIndex = state.epochCtx.getBeaconProposer(slot);
439
440
  const proposerPubKey = state.epochCtx.index2pubkey[proposerIndex].toBytes();
440
- const { body, blobs, executionPayloadValue, shouldOverrideBuilder } = await produceBlockBody.call(this, blockType, state, {
441
+ const { body, produceResult, executionPayloadValue, shouldOverrideBuilder } = await produceBlockBody.call(this, blockType, state, {
441
442
  randaoReveal,
442
443
  graffiti,
443
444
  slot,
@@ -449,7 +450,7 @@ export class BeaconChain {
449
450
  commonBlockBodyPromise,
450
451
  });
451
452
  // The hashtree root computed here for debug log will get cached and hence won't introduce additional delays
452
- const bodyRoot = blockType === BlockType.Full
453
+ const bodyRoot = produceResult.type === BlockType.Full
453
454
  ? this.config.getForkTypes(slot).BeaconBlockBody.hashTreeRoot(body)
454
455
  : this.config
455
456
  .getPostBellatrixForkTypes(slot)
@@ -468,51 +469,15 @@ export class BeaconChain {
468
469
  };
469
470
  const { newStateRoot, proposerReward } = computeNewStateRoot(this.metrics, state, block);
470
471
  block.stateRoot = newStateRoot;
471
- const blockRoot = blockType === BlockType.Full
472
+ const blockRoot = produceResult.type === BlockType.Full
472
473
  ? this.config.getForkTypes(slot).BeaconBlock.hashTreeRoot(block)
473
474
  : this.config.getPostBellatrixForkTypes(slot).BlindedBeaconBlock.hashTreeRoot(block);
474
475
  const blockRootHex = toRootHex(blockRoot);
475
- // track the produced block for consensus broadcast validations
476
- if (blockType === BlockType.Full) {
477
- this.logger.debug("Setting executionPayload cache for produced block", { blockRootHex, slot, blockType });
478
- this.producedBlockRoot.set(blockRootHex, block.body.executionPayload ?? null);
479
- this.metrics?.blockProductionCaches.producedBlockRoot.set(this.producedBlockRoot.size);
480
- }
481
- else {
482
- this.logger.debug("Tracking the produced blinded block", { blockRootHex, slot, blockType });
483
- this.producedBlindedBlockRoot.add(blockRootHex);
484
- this.metrics?.blockProductionCaches.producedBlindedBlockRoot.set(this.producedBlindedBlockRoot.size);
485
- }
486
- // Cache for latter broadcasting
487
- //
488
- // blinded blobs will be fetched and added to this cache later before finally
489
- // publishing the blinded block's full version
490
- if (blobs.type === BlobsResultType.produced) {
491
- // body is of full type here
492
- const { blockHash, contents } = blobs;
493
- this.producedContentsCache.set(blockHash, contents);
494
- this.metrics?.blockProductionCaches.producedContentsCache.set(this.producedContentsCache.size);
495
- }
476
+ // Track the produced block for consensus broadcast validations, later validation, etc.
477
+ this.blockProductionCache.set(blockRootHex, produceResult);
478
+ this.metrics?.blockProductionCacheSize.set(this.blockProductionCache.size);
496
479
  return { block, executionPayloadValue, consensusBlockValue: gweiToWei(proposerReward), shouldOverrideBuilder };
497
480
  }
498
- /**
499
- * https://github.com/ethereum/consensus-specs/blob/dev/specs/eip4844/validator.md#sidecar
500
- * def get_blobs_sidecar(block: BeaconBlock, blobs: Sequence[Blob]) -> BlobSidecars:
501
- * return BlobSidecars(
502
- * beacon_block_root=hash_tree_root(block),
503
- * beacon_block_slot=block.slot,
504
- * blobs=blobs,
505
- * kzg_aggregated_proof=compute_proof_from_blobs(blobs),
506
- * )
507
- */
508
- getContents(beaconBlock) {
509
- const blockHash = toRootHex(beaconBlock.body.executionPayload.blockHash);
510
- const contents = this.producedContentsCache.get(blockHash);
511
- if (!contents) {
512
- throw Error(`No contents for executionPayload.blockHash ${blockHash}`);
513
- }
514
- return contents;
515
- }
516
481
  async processBlock(block, opts) {
517
482
  return this.blockProcessor.processBlocksJob([block], opts);
518
483
  }
@@ -797,14 +762,8 @@ export class BeaconChain {
797
762
  this.seenAttestationDatas.onSlot(slot);
798
763
  this.reprocessController.onSlot(slot);
799
764
  // Prune old cached block production artifacts, those are only useful on their slot
800
- pruneSetToMax(this.producedBlockRoot, this.opts.maxCachedProducedRoots ?? DEFAULT_MAX_CACHED_PRODUCED_ROOTS);
801
- this.metrics?.blockProductionCaches.producedBlockRoot.set(this.producedBlockRoot.size);
802
- pruneSetToMax(this.producedBlindedBlockRoot, this.opts.maxCachedProducedRoots ?? DEFAULT_MAX_CACHED_PRODUCED_ROOTS);
803
- this.metrics?.blockProductionCaches.producedBlindedBlockRoot.set(this.producedBlindedBlockRoot.size);
804
- if (this.config.getForkSeq(slot) >= ForkSeq.deneb) {
805
- pruneSetToMax(this.producedContentsCache, this.opts.maxCachedProducedRoots ?? DEFAULT_MAX_CACHED_PRODUCED_ROOTS);
806
- this.metrics?.blockProductionCaches.producedContentsCache.set(this.producedContentsCache.size);
807
- }
765
+ pruneSetToMax(this.blockProductionCache, this.opts.maxCachedProducedRoots ?? DEFAULT_MAX_CACHED_PRODUCED_RESULTS);
766
+ this.metrics?.blockProductionCacheSize.set(this.blockProductionCache.size);
808
767
  const metrics = this.metrics;
809
768
  if (metrics && (slot + 1) % SLOTS_PER_EPOCH === 0) {
810
769
  // On the last slot of the epoch
@@ -878,19 +837,35 @@ export class BeaconChain {
878
837
  // of all custody groups regardless of validator effective balances
879
838
  return;
880
839
  }
881
- // Update custody requirement based on finalized state
882
- const stateOrBytes = (await this.getStateOrBytesByCheckpoint(finalizedCheckpoint))?.state;
883
- if (!stateOrBytes) {
884
- throw Error(`No finalized state for epoch ${finalizedCheckpoint.epoch} and root ${finalizedCheckpoint.rootHex} to update target custody group count`);
885
- }
886
840
  // Validators attached to the node
887
841
  const validatorIndices = this.beaconProposerCache.getValidatorIndices();
842
+ // Update custody requirement based on finalized state
888
843
  let effectiveBalances;
889
- if (stateOrBytes instanceof Uint8Array) {
890
- effectiveBalances = getEffectiveBalancesFromStateBytes(this.config, stateOrBytes, validatorIndices);
844
+ const effectiveBalanceIncrements = this.checkpointBalancesCache.get(finalizedCheckpoint);
845
+ if (effectiveBalanceIncrements) {
846
+ effectiveBalances = validatorIndices.map((index) => (effectiveBalanceIncrements[index] ?? 0) * EFFECTIVE_BALANCE_INCREMENT);
891
847
  }
892
848
  else {
893
- effectiveBalances = validatorIndices.map((index) => stateOrBytes.validators.get(index).effectiveBalance);
849
+ // If there's no cached effective balances, get the state from disk and parse them out
850
+ this.logger.debug("No cached finalized effective balances to update target custody group count", {
851
+ finalizedEpoch: finalizedCheckpoint.epoch,
852
+ finalizedRoot: finalizedCheckpoint.rootHex,
853
+ });
854
+ const stateOrBytes = (await this.getStateOrBytesByCheckpoint(finalizedCheckpoint))?.state;
855
+ if (!stateOrBytes) {
856
+ // If even the state is not available, we cannot update the custody group count
857
+ this.logger.debug("No finalized state or bytes available to update target custody group count", {
858
+ finalizedEpoch: finalizedCheckpoint.epoch,
859
+ finalizedRoot: finalizedCheckpoint.rootHex,
860
+ });
861
+ return;
862
+ }
863
+ if (stateOrBytes instanceof Uint8Array) {
864
+ effectiveBalances = getEffectiveBalancesFromStateBytes(this.config, stateOrBytes, validatorIndices);
865
+ }
866
+ else {
867
+ effectiveBalances = validatorIndices.map((index) => stateOrBytes.validators.get(index).effectiveBalance ?? 0);
868
+ }
894
869
  }
895
870
  const targetCustodyGroupCount = getValidatorsCustodyRequirement(this.config, effectiveBalances);
896
871
  // Only update if target is increased
@@ -912,7 +887,7 @@ export class BeaconChain {
912
887
  const slotsPresent = this.forkChoice.getSlotsPresent(clockSlot - faultInspectionWindow);
913
888
  const previousStatus = executionBuilder.status;
914
889
  const shouldEnable = slotsPresent >= Math.min(faultInspectionWindow - allowedFaults, clockSlot);
915
- executionBuilder.updateStatus(shouldEnable);
890
+ executionBuilder.updateStatus(shouldEnable ? BuilderStatus.enabled : BuilderStatus.circuitBreaker);
916
891
  // The status changed we should log
917
892
  const status = executionBuilder.status;
918
893
  const builderLog = {
@@ -922,10 +897,10 @@ export class BeaconChain {
922
897
  allowedFaults,
923
898
  };
924
899
  if (status !== previousStatus) {
925
- this.logger.info("Execution builder status updated", builderLog);
900
+ this.logger.info("External builder status updated", builderLog);
926
901
  }
927
902
  else {
928
- this.logger.verbose("Execution builder status", builderLog);
903
+ this.logger.verbose("External builder status", builderLog);
929
904
  }
930
905
  }
931
906
  }