@lodestar/beacon-node 1.41.0-dev.253ed58dd1 → 1.41.0-dev.274a9918a8

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 (881) hide show
  1. package/lib/api/impl/api.js.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.d.ts +1 -1
  3. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  4. package/lib/api/impl/beacon/blocks/index.js +12 -2
  5. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  6. package/lib/api/impl/beacon/blocks/utils.js.map +1 -1
  7. package/lib/api/impl/beacon/index.js.map +1 -1
  8. package/lib/api/impl/beacon/pool/index.d.ts +1 -1
  9. package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
  10. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  11. package/lib/api/impl/beacon/rewards/index.d.ts +1 -1
  12. package/lib/api/impl/beacon/rewards/index.d.ts.map +1 -1
  13. package/lib/api/impl/beacon/rewards/index.js.map +1 -1
  14. package/lib/api/impl/beacon/state/index.d.ts +1 -1
  15. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  16. package/lib/api/impl/beacon/state/index.js +8 -8
  17. package/lib/api/impl/beacon/state/index.js.map +1 -1
  18. package/lib/api/impl/beacon/state/utils.d.ts +5 -6
  19. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  20. package/lib/api/impl/beacon/state/utils.js +5 -24
  21. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  22. package/lib/api/impl/config/constants.js.map +1 -1
  23. package/lib/api/impl/config/index.js.map +1 -1
  24. package/lib/api/impl/debug/index.d.ts +1 -1
  25. package/lib/api/impl/debug/index.d.ts.map +1 -1
  26. package/lib/api/impl/debug/index.js +1 -0
  27. package/lib/api/impl/debug/index.js.map +1 -1
  28. package/lib/api/impl/errors.d.ts.map +1 -1
  29. package/lib/api/impl/errors.js.map +1 -1
  30. package/lib/api/impl/events/index.d.ts +1 -1
  31. package/lib/api/impl/events/index.d.ts.map +1 -1
  32. package/lib/api/impl/events/index.js.map +1 -1
  33. package/lib/api/impl/lightclient/index.d.ts +1 -1
  34. package/lib/api/impl/lightclient/index.d.ts.map +1 -1
  35. package/lib/api/impl/lightclient/index.js.map +1 -1
  36. package/lib/api/impl/lodestar/index.d.ts +1 -1
  37. package/lib/api/impl/lodestar/index.d.ts.map +1 -1
  38. package/lib/api/impl/lodestar/index.js.map +1 -1
  39. package/lib/api/impl/node/index.js.map +1 -1
  40. package/lib/api/impl/node/utils.d.ts +1 -1
  41. package/lib/api/impl/node/utils.d.ts.map +1 -1
  42. package/lib/api/impl/node/utils.js.map +1 -1
  43. package/lib/api/impl/proof/index.js.map +1 -1
  44. package/lib/api/impl/utils.js.map +1 -1
  45. package/lib/api/impl/validator/index.d.ts.map +1 -1
  46. package/lib/api/impl/validator/index.js +38 -18
  47. package/lib/api/impl/validator/index.js.map +1 -1
  48. package/lib/api/impl/validator/utils.d.ts +1 -1
  49. package/lib/api/impl/validator/utils.d.ts.map +1 -1
  50. package/lib/api/impl/validator/utils.js.map +1 -1
  51. package/lib/api/rest/activeSockets.d.ts.map +1 -1
  52. package/lib/api/rest/activeSockets.js.map +1 -1
  53. package/lib/api/rest/base.d.ts.map +1 -1
  54. package/lib/api/rest/base.js.map +1 -1
  55. package/lib/api/rest/index.d.ts.map +1 -1
  56. package/lib/api/rest/index.js.map +1 -1
  57. package/lib/api/rest/swaggerUI.js.map +1 -1
  58. package/lib/bun-wrappers/prometheus-gc-stats.js.map +1 -1
  59. package/lib/chain/ColumnReconstructionTracker.d.ts.map +1 -1
  60. package/lib/chain/ColumnReconstructionTracker.js.map +1 -1
  61. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  62. package/lib/chain/GetBlobsTracker.js.map +1 -1
  63. package/lib/chain/archiveStore/archiveStore.d.ts +0 -1
  64. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  65. package/lib/chain/archiveStore/archiveStore.js +2 -10
  66. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  67. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts +5 -6
  68. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +1 -1
  69. package/lib/chain/archiveStore/historicalState/getHistoricalState.js +9 -10
  70. package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
  71. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts.map +1 -1
  72. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  73. package/lib/chain/archiveStore/historicalState/metrics.js.map +1 -1
  74. package/lib/chain/archiveStore/historicalState/types.js +2 -1
  75. package/lib/chain/archiveStore/historicalState/types.js.map +1 -1
  76. package/lib/chain/archiveStore/historicalState/worker.js +3 -3
  77. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  78. package/lib/chain/archiveStore/interface.d.ts +4 -4
  79. package/lib/chain/archiveStore/interface.d.ts.map +1 -1
  80. package/lib/chain/archiveStore/interface.js +2 -1
  81. package/lib/chain/archiveStore/interface.js.map +1 -1
  82. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts +5 -5
  83. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +1 -1
  84. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +6 -2
  85. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
  86. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +3 -8
  87. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  88. package/lib/chain/archiveStore/utils/archiveBlocks.js +39 -1
  89. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  90. package/lib/chain/archiveStore/utils/pruneHistory.js.map +1 -1
  91. package/lib/chain/archiveStore/utils/updateBackfillRange.js +1 -1
  92. package/lib/chain/archiveStore/utils/updateBackfillRange.js.map +1 -1
  93. package/lib/chain/balancesCache.d.ts.map +1 -1
  94. package/lib/chain/balancesCache.js.map +1 -1
  95. package/lib/chain/beaconProposerCache.d.ts.map +1 -1
  96. package/lib/chain/beaconProposerCache.js.map +1 -1
  97. package/lib/chain/blocks/blockInput/blockInput.d.ts +25 -2
  98. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  99. package/lib/chain/blocks/blockInput/blockInput.js +71 -0
  100. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  101. package/lib/chain/blocks/blockInput/errors.js +2 -1
  102. package/lib/chain/blocks/blockInput/errors.js.map +1 -1
  103. package/lib/chain/blocks/blockInput/types.d.ts +18 -1
  104. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  105. package/lib/chain/blocks/blockInput/types.js +5 -2
  106. package/lib/chain/blocks/blockInput/types.js.map +1 -1
  107. package/lib/chain/blocks/blockInput/utils.js.map +1 -1
  108. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  109. package/lib/chain/blocks/importBlock.js +39 -12
  110. package/lib/chain/blocks/importBlock.js.map +1 -1
  111. package/lib/chain/blocks/index.d.ts.map +1 -1
  112. package/lib/chain/blocks/index.js.map +1 -1
  113. package/lib/chain/blocks/types.js +6 -3
  114. package/lib/chain/blocks/types.js.map +1 -1
  115. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  116. package/lib/chain/blocks/utils/checkpoint.js.map +1 -1
  117. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  118. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +1 -1
  119. package/lib/chain/blocks/verifyBlocksDataAvailability.js +3 -0
  120. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  121. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +4 -0
  122. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  123. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +5 -1
  124. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  125. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +1 -1
  126. package/lib/chain/blocks/verifyBlocksSanityChecks.js +4 -1
  127. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  128. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  129. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  130. package/lib/chain/blocks/writeBlockInputToDb.d.ts +12 -3
  131. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  132. package/lib/chain/blocks/writeBlockInputToDb.js +92 -98
  133. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  134. package/lib/chain/bls/maybeBatch.js.map +1 -1
  135. package/lib/chain/bls/multithread/index.d.ts +3 -3
  136. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  137. package/lib/chain/bls/multithread/index.js +5 -5
  138. package/lib/chain/bls/multithread/index.js.map +1 -1
  139. package/lib/chain/bls/multithread/jobItem.d.ts +2 -2
  140. package/lib/chain/bls/multithread/jobItem.d.ts.map +1 -1
  141. package/lib/chain/bls/multithread/jobItem.js +4 -3
  142. package/lib/chain/bls/multithread/jobItem.js.map +1 -1
  143. package/lib/chain/bls/multithread/types.js +2 -1
  144. package/lib/chain/bls/multithread/types.js.map +1 -1
  145. package/lib/chain/bls/multithread/utils.js.map +1 -1
  146. package/lib/chain/bls/multithread/worker.js.map +1 -1
  147. package/lib/chain/bls/singleThread.d.ts +4 -4
  148. package/lib/chain/bls/singleThread.d.ts.map +1 -1
  149. package/lib/chain/bls/singleThread.js +4 -4
  150. package/lib/chain/bls/singleThread.js.map +1 -1
  151. package/lib/chain/bls/utils.d.ts +2 -2
  152. package/lib/chain/bls/utils.d.ts.map +1 -1
  153. package/lib/chain/bls/utils.js +7 -4
  154. package/lib/chain/bls/utils.js.map +1 -1
  155. package/lib/chain/chain.d.ts +10 -13
  156. package/lib/chain/chain.d.ts.map +1 -1
  157. package/lib/chain/chain.js +40 -30
  158. package/lib/chain/chain.js.map +1 -1
  159. package/lib/chain/emitter.d.ts +4 -6
  160. package/lib/chain/emitter.d.ts.map +1 -1
  161. package/lib/chain/emitter.js +2 -1
  162. package/lib/chain/emitter.js.map +1 -1
  163. package/lib/chain/errors/attestationError.d.ts.map +1 -1
  164. package/lib/chain/errors/attestationError.js +2 -1
  165. package/lib/chain/errors/attestationError.js.map +1 -1
  166. package/lib/chain/errors/attesterSlashingError.js +2 -1
  167. package/lib/chain/errors/attesterSlashingError.js.map +1 -1
  168. package/lib/chain/errors/blobSidecarError.js +2 -1
  169. package/lib/chain/errors/blobSidecarError.js.map +1 -1
  170. package/lib/chain/errors/blockError.d.ts.map +1 -1
  171. package/lib/chain/errors/blockError.js +2 -1
  172. package/lib/chain/errors/blockError.js.map +1 -1
  173. package/lib/chain/errors/blsToExecutionChangeError.js +2 -1
  174. package/lib/chain/errors/blsToExecutionChangeError.js.map +1 -1
  175. package/lib/chain/errors/dataColumnSidecarError.js +2 -1
  176. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
  177. package/lib/chain/errors/executionPayloadBid.d.ts +1 -1
  178. package/lib/chain/errors/executionPayloadBid.js +2 -1
  179. package/lib/chain/errors/executionPayloadBid.js.map +1 -1
  180. package/lib/chain/errors/executionPayloadEnvelope.d.ts +2 -2
  181. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  182. package/lib/chain/errors/executionPayloadEnvelope.js +2 -1
  183. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  184. package/lib/chain/errors/gossipValidation.d.ts.map +1 -1
  185. package/lib/chain/errors/gossipValidation.js +4 -2
  186. package/lib/chain/errors/gossipValidation.js.map +1 -1
  187. package/lib/chain/errors/lightClientError.js +4 -2
  188. package/lib/chain/errors/lightClientError.js.map +1 -1
  189. package/lib/chain/errors/payloadAttestation.d.ts +1 -1
  190. package/lib/chain/errors/payloadAttestation.js +2 -1
  191. package/lib/chain/errors/payloadAttestation.js.map +1 -1
  192. package/lib/chain/errors/proposerSlashingError.js +2 -1
  193. package/lib/chain/errors/proposerSlashingError.js.map +1 -1
  194. package/lib/chain/errors/syncCommitteeError.js +2 -1
  195. package/lib/chain/errors/syncCommitteeError.js.map +1 -1
  196. package/lib/chain/errors/voluntaryExitError.js +2 -1
  197. package/lib/chain/errors/voluntaryExitError.js.map +1 -1
  198. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  199. package/lib/chain/forkChoice/index.js +32 -25
  200. package/lib/chain/forkChoice/index.js.map +1 -1
  201. package/lib/chain/initState.d.ts +1 -1
  202. package/lib/chain/initState.d.ts.map +1 -1
  203. package/lib/chain/initState.js.map +1 -1
  204. package/lib/chain/interface.d.ts +4 -6
  205. package/lib/chain/interface.d.ts.map +1 -1
  206. package/lib/chain/interface.js +2 -1
  207. package/lib/chain/interface.js.map +1 -1
  208. package/lib/chain/lightClient/index.d.ts +0 -29
  209. package/lib/chain/lightClient/index.d.ts.map +1 -1
  210. package/lib/chain/lightClient/index.js.map +1 -1
  211. package/lib/chain/lightClient/proofs.js.map +1 -1
  212. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  213. package/lib/chain/opPools/aggregatedAttestationPool.js +5 -3
  214. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  215. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  216. package/lib/chain/opPools/attestationPool.js.map +1 -1
  217. package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -1
  218. package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -1
  219. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  220. package/lib/chain/opPools/opPool.js.map +1 -1
  221. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -1
  222. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  223. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +1 -1
  224. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  225. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +1 -1
  226. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  227. package/lib/chain/opPools/types.js +4 -2
  228. package/lib/chain/opPools/types.js.map +1 -1
  229. package/lib/chain/opPools/utils.js.map +1 -1
  230. package/lib/chain/prepareNextSlot.d.ts +1 -2
  231. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  232. package/lib/chain/prepareNextSlot.js +6 -2
  233. package/lib/chain/prepareNextSlot.js.map +1 -1
  234. package/lib/chain/produceBlock/computeNewStateRoot.d.ts +0 -1
  235. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  236. package/lib/chain/produceBlock/computeNewStateRoot.js +4 -3
  237. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  238. package/lib/chain/produceBlock/produceBlockBody.d.ts +1 -1
  239. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  240. package/lib/chain/produceBlock/produceBlockBody.js +24 -7
  241. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  242. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
  243. package/lib/chain/regen/errors.d.ts +11 -1
  244. package/lib/chain/regen/errors.d.ts.map +1 -1
  245. package/lib/chain/regen/errors.js +4 -1
  246. package/lib/chain/regen/errors.js.map +1 -1
  247. package/lib/chain/regen/interface.d.ts +12 -6
  248. package/lib/chain/regen/interface.d.ts.map +1 -1
  249. package/lib/chain/regen/interface.js +4 -2
  250. package/lib/chain/regen/interface.js.map +1 -1
  251. package/lib/chain/regen/queued.d.ts +11 -6
  252. package/lib/chain/regen/queued.d.ts.map +1 -1
  253. package/lib/chain/regen/queued.js +44 -9
  254. package/lib/chain/regen/queued.js.map +1 -1
  255. package/lib/chain/regen/regen.d.ts +5 -0
  256. package/lib/chain/regen/regen.d.ts.map +1 -1
  257. package/lib/chain/regen/regen.js +39 -8
  258. package/lib/chain/regen/regen.js.map +1 -1
  259. package/lib/chain/reprocess.d.ts.map +1 -1
  260. package/lib/chain/reprocess.js +2 -1
  261. package/lib/chain/reprocess.js.map +1 -1
  262. package/lib/chain/seenCache/seenAggregateAndProof.d.ts.map +1 -1
  263. package/lib/chain/seenCache/seenAggregateAndProof.js.map +1 -1
  264. package/lib/chain/seenCache/seenAttestationData.d.ts.map +1 -1
  265. package/lib/chain/seenCache/seenAttestationData.js +2 -1
  266. package/lib/chain/seenCache/seenAttestationData.js.map +1 -1
  267. package/lib/chain/seenCache/seenAttesters.d.ts.map +1 -1
  268. package/lib/chain/seenCache/seenAttesters.js.map +1 -1
  269. package/lib/chain/seenCache/seenBlockAttesters.d.ts.map +1 -1
  270. package/lib/chain/seenCache/seenBlockAttesters.js.map +1 -1
  271. package/lib/chain/seenCache/seenBlockProposers.d.ts.map +1 -1
  272. package/lib/chain/seenCache/seenBlockProposers.js.map +1 -1
  273. package/lib/chain/seenCache/seenCommittee.d.ts.map +1 -1
  274. package/lib/chain/seenCache/seenCommittee.js.map +1 -1
  275. package/lib/chain/seenCache/seenCommitteeContribution.d.ts.map +1 -1
  276. package/lib/chain/seenCache/seenCommitteeContribution.js.map +1 -1
  277. package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts.map +1 -1
  278. package/lib/chain/seenCache/seenExecutionPayloadBids.js.map +1 -1
  279. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts.map +1 -1
  280. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js.map +1 -1
  281. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +7 -3
  282. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  283. package/lib/chain/seenCache/seenGossipBlockInput.js +38 -16
  284. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  285. package/lib/chain/serializeState.js +1 -0
  286. package/lib/chain/serializeState.js.map +1 -1
  287. package/lib/chain/shufflingCache.d.ts.map +1 -1
  288. package/lib/chain/shufflingCache.js +2 -1
  289. package/lib/chain/shufflingCache.js.map +1 -1
  290. package/lib/chain/stateCache/datastore/db.d.ts +4 -5
  291. package/lib/chain/stateCache/datastore/db.d.ts.map +1 -1
  292. package/lib/chain/stateCache/datastore/db.js +32 -10
  293. package/lib/chain/stateCache/datastore/db.js.map +1 -1
  294. package/lib/chain/stateCache/datastore/file.d.ts +1 -1
  295. package/lib/chain/stateCache/datastore/file.d.ts.map +1 -1
  296. package/lib/chain/stateCache/datastore/file.js +5 -5
  297. package/lib/chain/stateCache/datastore/file.js.map +1 -1
  298. package/lib/chain/stateCache/datastore/types.d.ts +1 -1
  299. package/lib/chain/stateCache/datastore/types.d.ts.map +1 -1
  300. package/lib/chain/stateCache/fifoBlockStateCache.d.ts +7 -4
  301. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
  302. package/lib/chain/stateCache/fifoBlockStateCache.js +8 -3
  303. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  304. package/lib/chain/stateCache/mapMetrics.d.ts.map +1 -1
  305. package/lib/chain/stateCache/mapMetrics.js.map +1 -1
  306. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +34 -55
  307. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  308. package/lib/chain/stateCache/persistentCheckpointsCache.js +217 -119
  309. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  310. package/lib/chain/stateCache/types.d.ts +15 -8
  311. package/lib/chain/stateCache/types.d.ts.map +1 -1
  312. package/lib/chain/stateCache/types.js +2 -1
  313. package/lib/chain/stateCache/types.js.map +1 -1
  314. package/lib/chain/validation/aggregateAndProof.js +1 -1
  315. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  316. package/lib/chain/validation/attestation.d.ts.map +1 -1
  317. package/lib/chain/validation/attestation.js +14 -7
  318. package/lib/chain/validation/attestation.js.map +1 -1
  319. package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
  320. package/lib/chain/validation/attesterSlashing.js +9 -2
  321. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  322. package/lib/chain/validation/blobSidecar.js +2 -2
  323. package/lib/chain/validation/blobSidecar.js.map +1 -1
  324. package/lib/chain/validation/block.d.ts.map +1 -1
  325. package/lib/chain/validation/block.js +6 -3
  326. package/lib/chain/validation/block.js.map +1 -1
  327. package/lib/chain/validation/blsToExecutionChange.js.map +1 -1
  328. package/lib/chain/validation/dataColumnSidecar.d.ts +2 -1
  329. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  330. package/lib/chain/validation/dataColumnSidecar.js +125 -108
  331. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  332. package/lib/chain/validation/executionPayloadBid.js +1 -2
  333. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  334. package/lib/chain/validation/executionPayloadEnvelope.js +4 -4
  335. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  336. package/lib/chain/validation/lightClientFinalityUpdate.js.map +1 -1
  337. package/lib/chain/validation/lightClientOptimisticUpdate.js.map +1 -1
  338. package/lib/chain/validation/payloadAttestationMessage.js +9 -3
  339. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  340. package/lib/chain/validation/proposerSlashing.js +1 -1
  341. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  342. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  343. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  344. package/lib/chain/validation/signatureSets/selectionProof.js.map +1 -1
  345. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  346. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  347. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  348. package/lib/chain/validation/syncCommittee.js.map +1 -1
  349. package/lib/chain/validation/syncCommitteeContributionAndProof.js +1 -1
  350. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  351. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  352. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  353. package/lib/chain/validatorMonitor.js +2 -1
  354. package/lib/chain/validatorMonitor.js.map +1 -1
  355. package/lib/constants/network.js +4 -2
  356. package/lib/constants/network.js.map +1 -1
  357. package/lib/db/beacon.d.ts.map +1 -1
  358. package/lib/db/beacon.js.map +1 -1
  359. package/lib/db/buckets.d.ts +23 -23
  360. package/lib/db/buckets.d.ts.map +1 -1
  361. package/lib/db/buckets.js +2 -1
  362. package/lib/db/buckets.js.map +1 -1
  363. package/lib/db/index.d.ts +1 -0
  364. package/lib/db/index.d.ts.map +1 -1
  365. package/lib/db/index.js +1 -0
  366. package/lib/db/index.js.map +1 -1
  367. package/lib/db/repositories/attesterSlashing.d.ts.map +1 -1
  368. package/lib/db/repositories/attesterSlashing.js.map +1 -1
  369. package/lib/db/repositories/backfilledRanges.d.ts.map +1 -1
  370. package/lib/db/repositories/backfilledRanges.js.map +1 -1
  371. package/lib/db/repositories/blobSidecars.d.ts.map +1 -1
  372. package/lib/db/repositories/blobSidecars.js.map +1 -1
  373. package/lib/db/repositories/blobSidecarsArchive.d.ts.map +1 -1
  374. package/lib/db/repositories/blobSidecarsArchive.js.map +1 -1
  375. package/lib/db/repositories/block.d.ts.map +1 -1
  376. package/lib/db/repositories/block.js.map +1 -1
  377. package/lib/db/repositories/blockArchive.d.ts.map +1 -1
  378. package/lib/db/repositories/blockArchive.js +1 -2
  379. package/lib/db/repositories/blockArchive.js.map +1 -1
  380. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  381. package/lib/db/repositories/blockArchiveIndex.js.map +1 -1
  382. package/lib/db/repositories/blsToExecutionChange.d.ts.map +1 -1
  383. package/lib/db/repositories/blsToExecutionChange.js.map +1 -1
  384. package/lib/db/repositories/checkpointState.d.ts.map +1 -1
  385. package/lib/db/repositories/checkpointState.js.map +1 -1
  386. package/lib/db/repositories/dataColumnSidecar.d.ts.map +1 -1
  387. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  388. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  389. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  390. package/lib/db/repositories/executionPayloadEnvelope.d.ts.map +1 -1
  391. package/lib/db/repositories/executionPayloadEnvelope.js.map +1 -1
  392. package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts.map +1 -1
  393. package/lib/db/repositories/executionPayloadEnvelopeArchive.js.map +1 -1
  394. package/lib/db/repositories/lightclientBestUpdate.d.ts.map +1 -1
  395. package/lib/db/repositories/lightclientBestUpdate.js.map +1 -1
  396. package/lib/db/repositories/lightclientCheckpointHeader.d.ts.map +1 -1
  397. package/lib/db/repositories/lightclientCheckpointHeader.js.map +1 -1
  398. package/lib/db/repositories/lightclientSyncCommittee.d.ts.map +1 -1
  399. package/lib/db/repositories/lightclientSyncCommittee.js.map +1 -1
  400. package/lib/db/repositories/lightclientSyncCommitteeWitness.d.ts.map +1 -1
  401. package/lib/db/repositories/lightclientSyncCommitteeWitness.js.map +1 -1
  402. package/lib/db/repositories/proposerSlashing.d.ts.map +1 -1
  403. package/lib/db/repositories/proposerSlashing.js.map +1 -1
  404. package/lib/db/repositories/stateArchive.d.ts.map +1 -1
  405. package/lib/db/repositories/stateArchive.js.map +1 -1
  406. package/lib/db/repositories/stateArchiveIndex.js.map +1 -1
  407. package/lib/db/repositories/voluntaryExit.d.ts.map +1 -1
  408. package/lib/db/repositories/voluntaryExit.js.map +1 -1
  409. package/lib/execution/builder/cache.d.ts.map +1 -1
  410. package/lib/execution/builder/cache.js.map +1 -1
  411. package/lib/execution/builder/http.d.ts.map +1 -1
  412. package/lib/execution/builder/http.js +2 -1
  413. package/lib/execution/builder/http.js.map +1 -1
  414. package/lib/execution/builder/index.js.map +1 -1
  415. package/lib/execution/builder/utils.js.map +1 -1
  416. package/lib/execution/engine/disabled.d.ts.map +1 -1
  417. package/lib/execution/engine/disabled.js.map +1 -1
  418. package/lib/execution/engine/http.d.ts +1 -0
  419. package/lib/execution/engine/http.d.ts.map +1 -1
  420. package/lib/execution/engine/http.js +3 -0
  421. package/lib/execution/engine/http.js.map +1 -1
  422. package/lib/execution/engine/index.js.map +1 -1
  423. package/lib/execution/engine/interface.js +4 -2
  424. package/lib/execution/engine/interface.js.map +1 -1
  425. package/lib/execution/engine/jsonRpcHttpClient.d.ts +10 -15
  426. package/lib/execution/engine/jsonRpcHttpClient.d.ts.map +1 -1
  427. package/lib/execution/engine/jsonRpcHttpClient.js +2 -1
  428. package/lib/execution/engine/jsonRpcHttpClient.js.map +1 -1
  429. package/lib/execution/engine/jwt.js.map +1 -1
  430. package/lib/execution/engine/mock.d.ts.map +1 -1
  431. package/lib/execution/engine/mock.js.map +1 -1
  432. package/lib/execution/engine/payloadIdCache.d.ts.map +1 -1
  433. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  434. package/lib/execution/engine/types.js.map +1 -1
  435. package/lib/execution/engine/utils.d.ts +1 -1
  436. package/lib/execution/engine/utils.d.ts.map +1 -1
  437. package/lib/execution/engine/utils.js.map +1 -1
  438. package/lib/metrics/metrics/beacon.d.ts +2 -1
  439. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  440. package/lib/metrics/metrics/beacon.js +9 -3
  441. package/lib/metrics/metrics/beacon.js.map +1 -1
  442. package/lib/metrics/metrics/lodestar.d.ts +16 -11
  443. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  444. package/lib/metrics/metrics/lodestar.js +39 -24
  445. package/lib/metrics/metrics/lodestar.js.map +1 -1
  446. package/lib/metrics/metrics.js.map +1 -1
  447. package/lib/metrics/nodeJsMetrics.js.map +1 -1
  448. package/lib/metrics/server/http.d.ts +1 -1
  449. package/lib/metrics/server/http.d.ts.map +1 -1
  450. package/lib/metrics/server/http.js.map +1 -1
  451. package/lib/metrics/utils/avgMinMax.d.ts.map +1 -1
  452. package/lib/metrics/utils/avgMinMax.js.map +1 -1
  453. package/lib/metrics/utils/gauge.d.ts.map +1 -1
  454. package/lib/metrics/utils/gauge.js.map +1 -1
  455. package/lib/metrics/utils/registryMetricCreator.d.ts.map +1 -1
  456. package/lib/metrics/utils/registryMetricCreator.js.map +1 -1
  457. package/lib/monitoring/clientStats.js.map +1 -1
  458. package/lib/monitoring/properties.d.ts.map +1 -1
  459. package/lib/monitoring/properties.js.map +1 -1
  460. package/lib/monitoring/service.d.ts +2 -2
  461. package/lib/monitoring/service.d.ts.map +1 -1
  462. package/lib/monitoring/service.js +3 -2
  463. package/lib/monitoring/service.js.map +1 -1
  464. package/lib/monitoring/system.d.ts.map +1 -1
  465. package/lib/monitoring/system.js.map +1 -1
  466. package/lib/monitoring/types.js +4 -2
  467. package/lib/monitoring/types.js.map +1 -1
  468. package/lib/network/core/events.d.ts +1 -3
  469. package/lib/network/core/events.d.ts.map +1 -1
  470. package/lib/network/core/events.js +4 -2
  471. package/lib/network/core/events.js.map +1 -1
  472. package/lib/network/core/metrics.d.ts +6 -7
  473. package/lib/network/core/metrics.d.ts.map +1 -1
  474. package/lib/network/core/metrics.js.map +1 -1
  475. package/lib/network/core/networkCore.d.ts +4 -4
  476. package/lib/network/core/networkCore.d.ts.map +1 -1
  477. package/lib/network/core/networkCore.js.map +1 -1
  478. package/lib/network/core/networkCoreWorker.js.map +1 -1
  479. package/lib/network/core/networkCoreWorkerHandler.d.ts +3 -3
  480. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +1 -1
  481. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  482. package/lib/network/core/types.d.ts +2 -2
  483. package/lib/network/core/types.d.ts.map +1 -1
  484. package/lib/network/discv5/index.d.ts +1 -3
  485. package/lib/network/discv5/index.d.ts.map +1 -1
  486. package/lib/network/discv5/index.js.map +1 -1
  487. package/lib/network/discv5/utils.d.ts +1 -1
  488. package/lib/network/discv5/utils.d.ts.map +1 -1
  489. package/lib/network/discv5/utils.js +7 -5
  490. package/lib/network/discv5/utils.js.map +1 -1
  491. package/lib/network/discv5/worker.js.map +1 -1
  492. package/lib/network/events.d.ts +3 -4
  493. package/lib/network/events.d.ts.map +1 -1
  494. package/lib/network/events.js +4 -2
  495. package/lib/network/events.js.map +1 -1
  496. package/lib/network/forks.js.map +1 -1
  497. package/lib/network/gossip/encoding.d.ts +3 -3
  498. package/lib/network/gossip/encoding.d.ts.map +1 -1
  499. package/lib/network/gossip/encoding.js.map +1 -1
  500. package/lib/network/gossip/errors.d.ts.map +1 -1
  501. package/lib/network/gossip/errors.js.map +1 -1
  502. package/lib/network/gossip/gossipsub.d.ts +13 -4
  503. package/lib/network/gossip/gossipsub.d.ts.map +1 -1
  504. package/lib/network/gossip/gossipsub.js +56 -26
  505. package/lib/network/gossip/gossipsub.js.map +1 -1
  506. package/lib/network/gossip/interface.d.ts +3 -3
  507. package/lib/network/gossip/interface.d.ts.map +1 -1
  508. package/lib/network/gossip/interface.js +4 -2
  509. package/lib/network/gossip/interface.js.map +1 -1
  510. package/lib/network/gossip/metrics.d.ts +12 -14
  511. package/lib/network/gossip/metrics.d.ts.map +1 -1
  512. package/lib/network/gossip/metrics.js.map +1 -1
  513. package/lib/network/gossip/scoringParameters.d.ts +2 -2
  514. package/lib/network/gossip/scoringParameters.d.ts.map +1 -1
  515. package/lib/network/gossip/scoringParameters.js +1 -1
  516. package/lib/network/gossip/scoringParameters.js.map +1 -1
  517. package/lib/network/gossip/topic.d.ts +2867 -2920
  518. package/lib/network/gossip/topic.d.ts.map +1 -1
  519. package/lib/network/gossip/topic.js.map +1 -1
  520. package/lib/network/interface.d.ts +3 -3
  521. package/lib/network/interface.d.ts.map +1 -1
  522. package/lib/network/libp2p/error.js +2 -1
  523. package/lib/network/libp2p/error.js.map +1 -1
  524. package/lib/network/libp2p/index.d.ts +2 -2
  525. package/lib/network/libp2p/index.d.ts.map +1 -1
  526. package/lib/network/libp2p/index.js +42 -19
  527. package/lib/network/libp2p/index.js.map +1 -1
  528. package/lib/network/metadata.d.ts +1 -0
  529. package/lib/network/metadata.d.ts.map +1 -1
  530. package/lib/network/metadata.js +5 -2
  531. package/lib/network/metadata.js.map +1 -1
  532. package/lib/network/network.d.ts +3 -3
  533. package/lib/network/network.d.ts.map +1 -1
  534. package/lib/network/network.js +1 -1
  535. package/lib/network/network.js.map +1 -1
  536. package/lib/network/options.d.ts +2 -0
  537. package/lib/network/options.d.ts.map +1 -1
  538. package/lib/network/options.js +6 -0
  539. package/lib/network/options.js.map +1 -1
  540. package/lib/network/peers/client.js +2 -1
  541. package/lib/network/peers/client.js.map +1 -1
  542. package/lib/network/peers/datastore.d.ts +7 -8
  543. package/lib/network/peers/datastore.d.ts.map +1 -1
  544. package/lib/network/peers/datastore.js +10 -10
  545. package/lib/network/peers/datastore.js.map +1 -1
  546. package/lib/network/peers/discover.d.ts +2 -7
  547. package/lib/network/peers/discover.d.ts.map +1 -1
  548. package/lib/network/peers/discover.js +45 -12
  549. package/lib/network/peers/discover.js.map +1 -1
  550. package/lib/network/peers/peerManager.d.ts +3 -1
  551. package/lib/network/peers/peerManager.d.ts.map +1 -1
  552. package/lib/network/peers/peerManager.js +103 -53
  553. package/lib/network/peers/peerManager.js.map +1 -1
  554. package/lib/network/peers/peersData.d.ts.map +1 -1
  555. package/lib/network/peers/peersData.js +2 -1
  556. package/lib/network/peers/peersData.js.map +1 -1
  557. package/lib/network/peers/score/interface.js +4 -2
  558. package/lib/network/peers/score/interface.js.map +1 -1
  559. package/lib/network/peers/score/score.d.ts.map +1 -1
  560. package/lib/network/peers/score/score.js.map +1 -1
  561. package/lib/network/peers/score/store.d.ts.map +1 -1
  562. package/lib/network/peers/score/store.js.map +1 -1
  563. package/lib/network/peers/score/utils.js.map +1 -1
  564. package/lib/network/peers/utils/assertPeerRelevance.js +2 -1
  565. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  566. package/lib/network/peers/utils/enrSubnetsDeserialize.js.map +1 -1
  567. package/lib/network/peers/utils/getConnectedPeerIds.js.map +1 -1
  568. package/lib/network/peers/utils/prioritizePeers.d.ts +3 -3
  569. package/lib/network/peers/utils/prioritizePeers.d.ts.map +1 -1
  570. package/lib/network/peers/utils/prioritizePeers.js +2 -1
  571. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  572. package/lib/network/peers/utils/subnetMap.d.ts.map +1 -1
  573. package/lib/network/peers/utils/subnetMap.js.map +1 -1
  574. package/lib/network/processor/aggregatorTracker.d.ts.map +1 -1
  575. package/lib/network/processor/aggregatorTracker.js.map +1 -1
  576. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  577. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  578. package/lib/network/processor/gossipHandlers.js +4 -1
  579. package/lib/network/processor/gossipHandlers.js.map +1 -1
  580. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  581. package/lib/network/processor/gossipQueues/indexed.d.ts.map +1 -1
  582. package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
  583. package/lib/network/processor/gossipQueues/linear.d.ts.map +1 -1
  584. package/lib/network/processor/gossipQueues/linear.js.map +1 -1
  585. package/lib/network/processor/gossipQueues/types.js +4 -2
  586. package/lib/network/processor/gossipQueues/types.js.map +1 -1
  587. package/lib/network/processor/gossipValidatorFn.js +1 -1
  588. package/lib/network/processor/gossipValidatorFn.js.map +1 -1
  589. package/lib/network/processor/index.d.ts.map +1 -1
  590. package/lib/network/processor/index.js +4 -2
  591. package/lib/network/processor/index.js.map +1 -1
  592. package/lib/network/processor/types.d.ts +1 -1
  593. package/lib/network/processor/types.d.ts.map +1 -1
  594. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  595. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  596. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  597. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +3 -2
  598. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  599. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
  600. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +1 -1
  601. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +3 -2
  602. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
  603. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +1 -1
  604. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
  605. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
  606. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +3 -2
  607. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  608. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +1 -1
  609. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  610. package/lib/network/reqresp/handlers/index.js.map +1 -1
  611. package/lib/network/reqresp/handlers/lightClientBootstrap.js.map +1 -1
  612. package/lib/network/reqresp/handlers/lightClientFinalityUpdate.js.map +1 -1
  613. package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.js.map +1 -1
  614. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.js.map +1 -1
  615. package/lib/network/reqresp/interface.js +2 -1
  616. package/lib/network/reqresp/interface.js.map +1 -1
  617. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  618. package/lib/network/reqresp/protocols.js.map +1 -1
  619. package/lib/network/reqresp/rateLimit.js.map +1 -1
  620. package/lib/network/reqresp/score.d.ts.map +1 -1
  621. package/lib/network/reqresp/score.js +0 -1
  622. package/lib/network/reqresp/score.js.map +1 -1
  623. package/lib/network/reqresp/types.js +4 -2
  624. package/lib/network/reqresp/types.js.map +1 -1
  625. package/lib/network/reqresp/utils/collect.d.ts +1 -1
  626. package/lib/network/reqresp/utils/collect.js.map +1 -1
  627. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.d.ts +1 -1
  628. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.js +2 -1
  629. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.js.map +1 -1
  630. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts +1 -1
  631. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts.map +1 -1
  632. package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -1
  633. package/lib/network/statusCache.d.ts.map +1 -1
  634. package/lib/network/statusCache.js.map +1 -1
  635. package/lib/network/subnets/attnetsService.d.ts.map +1 -1
  636. package/lib/network/subnets/attnetsService.js +2 -1
  637. package/lib/network/subnets/attnetsService.js.map +1 -1
  638. package/lib/network/subnets/interface.js.map +1 -1
  639. package/lib/network/subnets/syncnetsService.d.ts.map +1 -1
  640. package/lib/network/subnets/syncnetsService.js.map +1 -1
  641. package/lib/network/subnets/util.js.map +1 -1
  642. package/lib/network/util.js +2 -2
  643. package/lib/network/util.js.map +1 -1
  644. package/lib/node/nodejs.d.ts +4 -6
  645. package/lib/node/nodejs.d.ts.map +1 -1
  646. package/lib/node/nodejs.js +8 -5
  647. package/lib/node/nodejs.js.map +1 -1
  648. package/lib/node/notifier.js.map +1 -1
  649. package/lib/node/utils/interop/deposits.js.map +1 -1
  650. package/lib/node/utils/interop/state.d.ts +1 -1
  651. package/lib/node/utils/interop/state.d.ts.map +1 -1
  652. package/lib/node/utils/interop/state.js.map +1 -1
  653. package/lib/node/utils/lightclient.js.map +1 -1
  654. package/lib/node/utils/state.js.map +1 -1
  655. package/lib/sync/backfill/backfill.d.ts +1 -10
  656. package/lib/sync/backfill/backfill.d.ts.map +1 -1
  657. package/lib/sync/backfill/backfill.js +6 -3
  658. package/lib/sync/backfill/backfill.js.map +1 -1
  659. package/lib/sync/backfill/errors.js +2 -1
  660. package/lib/sync/backfill/errors.js.map +1 -1
  661. package/lib/sync/backfill/verify.js.map +1 -1
  662. package/lib/sync/interface.js +2 -1
  663. package/lib/sync/interface.js.map +1 -1
  664. package/lib/sync/range/batch.d.ts.map +1 -1
  665. package/lib/sync/range/batch.js +4 -2
  666. package/lib/sync/range/batch.js.map +1 -1
  667. package/lib/sync/range/chain.d.ts +0 -10
  668. package/lib/sync/range/chain.d.ts.map +1 -1
  669. package/lib/sync/range/chain.js +2 -1
  670. package/lib/sync/range/chain.js.map +1 -1
  671. package/lib/sync/range/range.d.ts +1 -3
  672. package/lib/sync/range/range.d.ts.map +1 -1
  673. package/lib/sync/range/range.js +5 -2
  674. package/lib/sync/range/range.js.map +1 -1
  675. package/lib/sync/range/utils/batches.js.map +1 -1
  676. package/lib/sync/range/utils/chainTarget.js.map +1 -1
  677. package/lib/sync/range/utils/hashBlocks.js.map +1 -1
  678. package/lib/sync/range/utils/peerBalancer.d.ts.map +1 -1
  679. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  680. package/lib/sync/range/utils/updateChains.js.map +1 -1
  681. package/lib/sync/sync.d.ts.map +1 -1
  682. package/lib/sync/sync.js.map +1 -1
  683. package/lib/sync/types.js +4 -2
  684. package/lib/sync/types.js.map +1 -1
  685. package/lib/sync/unknownBlock.d.ts +0 -14
  686. package/lib/sync/unknownBlock.d.ts.map +1 -1
  687. package/lib/sync/unknownBlock.js.map +1 -1
  688. package/lib/sync/utils/downloadByRange.d.ts +8 -5
  689. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  690. package/lib/sync/utils/downloadByRange.js +8 -6
  691. package/lib/sync/utils/downloadByRange.js.map +1 -1
  692. package/lib/sync/utils/downloadByRoot.d.ts +8 -8
  693. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  694. package/lib/sync/utils/downloadByRoot.js +3 -2
  695. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  696. package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
  697. package/lib/sync/utils/remoteSyncType.d.ts +1 -1
  698. package/lib/sync/utils/remoteSyncType.d.ts.map +1 -1
  699. package/lib/sync/utils/remoteSyncType.js +4 -2
  700. package/lib/sync/utils/remoteSyncType.js.map +1 -1
  701. package/lib/util/address.js.map +1 -1
  702. package/lib/util/array.d.ts.map +1 -1
  703. package/lib/util/array.js.map +1 -1
  704. package/lib/util/asyncIterableToEvents.d.ts.map +1 -1
  705. package/lib/util/asyncIterableToEvents.js +2 -1
  706. package/lib/util/asyncIterableToEvents.js.map +1 -1
  707. package/lib/util/binarySearch.d.ts.map +1 -1
  708. package/lib/util/binarySearch.js.map +1 -1
  709. package/lib/util/bitArray.js +2 -1
  710. package/lib/util/bitArray.js.map +1 -1
  711. package/lib/util/blobs.js.map +1 -1
  712. package/lib/util/bufferPool.d.ts.map +1 -1
  713. package/lib/util/bufferPool.js +2 -1
  714. package/lib/util/bufferPool.js.map +1 -1
  715. package/lib/util/chunkify.js.map +1 -1
  716. package/lib/util/clock.d.ts +6 -0
  717. package/lib/util/clock.d.ts.map +1 -1
  718. package/lib/util/clock.js +11 -4
  719. package/lib/util/clock.js.map +1 -1
  720. package/lib/util/dataColumns.d.ts.map +1 -1
  721. package/lib/util/dataColumns.js +9 -3
  722. package/lib/util/dataColumns.js.map +1 -1
  723. package/lib/util/dependentRoot.js.map +1 -1
  724. package/lib/util/enum.js.map +1 -1
  725. package/lib/util/error.js.map +1 -1
  726. package/lib/util/eventLoop.js.map +1 -1
  727. package/lib/util/execution.d.ts.map +1 -1
  728. package/lib/util/execution.js +19 -9
  729. package/lib/util/execution.js.map +1 -1
  730. package/lib/util/file.js.map +1 -1
  731. package/lib/util/forkChoice.js.map +1 -1
  732. package/lib/util/forkName.js.map +1 -1
  733. package/lib/util/graffiti.js.map +1 -1
  734. package/lib/util/hex.js.map +1 -1
  735. package/lib/util/ip.js.map +1 -1
  736. package/lib/util/itTrigger.d.ts.map +1 -1
  737. package/lib/util/itTrigger.js.map +1 -1
  738. package/lib/util/map.d.ts.map +1 -1
  739. package/lib/util/map.js.map +1 -1
  740. package/lib/util/metadata.js.map +1 -1
  741. package/lib/util/multifork.js.map +1 -1
  742. package/lib/util/numpy.js.map +1 -1
  743. package/lib/util/peerId.js.map +1 -1
  744. package/lib/util/profile.js +2 -1
  745. package/lib/util/profile.js.map +1 -1
  746. package/lib/util/promises.js.map +1 -1
  747. package/lib/util/queue/errors.js +2 -1
  748. package/lib/util/queue/errors.js.map +1 -1
  749. package/lib/util/queue/fnQueue.d.ts.map +1 -1
  750. package/lib/util/queue/fnQueue.js.map +1 -1
  751. package/lib/util/queue/itemQueue.d.ts.map +1 -1
  752. package/lib/util/queue/itemQueue.js.map +1 -1
  753. package/lib/util/queue/options.js +2 -1
  754. package/lib/util/queue/options.js.map +1 -1
  755. package/lib/util/serializedCache.d.ts +4 -4
  756. package/lib/util/serializedCache.d.ts.map +1 -1
  757. package/lib/util/serializedCache.js +6 -4
  758. package/lib/util/serializedCache.js.map +1 -1
  759. package/lib/util/set.d.ts.map +1 -1
  760. package/lib/util/set.js.map +1 -1
  761. package/lib/util/shuffle.js.map +1 -1
  762. package/lib/util/sortBy.js.map +1 -1
  763. package/lib/util/sszBytes.js.map +1 -1
  764. package/lib/util/time.js.map +1 -1
  765. package/lib/util/timeSeries.d.ts.map +1 -1
  766. package/lib/util/timeSeries.js.map +1 -1
  767. package/lib/util/types.d.ts.map +1 -1
  768. package/lib/util/workerEvents.d.ts +1 -1
  769. package/lib/util/workerEvents.d.ts.map +1 -1
  770. package/lib/util/workerEvents.js.map +1 -1
  771. package/lib/util/wrapError.js.map +1 -1
  772. package/package.json +42 -44
  773. package/src/api/impl/beacon/blocks/index.ts +14 -2
  774. package/src/api/impl/beacon/state/index.ts +8 -8
  775. package/src/api/impl/beacon/state/utils.ts +17 -31
  776. package/src/api/impl/debug/index.ts +1 -0
  777. package/src/api/impl/node/utils.ts +3 -3
  778. package/src/api/impl/validator/index.ts +36 -19
  779. package/src/chain/archiveStore/archiveStore.ts +5 -15
  780. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +10 -11
  781. package/src/chain/archiveStore/historicalState/worker.ts +3 -3
  782. package/src/chain/archiveStore/interface.ts +4 -4
  783. package/src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts +8 -5
  784. package/src/chain/archiveStore/utils/archiveBlocks.ts +62 -5
  785. package/src/chain/archiveStore/utils/updateBackfillRange.ts +1 -1
  786. package/src/chain/blocks/blockInput/blockInput.ts +103 -3
  787. package/src/chain/blocks/blockInput/types.ts +18 -0
  788. package/src/chain/blocks/importBlock.ts +47 -11
  789. package/src/chain/blocks/verifyBlocksDataAvailability.ts +3 -0
  790. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +9 -2
  791. package/src/chain/blocks/verifyBlocksSanityChecks.ts +7 -2
  792. package/src/chain/blocks/writeBlockInputToDb.ts +105 -104
  793. package/src/chain/bls/multithread/index.ts +7 -7
  794. package/src/chain/bls/multithread/jobItem.ts +3 -3
  795. package/src/chain/bls/singleThread.ts +5 -5
  796. package/src/chain/bls/utils.ts +8 -5
  797. package/src/chain/chain.ts +67 -47
  798. package/src/chain/emitter.ts +3 -3
  799. package/src/chain/errors/executionPayloadBid.ts +1 -1
  800. package/src/chain/errors/executionPayloadEnvelope.ts +6 -2
  801. package/src/chain/errors/payloadAttestation.ts +1 -1
  802. package/src/chain/forkChoice/index.ts +39 -21
  803. package/src/chain/interface.ts +4 -11
  804. package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
  805. package/src/chain/prepareNextSlot.ts +6 -2
  806. package/src/chain/produceBlock/computeNewStateRoot.ts +4 -3
  807. package/src/chain/produceBlock/produceBlockBody.ts +18 -5
  808. package/src/chain/regen/errors.ts +6 -1
  809. package/src/chain/regen/interface.ts +12 -6
  810. package/src/chain/regen/queued.ts +55 -14
  811. package/src/chain/regen/regen.ts +46 -10
  812. package/src/chain/seenCache/seenGossipBlockInput.ts +56 -18
  813. package/src/chain/stateCache/datastore/db.ts +33 -10
  814. package/src/chain/stateCache/datastore/file.ts +6 -5
  815. package/src/chain/stateCache/datastore/types.ts +3 -2
  816. package/src/chain/stateCache/fifoBlockStateCache.ts +10 -4
  817. package/src/chain/stateCache/persistentCheckpointsCache.ts +248 -139
  818. package/src/chain/stateCache/types.ts +18 -8
  819. package/src/chain/validation/aggregateAndProof.ts +1 -1
  820. package/src/chain/validation/attestation.ts +14 -7
  821. package/src/chain/validation/attesterSlashing.ts +10 -1
  822. package/src/chain/validation/blobSidecar.ts +2 -2
  823. package/src/chain/validation/block.ts +9 -4
  824. package/src/chain/validation/dataColumnSidecar.ts +147 -127
  825. package/src/chain/validation/executionPayloadBid.ts +1 -2
  826. package/src/chain/validation/executionPayloadEnvelope.ts +4 -4
  827. package/src/chain/validation/payloadAttestationMessage.ts +10 -3
  828. package/src/chain/validation/proposerSlashing.ts +1 -1
  829. package/src/chain/validation/syncCommitteeContributionAndProof.ts +1 -1
  830. package/src/db/index.ts +1 -0
  831. package/src/db/repositories/blockArchive.ts +1 -2
  832. package/src/execution/engine/http.ts +3 -0
  833. package/src/metrics/metrics/beacon.ts +9 -3
  834. package/src/metrics/metrics/lodestar.ts +39 -24
  835. package/src/monitoring/service.ts +3 -2
  836. package/src/network/core/networkCore.ts +3 -3
  837. package/src/network/core/networkCoreWorkerHandler.ts +3 -3
  838. package/src/network/core/types.ts +2 -2
  839. package/src/network/discv5/utils.ts +5 -4
  840. package/src/network/events.ts +2 -1
  841. package/src/network/gossip/encoding.ts +3 -3
  842. package/src/network/gossip/gossipsub.ts +98 -32
  843. package/src/network/gossip/interface.ts +3 -3
  844. package/src/network/gossip/scoringParameters.ts +4 -4
  845. package/src/network/interface.ts +3 -3
  846. package/src/network/libp2p/index.ts +48 -21
  847. package/src/network/metadata.ts +1 -0
  848. package/src/network/network.ts +5 -4
  849. package/src/network/options.ts +8 -1
  850. package/src/network/peers/datastore.ts +13 -10
  851. package/src/network/peers/discover.ts +46 -11
  852. package/src/network/peers/peerManager.ts +118 -54
  853. package/src/network/peers/utils/prioritizePeers.ts +3 -3
  854. package/src/network/processor/gossipHandlers.ts +12 -3
  855. package/src/network/processor/gossipValidatorFn.ts +2 -2
  856. package/src/network/processor/types.ts +1 -1
  857. package/src/network/reqresp/ReqRespBeaconNode.ts +1 -1
  858. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +4 -3
  859. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +3 -2
  860. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +1 -1
  861. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +4 -3
  862. package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +2 -2
  863. package/src/network/reqresp/score.ts +0 -1
  864. package/src/network/reqresp/utils/collect.ts +1 -1
  865. package/src/network/reqresp/utils/collectSequentialBlocksInRange.ts +1 -1
  866. package/src/network/util.ts +2 -2
  867. package/src/node/nodejs.ts +8 -9
  868. package/src/sync/range/range.ts +1 -0
  869. package/src/sync/utils/downloadByRange.ts +12 -3
  870. package/src/sync/utils/downloadByRoot.ts +2 -2
  871. package/src/sync/utils/remoteSyncType.ts +1 -1
  872. package/src/util/clock.ts +9 -4
  873. package/src/util/dataColumns.ts +6 -2
  874. package/src/util/execution.ts +23 -12
  875. package/src/util/serializedCache.ts +7 -5
  876. package/src/util/workerEvents.ts +1 -1
  877. package/lib/chain/archiveStore/utils/archivePayloads.d.ts +0 -7
  878. package/lib/chain/archiveStore/utils/archivePayloads.d.ts.map +0 -1
  879. package/lib/chain/archiveStore/utils/archivePayloads.js +0 -10
  880. package/lib/chain/archiveStore/utils/archivePayloads.js.map +0 -1
  881. package/src/chain/archiveStore/utils/archivePayloads.ts +0 -15
