@lodestar/beacon-node 1.51.0-dev.02c5a19f35 → 1.51.0-dev.09763aa8d2

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 (214) hide show
  1. package/lib/api/impl/api.js +1 -1
  2. package/lib/api/impl/api.js.map +1 -1
  3. package/lib/api/impl/beacon/blocks/index.d.ts +2 -1
  4. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  5. package/lib/api/impl/beacon/blocks/index.js +29 -34
  6. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  7. package/lib/api/impl/beacon/index.d.ts +2 -1
  8. package/lib/api/impl/beacon/index.d.ts.map +1 -1
  9. package/lib/api/impl/beacon/index.js +2 -2
  10. package/lib/api/impl/beacon/index.js.map +1 -1
  11. package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
  12. package/lib/api/impl/beacon/pool/index.js +5 -2
  13. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  14. package/lib/api/impl/beacon/state/utils.d.ts +1 -1
  15. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  16. package/lib/api/impl/validator/index.d.ts.map +1 -1
  17. package/lib/api/impl/validator/index.js +4 -1
  18. package/lib/api/impl/validator/index.js.map +1 -1
  19. package/lib/api/options.d.ts +2 -0
  20. package/lib/api/options.d.ts.map +1 -1
  21. package/lib/api/options.js +1 -0
  22. package/lib/api/options.js.map +1 -1
  23. package/lib/chain/GetBlobsTracker.d.ts +11 -0
  24. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  25. package/lib/chain/GetBlobsTracker.js +85 -27
  26. package/lib/chain/GetBlobsTracker.js.map +1 -1
  27. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  28. package/lib/chain/archiveStore/archiveStore.js +1 -0
  29. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  30. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +4 -0
  31. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  32. package/lib/chain/archiveStore/utils/archiveBlocks.js +61 -97
  33. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  34. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  35. package/lib/chain/blocks/importBlock.js +6 -5
  36. package/lib/chain/blocks/importBlock.js.map +1 -1
  37. package/lib/chain/blocks/importExecutionPayload.d.ts +4 -1
  38. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  39. package/lib/chain/blocks/importExecutionPayload.js +7 -2
  40. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  41. package/lib/chain/blocks/index.js +2 -2
  42. package/lib/chain/blocks/index.js.map +1 -1
  43. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts +5 -5
  44. package/lib/chain/blocks/payloadEnvelopeProcessor.js +7 -7
  45. package/lib/chain/blocks/payloadEnvelopeProcessor.js.map +1 -1
  46. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  47. package/lib/chain/blocks/verifyBlock.js +1 -1
  48. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  49. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +1 -1
  50. package/lib/chain/blocks/verifyBlocksDataAvailability.js +8 -1
  51. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  52. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts +3 -3
  53. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts.map +1 -1
  54. package/lib/chain/blocks/verifyPayloadsDataAvailability.js +13 -6
  55. package/lib/chain/blocks/verifyPayloadsDataAvailability.js.map +1 -1
  56. package/lib/chain/bls/multithread/index.js +5 -5
  57. package/lib/chain/bls/multithread/index.js.map +1 -1
  58. package/lib/chain/bls/multithread/types.d.ts +1 -1
  59. package/lib/chain/bls/multithread/types.d.ts.map +1 -1
  60. package/lib/chain/bls/multithread/worker.js +1 -1
  61. package/lib/chain/bls/multithread/worker.js.map +1 -1
  62. package/lib/chain/bls/singleThread.js +1 -1
  63. package/lib/chain/bls/singleThread.js.map +1 -1
  64. package/lib/chain/bls/utils.js +1 -1
  65. package/lib/chain/bls/utils.js.map +1 -1
  66. package/lib/chain/chain.d.ts +1 -1
  67. package/lib/chain/chain.d.ts.map +1 -1
  68. package/lib/chain/chain.js +4 -4
  69. package/lib/chain/chain.js.map +1 -1
  70. package/lib/chain/errors/blockError.d.ts +1 -1
  71. package/lib/chain/errors/blockError.d.ts.map +1 -1
  72. package/lib/chain/errors/blockError.js +1 -1
  73. package/lib/chain/errors/blockError.js.map +1 -1
  74. package/lib/chain/interface.d.ts +2 -3
  75. package/lib/chain/interface.d.ts.map +1 -1
  76. package/lib/chain/interface.js.map +1 -1
  77. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  78. package/lib/chain/opPools/aggregatedAttestationPool.js +1 -1
  79. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  80. package/lib/chain/opPools/attestationPool.d.ts +1 -1
  81. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  82. package/lib/chain/opPools/attestationPool.js +1 -1
  83. package/lib/chain/opPools/attestationPool.js.map +1 -1
  84. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -1
  85. package/lib/chain/opPools/payloadAttestationPool.js +1 -1
  86. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  87. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +1 -1
  88. package/lib/chain/opPools/syncCommitteeMessagePool.js +1 -1
  89. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  90. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +1 -1
  91. package/lib/chain/opPools/syncContributionAndProofPool.js +1 -1
  92. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  93. package/lib/chain/opPools/utils.d.ts +1 -1
  94. package/lib/chain/opPools/utils.d.ts.map +1 -1
  95. package/lib/chain/opPools/utils.js +1 -1
  96. package/lib/chain/opPools/utils.js.map +1 -1
  97. package/lib/chain/options.d.ts +0 -1
  98. package/lib/chain/options.d.ts.map +1 -1
  99. package/lib/chain/options.js +0 -1
  100. package/lib/chain/options.js.map +1 -1
  101. package/lib/chain/regen/interface.d.ts +0 -1
  102. package/lib/chain/regen/interface.d.ts.map +1 -1
  103. package/lib/chain/regen/interface.js +0 -1
  104. package/lib/chain/regen/interface.js.map +1 -1
  105. package/lib/chain/validation/executionPayloadBid.d.ts +0 -15
  106. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  107. package/lib/chain/validation/executionPayloadBid.js +0 -153
  108. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  109. package/lib/db/beacon.d.ts +7 -0
  110. package/lib/db/beacon.d.ts.map +1 -1
  111. package/lib/db/beacon.js +34 -0
  112. package/lib/db/beacon.js.map +1 -1
  113. package/lib/db/dataColumnStore.d.ts +1 -1
  114. package/lib/db/dataColumnStore.d.ts.map +1 -1
  115. package/lib/db/dataColumnStore.js +1 -4
  116. package/lib/db/dataColumnStore.js.map +1 -1
  117. package/lib/db/interface.d.ts +1 -0
  118. package/lib/db/interface.d.ts.map +1 -1
  119. package/lib/db/repositories/dataColumnSidecarArchive.d.ts +6 -0
  120. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  121. package/lib/db/repositories/dataColumnSidecarArchive.js +19 -0
  122. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  123. package/lib/execution/engine/index.d.ts +1 -1
  124. package/lib/execution/engine/index.d.ts.map +1 -1
  125. package/lib/execution/engine/index.js +1 -1
  126. package/lib/execution/engine/index.js.map +1 -1
  127. package/lib/execution/engine/interface.d.ts +1 -1
  128. package/lib/execution/engine/interface.d.ts.map +1 -1
  129. package/lib/execution/engine/interface.js.map +1 -1
  130. package/lib/execution/engine/types.d.ts.map +1 -1
  131. package/lib/execution/engine/types.js +2 -2
  132. package/lib/execution/engine/types.js.map +1 -1
  133. package/lib/index.d.ts +1 -0
  134. package/lib/index.d.ts.map +1 -1
  135. package/lib/index.js +2 -0
  136. package/lib/index.js.map +1 -1
  137. package/lib/metrics/metrics/lodestar.d.ts +3 -0
  138. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  139. package/lib/metrics/metrics/lodestar.js +5 -0
  140. package/lib/metrics/metrics/lodestar.js.map +1 -1
  141. package/lib/monitoring/service.js +1 -1
  142. package/lib/monitoring/service.js.map +1 -1
  143. package/lib/network/network.d.ts.map +1 -1
  144. package/lib/network/network.js +3 -1
  145. package/lib/network/network.js.map +1 -1
  146. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  147. package/lib/network/processor/gossipHandlers.js +10 -7
  148. package/lib/network/processor/gossipHandlers.js.map +1 -1
  149. package/lib/node/nodejs.d.ts +1 -1
  150. package/lib/node/nodejs.d.ts.map +1 -1
  151. package/lib/node/nodejs.js +10 -2
  152. package/lib/node/nodejs.js.map +1 -1
  153. package/lib/node/options.d.ts +1 -1
  154. package/lib/node/options.d.ts.map +1 -1
  155. package/lib/node/options.js +1 -1
  156. package/lib/node/options.js.map +1 -1
  157. package/lib/sync/interface.d.ts.map +1 -1
  158. package/lib/sync/interface.js.map +1 -1
  159. package/lib/util/queue/itemQueue.js +1 -1
  160. package/lib/util/queue/itemQueue.js.map +1 -1
  161. package/lib/util/sszBytes.js +2 -2
  162. package/lib/util/sszBytes.js.map +1 -1
  163. package/package.json +16 -16
  164. package/src/api/impl/api.ts +1 -1
  165. package/src/api/impl/beacon/blocks/index.ts +57 -62
  166. package/src/api/impl/beacon/index.ts +3 -1
  167. package/src/api/impl/beacon/pool/index.ts +5 -1
  168. package/src/api/impl/beacon/state/utils.ts +1 -1
  169. package/src/api/impl/validator/index.ts +4 -1
  170. package/src/api/options.ts +3 -0
  171. package/src/chain/GetBlobsTracker.ts +97 -38
  172. package/src/chain/archiveStore/archiveStore.ts +1 -0
  173. package/src/chain/archiveStore/utils/archiveBlocks.ts +76 -130
  174. package/src/chain/blocks/importBlock.ts +8 -7
  175. package/src/chain/blocks/importExecutionPayload.ts +12 -2
  176. package/src/chain/blocks/index.ts +6 -2
  177. package/src/chain/blocks/payloadEnvelopeProcessor.ts +7 -7
  178. package/src/chain/blocks/verifyBlock.ts +1 -0
  179. package/src/chain/blocks/verifyBlocksDataAvailability.ts +10 -1
  180. package/src/chain/blocks/verifyPayloadsDataAvailability.ts +16 -6
  181. package/src/chain/bls/multithread/index.ts +5 -5
  182. package/src/chain/bls/multithread/types.ts +1 -1
  183. package/src/chain/bls/multithread/worker.ts +1 -5
  184. package/src/chain/bls/singleThread.ts +1 -1
  185. package/src/chain/bls/utils.ts +1 -1
  186. package/src/chain/chain.ts +5 -5
  187. package/src/chain/errors/blockError.ts +1 -1
  188. package/src/chain/interface.ts +2 -3
  189. package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
  190. package/src/chain/opPools/attestationPool.ts +1 -1
  191. package/src/chain/opPools/payloadAttestationPool.ts +1 -1
  192. package/src/chain/opPools/syncCommitteeMessagePool.ts +1 -1
  193. package/src/chain/opPools/syncContributionAndProofPool.ts +1 -1
  194. package/src/chain/opPools/utils.ts +1 -1
  195. package/src/chain/options.ts +0 -2
  196. package/src/chain/regen/interface.ts +0 -1
  197. package/src/chain/validation/executionPayloadBid.ts +0 -180
  198. package/src/db/beacon.ts +44 -0
  199. package/src/db/dataColumnStore.ts +2 -4
  200. package/src/db/interface.ts +2 -0
  201. package/src/db/repositories/dataColumnSidecarArchive.ts +20 -0
  202. package/src/execution/engine/index.ts +1 -1
  203. package/src/execution/engine/interface.ts +1 -1
  204. package/src/execution/engine/types.ts +3 -1
  205. package/src/index.ts +2 -0
  206. package/src/metrics/metrics/lodestar.ts +5 -0
  207. package/src/monitoring/service.ts +1 -1
  208. package/src/network/network.ts +3 -1
  209. package/src/network/processor/gossipHandlers.ts +13 -6
  210. package/src/node/nodejs.ts +24 -7
  211. package/src/node/options.ts +4 -5
  212. package/src/sync/interface.ts +1 -0
  213. package/src/util/queue/itemQueue.ts +1 -1
  214. package/src/util/sszBytes.ts +2 -2
