@lodestar/beacon-node 1.41.0-dev.983b1a457b → 1.41.0-dev.9939b12b53

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 (891) 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 +132 -4
  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 +3 -4
  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 +6 -2
  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 +134 -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 +1 -0
  64. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  65. package/lib/chain/archiveStore/archiveStore.js +11 -1
  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.js +2 -1
  79. package/lib/chain/archiveStore/interface.js.map +1 -1
  80. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts +1 -1
  81. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +1 -1
  82. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +2 -1
  83. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
  84. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +3 -8
  85. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  86. package/lib/chain/archiveStore/utils/archiveBlocks.js +1 -1
  87. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  88. package/lib/chain/archiveStore/utils/archivePayloads.d.ts +7 -0
  89. package/lib/chain/archiveStore/utils/archivePayloads.d.ts.map +1 -0
  90. package/lib/chain/archiveStore/utils/archivePayloads.js +10 -0
  91. package/lib/chain/archiveStore/utils/archivePayloads.js.map +1 -0
  92. package/lib/chain/archiveStore/utils/pruneHistory.js.map +1 -1
  93. package/lib/chain/archiveStore/utils/updateBackfillRange.js +1 -1
  94. package/lib/chain/archiveStore/utils/updateBackfillRange.js.map +1 -1
  95. package/lib/chain/balancesCache.d.ts.map +1 -1
  96. package/lib/chain/balancesCache.js.map +1 -1
  97. package/lib/chain/beaconProposerCache.d.ts.map +1 -1
  98. package/lib/chain/beaconProposerCache.js.map +1 -1
  99. package/lib/chain/blocks/blockInput/blockInput.d.ts +25 -2
  100. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  101. package/lib/chain/blocks/blockInput/blockInput.js +71 -0
  102. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  103. package/lib/chain/blocks/blockInput/errors.js +2 -1
  104. package/lib/chain/blocks/blockInput/errors.js.map +1 -1
  105. package/lib/chain/blocks/blockInput/types.d.ts +18 -1
  106. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  107. package/lib/chain/blocks/blockInput/types.js +5 -2
  108. package/lib/chain/blocks/blockInput/types.js.map +1 -1
  109. package/lib/chain/blocks/blockInput/utils.js.map +1 -1
  110. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  111. package/lib/chain/blocks/importBlock.js +28 -5
  112. package/lib/chain/blocks/importBlock.js.map +1 -1
  113. package/lib/chain/blocks/index.d.ts.map +1 -1
  114. package/lib/chain/blocks/index.js.map +1 -1
  115. package/lib/chain/blocks/types.js +6 -3
  116. package/lib/chain/blocks/types.js.map +1 -1
  117. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  118. package/lib/chain/blocks/utils/checkpoint.js.map +1 -1
  119. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  120. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +1 -1
  121. package/lib/chain/blocks/verifyBlocksDataAvailability.js +3 -0
  122. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  123. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +4 -0
  124. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  125. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +5 -1
  126. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  127. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +1 -1
  128. package/lib/chain/blocks/verifyBlocksSanityChecks.js +4 -1
  129. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  130. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  131. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  132. package/lib/chain/blocks/writeBlockInputToDb.d.ts +12 -3
  133. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  134. package/lib/chain/blocks/writeBlockInputToDb.js +92 -98
  135. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  136. package/lib/chain/bls/maybeBatch.js.map +1 -1
  137. package/lib/chain/bls/multithread/index.d.ts +3 -3
  138. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  139. package/lib/chain/bls/multithread/index.js +5 -5
  140. package/lib/chain/bls/multithread/index.js.map +1 -1
  141. package/lib/chain/bls/multithread/jobItem.d.ts +2 -2
  142. package/lib/chain/bls/multithread/jobItem.d.ts.map +1 -1
  143. package/lib/chain/bls/multithread/jobItem.js +4 -3
  144. package/lib/chain/bls/multithread/jobItem.js.map +1 -1
  145. package/lib/chain/bls/multithread/types.js +2 -1
  146. package/lib/chain/bls/multithread/types.js.map +1 -1
  147. package/lib/chain/bls/multithread/utils.js.map +1 -1
  148. package/lib/chain/bls/multithread/worker.js.map +1 -1
  149. package/lib/chain/bls/singleThread.d.ts +4 -4
  150. package/lib/chain/bls/singleThread.d.ts.map +1 -1
  151. package/lib/chain/bls/singleThread.js +4 -4
  152. package/lib/chain/bls/singleThread.js.map +1 -1
  153. package/lib/chain/bls/utils.d.ts +2 -2
  154. package/lib/chain/bls/utils.d.ts.map +1 -1
  155. package/lib/chain/bls/utils.js +7 -4
  156. package/lib/chain/bls/utils.js.map +1 -1
  157. package/lib/chain/chain.d.ts +9 -12
  158. package/lib/chain/chain.d.ts.map +1 -1
  159. package/lib/chain/chain.js +49 -30
  160. package/lib/chain/chain.js.map +1 -1
  161. package/lib/chain/emitter.d.ts +6 -8
  162. package/lib/chain/emitter.d.ts.map +1 -1
  163. package/lib/chain/emitter.js +2 -1
  164. package/lib/chain/emitter.js.map +1 -1
  165. package/lib/chain/errors/attestationError.d.ts.map +1 -1
  166. package/lib/chain/errors/attestationError.js +2 -1
  167. package/lib/chain/errors/attestationError.js.map +1 -1
  168. package/lib/chain/errors/attesterSlashingError.js +2 -1
  169. package/lib/chain/errors/attesterSlashingError.js.map +1 -1
  170. package/lib/chain/errors/blobSidecarError.js +2 -1
  171. package/lib/chain/errors/blobSidecarError.js.map +1 -1
  172. package/lib/chain/errors/blockError.d.ts.map +1 -1
  173. package/lib/chain/errors/blockError.js +2 -1
  174. package/lib/chain/errors/blockError.js.map +1 -1
  175. package/lib/chain/errors/blsToExecutionChangeError.js +2 -1
  176. package/lib/chain/errors/blsToExecutionChangeError.js.map +1 -1
  177. package/lib/chain/errors/dataColumnSidecarError.js +2 -1
  178. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
  179. package/lib/chain/errors/executionPayloadBid.d.ts +1 -1
  180. package/lib/chain/errors/executionPayloadBid.js +2 -1
  181. package/lib/chain/errors/executionPayloadBid.js.map +1 -1
  182. package/lib/chain/errors/executionPayloadEnvelope.d.ts +2 -2
  183. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  184. package/lib/chain/errors/executionPayloadEnvelope.js +2 -1
  185. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  186. package/lib/chain/errors/gossipValidation.d.ts.map +1 -1
  187. package/lib/chain/errors/gossipValidation.js +4 -2
  188. package/lib/chain/errors/gossipValidation.js.map +1 -1
  189. package/lib/chain/errors/lightClientError.js +4 -2
  190. package/lib/chain/errors/lightClientError.js.map +1 -1
  191. package/lib/chain/errors/payloadAttestation.d.ts +1 -1
  192. package/lib/chain/errors/payloadAttestation.js +2 -1
  193. package/lib/chain/errors/payloadAttestation.js.map +1 -1
  194. package/lib/chain/errors/proposerSlashingError.js +2 -1
  195. package/lib/chain/errors/proposerSlashingError.js.map +1 -1
  196. package/lib/chain/errors/syncCommitteeError.js +2 -1
  197. package/lib/chain/errors/syncCommitteeError.js.map +1 -1
  198. package/lib/chain/errors/voluntaryExitError.js +2 -1
  199. package/lib/chain/errors/voluntaryExitError.js.map +1 -1
  200. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  201. package/lib/chain/forkChoice/index.js +32 -25
  202. package/lib/chain/forkChoice/index.js.map +1 -1
  203. package/lib/chain/initState.d.ts +1 -1
  204. package/lib/chain/initState.d.ts.map +1 -1
  205. package/lib/chain/initState.js.map +1 -1
  206. package/lib/chain/interface.d.ts +4 -6
  207. package/lib/chain/interface.d.ts.map +1 -1
  208. package/lib/chain/interface.js +2 -1
  209. package/lib/chain/interface.js.map +1 -1
  210. package/lib/chain/lightClient/index.d.ts +0 -29
  211. package/lib/chain/lightClient/index.d.ts.map +1 -1
  212. package/lib/chain/lightClient/index.js.map +1 -1
  213. package/lib/chain/lightClient/proofs.js.map +1 -1
  214. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  215. package/lib/chain/opPools/aggregatedAttestationPool.js +5 -3
  216. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  217. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  218. package/lib/chain/opPools/attestationPool.js.map +1 -1
  219. package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -1
  220. package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -1
  221. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  222. package/lib/chain/opPools/opPool.js.map +1 -1
  223. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -1
  224. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  225. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +1 -1
  226. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  227. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +1 -1
  228. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  229. package/lib/chain/opPools/types.js +4 -2
  230. package/lib/chain/opPools/types.js.map +1 -1
  231. package/lib/chain/opPools/utils.js.map +1 -1
  232. package/lib/chain/options.d.ts.map +1 -1
  233. package/lib/chain/options.js.map +1 -1
  234. package/lib/chain/prepareNextSlot.d.ts +1 -2
  235. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  236. package/lib/chain/prepareNextSlot.js +3 -3
  237. package/lib/chain/prepareNextSlot.js.map +1 -1
  238. package/lib/chain/produceBlock/computeNewStateRoot.d.ts +9 -2
  239. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  240. package/lib/chain/produceBlock/computeNewStateRoot.js +25 -2
  241. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  242. package/lib/chain/produceBlock/produceBlockBody.d.ts +23 -8
  243. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  244. package/lib/chain/produceBlock/produceBlockBody.js +124 -14
  245. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  246. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
  247. package/lib/chain/regen/errors.d.ts.map +1 -1
  248. package/lib/chain/regen/errors.js +2 -1
  249. package/lib/chain/regen/errors.js.map +1 -1
  250. package/lib/chain/regen/interface.js +4 -2
  251. package/lib/chain/regen/interface.js.map +1 -1
  252. package/lib/chain/regen/queued.d.ts.map +1 -1
  253. package/lib/chain/regen/queued.js +4 -1
  254. package/lib/chain/regen/queued.js.map +1 -1
  255. package/lib/chain/regen/regen.d.ts.map +1 -1
  256. package/lib/chain/regen/regen.js +6 -2
  257. package/lib/chain/regen/regen.js.map +1 -1
  258. package/lib/chain/reprocess.d.ts.map +1 -1
  259. package/lib/chain/reprocess.js +2 -1
  260. package/lib/chain/reprocess.js.map +1 -1
  261. package/lib/chain/seenCache/seenAggregateAndProof.d.ts.map +1 -1
  262. package/lib/chain/seenCache/seenAggregateAndProof.js.map +1 -1
  263. package/lib/chain/seenCache/seenAttestationData.d.ts.map +1 -1
  264. package/lib/chain/seenCache/seenAttestationData.js +2 -1
  265. package/lib/chain/seenCache/seenAttestationData.js.map +1 -1
  266. package/lib/chain/seenCache/seenAttesters.d.ts.map +1 -1
  267. package/lib/chain/seenCache/seenAttesters.js.map +1 -1
  268. package/lib/chain/seenCache/seenBlockAttesters.d.ts.map +1 -1
  269. package/lib/chain/seenCache/seenBlockAttesters.js.map +1 -1
  270. package/lib/chain/seenCache/seenBlockProposers.d.ts.map +1 -1
  271. package/lib/chain/seenCache/seenBlockProposers.js.map +1 -1
  272. package/lib/chain/seenCache/seenCommittee.d.ts.map +1 -1
  273. package/lib/chain/seenCache/seenCommittee.js.map +1 -1
  274. package/lib/chain/seenCache/seenCommitteeContribution.d.ts.map +1 -1
  275. package/lib/chain/seenCache/seenCommitteeContribution.js.map +1 -1
  276. package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts.map +1 -1
  277. package/lib/chain/seenCache/seenExecutionPayloadBids.js.map +1 -1
  278. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts.map +1 -1
  279. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js.map +1 -1
  280. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +7 -3
  281. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  282. package/lib/chain/seenCache/seenGossipBlockInput.js +38 -16
  283. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  284. package/lib/chain/serializeState.js +1 -0
  285. package/lib/chain/serializeState.js.map +1 -1
  286. package/lib/chain/shufflingCache.d.ts.map +1 -1
  287. package/lib/chain/shufflingCache.js +2 -1
  288. package/lib/chain/shufflingCache.js.map +1 -1
  289. package/lib/chain/stateCache/datastore/db.d.ts.map +1 -1
  290. package/lib/chain/stateCache/datastore/db.js.map +1 -1
  291. package/lib/chain/stateCache/datastore/file.d.ts.map +1 -1
  292. package/lib/chain/stateCache/datastore/file.js.map +1 -1
  293. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
  294. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  295. package/lib/chain/stateCache/mapMetrics.d.ts.map +1 -1
  296. package/lib/chain/stateCache/mapMetrics.js.map +1 -1
  297. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +1 -41
  298. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  299. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  300. package/lib/chain/stateCache/types.js +2 -1
  301. package/lib/chain/stateCache/types.js.map +1 -1
  302. package/lib/chain/validation/aggregateAndProof.js +1 -1
  303. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  304. package/lib/chain/validation/attestation.d.ts.map +1 -1
  305. package/lib/chain/validation/attestation.js +14 -7
  306. package/lib/chain/validation/attestation.js.map +1 -1
  307. package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
  308. package/lib/chain/validation/attesterSlashing.js +9 -2
  309. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  310. package/lib/chain/validation/blobSidecar.js +2 -2
  311. package/lib/chain/validation/blobSidecar.js.map +1 -1
  312. package/lib/chain/validation/block.d.ts.map +1 -1
  313. package/lib/chain/validation/block.js +6 -3
  314. package/lib/chain/validation/block.js.map +1 -1
  315. package/lib/chain/validation/blsToExecutionChange.js.map +1 -1
  316. package/lib/chain/validation/dataColumnSidecar.d.ts +4 -3
  317. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  318. package/lib/chain/validation/dataColumnSidecar.js +125 -108
  319. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  320. package/lib/chain/validation/executionPayloadBid.js +1 -2
  321. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  322. package/lib/chain/validation/executionPayloadEnvelope.js +4 -4
  323. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  324. package/lib/chain/validation/lightClientFinalityUpdate.js.map +1 -1
  325. package/lib/chain/validation/lightClientOptimisticUpdate.js.map +1 -1
  326. package/lib/chain/validation/payloadAttestationMessage.js +9 -3
  327. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  328. package/lib/chain/validation/proposerSlashing.js +1 -1
  329. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  330. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  331. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  332. package/lib/chain/validation/signatureSets/selectionProof.js.map +1 -1
  333. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  334. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  335. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  336. package/lib/chain/validation/syncCommittee.js.map +1 -1
  337. package/lib/chain/validation/syncCommitteeContributionAndProof.js +1 -1
  338. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  339. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  340. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  341. package/lib/chain/validatorMonitor.js +2 -1
  342. package/lib/chain/validatorMonitor.js.map +1 -1
  343. package/lib/constants/network.js +4 -2
  344. package/lib/constants/network.js.map +1 -1
  345. package/lib/db/beacon.d.ts +3 -1
  346. package/lib/db/beacon.d.ts.map +1 -1
  347. package/lib/db/beacon.js +5 -1
  348. package/lib/db/beacon.js.map +1 -1
  349. package/lib/db/buckets.d.ts +24 -22
  350. package/lib/db/buckets.d.ts.map +1 -1
  351. package/lib/db/buckets.js +4 -1
  352. package/lib/db/buckets.js.map +1 -1
  353. package/lib/db/index.d.ts +1 -0
  354. package/lib/db/index.d.ts.map +1 -1
  355. package/lib/db/index.js +1 -0
  356. package/lib/db/index.js.map +1 -1
  357. package/lib/db/interface.d.ts +3 -1
  358. package/lib/db/interface.d.ts.map +1 -1
  359. package/lib/db/repositories/attesterSlashing.d.ts.map +1 -1
  360. package/lib/db/repositories/attesterSlashing.js.map +1 -1
  361. package/lib/db/repositories/backfilledRanges.d.ts.map +1 -1
  362. package/lib/db/repositories/backfilledRanges.js.map +1 -1
  363. package/lib/db/repositories/blobSidecars.d.ts.map +1 -1
  364. package/lib/db/repositories/blobSidecars.js.map +1 -1
  365. package/lib/db/repositories/blobSidecarsArchive.d.ts.map +1 -1
  366. package/lib/db/repositories/blobSidecarsArchive.js.map +1 -1
  367. package/lib/db/repositories/block.d.ts.map +1 -1
  368. package/lib/db/repositories/block.js.map +1 -1
  369. package/lib/db/repositories/blockArchive.d.ts.map +1 -1
  370. package/lib/db/repositories/blockArchive.js +1 -2
  371. package/lib/db/repositories/blockArchive.js.map +1 -1
  372. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  373. package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
  374. package/lib/db/repositories/blockArchiveIndex.js.map +1 -1
  375. package/lib/db/repositories/blsToExecutionChange.d.ts.map +1 -1
  376. package/lib/db/repositories/blsToExecutionChange.js.map +1 -1
  377. package/lib/db/repositories/checkpointState.d.ts.map +1 -1
  378. package/lib/db/repositories/checkpointState.js.map +1 -1
  379. package/lib/db/repositories/dataColumnSidecar.d.ts +5 -3
  380. package/lib/db/repositories/dataColumnSidecar.d.ts.map +1 -1
  381. package/lib/db/repositories/dataColumnSidecar.js +14 -1
  382. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  383. package/lib/db/repositories/dataColumnSidecarArchive.d.ts +5 -3
  384. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  385. package/lib/db/repositories/dataColumnSidecarArchive.js +14 -1
  386. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  387. package/lib/db/repositories/executionPayloadEnvelope.d.ts +19 -0
  388. package/lib/db/repositories/executionPayloadEnvelope.d.ts.map +1 -0
  389. package/lib/db/repositories/executionPayloadEnvelope.js +22 -0
  390. package/lib/db/repositories/executionPayloadEnvelope.js.map +1 -0
  391. package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts +18 -0
  392. package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts.map +1 -0
  393. package/lib/db/repositories/executionPayloadEnvelopeArchive.js +28 -0
  394. package/lib/db/repositories/executionPayloadEnvelopeArchive.js.map +1 -0
  395. package/lib/db/repositories/index.d.ts +2 -0
  396. package/lib/db/repositories/index.d.ts.map +1 -1
  397. package/lib/db/repositories/index.js +2 -0
  398. package/lib/db/repositories/index.js.map +1 -1
  399. package/lib/db/repositories/lightclientBestUpdate.d.ts.map +1 -1
  400. package/lib/db/repositories/lightclientBestUpdate.js.map +1 -1
  401. package/lib/db/repositories/lightclientCheckpointHeader.d.ts.map +1 -1
  402. package/lib/db/repositories/lightclientCheckpointHeader.js.map +1 -1
  403. package/lib/db/repositories/lightclientSyncCommittee.d.ts.map +1 -1
  404. package/lib/db/repositories/lightclientSyncCommittee.js.map +1 -1
  405. package/lib/db/repositories/lightclientSyncCommitteeWitness.d.ts.map +1 -1
  406. package/lib/db/repositories/lightclientSyncCommitteeWitness.js.map +1 -1
  407. package/lib/db/repositories/proposerSlashing.d.ts.map +1 -1
  408. package/lib/db/repositories/proposerSlashing.js.map +1 -1
  409. package/lib/db/repositories/stateArchive.d.ts.map +1 -1
  410. package/lib/db/repositories/stateArchive.js.map +1 -1
  411. package/lib/db/repositories/stateArchiveIndex.js.map +1 -1
  412. package/lib/db/repositories/voluntaryExit.d.ts.map +1 -1
  413. package/lib/db/repositories/voluntaryExit.js.map +1 -1
  414. package/lib/execution/builder/cache.d.ts.map +1 -1
  415. package/lib/execution/builder/cache.js.map +1 -1
  416. package/lib/execution/builder/http.d.ts.map +1 -1
  417. package/lib/execution/builder/http.js +2 -1
  418. package/lib/execution/builder/http.js.map +1 -1
  419. package/lib/execution/builder/index.js.map +1 -1
  420. package/lib/execution/builder/utils.js.map +1 -1
  421. package/lib/execution/engine/disabled.d.ts.map +1 -1
  422. package/lib/execution/engine/disabled.js.map +1 -1
  423. package/lib/execution/engine/http.d.ts +1 -0
  424. package/lib/execution/engine/http.d.ts.map +1 -1
  425. package/lib/execution/engine/http.js +3 -0
  426. package/lib/execution/engine/http.js.map +1 -1
  427. package/lib/execution/engine/index.js.map +1 -1
  428. package/lib/execution/engine/interface.js +4 -2
  429. package/lib/execution/engine/interface.js.map +1 -1
  430. package/lib/execution/engine/jsonRpcHttpClient.d.ts +10 -15
  431. package/lib/execution/engine/jsonRpcHttpClient.d.ts.map +1 -1
  432. package/lib/execution/engine/jsonRpcHttpClient.js +2 -1
  433. package/lib/execution/engine/jsonRpcHttpClient.js.map +1 -1
  434. package/lib/execution/engine/jwt.js.map +1 -1
  435. package/lib/execution/engine/mock.d.ts.map +1 -1
  436. package/lib/execution/engine/mock.js.map +1 -1
  437. package/lib/execution/engine/payloadIdCache.d.ts.map +1 -1
  438. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  439. package/lib/execution/engine/types.js.map +1 -1
  440. package/lib/execution/engine/utils.d.ts +1 -1
  441. package/lib/execution/engine/utils.d.ts.map +1 -1
  442. package/lib/execution/engine/utils.js.map +1 -1
  443. package/lib/metrics/metrics/beacon.d.ts +3 -1
  444. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  445. package/lib/metrics/metrics/beacon.js +14 -3
  446. package/lib/metrics/metrics/beacon.js.map +1 -1
  447. package/lib/metrics/metrics/lodestar.d.ts +21 -11
  448. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  449. package/lib/metrics/metrics/lodestar.js +48 -24
  450. package/lib/metrics/metrics/lodestar.js.map +1 -1
  451. package/lib/metrics/metrics.js.map +1 -1
  452. package/lib/metrics/nodeJsMetrics.js.map +1 -1
  453. package/lib/metrics/server/http.d.ts +1 -1
  454. package/lib/metrics/server/http.d.ts.map +1 -1
  455. package/lib/metrics/server/http.js.map +1 -1
  456. package/lib/metrics/utils/avgMinMax.d.ts.map +1 -1
  457. package/lib/metrics/utils/avgMinMax.js.map +1 -1
  458. package/lib/metrics/utils/gauge.d.ts.map +1 -1
  459. package/lib/metrics/utils/gauge.js.map +1 -1
  460. package/lib/metrics/utils/registryMetricCreator.d.ts.map +1 -1
  461. package/lib/metrics/utils/registryMetricCreator.js.map +1 -1
  462. package/lib/monitoring/clientStats.js.map +1 -1
  463. package/lib/monitoring/properties.d.ts.map +1 -1
  464. package/lib/monitoring/properties.js.map +1 -1
  465. package/lib/monitoring/service.d.ts +2 -2
  466. package/lib/monitoring/service.d.ts.map +1 -1
  467. package/lib/monitoring/service.js +3 -2
  468. package/lib/monitoring/service.js.map +1 -1
  469. package/lib/monitoring/system.d.ts.map +1 -1
  470. package/lib/monitoring/system.js.map +1 -1
  471. package/lib/monitoring/types.js +4 -2
  472. package/lib/monitoring/types.js.map +1 -1
  473. package/lib/network/core/events.d.ts +1 -3
  474. package/lib/network/core/events.d.ts.map +1 -1
  475. package/lib/network/core/events.js +4 -2
  476. package/lib/network/core/events.js.map +1 -1
  477. package/lib/network/core/metrics.d.ts +6 -7
  478. package/lib/network/core/metrics.d.ts.map +1 -1
  479. package/lib/network/core/metrics.js.map +1 -1
  480. package/lib/network/core/networkCore.d.ts +4 -4
  481. package/lib/network/core/networkCore.d.ts.map +1 -1
  482. package/lib/network/core/networkCore.js.map +1 -1
  483. package/lib/network/core/networkCoreWorker.js.map +1 -1
  484. package/lib/network/core/networkCoreWorkerHandler.d.ts +3 -3
  485. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +1 -1
  486. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  487. package/lib/network/core/types.d.ts +2 -2
  488. package/lib/network/core/types.d.ts.map +1 -1
  489. package/lib/network/discv5/index.d.ts +1 -3
  490. package/lib/network/discv5/index.d.ts.map +1 -1
  491. package/lib/network/discv5/index.js.map +1 -1
  492. package/lib/network/discv5/utils.d.ts +1 -1
  493. package/lib/network/discv5/utils.d.ts.map +1 -1
  494. package/lib/network/discv5/utils.js +7 -5
  495. package/lib/network/discv5/utils.js.map +1 -1
  496. package/lib/network/discv5/worker.js.map +1 -1
  497. package/lib/network/events.d.ts +3 -4
  498. package/lib/network/events.d.ts.map +1 -1
  499. package/lib/network/events.js +4 -2
  500. package/lib/network/events.js.map +1 -1
  501. package/lib/network/forks.js.map +1 -1
  502. package/lib/network/gossip/encoding.d.ts +3 -3
  503. package/lib/network/gossip/encoding.d.ts.map +1 -1
  504. package/lib/network/gossip/encoding.js.map +1 -1
  505. package/lib/network/gossip/errors.d.ts.map +1 -1
  506. package/lib/network/gossip/errors.js.map +1 -1
  507. package/lib/network/gossip/gossipsub.d.ts +13 -4
  508. package/lib/network/gossip/gossipsub.d.ts.map +1 -1
  509. package/lib/network/gossip/gossipsub.js +56 -26
  510. package/lib/network/gossip/gossipsub.js.map +1 -1
  511. package/lib/network/gossip/interface.d.ts +6 -6
  512. package/lib/network/gossip/interface.d.ts.map +1 -1
  513. package/lib/network/gossip/interface.js +4 -2
  514. package/lib/network/gossip/interface.js.map +1 -1
  515. package/lib/network/gossip/metrics.d.ts +12 -14
  516. package/lib/network/gossip/metrics.d.ts.map +1 -1
  517. package/lib/network/gossip/metrics.js.map +1 -1
  518. package/lib/network/gossip/scoringParameters.d.ts +2 -2
  519. package/lib/network/gossip/scoringParameters.d.ts.map +1 -1
  520. package/lib/network/gossip/scoringParameters.js +1 -1
  521. package/lib/network/gossip/scoringParameters.js.map +1 -1
  522. package/lib/network/gossip/topic.d.ts +3166 -3169
  523. package/lib/network/gossip/topic.d.ts.map +1 -1
  524. package/lib/network/gossip/topic.js +2 -2
  525. package/lib/network/gossip/topic.js.map +1 -1
  526. package/lib/network/interface.d.ts +6 -5
  527. package/lib/network/interface.d.ts.map +1 -1
  528. package/lib/network/libp2p/error.js +2 -1
  529. package/lib/network/libp2p/error.js.map +1 -1
  530. package/lib/network/libp2p/index.d.ts +2 -2
  531. package/lib/network/libp2p/index.d.ts.map +1 -1
  532. package/lib/network/libp2p/index.js +42 -19
  533. package/lib/network/libp2p/index.js.map +1 -1
  534. package/lib/network/metadata.d.ts +1 -0
  535. package/lib/network/metadata.d.ts.map +1 -1
  536. package/lib/network/metadata.js +5 -2
  537. package/lib/network/metadata.js.map +1 -1
  538. package/lib/network/network.d.ts +6 -5
  539. package/lib/network/network.d.ts.map +1 -1
  540. package/lib/network/network.js +11 -2
  541. package/lib/network/network.js.map +1 -1
  542. package/lib/network/options.d.ts +2 -0
  543. package/lib/network/options.d.ts.map +1 -1
  544. package/lib/network/options.js +6 -0
  545. package/lib/network/options.js.map +1 -1
  546. package/lib/network/peers/client.js +2 -1
  547. package/lib/network/peers/client.js.map +1 -1
  548. package/lib/network/peers/datastore.d.ts +7 -8
  549. package/lib/network/peers/datastore.d.ts.map +1 -1
  550. package/lib/network/peers/datastore.js +10 -10
  551. package/lib/network/peers/datastore.js.map +1 -1
  552. package/lib/network/peers/discover.d.ts +2 -7
  553. package/lib/network/peers/discover.d.ts.map +1 -1
  554. package/lib/network/peers/discover.js +45 -12
  555. package/lib/network/peers/discover.js.map +1 -1
  556. package/lib/network/peers/peerManager.d.ts +3 -1
  557. package/lib/network/peers/peerManager.d.ts.map +1 -1
  558. package/lib/network/peers/peerManager.js +103 -53
  559. package/lib/network/peers/peerManager.js.map +1 -1
  560. package/lib/network/peers/peersData.d.ts.map +1 -1
  561. package/lib/network/peers/peersData.js +2 -1
  562. package/lib/network/peers/peersData.js.map +1 -1
  563. package/lib/network/peers/score/interface.js +4 -2
  564. package/lib/network/peers/score/interface.js.map +1 -1
  565. package/lib/network/peers/score/score.d.ts.map +1 -1
  566. package/lib/network/peers/score/score.js.map +1 -1
  567. package/lib/network/peers/score/store.d.ts.map +1 -1
  568. package/lib/network/peers/score/store.js.map +1 -1
  569. package/lib/network/peers/score/utils.js.map +1 -1
  570. package/lib/network/peers/utils/assertPeerRelevance.js +2 -1
  571. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  572. package/lib/network/peers/utils/enrSubnetsDeserialize.js.map +1 -1
  573. package/lib/network/peers/utils/getConnectedPeerIds.js.map +1 -1
  574. package/lib/network/peers/utils/prioritizePeers.d.ts +3 -3
  575. package/lib/network/peers/utils/prioritizePeers.d.ts.map +1 -1
  576. package/lib/network/peers/utils/prioritizePeers.js +2 -1
  577. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  578. package/lib/network/peers/utils/subnetMap.d.ts.map +1 -1
  579. package/lib/network/peers/utils/subnetMap.js.map +1 -1
  580. package/lib/network/processor/aggregatorTracker.d.ts.map +1 -1
  581. package/lib/network/processor/aggregatorTracker.js.map +1 -1
  582. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  583. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  584. package/lib/network/processor/gossipHandlers.js +9 -2
  585. package/lib/network/processor/gossipHandlers.js.map +1 -1
  586. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  587. package/lib/network/processor/gossipQueues/indexed.d.ts.map +1 -1
  588. package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
  589. package/lib/network/processor/gossipQueues/linear.d.ts.map +1 -1
  590. package/lib/network/processor/gossipQueues/linear.js.map +1 -1
  591. package/lib/network/processor/gossipQueues/types.js +4 -2
  592. package/lib/network/processor/gossipQueues/types.js.map +1 -1
  593. package/lib/network/processor/gossipValidatorFn.js +1 -1
  594. package/lib/network/processor/gossipValidatorFn.js.map +1 -1
  595. package/lib/network/processor/index.d.ts.map +1 -1
  596. package/lib/network/processor/index.js +4 -2
  597. package/lib/network/processor/index.js.map +1 -1
  598. package/lib/network/processor/types.d.ts +1 -1
  599. package/lib/network/processor/types.d.ts.map +1 -1
  600. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  601. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  602. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  603. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +3 -2
  604. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  605. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
  606. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +1 -1
  607. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +3 -2
  608. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
  609. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +1 -1
  610. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
  611. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
  612. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +3 -2
  613. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  614. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +1 -1
  615. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  616. package/lib/network/reqresp/handlers/index.js.map +1 -1
  617. package/lib/network/reqresp/handlers/lightClientBootstrap.js.map +1 -1
  618. package/lib/network/reqresp/handlers/lightClientFinalityUpdate.js.map +1 -1
  619. package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.js.map +1 -1
  620. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.js.map +1 -1
  621. package/lib/network/reqresp/interface.js +2 -1
  622. package/lib/network/reqresp/interface.js.map +1 -1
  623. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  624. package/lib/network/reqresp/protocols.js.map +1 -1
  625. package/lib/network/reqresp/rateLimit.js.map +1 -1
  626. package/lib/network/reqresp/score.d.ts.map +1 -1
  627. package/lib/network/reqresp/score.js +0 -1
  628. package/lib/network/reqresp/score.js.map +1 -1
  629. package/lib/network/reqresp/types.js +4 -2
  630. package/lib/network/reqresp/types.js.map +1 -1
  631. package/lib/network/reqresp/utils/collect.d.ts +1 -1
  632. package/lib/network/reqresp/utils/collect.js.map +1 -1
  633. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.d.ts +1 -1
  634. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.js +2 -1
  635. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.js.map +1 -1
  636. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts +1 -1
  637. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts.map +1 -1
  638. package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -1
  639. package/lib/network/statusCache.d.ts.map +1 -1
  640. package/lib/network/statusCache.js.map +1 -1
  641. package/lib/network/subnets/attnetsService.d.ts.map +1 -1
  642. package/lib/network/subnets/attnetsService.js +2 -1
  643. package/lib/network/subnets/attnetsService.js.map +1 -1
  644. package/lib/network/subnets/interface.js.map +1 -1
  645. package/lib/network/subnets/syncnetsService.d.ts.map +1 -1
  646. package/lib/network/subnets/syncnetsService.js.map +1 -1
  647. package/lib/network/subnets/util.js.map +1 -1
  648. package/lib/network/util.js +2 -2
  649. package/lib/network/util.js.map +1 -1
  650. package/lib/node/nodejs.d.ts +4 -6
  651. package/lib/node/nodejs.d.ts.map +1 -1
  652. package/lib/node/nodejs.js +8 -5
  653. package/lib/node/nodejs.js.map +1 -1
  654. package/lib/node/notifier.js.map +1 -1
  655. package/lib/node/utils/interop/deposits.js.map +1 -1
  656. package/lib/node/utils/interop/state.d.ts +1 -1
  657. package/lib/node/utils/interop/state.d.ts.map +1 -1
  658. package/lib/node/utils/interop/state.js.map +1 -1
  659. package/lib/node/utils/lightclient.js.map +1 -1
  660. package/lib/node/utils/state.js.map +1 -1
  661. package/lib/sync/backfill/backfill.d.ts +1 -10
  662. package/lib/sync/backfill/backfill.d.ts.map +1 -1
  663. package/lib/sync/backfill/backfill.js +6 -3
  664. package/lib/sync/backfill/backfill.js.map +1 -1
  665. package/lib/sync/backfill/errors.js +2 -1
  666. package/lib/sync/backfill/errors.js.map +1 -1
  667. package/lib/sync/backfill/verify.js.map +1 -1
  668. package/lib/sync/interface.js +2 -1
  669. package/lib/sync/interface.js.map +1 -1
  670. package/lib/sync/range/batch.d.ts.map +1 -1
  671. package/lib/sync/range/batch.js +4 -2
  672. package/lib/sync/range/batch.js.map +1 -1
  673. package/lib/sync/range/chain.d.ts +0 -10
  674. package/lib/sync/range/chain.d.ts.map +1 -1
  675. package/lib/sync/range/chain.js +2 -1
  676. package/lib/sync/range/chain.js.map +1 -1
  677. package/lib/sync/range/range.d.ts +1 -3
  678. package/lib/sync/range/range.d.ts.map +1 -1
  679. package/lib/sync/range/range.js +5 -2
  680. package/lib/sync/range/range.js.map +1 -1
  681. package/lib/sync/range/utils/batches.js.map +1 -1
  682. package/lib/sync/range/utils/chainTarget.js.map +1 -1
  683. package/lib/sync/range/utils/hashBlocks.js.map +1 -1
  684. package/lib/sync/range/utils/peerBalancer.d.ts.map +1 -1
  685. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  686. package/lib/sync/range/utils/updateChains.js.map +1 -1
  687. package/lib/sync/sync.d.ts.map +1 -1
  688. package/lib/sync/sync.js.map +1 -1
  689. package/lib/sync/types.js +4 -2
  690. package/lib/sync/types.js.map +1 -1
  691. package/lib/sync/unknownBlock.d.ts +0 -14
  692. package/lib/sync/unknownBlock.d.ts.map +1 -1
  693. package/lib/sync/unknownBlock.js.map +1 -1
  694. package/lib/sync/utils/downloadByRange.d.ts +8 -5
  695. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  696. package/lib/sync/utils/downloadByRange.js +8 -6
  697. package/lib/sync/utils/downloadByRange.js.map +1 -1
  698. package/lib/sync/utils/downloadByRoot.d.ts +8 -8
  699. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  700. package/lib/sync/utils/downloadByRoot.js +3 -2
  701. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  702. package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
  703. package/lib/sync/utils/remoteSyncType.d.ts +1 -1
  704. package/lib/sync/utils/remoteSyncType.d.ts.map +1 -1
  705. package/lib/sync/utils/remoteSyncType.js +4 -2
  706. package/lib/sync/utils/remoteSyncType.js.map +1 -1
  707. package/lib/util/address.js.map +1 -1
  708. package/lib/util/array.d.ts.map +1 -1
  709. package/lib/util/array.js.map +1 -1
  710. package/lib/util/asyncIterableToEvents.d.ts.map +1 -1
  711. package/lib/util/asyncIterableToEvents.js +2 -1
  712. package/lib/util/asyncIterableToEvents.js.map +1 -1
  713. package/lib/util/binarySearch.d.ts.map +1 -1
  714. package/lib/util/binarySearch.js.map +1 -1
  715. package/lib/util/bitArray.js +2 -1
  716. package/lib/util/bitArray.js.map +1 -1
  717. package/lib/util/blobs.d.ts +2 -2
  718. package/lib/util/blobs.d.ts.map +1 -1
  719. package/lib/util/blobs.js.map +1 -1
  720. package/lib/util/bufferPool.d.ts.map +1 -1
  721. package/lib/util/bufferPool.js +2 -1
  722. package/lib/util/bufferPool.js.map +1 -1
  723. package/lib/util/chunkify.js.map +1 -1
  724. package/lib/util/clock.d.ts +6 -0
  725. package/lib/util/clock.d.ts.map +1 -1
  726. package/lib/util/clock.js +11 -4
  727. package/lib/util/clock.js.map +1 -1
  728. package/lib/util/dataColumns.d.ts +11 -3
  729. package/lib/util/dataColumns.d.ts.map +1 -1
  730. package/lib/util/dataColumns.js +36 -3
  731. package/lib/util/dataColumns.js.map +1 -1
  732. package/lib/util/dependentRoot.js.map +1 -1
  733. package/lib/util/enum.js.map +1 -1
  734. package/lib/util/error.js.map +1 -1
  735. package/lib/util/eventLoop.js.map +1 -1
  736. package/lib/util/execution.d.ts.map +1 -1
  737. package/lib/util/execution.js +19 -9
  738. package/lib/util/execution.js.map +1 -1
  739. package/lib/util/file.js.map +1 -1
  740. package/lib/util/forkChoice.js.map +1 -1
  741. package/lib/util/forkName.js.map +1 -1
  742. package/lib/util/graffiti.js.map +1 -1
  743. package/lib/util/hex.js.map +1 -1
  744. package/lib/util/ip.js.map +1 -1
  745. package/lib/util/itTrigger.d.ts.map +1 -1
  746. package/lib/util/itTrigger.js.map +1 -1
  747. package/lib/util/map.d.ts.map +1 -1
  748. package/lib/util/map.js.map +1 -1
  749. package/lib/util/metadata.js.map +1 -1
  750. package/lib/util/multifork.d.ts +8 -0
  751. package/lib/util/multifork.d.ts.map +1 -1
  752. package/lib/util/multifork.js +37 -0
  753. package/lib/util/multifork.js.map +1 -1
  754. package/lib/util/numpy.js.map +1 -1
  755. package/lib/util/peerId.js.map +1 -1
  756. package/lib/util/profile.js +2 -1
  757. package/lib/util/profile.js.map +1 -1
  758. package/lib/util/promises.js.map +1 -1
  759. package/lib/util/queue/errors.js +2 -1
  760. package/lib/util/queue/errors.js.map +1 -1
  761. package/lib/util/queue/fnQueue.d.ts.map +1 -1
  762. package/lib/util/queue/fnQueue.js.map +1 -1
  763. package/lib/util/queue/itemQueue.d.ts.map +1 -1
  764. package/lib/util/queue/itemQueue.js.map +1 -1
  765. package/lib/util/queue/options.js +2 -1
  766. package/lib/util/queue/options.js.map +1 -1
  767. package/lib/util/serializedCache.d.ts +4 -4
  768. package/lib/util/serializedCache.d.ts.map +1 -1
  769. package/lib/util/serializedCache.js +6 -4
  770. package/lib/util/serializedCache.js.map +1 -1
  771. package/lib/util/set.d.ts.map +1 -1
  772. package/lib/util/set.js.map +1 -1
  773. package/lib/util/shuffle.js.map +1 -1
  774. package/lib/util/sortBy.js.map +1 -1
  775. package/lib/util/sszBytes.js.map +1 -1
  776. package/lib/util/time.js.map +1 -1
  777. package/lib/util/timeSeries.d.ts.map +1 -1
  778. package/lib/util/timeSeries.js.map +1 -1
  779. package/lib/util/types.d.ts.map +1 -1
  780. package/lib/util/workerEvents.d.ts +1 -1
  781. package/lib/util/workerEvents.d.ts.map +1 -1
  782. package/lib/util/workerEvents.js.map +1 -1
  783. package/lib/util/wrapError.js.map +1 -1
  784. package/package.json +42 -44
  785. package/src/api/impl/beacon/blocks/index.ts +158 -3
  786. package/src/api/impl/beacon/state/index.ts +8 -8
  787. package/src/api/impl/beacon/state/utils.ts +15 -29
  788. package/src/api/impl/debug/index.ts +9 -5
  789. package/src/api/impl/node/utils.ts +3 -3
  790. package/src/api/impl/validator/index.ts +153 -17
  791. package/src/chain/archiveStore/archiveStore.ts +15 -5
  792. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +10 -11
  793. package/src/chain/archiveStore/historicalState/worker.ts +3 -3
  794. package/src/chain/archiveStore/utils/archiveBlocks.ts +4 -5
  795. package/src/chain/archiveStore/utils/archivePayloads.ts +15 -0
  796. package/src/chain/archiveStore/utils/updateBackfillRange.ts +1 -1
  797. package/src/chain/blocks/blockInput/blockInput.ts +103 -3
  798. package/src/chain/blocks/blockInput/types.ts +18 -0
  799. package/src/chain/blocks/importBlock.ts +36 -5
  800. package/src/chain/blocks/verifyBlocksDataAvailability.ts +3 -0
  801. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +9 -2
  802. package/src/chain/blocks/verifyBlocksSanityChecks.ts +7 -2
  803. package/src/chain/blocks/writeBlockInputToDb.ts +105 -104
  804. package/src/chain/bls/multithread/index.ts +7 -7
  805. package/src/chain/bls/multithread/jobItem.ts +3 -3
  806. package/src/chain/bls/singleThread.ts +5 -5
  807. package/src/chain/bls/utils.ts +8 -5
  808. package/src/chain/chain.ts +86 -47
  809. package/src/chain/emitter.ts +5 -5
  810. package/src/chain/errors/executionPayloadBid.ts +1 -1
  811. package/src/chain/errors/executionPayloadEnvelope.ts +6 -2
  812. package/src/chain/errors/payloadAttestation.ts +1 -1
  813. package/src/chain/forkChoice/index.ts +39 -21
  814. package/src/chain/interface.ts +4 -11
  815. package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
  816. package/src/chain/options.ts +1 -0
  817. package/src/chain/prepareNextSlot.ts +5 -5
  818. package/src/chain/produceBlock/computeNewStateRoot.ts +36 -3
  819. package/src/chain/produceBlock/produceBlockBody.ts +170 -14
  820. package/src/chain/regen/queued.ts +7 -2
  821. package/src/chain/regen/regen.ts +9 -3
  822. package/src/chain/seenCache/seenGossipBlockInput.ts +56 -18
  823. package/src/chain/validation/aggregateAndProof.ts +1 -1
  824. package/src/chain/validation/attestation.ts +14 -7
  825. package/src/chain/validation/attesterSlashing.ts +10 -1
  826. package/src/chain/validation/blobSidecar.ts +2 -2
  827. package/src/chain/validation/block.ts +9 -4
  828. package/src/chain/validation/dataColumnSidecar.ts +149 -132
  829. package/src/chain/validation/executionPayloadBid.ts +1 -2
  830. package/src/chain/validation/executionPayloadEnvelope.ts +4 -4
  831. package/src/chain/validation/payloadAttestationMessage.ts +10 -3
  832. package/src/chain/validation/proposerSlashing.ts +1 -1
  833. package/src/chain/validation/syncCommitteeContributionAndProof.ts +1 -1
  834. package/src/db/beacon.ts +8 -0
  835. package/src/db/buckets.ts +3 -0
  836. package/src/db/index.ts +1 -0
  837. package/src/db/interface.ts +5 -0
  838. package/src/db/repositories/blockArchive.ts +1 -2
  839. package/src/db/repositories/dataColumnSidecar.ts +18 -3
  840. package/src/db/repositories/dataColumnSidecarArchive.ts +18 -3
  841. package/src/db/repositories/executionPayloadEnvelope.ts +26 -0
  842. package/src/db/repositories/executionPayloadEnvelopeArchive.ts +32 -0
  843. package/src/db/repositories/index.ts +2 -0
  844. package/src/execution/engine/http.ts +3 -0
  845. package/src/metrics/metrics/beacon.ts +14 -3
  846. package/src/metrics/metrics/lodestar.ts +48 -24
  847. package/src/monitoring/service.ts +3 -2
  848. package/src/network/core/networkCore.ts +3 -3
  849. package/src/network/core/networkCoreWorkerHandler.ts +3 -3
  850. package/src/network/core/types.ts +2 -2
  851. package/src/network/discv5/utils.ts +5 -4
  852. package/src/network/events.ts +2 -1
  853. package/src/network/gossip/encoding.ts +3 -3
  854. package/src/network/gossip/gossipsub.ts +98 -32
  855. package/src/network/gossip/interface.ts +6 -6
  856. package/src/network/gossip/scoringParameters.ts +4 -4
  857. package/src/network/gossip/topic.ts +2 -1
  858. package/src/network/interface.ts +7 -4
  859. package/src/network/libp2p/index.ts +48 -21
  860. package/src/network/metadata.ts +1 -0
  861. package/src/network/network.ts +26 -7
  862. package/src/network/options.ts +8 -1
  863. package/src/network/peers/datastore.ts +13 -10
  864. package/src/network/peers/discover.ts +46 -11
  865. package/src/network/peers/peerManager.ts +118 -54
  866. package/src/network/peers/utils/prioritizePeers.ts +3 -3
  867. package/src/network/processor/gossipHandlers.ts +19 -4
  868. package/src/network/processor/gossipValidatorFn.ts +2 -2
  869. package/src/network/processor/types.ts +1 -1
  870. package/src/network/reqresp/ReqRespBeaconNode.ts +1 -1
  871. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +4 -3
  872. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +3 -2
  873. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +1 -1
  874. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +4 -3
  875. package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +2 -2
  876. package/src/network/reqresp/score.ts +0 -1
  877. package/src/network/reqresp/utils/collect.ts +1 -1
  878. package/src/network/reqresp/utils/collectSequentialBlocksInRange.ts +1 -1
  879. package/src/network/util.ts +2 -2
  880. package/src/node/nodejs.ts +8 -9
  881. package/src/sync/range/range.ts +1 -0
  882. package/src/sync/utils/downloadByRange.ts +12 -3
  883. package/src/sync/utils/downloadByRoot.ts +2 -2
  884. package/src/sync/utils/remoteSyncType.ts +1 -1
  885. package/src/util/blobs.ts +3 -3
  886. package/src/util/clock.ts +9 -4
  887. package/src/util/dataColumns.ts +43 -3
  888. package/src/util/execution.ts +23 -12
  889. package/src/util/multifork.ts +45 -0
  890. package/src/util/serializedCache.ts +7 -5
  891. package/src/util/workerEvents.ts +1 -1