@@ -1,5 +1,6 @@
1
1
  import {routes} from "@lodestar/api";
2
2
  import {ApiError, ApplicationMethods} from "@lodestar/api/server";
3
+ import {PayloadStatus} from "@lodestar/fork-choice";
3
4
  import {
4
5
  BUILDER_INDEX_SELF_BUILD,
5
6
  ForkPostBellatrix,
@@ -205,7 +206,7 @@ export function getBeaconBlockApi({
205
206
  case routes.beacon.BroadcastValidation.consensus: {
206
207
  // check if this beacon node produced the block else run validations
207
208
  if (!blockLocallyProduced) {
208
- const parentBlock = chain.forkChoice.getBlock(signedBlock.message.parentRoot);
209
+ const parentBlock = chain.forkChoice.getBlockDefaultStatus(signedBlock.message.parentRoot);
209
210
  if (parentBlock === null) {
210
211
  chain.emitter.emit(ChainEvent.unknownParent, {
211
212
  blockInput: blockForImport,
@@ -650,7 +651,7 @@ export function getBeaconBlockApi({
650
651
  }
651
652
 
652
653
  // TODO GLOAS: review checks, do we want to implement `broadcast_validation`?
653
- const block = chain.forkChoice.getBlockHex(blockRootHex);
654
+ const block = chain.forkChoice.getBlockHex(blockRootHex, PayloadStatus.EMPTY);
654
655
  if (block === null) {
655
656
  throw new ApiError(404, `Block not found for beacon block root ${blockRootHex}`);
656
657
  }
@@ -814,11 +815,18 @@ export function getBeaconBlockApi({
814
815
  }
815
816
 
816
817
  const indicesToReconstruct = indices ?? Array.from({length: blobCount}, (_, i) => i);
818
+
819
+ const timer = metrics?.recoverBlobSidecars.reconstructionTime.startTimer();
817
820
  const blobs = await reconstructBlobs(dataColumnSidecars, indicesToReconstruct);
821
+ timer?.();
822
+ metrics?.recoverBlobSidecars.blobsReconstructed.inc(indicesToReconstruct.length);
823
+
818
824
  const signedBlockHeader = signedBlockToSignedHeader(config, block);
819
825
 
820
826
  data = await Promise.all(
821
827
  indicesToReconstruct.map(async (index, i) => {
828
+ // record per column computation time
829
+ const compTimer = metrics?.peerDas.dataColumnSidecarComputationTime.startTimer();
822
830
  // Reconstruct blob sidecar from blob
823
831
  const kzgCommitment = blobKzgCommitments[index];
824
832
  const blob = blobs[i]; // Use i since blobs only contains requested indices
@@ -828,6 +836,7 @@ export function getBeaconBlockApi({
828
836
  block.message.body,
829
837
  index
830
838
  );
839
+ compTimer?.();
831
840
  return {index, blob, kzgCommitment, kzgProof, signedBlockHeader, kzgCommitmentInclusionProof};
832
841
  })
833
842
  );
@@ -909,7 +918,10 @@ export function getBeaconBlockApi({
909
918
  indicesToReconstruct = Array.from({length: blobCount}, (_, i) => i);
910
919
  }
911
920
 
921
+ const timer = metrics?.peerDas.dataColumnsReconstructionTime.startTimer();
912
922
  blobs = await reconstructBlobs(dataColumnSidecars, indicesToReconstruct);
923
+ timer?.();
924
+ metrics?.peerDas.reconstructedColumns.inc(indicesToReconstruct.length);
913
925
  } else {
914
926
  blobs = [];
915
927
  }
@@ -95,14 +95,14 @@ export function getBeaconStateApi({
95
95
  const {state, executionOptimistic, finalized} = await getState(stateId);
96
96
  const currentEpoch = getCurrentEpoch(state);
97
97
  const {validators, balances} = state; // Get the validators sub tree once for all the loop
98
- const {pubkey2index} = chain;
98
+ const {pubkeyCache} = chain;
99
99
 
100
100
  const validatorResponses: routes.beacon.ValidatorResponse[] = [];
101
101
  if (validatorIds.length) {
102
102
  assertUniqueItems(validatorIds, "Duplicate validator IDs provided");
103
103
 
104
104
  for (const id of validatorIds) {
105
- const resp = getStateValidatorIndex(id, state, pubkey2index);
105
+ const resp = getStateValidatorIndex(id, state, pubkeyCache);
106
106
  if (resp.valid) {
107
107
  const validatorIndex = resp.validatorIndex;
108
108
  const validator = validators.getReadonly(validatorIndex);
@@ -127,7 +127,7 @@ export function getBeaconStateApi({
127
127
  if (statuses.length) {
128
128
  assertUniqueItems(statuses, "Duplicate statuses provided");
129
129
 
130
- const validatorsByStatus = filterStateValidatorsByStatus(statuses, state, pubkey2index, currentEpoch);
130
+ const validatorsByStatus = filterStateValidatorsByStatus(statuses, state, pubkeyCache, currentEpoch);
131
131
  return {
132
132
  data: validatorsByStatus,
133
133
  meta: {executionOptimistic, finalized},
@@ -154,7 +154,7 @@ export function getBeaconStateApi({
154
154
 
155
155
  async postStateValidatorIdentities({stateId, validatorIds = []}) {
156
156
  const {state, executionOptimistic, finalized} = await getState(stateId);
157
- const {pubkey2index} = chain;
157
+ const {pubkeyCache} = chain;
158
158
 
159
159
  let validatorIdentities: routes.beacon.ValidatorIdentities;
160
160
 
@@ -163,7 +163,7 @@ export function getBeaconStateApi({
163
163
 
164
164
  validatorIdentities = [];
165
165
  for (const id of validatorIds) {
166
- const resp = getStateValidatorIndex(id, state, pubkey2index);
166
+ const resp = getStateValidatorIndex(id, state, pubkeyCache);
167
167
  if (resp.valid) {
168
168
  const index = resp.validatorIndex;
169
169
  const {pubkey, activationEpoch} = state.validators.getReadonly(index);
@@ -187,9 +187,9 @@ export function getBeaconStateApi({
187
187
 
188
188
  async getStateValidator({stateId, validatorId}) {
189
189
  const {state, executionOptimistic, finalized} = await getState(stateId);
190
- const {pubkey2index} = chain;
190
+ const {pubkeyCache} = chain;
191
191
 
192
- const resp = getStateValidatorIndex(validatorId, state, pubkey2index);
192
+ const resp = getStateValidatorIndex(validatorId, state, pubkeyCache);
193
193
  if (!resp.valid) {
194
194
  throw new ApiError(resp.code, resp.reason);
195
195
  }
@@ -214,7 +214,7 @@ export function getBeaconStateApi({
214
214
 
215
215
  const balances: routes.beacon.ValidatorBalance[] = [];
216
216
  for (const id of validatorIds) {
217
- const resp = getStateValidatorIndex(id, state, chain.pubkey2index);
217
+ const resp = getStateValidatorIndex(id, state, chain.pubkeyCache);
218
218
 
219
219
  if (resp.valid) {
220
220
  balances.push({
@@ -1,9 +1,17 @@
1
- import {PubkeyIndexMap} from "@chainsafe/pubkey-index-map";
2
1
  import {routes} from "@lodestar/api";
3
- import {CheckpointWithHex, IForkChoice} from "@lodestar/fork-choice";
2
+ import {CheckpointWithPayloadStatus, IForkChoice} from "@lodestar/fork-choice";
4
3
  import {GENESIS_SLOT} from "@lodestar/params";
5
- import {BeaconStateAllForks, CachedBeaconStateAllForks} from "@lodestar/state-transition";
6
- import {BLSPubkey, Epoch, RootHex, Slot, ValidatorIndex, getValidatorStatus, phase0} from "@lodestar/types";
4
+ import {BeaconStateAllForks, CachedBeaconStateAllForks, PubkeyCache} from "@lodestar/state-transition";
5
+ import {
6
+ BLSPubkey,
7
+ Epoch,
8
+ RootHex,
9
+ Slot,
10
+ ValidatorIndex,
11
+ getValidatorStatus,
12
+ mapToGeneralStatus,
13
+ phase0,
14
+ } from "@lodestar/types";
7
15
  import {fromHex} from "@lodestar/utils";
8
16
  import {IBeaconChain} from "../../../../chain/index.js";
9
17
  import {ApiError, ValidationError} from "../../errors.js";
@@ -11,7 +19,7 @@ import {ApiError, ValidationError} from "../../errors.js";
11
19
  export function resolveStateId(
12
20
  forkChoice: IForkChoice,
13
21
  stateId: routes.beacon.StateId
14
- ): RootHex | Slot | CheckpointWithHex {
22
+ ): RootHex | Slot | CheckpointWithPayloadStatus {
15
23
  if (stateId === "head") {
16
24
  return forkChoice.getHead().stateRoot;
17
25
  }
@@ -65,28 +73,6 @@ export async function getStateResponseWithRegen(
65
73
  return res;
66
74
  }
67
75
 
68
- type GeneralValidatorStatus = "active" | "pending" | "exited" | "withdrawal";
69
-
70
- function mapToGeneralStatus(subStatus: routes.beacon.ValidatorStatus): GeneralValidatorStatus {
71
- switch (subStatus) {
72
- case "active_ongoing":
73
- case "active_exiting":
74
- case "active_slashed":
75
- return "active";
76
- case "pending_initialized":
77
- case "pending_queued":
78
- return "pending";
79
- case "exited_slashed":
80
- case "exited_unslashed":
81
- return "exited";
82
- case "withdrawal_possible":
83
- case "withdrawal_done":
84
- return "withdrawal";
85
- default:
86
- throw new Error(`Unknown substatus: ${subStatus}`);
87
- }
88
- }
89
-
90
76
  export function toValidatorResponse(
91
77
  index: ValidatorIndex,
92
78
  validator: phase0.Validator,
@@ -104,7 +90,7 @@ export function toValidatorResponse(
104
90
  export function filterStateValidatorsByStatus(
105
91
  statuses: string[],
106
92
  state: BeaconStateAllForks,
107
- pubkey2index: PubkeyIndexMap,
93
+ pubkeyCache: PubkeyCache,
108
94
  currentEpoch: Epoch
109
95
  ): routes.beacon.ValidatorResponse[] {
110
96
  const responses: routes.beacon.ValidatorResponse[] = [];
@@ -115,7 +101,7 @@ export function filterStateValidatorsByStatus(
115
101
  const validatorStatus = getValidatorStatus(validator, currentEpoch);
116
102
  const generalStatus = mapToGeneralStatus(validatorStatus);
117
103
 
118
- const resp = getStateValidatorIndex(validator.pubkey, state, pubkey2index);
104
+ const resp = getStateValidatorIndex(validator.pubkey, state, pubkeyCache);
119
105
  if (resp.valid && (statusSet.has(validatorStatus) || statusSet.has(generalStatus))) {
120
106
  responses.push(
121
107
  toValidatorResponse(resp.validatorIndex, validator, state.balances.get(resp.validatorIndex), currentEpoch)
@@ -132,7 +118,7 @@ type StateValidatorIndexResponse =
132
118
  export function getStateValidatorIndex(
133
119
  id: routes.beacon.ValidatorId | BLSPubkey,
134
120
  state: BeaconStateAllForks,
135
- pubkey2index: PubkeyIndexMap
121
+ pubkeyCache: PubkeyCache
136
122
  ): StateValidatorIndexResponse {
137
123
  if (typeof id === "string") {
138
124
  // mutate `id` and fallthrough to below
@@ -160,7 +146,7 @@ export function getStateValidatorIndex(
160
146
  }
161
147
 
162
148
  // typeof id === Uint8Array
163
- const validatorIndex = pubkey2index.get(id);
149
+ const validatorIndex = pubkeyCache.getIndex(id);
164
150
  if (validatorIndex === null) {
165
151
  return {valid: false, code: 404, reason: "Validator pubkey not found in state"};
166
152
  }
@@ -43,6 +43,7 @@ export function getDebugApi({
43
43
  validity: (() => {
44
44
  switch (node.executionStatus) {
45
45
  case ExecutionStatus.Valid:
46
+ case ExecutionStatus.PayloadSeparated:
46
47
  return "valid";
47
48
  case ExecutionStatus.Invalid:
48
49
  return "invalid";
@@ -1,4 +1,4 @@
1
- import {Connection, StreamStatus} from "@libp2p/interface";
1
+ import type {Connection, ConnectionStatus} from "@libp2p/interface";
2
2
  import {routes} from "@lodestar/api";
3
3
 
4
4
  /**
@@ -24,7 +24,7 @@ export function formatNodePeer(peerIdStr: string, connections: Connection[]): ro
24
24
  * - Otherwise, the first closed connection
25
25
  */
26
26
  export function getRelevantConnection(connections: Connection[]): Connection | null {
27
- const byStatus = new Map<StreamStatus, Connection>();
27
+ const byStatus = new Map<ConnectionStatus, Connection>();
28
28
  for (const conn of connections) {
29
29
  if (conn.status === "open") return conn;
30
30
  if (!byStatus.has(conn.status)) byStatus.set(conn.status, conn);
@@ -37,7 +37,7 @@ export function getRelevantConnection(connections: Connection[]): Connection | n
37
37
  * Map libp2p connection status to the API's peer state notation
38
38
  * @param status
39
39
  */
40
- function getPeerState(status: StreamStatus): routes.node.PeerState {
40
+ function getPeerState(status: ConnectionStatus): routes.node.PeerState {
41
41
  switch (status) {
42
42
  case "open":
43
43
  return "connected";
@@ -1,7 +1,6 @@
1
- import {PubkeyIndexMap} from "@chainsafe/pubkey-index-map";
2
1
  import {routes} from "@lodestar/api";
3
2
  import {ApplicationMethods} from "@lodestar/api/server";
4
- import {ExecutionStatus, ProtoBlock} from "@lodestar/fork-choice";
3
+ import {ExecutionStatus, PayloadStatus, ProtoBlock} from "@lodestar/fork-choice";
5
4
  import {
6
5
  BUILDER_INDEX_SELF_BUILD,
7
6
  ForkName,
@@ -27,6 +26,7 @@ import {
27
26
  computeStartSlotAtEpoch,
28
27
  computeTimeAtSlot,
29
28
  createCachedBeaconState,
29
+ createPubkeyCache,
30
30
  getBlockRootAtSlot,
31
31
  getCurrentSlot,
32
32
  loadState,
@@ -74,7 +74,7 @@ import {ChainEvent, CommonBlockBody} from "../../../chain/index.js";
74
74
  import {PREPARE_NEXT_SLOT_BPS} from "../../../chain/prepareNextSlot.js";
75
75
  import {BlockType, ProduceFullDeneb, ProduceFullGloas} from "../../../chain/produceBlock/index.js";
76
76
  import {RegenCaller} from "../../../chain/regen/index.js";
77
- import {CheckpointHex} from "../../../chain/stateCache/types.js";
77
+ import {CheckpointHexPayload} from "../../../chain/stateCache/types.js";
78
78
  import {validateApiAggregateAndProof} from "../../../chain/validation/index.js";
79
79
  import {validateSyncCommitteeGossipContributionAndProof} from "../../../chain/validation/syncCommitteeContributionAndProof.js";
80
80
  import {ZERO_HASH} from "../../../constants/index.js";
@@ -303,7 +303,7 @@ export function getValidatorApi(
303
303
  * |
304
304
  * prepareNextSlot (4s before next slot)
305
305
  */
306
- async function waitForCheckpointState(cpHex: CheckpointHex): Promise<CachedBeaconStateAllForks | null> {
306
+ async function waitForCheckpointState(cpHex: CheckpointHexPayload): Promise<CachedBeaconStateAllForks | null> {
307
307
  const cpState = chain.regen.getCheckpointStateSync(cpHex);
308
308
  if (cpState) {
309
309
  return cpState;
@@ -389,7 +389,7 @@ export function getValidatorApi(
389
389
  */
390
390
 
391
391
  function notOnOptimisticBlockRoot(beaconBlockRoot: Root): void {
392
- const protoBeaconBlock = chain.forkChoice.getBlock(beaconBlockRoot);
392
+ const protoBeaconBlock = chain.forkChoice.getBlockDefaultStatus(beaconBlockRoot);
393
393
  if (!protoBeaconBlock) {
394
394
  throw new ApiError(404, `Block not in forkChoice, beaconBlockRoot=${toRootHex(beaconBlockRoot)}`);
395
395
  }
@@ -401,7 +401,7 @@ export function getValidatorApi(
401
401
  }
402
402
 
403
403
  function notOnOutOfRangeData(beaconBlockRoot: Root): void {
404
- const protoBeaconBlock = chain.forkChoice.getBlock(beaconBlockRoot);
404
+ const protoBeaconBlock = chain.forkChoice.getBlockDefaultStatus(beaconBlockRoot);
405
405
  if (!protoBeaconBlock) {
406
406
  throw new ApiError(404, `Block not in forkChoice, beaconBlockRoot=${toRootHex(beaconBlockRoot)}`);
407
407
  }
@@ -989,8 +989,30 @@ export function getValidatorApi(
989
989
  const headBlockRoot = fromHex(headBlockRootHex);
990
990
  const fork = config.getForkName(slot);
991
991
 
992
+ const beaconBlockRoot =
993
+ slot >= headSlot
994
+ ? // When attesting to the head slot or later, always use the head of the chain.
995
+ headBlockRoot
996
+ : // Permit attesting to slots *prior* to the current head. This is desirable when
997
+ // the VC and BN are out-of-sync due to time issues or overloading.
998
+ getBlockRootAtSlot(headState, slot);
999
+
992
1000
  let index: CommitteeIndex;
993
- if (isForkPostElectra(fork)) {
1001
+ if (isForkPostGloas(fork)) {
1002
+ const canonicalBlock = chain.forkChoice.getCanonicalBlockByRoot(beaconBlockRoot);
1003
+ if (!canonicalBlock) {
1004
+ // This should never happen
1005
+ throw Error(`Block not found in fork choice for slot=${slot}, root=${toRootHex(beaconBlockRoot)}`);
1006
+ }
1007
+ // After Gloas, attestation.data.index signals payload status in fork-choice:
1008
+ // - 0 = EMPTY / not present, 1 = FULL / present
1009
+ // - same-slot attestations must always use index = 0
1010
+ if (canonicalBlock.slot !== slot) {
1011
+ index = canonicalBlock.payloadStatus === PayloadStatus.FULL ? 1 : 0;
1012
+ } else {
1013
+ index = 0;
1014
+ }
1015
+ } else if (isForkPostElectra(fork)) {
994
1016
  index = 0;
995
1017
  } else {
996
1018
  if (committeeIndex === undefined) {
@@ -999,14 +1021,6 @@ export function getValidatorApi(
999
1021
  index = committeeIndex;
1000
1022
  }
1001
1023
 
1002
- const beaconBlockRoot =
1003
- slot >= headSlot
1004
- ? // When attesting to the head slot or later, always use the head of the chain.
1005
- headBlockRoot
1006
- : // Permit attesting to slots *prior* to the current head. This is desirable when
1007
- // the VC and BN are out-of-sync due to time issues or overloading.
1008
- getBlockRootAtSlot(headState, slot);
1009
-
1010
1024
  const targetSlot = computeStartSlotAtEpoch(attEpoch);
1011
1025
  const targetRoot =
1012
1026
  targetSlot >= headSlot
@@ -1098,7 +1112,11 @@ export function getValidatorApi(
1098
1112
  // this is to avoid missed block proposal due to 0 epoch look ahead
1099
1113
  if (epoch === nextEpoch && toNextEpochMs < prepareNextSlotLookAheadMs) {
1100
1114
  // wait for maximum 1 slot for cp state which is the timeout of validator api
1101
- const cpState = await waitForCheckpointState({rootHex: head.blockRoot, epoch});
1115
+ const cpState = await waitForCheckpointState({
1116
+ rootHex: head.blockRoot,
1117
+ epoch,
1118
+ payloadPresent: head.payloadStatus === PayloadStatus.FULL,
1119
+ });
1102
1120
  if (cpState) {
1103
1121
  state = cpState;
1104
1122
  metrics?.duties.requestNextEpochProposalDutiesHit.inc();
@@ -1123,8 +1141,7 @@ export function getValidatorApi(
1123
1141
  {
1124
1142
  config: chain.config,
1125
1143
  // Not required to compute proposers
1126
- pubkey2index: new PubkeyIndexMap(),
1127
- index2pubkey: [],
1144
+ pubkeyCache: createPubkeyCache(),
1128
1145
  },
1129
1146
  {skipSyncPubkeys: true, skipSyncCommitteeCache: true}
1130
1147
  );
@@ -1585,7 +1602,7 @@ export function getValidatorApi(
1585
1602
 
1586
1603
  const filteredRegistrations = registrations.filter((registration) => {
1587
1604
  const {pubkey} = registration.message;
1588
- const validatorIndex = chain.pubkey2index.get(pubkey);
1605
+ const validatorIndex = chain.pubkeyCache.getIndex(pubkey);
1589
1606
  if (validatorIndex === null) return false;
1590
1607
 
1591
1608
  const validator = headState.validators.getReadonly(validatorIndex);
@@ -1,6 +1,5 @@
1
- import {CheckpointWithHex} from "@lodestar/fork-choice";
1
+ import {CheckpointWithPayloadStatus} from "@lodestar/fork-choice";
2
2
  import {LoggerNode} from "@lodestar/logger/node";
3
- import {ForkSeq} from "@lodestar/params";
4
3
  import {Checkpoint} from "@lodestar/types/phase0";
5
4
  import {callFnWhenAwait} from "@lodestar/utils";
6
5
  import {IBeaconDb} from "../../db/index.js";
@@ -14,7 +13,6 @@ import {HistoricalStateRegen} from "./historicalState/historicalStateRegen.js";
14
13
  import {ArchiveMode, ArchiveStoreOpts, StateArchiveStrategy} from "./interface.js";
15
14
  import {FrequencyStateArchiveStrategy} from "./strategies/frequencyStateArchiveStrategy.js";
16
15
  import {archiveBlocks} from "./utils/archiveBlocks.js";
17
- import {archiveExecutionPayloadEnvelopes} from "./utils/archivePayloads.js";
18
16
  import {pruneHistory} from "./utils/pruneHistory.js";
19
17
  import {updateBackfillRange} from "./utils/updateBackfillRange.js";
20
18
 
@@ -29,7 +27,6 @@ type ArchiveStoreInitOpts = ArchiveStoreOpts & {dbName: string; anchorState: {fi
29
27
 
30
28
  export enum ArchiveStoreTask {
31
29
  ArchiveBlocks = "archive_blocks",
32
- ArchivePayloads = "archive_payloads",
33
30
  PruneHistory = "prune_history",
34
31
  OnFinalizedCheckpoint = "on_finalized_checkpoint",
35
32
  MaybeArchiveState = "maybe_archive_state",
@@ -44,7 +41,7 @@ export enum ArchiveStoreTask {
44
41
  */
45
42
  export class ArchiveStore {
46
43
  private archiveMode: ArchiveMode;
47
- private jobQueue: JobItemQueue<[CheckpointWithHex], void>;
44
+ private jobQueue: JobItemQueue<[CheckpointWithPayloadStatus], void>;
48
45
 
49
46
  private archiveDataEpochs?: number;
50
47
  private readonly statesArchiverStrategy: StateArchiveStrategy;
@@ -67,7 +64,7 @@ export class ArchiveStore {
67
64
  this.archiveMode = opts.archiveMode;
68
65
  this.archiveDataEpochs = opts.archiveDataEpochs;
69
66
 
70
- this.jobQueue = new JobItemQueue<[CheckpointWithHex], void>(this.processFinalizedCheckpoint, {
67
+ this.jobQueue = new JobItemQueue<[CheckpointWithPayloadStatus], void>(this.processFinalizedCheckpoint, {
71
68
  maxLength: PROCESS_FINALIZED_CHECKPOINT_QUEUE_LENGTH,
72
69
  signal,
73
70
  });
@@ -168,7 +165,7 @@ export class ArchiveStore {
168
165
  //-------------------------------------------------------------------------
169
166
  // Event handlers
170
167
  //-------------------------------------------------------------------------
171
- private onFinalizedCheckpoint = (finalized: CheckpointWithHex): void => {
168
+ private onFinalizedCheckpoint = (finalized: CheckpointWithPayloadStatus): void => {
172
169
  this.jobQueue.push(finalized).catch((e) => {
173
170
  if (!isQueueErrorAborted(e)) {
174
171
  this.logger.error("Error queuing finalized checkpoint", {epoch: finalized.epoch}, e as Error);
@@ -189,10 +186,9 @@ export class ArchiveStore {
189
186
  });
190
187
  };
191
188
 
192
- private processFinalizedCheckpoint = async (finalized: CheckpointWithHex): Promise<void> => {
189
+ private processFinalizedCheckpoint = async (finalized: CheckpointWithPayloadStatus): Promise<void> => {
193
190
  try {
194
191
  const finalizedEpoch = finalized.epoch;
195
- const finalizedFork = this.chain.config.getForkSeqAtEpoch(finalizedEpoch);
196
192
  this.logger.verbose("Start processing finalized checkpoint", {epoch: finalizedEpoch, rootHex: finalized.rootHex});
197
193
 
198
194
  let timer = this.metrics?.processFinalizedCheckpoint.durationByTask.startTimer();
@@ -210,12 +206,6 @@ export class ArchiveStore {
210
206
  );
211
207
  timer?.({source: ArchiveStoreTask.ArchiveBlocks});
212
208
 
213
- if (finalizedFork >= ForkSeq.gloas) {
214
- timer = this.metrics?.processFinalizedCheckpoint.durationByTask.startTimer();
215
- await archiveExecutionPayloadEnvelopes(this.chain, finalized);
216
- timer?.({source: ArchiveStoreTask.ArchivePayloads});
217
- }
218
-
219
209
  if (this.opts.pruneHistory) {
220
210
  timer = this.metrics?.processFinalizedCheckpoint.durationByTask.startTimer();
221
211
  await pruneHistory(
@@ -1,10 +1,10 @@
1
- import {PubkeyIndexMap} from "@chainsafe/pubkey-index-map";
2
1
  import {BeaconConfig} from "@lodestar/config";
3
2
  import {
4
3
  BeaconStateAllForks,
5
4
  CachedBeaconStateAllForks,
6
5
  DataAvailabilityStatus,
7
6
  ExecutionPayloadStatus,
7
+ PubkeyCache,
8
8
  createCachedBeaconState,
9
9
  stateTransition,
10
10
  } from "@lodestar/state-transition";
@@ -15,16 +15,16 @@ import {HistoricalStateRegenMetrics} from "./metrics.js";
15
15
  import {RegenErrorType} from "./types.js";
16
16
 
17
17
  /**
18
- * Populate a PubkeyIndexMap with any new entries based on a BeaconState
18
+ * Populate a PubkeyCache with any new entries based on a BeaconState
19
19
  */
20
- export function syncPubkeyCache(state: BeaconStateAllForks, pubkey2index: PubkeyIndexMap): void {
20
+ export function syncPubkeyCache(state: BeaconStateAllForks, pubkeyCache: PubkeyCache): void {
21
21
  // Get the validators sub tree once for all the loop
22
22
  const validators = state.validators;
23
23
 
24
24
  const newCount = state.validators.length;
25
- for (let i = pubkey2index.size; i < newCount; i++) {
25
+ for (let i = pubkeyCache.size; i < newCount; i++) {
26
26
  const pubkey = validators.getReadonly(i).pubkey;
27
- pubkey2index.set(pubkey, i);
27
+ pubkeyCache.set(i, pubkey);
28
28
  }
29
29
  }
30
30
 
@@ -35,7 +35,7 @@ export async function getNearestState(
35
35
  slot: number,
36
36
  config: BeaconConfig,
37
37
  db: IBeaconDb,
38
- pubkey2index: PubkeyIndexMap
38
+ pubkeyCache: PubkeyCache
39
39
  ): Promise<CachedBeaconStateAllForks> {
40
40
  const stateBytesArr = await db.stateArchive.binaries({limit: 1, lte: slot, reverse: true});
41
41
  if (!stateBytesArr.length) {
@@ -44,14 +44,13 @@ export async function getNearestState(
44
44
 
45
45
  const stateBytes = stateBytesArr[0];
46
46
  const state = getStateTypeFromBytes(config, stateBytes).deserializeToViewDU(stateBytes);
47
- syncPubkeyCache(state, pubkey2index);
47
+ syncPubkeyCache(state, pubkeyCache);
48
48
 
49
49
  return createCachedBeaconState(
50
50
  state,
51
51
  {
52
52
  config,
53
- pubkey2index,
54
- index2pubkey: [],
53
+ pubkeyCache,
55
54
  },
56
55
  {
57
56
  skipSyncPubkeys: true,
@@ -66,13 +65,13 @@ export async function getHistoricalState(
66
65
  slot: number,
67
66
  config: BeaconConfig,
68
67
  db: IBeaconDb,
69
- pubkey2index: PubkeyIndexMap,
68
+ pubkeyCache: PubkeyCache,
70
69
  metrics?: HistoricalStateRegenMetrics
71
70
  ): Promise<Uint8Array> {
72
71
  const regenTimer = metrics?.regenTime.startTimer();
73
72
 
74
73
  const loadStateTimer = metrics?.loadStateTime.startTimer();
75
- let state = await getNearestState(slot, config, db, pubkey2index).catch((e) => {
74
+ let state = await getNearestState(slot, config, db, pubkeyCache).catch((e) => {
76
75
  metrics?.regenErrorCount.inc({reason: RegenErrorType.loadState});
77
76
  throw e;
78
77
  });
@@ -1,9 +1,9 @@
1
1
  import worker from "node:worker_threads";
2
- import {PubkeyIndexMap} from "@chainsafe/pubkey-index-map";
3
2
  import {Transfer, expose} from "@chainsafe/threads/worker";
4
3
  import {chainConfigFromJson, createBeaconConfig} from "@lodestar/config";
5
4
  import {LevelDbController} from "@lodestar/db/controller/level";
6
5
  import {getNodeLogger} from "@lodestar/logger/node";
6
+ import {createPubkeyCache} from "@lodestar/state-transition";
7
7
  import {BeaconDb} from "../../../db/index.js";
8
8
  import {RegistryMetricCreator, collectNodeJSMetrics} from "../../../metrics/index.js";
9
9
  import {JobFnQueue} from "../../../util/queue/fnQueue.js";
@@ -52,7 +52,7 @@ const queue = new JobFnQueue(
52
52
  queueMetrics
53
53
  );
54
54
 
55
- const pubkey2index = new PubkeyIndexMap();
55
+ const pubkeyCache = createPubkeyCache();
56
56
 
57
57
  const api: HistoricalStateWorkerApi = {
58
58
  async close() {
@@ -65,7 +65,7 @@ const api: HistoricalStateWorkerApi = {
65
65
  historicalStateRegenMetrics?.regenRequestCount.inc();
66
66
 
67
67
  const stateBytes = await queue.push<Uint8Array>(() =>
68
- getHistoricalState(slot, config, db, pubkey2index, historicalStateRegenMetrics)
68
+ getHistoricalState(slot, config, db, pubkeyCache, historicalStateRegenMetrics)
69
69
  );
70
70
  const result = Transfer(stateBytes, [stateBytes.buffer]) as unknown as Uint8Array;
71
71
 
@@ -1,4 +1,4 @@
1
- import {CheckpointWithHex} from "@lodestar/fork-choice";
1
+ import {CheckpointWithPayloadStatus} from "@lodestar/fork-choice";
2
2
  import {RootHex} from "@lodestar/types";
3
3
  import {Metrics} from "../../metrics/metrics.js";
4
4
 
@@ -44,9 +44,9 @@ export type FinalizedStats = {
44
44
 
45
45
  export interface StateArchiveStrategy {
46
46
  onCheckpoint(stateRoot: RootHex, metrics?: Metrics | null): Promise<void>;
47
- onFinalizedCheckpoint(finalized: CheckpointWithHex, metrics?: Metrics | null): Promise<void>;
48
- maybeArchiveState(finalized: CheckpointWithHex, metrics?: Metrics | null): Promise<void>;
49
- archiveState(finalized: CheckpointWithHex, metrics?: Metrics | null): Promise<void>;
47
+ onFinalizedCheckpoint(finalized: CheckpointWithPayloadStatus, metrics?: Metrics | null): Promise<void>;
48
+ maybeArchiveState(finalized: CheckpointWithPayloadStatus, metrics?: Metrics | null): Promise<void>;
49
+ archiveState(finalized: CheckpointWithPayloadStatus, metrics?: Metrics | null): Promise<void>;
50
50
  }
51
51
 
52
52
  export interface IArchiveStore {
@@ -1,4 +1,4 @@
1
- import {CheckpointWithHex} from "@lodestar/fork-choice";
1
+ import {CheckpointWithPayloadStatus} from "@lodestar/fork-choice";
2
2
  import {SLOTS_PER_EPOCH} from "@lodestar/params";
3
3
  import {computeEpochAtSlot, computeStartSlotAtEpoch} from "@lodestar/state-transition";
4
4
  import {Epoch, RootHex, Slot} from "@lodestar/types";
@@ -9,6 +9,7 @@ import {AllocSource, BufferPool} from "../../../util/bufferPool.js";
9
9
  import {getStateSlotFromBytes} from "../../../util/multifork.js";
10
10
  import {IStateRegenerator} from "../../regen/interface.js";
11
11
  import {serializeState} from "../../serializeState.js";
12
+ import {fcCheckpointToHexPayload} from "../../stateCache/persistentCheckpointsCache.js";
12
13
  import {StateArchiveStrategy, StatesArchiveOpts} from "../interface.js";
13
14
 
14
15
  /**
@@ -40,7 +41,7 @@ export class FrequencyStateArchiveStrategy implements StateArchiveStrategy {
40
41
  private readonly bufferPool?: BufferPool | null
41
42
  ) {}
42
43
 
43
- async onFinalizedCheckpoint(_finalized: CheckpointWithHex, _metrics?: Metrics | null): Promise<void> {}
44
+ async onFinalizedCheckpoint(_finalized: CheckpointWithPayloadStatus, _metrics?: Metrics | null): Promise<void> {}
44
45
  async onCheckpoint(_stateRoot: RootHex, _metrics?: Metrics | null): Promise<void> {}
45
46
 
46
47
  /**
@@ -55,7 +56,7 @@ export class FrequencyStateArchiveStrategy implements StateArchiveStrategy {
55
56
  * epoch - 1024*2 epoch - 1024 epoch - 32 epoch
56
57
  * ```
57
58
  */
58
- async maybeArchiveState(finalized: CheckpointWithHex, metrics?: Metrics | null): Promise<void> {
59
+ async maybeArchiveState(finalized: CheckpointWithPayloadStatus, metrics?: Metrics | null): Promise<void> {
59
60
  let timer = metrics?.processFinalizedCheckpoint.frequencyStateArchive.startTimer();
60
61
  const lastStoredSlot = await this.db.stateArchive.lastKey();
61
62
  timer?.({step: FrequencyStateArchiveStep.LoadLastStoredSlot});
@@ -104,10 +105,12 @@ export class FrequencyStateArchiveStrategy implements StateArchiveStrategy {
104
105
  * Archives finalized states from active bucket to archive bucket.
105
106
  * Only the new finalized state is stored to disk
106
107
  */
107
- async archiveState(finalized: CheckpointWithHex, metrics?: Metrics | null): Promise<void> {
108
+ async archiveState(finalized: CheckpointWithPayloadStatus, metrics?: Metrics | null): Promise<void> {
108
109
  // starting from Mar 2024, the finalized state could be from disk or in memory
109
110
  let timer = metrics?.processFinalizedCheckpoint.frequencyStateArchive.startTimer();
110
- const finalizedStateOrBytes = await this.regen.getCheckpointStateOrBytes(finalized);
111
+ // Convert fork-choice checkpoint to beacon-node checkpoint with payloadPresent
112
+ const finalizedHexPayload = fcCheckpointToHexPayload(finalized);
113
+ const finalizedStateOrBytes = await this.regen.getCheckpointStateOrBytes(finalizedHexPayload);
111
114
  timer?.({step: FrequencyStateArchiveStep.GetFinalizedState});
112
115
 
113
116
  const {rootHex} = finalized;