package/src/index.ts CHANGED
@@ -6,6 +6,8 @@ export {persistAnchorState} from "./chain/index.js";
6
6
  export {DbCPStateDatastore} from "./chain/stateCache/datastore/db.js";
7
7
  export {FileCPStateDatastore} from "./chain/stateCache/datastore/file.js";
8
8
  export {BeaconDb, type IBeaconDb} from "./db/index.js";
9
+ // Export execution engine to make it usable by builder
10
+ export {initializeExecutionEngine} from "./execution/index.js";
9
11
  // Export metrics utilities to de-duplicate validator metrics
10
12
  export {
11
13
  type HttpMetricsServer,
@@ -1474,6 +1474,11 @@ export function createLodestarMetrics(
1474
1474
  help: "Total number of InsertOutcome as a result of adding an execution payload bid from gossip to the pool",
1475
1475
  labelNames: ["insertOutcome"],
1476
1476
  }),
1477
+ apiInsertOutcome: register.counter<{insertOutcome: InsertOutcome}>({
1478
+ name: "lodestar_oppool_execution_payload_bid_pool_api_insert_outcome_total",
1479
+ help: "Total number of InsertOutcome as a result of adding an execution payload bid from api to the pool",
1480
+ labelNames: ["insertOutcome"],
1481
+ }),
1477
1482
  apiValidationTime: register.histogram({
1478
1483
  name: "lodestar_api_execution_payload_bid_validation_time_seconds",
1479
1484
  help: "Time elapsed for signed execution payload bid validation - api path",
@@ -101,7 +101,7 @@ export class MonitoringService {
101
101
  if (this.monitoringInterval) {
102
102
  clearTimeout(this.monitoringInterval);
103
103
  }
104
- if (this.pendingRequest) {
104
+ if (this.pendingRequest !== undefined) {
105
105
  this.fetchAbortController?.abort(FetchAbortReason.Close);
106
106
  await this.pendingRequest;
107
107
  }
@@ -855,7 +855,9 @@ export class Network implements INetwork {
855
855
  };
856
856
 
857
857
  private onTargetGroupCountUpdated = (count: number): void => {
858
- this.core.setTargetGroupCount(count);
858
+ this.core.setTargetGroupCount(count).catch((e) => {
859
+ this.logger.debug("Error setting target custody group count", {count}, e as Error);
860
+ });
859
861
  };
860
862
 
861
863
  private onPublishDataColumns = async (sidecars: DataColumnSidecar[]): Promise<void> => {
@@ -24,6 +24,7 @@ import {
24
24
  deneb,
25
25
  fulu,
26
26
  gloas,
27
+ isGloasBeaconBlock,
27
28
  isGloasDataColumnSidecar,
28
29
  ssz,
29
30
  sszTypesFor,
@@ -704,8 +705,6 @@ function getSequentialHandlers(modules: ValidatorFnsModules, options: GossipHand
704
705
 
705
706
  // Immediately attempt fetch of data columns from execution engine as the bid contains kzg commitments
706
707
  // which is all the information we need so there is no reason to delay until execution payload arrives
707
- // TODO GLOAS: If we want EL retries after this initial attempt, add an explicit retry policy here
708
- // (for example later in the slot). Do not couple retries to incoming gossip columns.
709
708
  // Columns fetched here feed payloadInput.addColumn, which resolves waitForAllData for any
710
709
  // in-flight importExecutionPayload. No processExecutionPayload trigger needed from this path.
711
710
  chain.getBlobsTracker.triggerGetBlobs(payloadInput);
@@ -717,11 +716,10 @@ function getSequentialHandlers(modules: ValidatorFnsModules, options: GossipHand
717
716
 
718
717
  if (e instanceof BlockError) {
719
718
  switch (e.type.code) {
720
- case BlockErrorCode.DATA_UNAVAILABLE: {
721
- // Error is quite frequent and not critical
719
+ case BlockErrorCode.DATA_UNAVAILABLE:
720
+ // Data did not arrive in time, BlockInputSync keeps pulling it and retries the import
722
721
  logLevel = LogLevel.debug;
723
722
  break;
724
- }
725
723
  // ALREADY_KNOWN should not happen with ignoreIfKnown=true above
726
724
  // PARENT_BLOCK_UNKNOWN should not happen, we handled this in validateBeaconBlock() function above
727
725
  case BlockErrorCode.ALREADY_KNOWN:
@@ -789,7 +787,12 @@ function getSequentialHandlers(modules: ValidatorFnsModules, options: GossipHand
789
787
  // roots per proposer and slot, which bounds full imports over gossip to one alternate
790
788
  chain.seenBlockProposers.hasBlockRoot(signedBlock.message.slot, e.type.proposerIndex, e.type.root) &&
791
789
  // A sibling with an unknown parent cannot be imported, sync fetches it if its branch becomes relevant
792
- chain.forkChoice.getBlockHexDefaultStatus(toRootHex(signedBlock.message.parentRoot)) !== null
790
+ chain.forkChoice.getBlockHexDefaultStatus(toRootHex(signedBlock.message.parentRoot)) !== null &&
791
+ (!isGloasBeaconBlock(signedBlock.message) ||
792
+ chain.forkChoice.getBlockHexAndBlockHash(
793
+ toRootHex(signedBlock.message.parentRoot),
794
+ toRootHex(signedBlock.message.body.signedExecutionPayloadBid.message.parentBlockHash)
795
+ ) !== null)
793
796
  ) {
794
797
  const blockInput = cacheSignatureVerifiedBlock(
795
798
  signedBlock,
@@ -1352,6 +1355,10 @@ function getSequentialHandlers(modules: ValidatorFnsModules, options: GossipHand
1352
1355
 
1353
1356
  if (e instanceof PayloadError) {
1354
1357
  switch (e.type.code) {
1358
+ case PayloadErrorCode.DATA_UNAVAILABLE:
1359
+ // Columns did not arrive in time, BlockInputSync keeps pulling them and retries the import
1360
+ logLevel = LogLevel.debug;
1361
+ break;
1355
1362
  // BLOCK_NOT_IN_FORK_CHOICE should not happen, validateGossipExecutionPayloadEnvelope above
1356
1363
  // already verified the block is in fork choice
1357
1364
  case PayloadErrorCode.BLOCK_NOT_IN_FORK_CHOICE:
@@ -1,23 +1,29 @@
1
1
  import {setMaxListeners} from "node:events";
2
2
  import {PrivateKey} from "@libp2p/interface";
3
3
  import {Registry} from "prom-client";
4
+ import {hasher} from "@chainsafe/persistent-merkle-tree";
5
+ import {BeaconApiMethods} from "@lodestar/api/beacon/server";
6
+ import {BeaconConfig} from "@lodestar/config";
7
+ import type {LoggerNode} from "@lodestar/logger/node";
4
8
  import {
5
9
  init as initNativeMetrics,
6
10
  registerLocalValidator as registerNativeLocalValidator,
7
11
  scrapeMetrics as scrapeNativeMetrics,
8
12
  unregisterLocalValidator as unregisterNativeLocalValidator,
9
- } from "@chainsafe/lodestar-z/metrics";
10
- import {type PubkeyCache} from "@chainsafe/lodestar-z/pubkeys";
11
- import {hasher} from "@chainsafe/persistent-merkle-tree";
12
- import {BeaconApiMethods} from "@lodestar/api/beacon/server";
13
- import {BeaconConfig} from "@lodestar/config";
14
- import type {LoggerNode} from "@lodestar/logger/node";
13
+ } from "@lodestar/native/metrics";
14
+ import {type PubkeyCache} from "@lodestar/native/pubkeys";
15
15
  import {ZERO_HASH_HEX} from "@lodestar/params";
16
- import {IBeaconStateView, isStatePostBellatrix, isStatePostGloas} from "@lodestar/state-transition";
16
+ import {
17
+ IBeaconStateView,
18
+ computeStartSlotAtEpoch,
19
+ isStatePostBellatrix,
20
+ isStatePostGloas,
21
+ } from "@lodestar/state-transition";
17
22
  import {Slot} from "@lodestar/types";
18
23
  import {sleep, toRootHex} from "@lodestar/utils";
19
24
  import {ProcessShutdownCallback} from "@lodestar/validator";
20
25
  import {BeaconRestApiServer, getApi} from "../api/index.js";
26
+ import {getDataColumnSidecarsMinEpoch} from "../chain/archiveStore/utils/archiveBlocks.js";
21
27
  import {BeaconChain, IBeaconChain, initBeaconMetrics} from "../chain/index.js";
22
28
  import {ValidatorMonitor, createValidatorMonitor} from "../chain/validatorMonitor.js";
23
29
  import {IBeaconDb} from "../db/index.js";
@@ -212,6 +218,17 @@ export class BeaconNode {
212
218
 
213
219
  const clock = new Clock({config, genesisTime: anchorState.genesisTime, signal});
214
220
 
221
+ // Before any lookup into the legacy column buckets, which can be slow until compacted
222
+ const columnsMinEpoch =
223
+ opts.chain.archiveDataEpochs === Infinity
224
+ ? null
225
+ : getDataColumnSidecarsMinEpoch(config, clock.currentEpoch, opts.chain.archiveDataEpochs);
226
+ await db.compactLegacyDataColumns(
227
+ columnsMinEpoch !== null && columnsMinEpoch >= config.FULU_FORK_EPOCH
228
+ ? computeStartSlotAtEpoch(columnsMinEpoch)
229
+ : 0
230
+ );
231
+
215
232
  await db.init();
216
233
 
217
234
  // Prune hot db repos
@@ -19,16 +19,15 @@ import {SyncOptions, defaultSyncOptions} from "../sync/options.js";
19
19
 
20
20
  // Re-export so the CLI doesn't need to depend on lodestar-api
21
21
  export {allNamespaces} from "../api/rest/index.js";
22
-
22
+ export type {EngineApiMode};
23
23
  // Re-export to use as default values in CLI args
24
24
  export {
25
- defaultExecutionEngineHttpOpts,
26
- defaultExecutionBuilderHttpOpts,
27
- engineApiModes,
28
25
  ArchiveMode,
29
26
  DEFAULT_ARCHIVE_MODE,
27
+ defaultExecutionBuilderHttpOpts,
28
+ defaultExecutionEngineHttpOpts,
29
+ engineApiModes,
30
30
  };
31
- export type {EngineApiMode};
32
31
 
33
32
  export interface IBeaconNodeOptions {
34
33
  api: ApiOptions;
@@ -7,6 +7,7 @@ import {IBeaconDb} from "../db/index.js";
7
7
  import {Metrics} from "../metrics/index.js";
8
8
  import {INetwork} from "../network/index.js";
9
9
  import {SyncChainDebugState} from "./range/chain.js";
10
+
10
11
  export type {SyncChainDebugState};
11
12
 
12
13
  export type SyncingStatus = routes.node.SyncingStatus;
@@ -69,7 +69,7 @@ export class JobItemQueue<Args extends any[], R> {
69
69
  if (this.jobs.length === 1 && this.opts.noYieldIfOneItem) {
70
70
  void this.runJob();
71
71
  } else if (this.runningJobs < this.opts.maxConcurrency) {
72
- callInNextEventLoop(this.runJob);
72
+ callInNextEventLoop(() => void this.runJob());
73
73
  }
74
74
  });
75
75
  }
@@ -854,7 +854,7 @@ export function getBlobKzgCommitmentsCountFromSignedBeaconBlockSerialized(
854
854
 
855
855
  const start = bidMsgStart + commitmentsRange.start;
856
856
  const end = bidMsgStart + commitmentsRange.end;
857
- return Math.round(((end > blockBytes.byteLength ? blockBytes.byteLength : end) - start) / commitmentSize);
857
+ return Math.round((Math.min(end, blockBytes.byteLength) - start) / commitmentSize);
858
858
  }
859
859
 
860
860
  const {SignedBeaconBlock, BeaconBlock, BeaconBlockBody, KZGCommitment} = ssz[forkName as ForkPostDeneb];
@@ -880,5 +880,5 @@ export function getBlobKzgCommitmentsCountFromSignedBeaconBlockSerialized(
880
880
  const end = messageRange.end + bodyRange.end + kzgCommitmentsRange.end;
881
881
  const start = messageRange.start + bodyRange.start + kzgCommitmentsRange.start;
882
882
 
883
- return Math.round(((end > blockBytes.byteLength ? blockBytes.byteLength : end) - start) / commitmentSize);
883
+ return Math.round((Math.min(end, blockBytes.byteLength) - start) / commitmentSize);
884
884
  }