@@ -1,18 +1,32 @@
1
1
  import path from "node:path";
2
2
  import {PrivateKey} from "@libp2p/interface";
3
- import {PubkeyIndexMap} from "@chainsafe/pubkey-index-map";
4
3
  import {CompositeTypeAny, TreeView, Type} from "@chainsafe/ssz";
5
4
  import {BeaconConfig} from "@lodestar/config";
6
- import {CheckpointWithHex, IForkChoice, ProtoBlock, UpdateHeadOpt} from "@lodestar/fork-choice";
5
+ import {
6
+ CheckpointWithHex,
7
+ CheckpointWithPayloadStatus,
8
+ IForkChoice,
9
+ ProtoBlock,
10
+ UpdateHeadOpt,
11
+ } from "@lodestar/fork-choice";
7
12
  import {LoggerNode} from "@lodestar/logger/node";
8
- import {EFFECTIVE_BALANCE_INCREMENT, GENESIS_SLOT, SLOTS_PER_EPOCH, isForkPostElectra} from "@lodestar/params";
13
+ import {
14
+ BUILDER_INDEX_SELF_BUILD,
15
+ EFFECTIVE_BALANCE_INCREMENT,
16
+ ForkPostFulu,
17
+ GENESIS_SLOT,
18
+ SLOTS_PER_EPOCH,
19
+ isForkPostElectra,
20
+ isForkPostGloas,
21
+ } from "@lodestar/params";
9
22
  import {
10
23
  BeaconStateAllForks,
11
24
  BeaconStateElectra,
12
25
  CachedBeaconStateAllForks,
26
+ CachedBeaconStateGloas,
13
27
  EffectiveBalanceIncrements,
14
28
  EpochShuffling,
15
- Index2PubkeyCache,
29
+ PubkeyCache,
16
30
  computeAnchorCheckpoint,
17
31
  computeAttestationsRewards,
18
32
  computeBlockRewards,
@@ -28,6 +42,7 @@ import {
28
42
  BeaconBlock,
29
43
  BlindedBeaconBlock,
30
44
  BlindedBeaconBlockBody,
45
+ DataColumnSidecars,
31
46
  Epoch,
32
47
  Root,
33
48
  RootHex,
@@ -38,7 +53,7 @@ import {
38
53
  ValidatorIndex,
39
54
  Wei,
40
55
  deneb,
41
- fulu,
56
+ gloas,
42
57
  isBlindedBeaconBlock,
43
58
  phase0,
44
59
  rewards,
@@ -49,7 +64,7 @@ import {Logger, fromHex, gweiToWei, isErrorAborted, pruneSetToMax, sleep, toRoot
49
64
  import {ProcessShutdownCallback} from "@lodestar/validator";
50
65
  import {GENESIS_EPOCH, ZERO_HASH} from "../constants/index.js";
51
66
  import {IBeaconDb} from "../db/index.js";
52
- import {BLOB_SIDECARS_IN_WRAPPER_INDEX} from "../db/repositories/blobSidecars.ts";
67
+ import {BLOB_SIDECARS_IN_WRAPPER_INDEX} from "../db/repositories/blobSidecars.js";
53
68
  import {BuilderStatus} from "../execution/builder/http.js";
54
69
  import {IExecutionBuilder, IExecutionEngine} from "../execution/index.js";
55
70
  import {Metrics} from "../metrics/index.js";
@@ -60,15 +75,15 @@ import {CustodyConfig, getValidatorsCustodyRequirement} from "../util/dataColumn
60
75
  import {callInNextEventLoop} from "../util/eventLoop.js";
61
76
  import {ensureDir, writeIfNotExist} from "../util/file.js";
62
77
  import {isOptimisticBlock} from "../util/forkChoice.js";
63
- import {JobItemQueue} from "../util/queue/itemQueue.ts";
78
+ import {JobItemQueue} from "../util/queue/itemQueue.js";
64
79
  import {SerializedCache} from "../util/serializedCache.js";
65
- import {getSlotFromSignedBeaconBlockSerialized} from "../util/sszBytes.ts";
80
+ import {getSlotFromSignedBeaconBlockSerialized} from "../util/sszBytes.js";
66
81
  import {ArchiveStore} from "./archiveStore/archiveStore.js";
67
82
  import {CheckpointBalancesCache} from "./balancesCache.js";
68
83
  import {BeaconProposerCache} from "./beaconProposerCache.js";
69
84
  import {IBlockInput, isBlockInputBlobs, isBlockInputColumns} from "./blocks/blockInput/index.js";
70
85
  import {BlockProcessor, ImportBlockOpts} from "./blocks/index.js";
71
- import {persistBlockInputs} from "./blocks/writeBlockInputToDb.ts";
86
+ import {persistBlockInput} from "./blocks/writeBlockInputToDb.js";
72
87
  import {BlsMultiThreadWorkerPool, BlsSingleThreadVerifier, IBlsVerifier} from "./bls/index.js";
73
88
  import {ColumnReconstructionTracker} from "./ColumnReconstructionTracker.js";
74
89
  import {ChainEvent, ChainEventEmitter} from "./emitter.js";
@@ -87,8 +102,8 @@ import {
87
102
  } from "./opPools/index.js";
88
103
  import {IChainOptions} from "./options.js";
89
104
  import {PrepareNextSlotScheduler} from "./prepareNextSlot.js";
90
- import {computeNewStateRoot} from "./produceBlock/computeNewStateRoot.js";
91
- import {AssembledBlockType, BlockType, ProduceResult} from "./produceBlock/index.js";
105
+ import {computeEnvelopeStateRoot, computeNewStateRoot} from "./produceBlock/computeNewStateRoot.js";
106
+ import {AssembledBlockType, BlockType, ProduceFullGloas, ProduceResult} from "./produceBlock/index.js";
92
107
  import {BlockAttributes, produceBlockBody, produceCommonBlockBody} from "./produceBlock/produceBlockBody.js";
93
108
  import {QueuedStateRegenerator, RegenCaller} from "./regen/index.js";
94
109
  import {ReprocessController} from "./reprocess.js";
@@ -155,7 +170,7 @@ export class BeaconChain implements IBeaconChain {
155
170
  readonly lightClientServer?: LightClientServer;
156
171
  readonly reprocessController: ReprocessController;
157
172
  readonly archiveStore: ArchiveStore;
158
- readonly unfinalizedBlockWrites: JobItemQueue<[IBlockInput[]], void>;
173
+ readonly unfinalizedBlockWrites: JobItemQueue<[IBlockInput], void>;
159
174
 
160
175
  // Ops pool
161
176
  readonly attestationPool: AttestationPool;
@@ -182,8 +197,7 @@ export class BeaconChain implements IBeaconChain {
182
197
  readonly seenBlockAttesters = new SeenBlockAttesters();
183
198
 
184
199
  // Global state caches
185
- readonly pubkey2index: PubkeyIndexMap;
186
- readonly index2pubkey: Index2PubkeyCache;
200
+ readonly pubkeyCache: PubkeyCache;
187
201
 
188
202
  readonly beaconProposerCache: BeaconProposerCache;
189
203
  readonly checkpointBalancesCache: CheckpointBalancesCache;
@@ -229,8 +243,7 @@ export class BeaconChain implements IBeaconChain {
229
243
  {
230
244
  privateKey,
231
245
  config,
232
- pubkey2index,
233
- index2pubkey,
246
+ pubkeyCache,
234
247
  db,
235
248
  dbName,
236
249
  dataDir,
@@ -246,8 +259,7 @@ export class BeaconChain implements IBeaconChain {
246
259
  }: {
247
260
  privateKey: PrivateKey;
248
261
  config: BeaconConfig;
249
- pubkey2index: PubkeyIndexMap;
250
- index2pubkey: Index2PubkeyCache;
262
+ pubkeyCache: PubkeyCache;
251
263
  db: IBeaconDb;
252
264
  dbName: string;
253
265
  dataDir: string;
@@ -279,8 +291,8 @@ export class BeaconChain implements IBeaconChain {
279
291
  const emitter = new ChainEventEmitter();
280
292
  // by default, verify signatures on both main threads and worker threads
281
293
  const bls = opts.blsVerifyAllMainThread
282
- ? new BlsSingleThreadVerifier({metrics, index2pubkey})
283
- : new BlsMultiThreadWorkerPool(opts, {logger, metrics, index2pubkey});
294
+ ? new BlsSingleThreadVerifier({metrics, pubkeyCache})
295
+ : new BlsMultiThreadWorkerPool(opts, {logger, metrics, pubkeyCache});
284
296
 
285
297
  if (!clock) clock = new Clock({config, genesisTime: this.genesisTime, signal});
286
298
 
@@ -299,7 +311,9 @@ export class BeaconChain implements IBeaconChain {
299
311
 
300
312
  const nodeId = computeNodeIdFromPrivateKey(privateKey);
301
313
  const initialCustodyGroupCount = opts.initialCustodyGroupCount ?? config.CUSTODY_REQUIREMENT;
302
- this.metrics?.peerDas.targetCustodyGroupCount.set(initialCustodyGroupCount);
314
+ this.metrics?.peerDas.custodyGroupCount.set(initialCustodyGroupCount);
315
+ // TODO: backfill not implemented yet
316
+ this.metrics?.peerDas.custodyGroupsBackfilled.set(0);
303
317
  this.custodyConfig = new CustodyConfig({
304
318
  nodeId,
305
319
  config,
@@ -308,12 +322,14 @@ export class BeaconChain implements IBeaconChain {
308
322
 
309
323
  this.beaconProposerCache = new BeaconProposerCache(opts);
310
324
  this.checkpointBalancesCache = new CheckpointBalancesCache();
325
+ this.serializedCache = new SerializedCache();
311
326
  this.seenBlockInputCache = new SeenBlockInput({
312
327
  config,
313
328
  custodyConfig: this.custodyConfig,
314
329
  clock,
315
330
  chainEvents: emitter,
316
331
  signal,
332
+ serializedCache: this.serializedCache,
317
333
  metrics,
318
334
  logger,
319
335
  });
@@ -336,8 +352,7 @@ export class BeaconChain implements IBeaconChain {
336
352
  ]);
337
353
 
338
354
  // Global cache of validators pubkey/index mapping
339
- this.pubkey2index = pubkey2index;
340
- this.index2pubkey = index2pubkey;
355
+ this.pubkeyCache = pubkeyCache;
341
356
 
342
357
  const fileDataStore = opts.nHistoricalStatesFileDataStore ?? true;
343
358
  const blockStateCache = new FIFOBlockStateCache(this.opts, {metrics});
@@ -401,8 +416,6 @@ export class BeaconChain implements IBeaconChain {
401
416
  this.bls = bls;
402
417
  this.emitter = emitter;
403
418
 
404
- this.serializedCache = new SerializedCache();
405
-
406
419
  this.getBlobsTracker = new GetBlobsTracker({
407
420
  logger,
408
421
  executionEngine: this.executionEngine,
@@ -424,7 +437,7 @@ export class BeaconChain implements IBeaconChain {
424
437
  );
425
438
 
426
439
  this.unfinalizedBlockWrites = new JobItemQueue(
427
- persistBlockInputs.bind(this),
440
+ persistBlockInput.bind(this),
428
441
  {
429
442
  maxLength: DEFAULT_MAX_PENDING_UNFINALIZED_BLOCK_WRITES,
430
443
  signal,
@@ -595,7 +608,7 @@ export class BeaconChain implements IBeaconChain {
595
608
  ): Promise<{state: CachedBeaconStateAllForks | Uint8Array; executionOptimistic: boolean; finalized: boolean} | null> {
596
609
  if (opts?.allowRegen) {
597
610
  const state = await this.regen.getState(stateRoot, RegenCaller.restApi);
598
- const block = this.forkChoice.getBlock(state.latestBlockHeader.hashTreeRoot());
611
+ const block = this.forkChoice.getBlockDefaultStatus(state.latestBlockHeader.hashTreeRoot());
599
612
  const finalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
600
613
  return {
601
614
  state,
@@ -611,7 +624,7 @@ export class BeaconChain implements IBeaconChain {
611
624
  // TODO: This is very inneficient for debug requests of serialized content, since it deserializes to serialize again
612
625
  const cachedStateCtx = this.regen.getStateSync(stateRoot);
613
626
  if (cachedStateCtx) {
614
- const block = this.forkChoice.getBlock(cachedStateCtx.latestBlockHeader.hashTreeRoot());
627
+ const block = this.forkChoice.getBlockDefaultStatus(cachedStateCtx.latestBlockHeader.hashTreeRoot());
615
628
  const finalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
616
629
  return {
617
630
  state: cachedStateCtx,
@@ -645,7 +658,7 @@ export class BeaconChain implements IBeaconChain {
645
658
  // finalized or justified checkpoint states maynot be available with PersistentCheckpointStateCache, use getCheckpointStateOrBytes() api to get Uint8Array
646
659
  const cachedStateCtx = this.regen.getCheckpointStateSync(checkpoint);
647
660
  if (cachedStateCtx) {
648
- const block = this.forkChoice.getBlock(cachedStateCtx.latestBlockHeader.hashTreeRoot());
661
+ const block = this.forkChoice.getBlockDefaultStatus(cachedStateCtx.latestBlockHeader.hashTreeRoot());
649
662
  const finalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
650
663
  return {
651
664
  state: cachedStateCtx,
@@ -662,7 +675,7 @@ export class BeaconChain implements IBeaconChain {
662
675
  ): Promise<{state: CachedBeaconStateAllForks | Uint8Array; executionOptimistic: boolean; finalized: boolean} | null> {
663
676
  const cachedStateCtx = await this.regen.getCheckpointStateOrBytes(checkpoint);
664
677
  if (cachedStateCtx) {
665
- const block = this.forkChoice.getBlock(checkpoint.root);
678
+ const block = this.forkChoice.getBlockDefaultStatus(checkpoint.root);
666
679
  const finalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
667
680
  return {
668
681
  state: cachedStateCtx,
@@ -706,7 +719,7 @@ export class BeaconChain implements IBeaconChain {
706
719
  async getBlockByRoot(
707
720
  root: string
708
721
  ): Promise<{block: SignedBeaconBlock; executionOptimistic: boolean; finalized: boolean} | null> {
709
- const block = this.forkChoice.getBlockHex(root);
722
+ const block = this.forkChoice.getBlockHexDefaultStatus(root);
710
723
  if (block) {
711
724
  // Block found in fork-choice.
712
725
  // It may be in the block input cache, awaiting full DA reconstruction, check there first
@@ -730,7 +743,7 @@ export class BeaconChain implements IBeaconChain {
730
743
  async getSerializedBlockByRoot(
731
744
  root: string
732
745
  ): Promise<{block: Uint8Array; executionOptimistic: boolean; finalized: boolean; slot: Slot} | null> {
733
- const block = this.forkChoice.getBlockHex(root);
746
+ const block = this.forkChoice.getBlockHexDefaultStatus(root);
734
747
  if (block) {
735
748
  // Block found in fork-choice.
736
749
  // It may be in the block input cache, awaiting full DA reconstruction, check there first
@@ -808,7 +821,7 @@ export class BeaconChain implements IBeaconChain {
808
821
  return null;
809
822
  }
810
823
 
811
- async getDataColumnSidecars(blockSlot: Slot, blockRootHex: string): Promise<fulu.DataColumnSidecars> {
824
+ async getDataColumnSidecars(blockSlot: Slot, blockRootHex: string): Promise<DataColumnSidecars> {
812
825
  const blockInput = this.seenBlockInputCache.get(blockRootHex);
813
826
  if (blockInput) {
814
827
  if (!isBlockInputColumns(blockInput)) {
@@ -818,10 +831,10 @@ export class BeaconChain implements IBeaconChain {
818
831
  }
819
832
  const sidecarsUnfinalized = await this.db.dataColumnSidecar.values(fromHex(blockRootHex));
820
833
  if (sidecarsUnfinalized.length > 0) {
821
- return sidecarsUnfinalized;
834
+ return sidecarsUnfinalized as DataColumnSidecars;
822
835
  }
823
836
  const sidecarsFinalized = await this.db.dataColumnSidecarArchive.values(blockSlot);
824
- return sidecarsFinalized;
837
+ return sidecarsFinalized as DataColumnSidecars;
825
838
  }
826
839
 
827
840
  async getSerializedDataColumnSidecars(
@@ -843,7 +856,7 @@ export class BeaconChain implements IBeaconChain {
843
856
  if (serialized) {
844
857
  return serialized;
845
858
  }
846
- return ssz.fulu.DataColumnSidecar.serialize(sidecar);
859
+ return sszTypesFor(blockInput.forkName as ForkPostFulu).DataColumnSidecar.serialize(sidecar);
847
860
  });
848
861
  }
849
862
  const sidecarsUnfinalized = await this.db.dataColumnSidecar.getManyBinary(fromHex(blockRootHex), indices);
@@ -902,6 +915,7 @@ export class BeaconChain implements IBeaconChain {
902
915
  consensusBlockValue: Wei;
903
916
  shouldOverrideBuilder?: boolean;
904
917
  }> {
918
+ const fork = this.config.getForkName(slot);
905
919
  const state = await this.regen.getBlockSlotState(
906
920
  parentBlock,
907
921
  slot,
@@ -909,7 +923,7 @@ export class BeaconChain implements IBeaconChain {
909
923
  RegenCaller.produceBlock
910
924
  );
911
925
  const proposerIndex = state.epochCtx.getBeaconProposer(slot);
912
- const proposerPubKey = this.index2pubkey[proposerIndex].toBytes();
926
+ const proposerPubKey = this.pubkeyCache.getOrThrow(proposerIndex).toBytes();
913
927
 
914
928
  const {body, produceResult, executionPayloadValue, shouldOverrideBuilder} = await produceBlockBody.call(
915
929
  this,
@@ -930,7 +944,7 @@ export class BeaconChain implements IBeaconChain {
930
944
  // The hashtree root computed here for debug log will get cached and hence won't introduce additional delays
931
945
  const bodyRoot =
932
946
  produceResult.type === BlockType.Full
933
- ? this.config.getForkTypes(slot).BeaconBlockBody.hashTreeRoot(body)
947
+ ? sszTypesFor(fork).BeaconBlockBody.hashTreeRoot(body)
934
948
  : this.config
935
949
  .getPostBellatrixForkTypes(slot)
936
950
  .BlindedBeaconBlockBody.hashTreeRoot(body as BlindedBeaconBlockBody);
@@ -948,14 +962,33 @@ export class BeaconChain implements IBeaconChain {
948
962
  body,
949
963
  } as AssembledBlockType<T>;
950
964
 
951
- const {newStateRoot, proposerReward} = computeNewStateRoot(this.metrics, state, block);
965
+ const {newStateRoot, proposerReward, postState} = computeNewStateRoot(this.metrics, state, block);
952
966
  block.stateRoot = newStateRoot;
953
967
  const blockRoot =
954
968
  produceResult.type === BlockType.Full
955
- ? this.config.getForkTypes(slot).BeaconBlock.hashTreeRoot(block)
969
+ ? sszTypesFor(fork).BeaconBlock.hashTreeRoot(block)
956
970
  : this.config.getPostBellatrixForkTypes(slot).BlindedBeaconBlock.hashTreeRoot(block as BlindedBeaconBlock);
957
971
  const blockRootHex = toRootHex(blockRoot);
958
972
 
973
+ if (isForkPostGloas(fork)) {
974
+ // TODO GLOAS: we should retire BlockType post-gloas, may need a new enum for self vs non-self built
975
+ if (produceResult.type !== BlockType.Full) {
976
+ throw Error(`Unexpected block type=${produceResult.type} for post-gloas fork=${fork}`);
977
+ }
978
+
979
+ const gloasResult = produceResult as ProduceFullGloas;
980
+ const envelope: gloas.ExecutionPayloadEnvelope = {
981
+ payload: gloasResult.executionPayload,
982
+ executionRequests: gloasResult.executionRequests,
983
+ builderIndex: BUILDER_INDEX_SELF_BUILD,
984
+ beaconBlockRoot: blockRoot,
985
+ slot,
986
+ stateRoot: ZERO_HASH,
987
+ };
988
+ const envelopeStateRoot = computeEnvelopeStateRoot(this.metrics, postState as CachedBeaconStateGloas, envelope);
989
+ gloasResult.envelopeStateRoot = envelopeStateRoot;
990
+ }
991
+
959
992
  // Track the produced block for consensus broadcast validations, later validation, etc.
960
993
  this.blockProductionCache.set(blockRootHex, produceResult);
961
994
  this.metrics?.blockProductionCacheSize.set(this.blockProductionCache.size);
@@ -1161,7 +1194,7 @@ export class BeaconChain implements IBeaconChain {
1161
1194
  * @param blockState state that declares justified checkpoint `checkpoint`
1162
1195
  */
1163
1196
  private justifiedBalancesGetter(
1164
- checkpoint: CheckpointWithHex,
1197
+ checkpoint: CheckpointWithPayloadStatus,
1165
1198
  blockState: CachedBeaconStateAllForks
1166
1199
  ): EffectiveBalanceIncrements {
1167
1200
  this.metrics?.balancesCache.requests.inc();
@@ -1200,7 +1233,7 @@ export class BeaconChain implements IBeaconChain {
1200
1233
  * @param blockState state that declares justified checkpoint `checkpoint`
1201
1234
  */
1202
1235
  private closestJustifiedBalancesStateToCheckpoint(
1203
- checkpoint: CheckpointWithHex,
1236
+ checkpoint: CheckpointWithPayloadStatus,
1204
1237
  blockState: CachedBeaconStateAllForks
1205
1238
  ): {state: CachedBeaconStateAllForks; stateId: string; shouldWarn: boolean} {
1206
1239
  const state = this.regen.getCheckpointStateSync(checkpoint);
@@ -1214,7 +1247,10 @@ export class BeaconChain implements IBeaconChain {
1214
1247
  }
1215
1248
 
1216
1249
  // Find a state in the same branch of checkpoint at same epoch. Balances should exactly the same
1217
- for (const descendantBlock of this.forkChoice.forwardIterateDescendants(checkpoint.rootHex)) {
1250
+ for (const descendantBlock of this.forkChoice.forwardIterateDescendants(
1251
+ checkpoint.rootHex,
1252
+ checkpoint.payloadStatus
1253
+ )) {
1218
1254
  if (computeEpochAtSlot(descendantBlock.slot) === checkpoint.epoch) {
1219
1255
  const descendantBlockState = this.regen.getStateSync(descendantBlock.stateRoot);
1220
1256
  if (descendantBlockState) {
@@ -1230,7 +1266,10 @@ export class BeaconChain implements IBeaconChain {
1230
1266
 
1231
1267
  // Find a state in the same branch of checkpoint at a latter epoch. Balances are not the same, but should be close
1232
1268
  // Note: must call .forwardIterateDescendants() again since nodes are not sorted
1233
- for (const descendantBlock of this.forkChoice.forwardIterateDescendants(checkpoint.rootHex)) {
1269
+ for (const descendantBlock of this.forkChoice.forwardIterateDescendants(
1270
+ checkpoint.rootHex,
1271
+ checkpoint.payloadStatus
1272
+ )) {
1234
1273
  if (computeEpochAtSlot(descendantBlock.slot) > checkpoint.epoch) {
1235
1274
  const descendantBlockState = this.regen.getStateSync(descendantBlock.stateRoot);
1236
1275
  if (descendantBlockState) {
@@ -1436,7 +1475,7 @@ export class BeaconChain implements IBeaconChain {
1436
1475
  // Only update if target is increased
1437
1476
  if (targetCustodyGroupCount > this.custodyConfig.targetCustodyGroupCount) {
1438
1477
  this.custodyConfig.updateTargetCustodyGroupCount(targetCustodyGroupCount);
1439
- this.metrics?.peerDas.targetCustodyGroupCount.set(targetCustodyGroupCount);
1478
+ this.metrics?.peerDas.custodyGroupCount.set(targetCustodyGroupCount);
1440
1479
  this.logger.verbose("Updated target custody group count", {
1441
1480
  finalizedEpoch: finalizedCheckpoint.epoch,
1442
1481
  validatorCount: validatorIndices.length,
@@ -1506,7 +1545,7 @@ export class BeaconChain implements IBeaconChain {
1506
1545
  throw Error(`State is not in cache for slot ${slot}`);
1507
1546
  }
1508
1547
 
1509
- const rewards = await computeAttestationsRewards(this.config, this.pubkey2index, cachedState, validatorIds);
1548
+ const rewards = await computeAttestationsRewards(this.config, this.pubkeyCache, cachedState, validatorIds);
1510
1549
 
1511
1550
  return {rewards, executionOptimistic, finalized};
1512
1551
  }
@@ -1523,6 +1562,6 @@ export class BeaconChain implements IBeaconChain {
1523
1562
 
1524
1563
  preState = processSlots(preState, block.slot); // Dial preState's slot to block.slot
1525
1564
 
1526
- return computeSyncCommitteeRewards(this.config, this.index2pubkey, block, preState, validatorIds);
1565
+ return computeSyncCommitteeRewards(this.config, this.pubkeyCache, block, preState, validatorIds);
1527
1566
  }
1528
1567
  }
@@ -1,9 +1,9 @@
1
1
  import {EventEmitter} from "node:events";
2
2
  import {StrictEventEmitter} from "strict-event-emitter-types";
3
3
  import {routes} from "@lodestar/api";
4
- import {CheckpointWithHex} from "@lodestar/fork-choice";
4
+ import {CheckpointWithPayloadStatus} from "@lodestar/fork-choice";
5
5
  import {CachedBeaconStateAllForks} from "@lodestar/state-transition";
6
- import {RootHex, deneb, fulu, phase0} from "@lodestar/types";
6
+ import {DataColumnSidecars, RootHex, deneb, phase0} from "@lodestar/types";
7
7
  import {PeerIdStr} from "../util/peerId.js";
8
8
  import {BlockInputSource, IBlockInput} from "./blocks/blockInput/types.js";
9
9
 
@@ -83,12 +83,12 @@ export type ChainEventData = {
83
83
  export type IChainEvents = ApiEvents & {
84
84
  [ChainEvent.checkpoint]: (checkpoint: phase0.Checkpoint, state: CachedBeaconStateAllForks) => void;
85
85
 
86
- [ChainEvent.forkChoiceJustified]: (checkpoint: CheckpointWithHex) => void;
87
- [ChainEvent.forkChoiceFinalized]: (checkpoint: CheckpointWithHex) => void;
86
+ [ChainEvent.forkChoiceJustified]: (checkpoint: CheckpointWithPayloadStatus) => void;
87
+ [ChainEvent.forkChoiceFinalized]: (checkpoint: CheckpointWithPayloadStatus) => void;
88
88
 
89
89
  [ChainEvent.updateTargetCustodyGroupCount]: (targetGroupCount: number) => void;
90
90
 
91
- [ChainEvent.publishDataColumns]: (sidecars: fulu.DataColumnSidecar[]) => void;
91
+ [ChainEvent.publishDataColumns]: (sidecars: DataColumnSidecars) => void;
92
92
 
93
93
  [ChainEvent.publishBlobSidecars]: (sidecars: deneb.BlobSidecar[]) => void;
94
94
 
@@ -1,5 +1,5 @@
1
1
  import {BuilderIndex, RootHex, Slot} from "@lodestar/types";
2
- import {GossipActionError} from "./gossipValidation.ts";
2
+ import {GossipActionError} from "./gossipValidation.js";
3
3
 
4
4
  export enum ExecutionPayloadBidErrorCode {
5
5
  BUILDER_NOT_ELIGIBLE = "EXECUTION_PAYLOAD_BID_ERROR_BUILDER_NOT_ELIGIBLE",
@@ -25,9 +25,13 @@ export type ExecutionPayloadEnvelopeErrorType =
25
25
  | {
26
26
  code: ExecutionPayloadEnvelopeErrorCode.BUILDER_INDEX_MISMATCH;
27
27
  envelopeBuilderIndex: BuilderIndex;
28
- bidBuilderIndex: BuilderIndex;
28
+ bidBuilderIndex: BuilderIndex | null;
29
+ }
30
+ | {
31
+ code: ExecutionPayloadEnvelopeErrorCode.BLOCK_HASH_MISMATCH;
32
+ envelopeBlockHash: RootHex;
33
+ bidBlockHash: RootHex | null;
29
34
  }
30
- | {code: ExecutionPayloadEnvelopeErrorCode.BLOCK_HASH_MISMATCH; envelopeBlockHash: RootHex; bidBlockHash: RootHex}
31
35
  | {code: ExecutionPayloadEnvelopeErrorCode.INVALID_SIGNATURE}
32
36
  | {code: ExecutionPayloadEnvelopeErrorCode.CACHE_FAIL; blockRoot: RootHex};
33
37
 
@@ -1,5 +1,5 @@
1
1
  import {RootHex, Slot, ValidatorIndex} from "@lodestar/types";
2
- import {GossipActionError} from "./gossipValidation.ts";
2
+ import {GossipActionError} from "./gossipValidation.js";
3
3
 
4
4
  export enum PayloadAttestationErrorCode {
5
5
  NOT_CURRENT_SLOT = "PAYLOAD_ATTESTATION_ERROR_NOT_CURRENT_SLOT",
@@ -4,9 +4,11 @@ import {
4
4
  ForkChoice,
5
5
  ForkChoiceStore,
6
6
  JustifiedBalancesGetter,
7
+ PayloadStatus,
7
8
  ProtoArray,
8
9
  ProtoBlock,
9
10
  ForkChoiceOpts as RawForkChoiceOpts,
11
+ getCheckpointPayloadStatus,
10
12
  } from "@lodestar/fork-choice";
11
13
  import {ZERO_HASH_HEX} from "@lodestar/params";
12
14
  import {
@@ -104,6 +106,14 @@ export function initializeForkChoiceFromFinalizedState(
104
106
  // production code use ForkChoice constructor directly
105
107
  const forkchoiceConstructor = opts.forkchoiceConstructor ?? ForkChoice;
106
108
 
109
+ const isForkPostGloas = (state as CachedBeaconStateGloas).latestBlockHash !== undefined;
110
+
111
+ // Determine justified checkpoint payload status
112
+ const justifiedPayloadStatus = getCheckpointPayloadStatus(state, justifiedCheckpoint.epoch);
113
+
114
+ // Determine finalized checkpoint payload status
115
+ const finalizedPayloadStatus = getCheckpointPayloadStatus(state, finalizedCheckpoint.epoch);
116
+
107
117
  return new forkchoiceConstructor(
108
118
  config,
109
119
 
@@ -113,6 +123,8 @@ export function initializeForkChoiceFromFinalizedState(
113
123
  finalizedCheckpoint,
114
124
  justifiedBalances,
115
125
  justifiedBalancesGetter,
126
+ justifiedPayloadStatus,
127
+ finalizedPayloadStatus,
116
128
  {
117
129
  onJustified: (cp) => emitter.emit(ChainEvent.forkChoiceJustified, cp),
118
130
  onFinalized: (cp) => emitter.emit(ChainEvent.forkChoiceFinalized, cp),
@@ -145,15 +157,12 @@ export function initializeForkChoiceFromFinalizedState(
145
157
  : {executionPayloadBlockHash: null, executionStatus: ExecutionStatus.PreMerge}),
146
158
 
147
159
  dataAvailabilityStatus: DataAvailabilityStatus.PreData,
148
- ...(computeEpochAtSlot(blockHeader.slot) < state.config.GLOAS_FORK_EPOCH
149
- ? {
150
- builderIndex: undefined,
151
- blockHashHex: undefined,
152
- }
153
- : {
154
- builderIndex: (state as CachedBeaconStateGloas).latestExecutionPayloadBid.builderIndex,
155
- blockHashHex: toRootHex((state as CachedBeaconStateGloas).latestExecutionPayloadBid.blockHash),
156
- }),
160
+ payloadStatus: isForkPostGloas ? PayloadStatus.PENDING : PayloadStatus.FULL, // TODO GLOAS: Post-gloas how do we know if the checkpoint payload is FULL or EMPTY?
161
+ builderIndex: isForkPostGloas ? (state as CachedBeaconStateGloas).latestExecutionPayloadBid.builderIndex : null,
162
+ blockHashFromBid: isForkPostGloas
163
+ ? toRootHex((state as CachedBeaconStateGloas).latestExecutionPayloadBid.blockHash)
164
+ : null,
165
+ parentBlockHash: isForkPostGloas ? toRootHex((state as CachedBeaconStateGloas).latestBlockHash) : null,
157
166
  },
158
167
  currentSlot
159
168
  ),
@@ -196,12 +205,22 @@ export function initializeForkChoiceFromUnfinalizedState(
196
205
 
197
206
  // this is not the justified state, but there is no other ways to get justified balances
198
207
  const justifiedBalances = getEffectiveBalanceIncrementsZeroInactive(unfinalizedState);
208
+
209
+ const isForkPostGloas = (unfinalizedState as CachedBeaconStateGloas).latestBlockHash !== undefined;
210
+
211
+ // For unfinalized state, use getCheckpointPayloadStatus to determine the correct status.
212
+ // It checks state.execution_payload_availability to determine EMPTY vs FULL.
213
+ const justifiedPayloadStatus = getCheckpointPayloadStatus(unfinalizedState, justifiedCheckpoint.epoch);
214
+ const finalizedPayloadStatus = getCheckpointPayloadStatus(unfinalizedState, finalizedCheckpoint.epoch);
215
+
199
216
  const store = new ForkChoiceStore(
200
217
  currentSlot,
201
218
  justifiedCheckpoint,
202
219
  finalizedCheckpoint,
203
220
  justifiedBalances,
204
221
  justifiedBalancesGetter,
222
+ justifiedPayloadStatus,
223
+ finalizedPayloadStatus,
205
224
  {
206
225
  onJustified: (cp) => emitter.emit(ChainEvent.forkChoiceJustified, cp),
207
226
  onFinalized: (cp) => emitter.emit(ChainEvent.forkChoiceFinalized, cp),
@@ -235,15 +254,14 @@ export function initializeForkChoiceFromUnfinalizedState(
235
254
  : {executionPayloadBlockHash: null, executionStatus: ExecutionStatus.PreMerge}),
236
255
 
237
256
  dataAvailabilityStatus: DataAvailabilityStatus.PreData,
238
- ...(computeEpochAtSlot(blockHeader.slot) < unfinalizedState.config.GLOAS_FORK_EPOCH
239
- ? {
240
- builderIndex: undefined,
241
- blockHashHex: undefined,
242
- }
243
- : {
244
- builderIndex: (unfinalizedState as CachedBeaconStateGloas).latestExecutionPayloadBid.builderIndex,
245
- blockHashHex: toRootHex((unfinalizedState as CachedBeaconStateGloas).latestExecutionPayloadBid.blockHash),
246
- }),
257
+ payloadStatus: isForkPostGloas ? PayloadStatus.PENDING : PayloadStatus.FULL, // TODO GLOAS: Post-gloas how do we know if the checkpoint payload is FULL or EMPTY?
258
+ builderIndex: isForkPostGloas
259
+ ? (unfinalizedState as CachedBeaconStateGloas).latestExecutionPayloadBid.builderIndex
260
+ : null,
261
+ blockHashFromBid: isForkPostGloas
262
+ ? toRootHex((unfinalizedState as CachedBeaconStateGloas).latestExecutionPayloadBid.blockHash)
263
+ : null,
264
+ parentBlockHash: isForkPostGloas ? toRootHex((unfinalizedState as CachedBeaconStateGloas).latestBlockHash) : null,
247
265
  };
248
266
 
249
267
  const parentSlot = blockHeader.slot - 1;
@@ -285,9 +303,9 @@ export function initializeForkChoiceFromUnfinalizedState(
285
303
  };
286
304
 
287
305
  const protoArray = ProtoArray.initialize(finalizedBlock, currentSlot);
288
- protoArray.onBlock(justifiedBlock, currentSlot);
289
- protoArray.onBlock(parentBlock, currentSlot);
290
- protoArray.onBlock(headBlock, currentSlot);
306
+ protoArray.onBlock(justifiedBlock, currentSlot, null);
307
+ protoArray.onBlock(parentBlock, currentSlot, null);
308
+ protoArray.onBlock(headBlock, currentSlot, null);
291
309
 
292
310
  logger?.verbose("Initialized protoArray successfully", {...logCtx, length: protoArray.length()});
293
311
 
@@ -1,16 +1,11 @@
1
- import {PubkeyIndexMap} from "@chainsafe/pubkey-index-map";
2
1
  import {CompositeTypeAny, TreeView, Type} from "@chainsafe/ssz";
3
2
  import {BeaconConfig} from "@lodestar/config";
4
3
  import {CheckpointWithHex, IForkChoice, ProtoBlock} from "@lodestar/fork-choice";
5
- import {
6
- BeaconStateAllForks,
7
- CachedBeaconStateAllForks,
8
- EpochShuffling,
9
- Index2PubkeyCache,
10
- } from "@lodestar/state-transition";
4
+ import {BeaconStateAllForks, CachedBeaconStateAllForks, EpochShuffling, PubkeyCache} from "@lodestar/state-transition";
11
5
  import {
12
6
  BeaconBlock,
13
7
  BlindedBeaconBlock,
8
+ DataColumnSidecars,
14
9
  Epoch,
15
10
  Root,
16
11
  RootHex,
@@ -23,7 +18,6 @@ import {
23
18
  altair,
24
19
  capella,
25
20
  deneb,
26
- fulu,
27
21
  phase0,
28
22
  rewards,
29
23
  } from "@lodestar/types";
@@ -117,8 +111,7 @@ export interface IBeaconChain {
117
111
  readonly regen: IStateRegenerator;
118
112
  readonly lightClientServer?: LightClientServer;
119
113
  readonly reprocessController: ReprocessController;
120
- readonly pubkey2index: PubkeyIndexMap;
121
- readonly index2pubkey: Index2PubkeyCache;
114
+ readonly pubkeyCache: PubkeyCache;
122
115
  readonly archiveStore: IArchiveStore;
123
116
 
124
117
  // Ops pool
@@ -224,7 +217,7 @@ export interface IBeaconChain {
224
217
  ): Promise<{block: SignedBeaconBlock; executionOptimistic: boolean; finalized: boolean} | null>;
225
218
  getBlobSidecars(blockSlot: Slot, blockRootHex: string): Promise<deneb.BlobSidecars | null>;
226
219
  getSerializedBlobSidecars(blockSlot: Slot, blockRootHex: string): Promise<Uint8Array | null>;
227
- getDataColumnSidecars(blockSlot: Slot, blockRootHex: string): Promise<fulu.DataColumnSidecars>;
220
+ getDataColumnSidecars(blockSlot: Slot, blockRootHex: string): Promise<DataColumnSidecars>;
228
221
  getSerializedDataColumnSidecars(
229
222
  blockSlot: Slot,
230
223
  blockRootHex: string,
@@ -864,7 +864,7 @@ function isValidShuffling(
864
864
  // attestation's shuffling is the same as the current state's.
865
865
  // To account for skipped slots, find the first block at *or before* the pivot slot.
866
866
  const beaconBlockRootHex = blockRootHex;
867
- const beaconBlock = forkChoice.getBlockHex(beaconBlockRootHex);
867
+ const beaconBlock = forkChoice.getBlockHexDefaultStatus(beaconBlockRootHex);
868
868
  if (!beaconBlock) {
869
869
  return InvalidAttestationData.BlockNotInForkChoice;
870
870
  }
@@ -27,6 +27,7 @@ export type IChainOptions = BlockProcessOpts &
27
27
  blsVerifyAllMainThread?: boolean;
28
28
  blsVerifyAllMultiThread?: boolean;
29
29
  blacklistedBlocks?: string[];
30
+ // TODO GLOAS: add similar option for execution payload envelopes?
30
31
  persistProducedBlocks?: boolean;
31
32
  persistInvalidSszObjects?: boolean;
32
33
  persistInvalidSszObjectsDir?: string;