@lodestar/beacon-node 1.42.0-dev.4411584fd8 → 1.42.0-dev.47afaa6bb7

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 (505) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +60 -29
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
  5. package/lib/api/impl/beacon/pool/index.js +5 -1
  6. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  7. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  8. package/lib/api/impl/beacon/state/index.js +38 -40
  9. package/lib/api/impl/beacon/state/index.js.map +1 -1
  10. package/lib/api/impl/beacon/state/utils.d.ts +4 -4
  11. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  12. package/lib/api/impl/beacon/state/utils.js +7 -10
  13. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  14. package/lib/api/impl/debug/index.js.map +1 -1
  15. package/lib/api/impl/lodestar/index.d.ts.map +1 -1
  16. package/lib/api/impl/lodestar/index.js +8 -6
  17. package/lib/api/impl/lodestar/index.js.map +1 -1
  18. package/lib/api/impl/proof/index.d.ts.map +1 -1
  19. package/lib/api/impl/proof/index.js +2 -6
  20. package/lib/api/impl/proof/index.js.map +1 -1
  21. package/lib/api/impl/validator/index.d.ts.map +1 -1
  22. package/lib/api/impl/validator/index.js +35 -29
  23. package/lib/api/impl/validator/index.js.map +1 -1
  24. package/lib/api/impl/validator/utils.d.ts +2 -2
  25. package/lib/api/impl/validator/utils.d.ts.map +1 -1
  26. package/lib/api/impl/validator/utils.js +3 -3
  27. package/lib/api/impl/validator/utils.js.map +1 -1
  28. package/lib/chain/ColumnReconstructionTracker.d.ts +2 -1
  29. package/lib/chain/ColumnReconstructionTracker.d.ts.map +1 -1
  30. package/lib/chain/ColumnReconstructionTracker.js +5 -5
  31. package/lib/chain/ColumnReconstructionTracker.js.map +1 -1
  32. package/lib/chain/GetBlobsTracker.d.ts +2 -1
  33. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  34. package/lib/chain/GetBlobsTracker.js +14 -12
  35. package/lib/chain/GetBlobsTracker.js.map +1 -1
  36. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  37. package/lib/chain/archiveStore/archiveStore.js +1 -0
  38. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  39. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts +3 -7
  40. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +1 -1
  41. package/lib/chain/archiveStore/historicalState/getHistoricalState.js +8 -26
  42. package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
  43. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts +2 -2
  44. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts.map +1 -1
  45. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +1 -0
  46. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  47. package/lib/chain/archiveStore/historicalState/types.d.ts +2 -0
  48. package/lib/chain/archiveStore/historicalState/types.d.ts.map +1 -1
  49. package/lib/chain/archiveStore/historicalState/types.js.map +1 -1
  50. package/lib/chain/archiveStore/historicalState/worker.js +1 -3
  51. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  52. package/lib/chain/archiveStore/interface.d.ts +1 -0
  53. package/lib/chain/archiveStore/interface.d.ts.map +1 -1
  54. package/lib/chain/balancesCache.d.ts +2 -2
  55. package/lib/chain/balancesCache.d.ts.map +1 -1
  56. package/lib/chain/balancesCache.js +4 -4
  57. package/lib/chain/balancesCache.js.map +1 -1
  58. package/lib/chain/blocks/blockInput/blockInput.d.ts +5 -5
  59. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  60. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  61. package/lib/chain/blocks/blockInput/types.d.ts +5 -4
  62. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  63. package/lib/chain/blocks/blockInput/types.js +1 -0
  64. package/lib/chain/blocks/blockInput/types.js.map +1 -1
  65. package/lib/chain/blocks/importBlock.d.ts +3 -3
  66. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  67. package/lib/chain/blocks/importBlock.js +54 -24
  68. package/lib/chain/blocks/importBlock.js.map +1 -1
  69. package/lib/chain/blocks/importExecutionPayload.d.ts +50 -0
  70. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -0
  71. package/lib/chain/blocks/importExecutionPayload.js +195 -0
  72. package/lib/chain/blocks/importExecutionPayload.js.map +1 -0
  73. package/lib/chain/blocks/index.d.ts.map +1 -1
  74. package/lib/chain/blocks/index.js +3 -2
  75. package/lib/chain/blocks/index.js.map +1 -1
  76. package/lib/chain/blocks/payloadEnvelopeInput/index.d.ts +3 -0
  77. package/lib/chain/blocks/payloadEnvelopeInput/index.d.ts.map +1 -0
  78. package/lib/chain/blocks/payloadEnvelopeInput/index.js +3 -0
  79. package/lib/chain/blocks/payloadEnvelopeInput/index.js.map +1 -0
  80. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts +88 -0
  81. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts.map +1 -0
  82. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js +279 -0
  83. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js.map +1 -0
  84. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts +30 -0
  85. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts.map +1 -0
  86. package/lib/chain/blocks/payloadEnvelopeInput/types.js +11 -0
  87. package/lib/chain/blocks/payloadEnvelopeInput/types.js.map +1 -0
  88. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts +15 -0
  89. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts.map +1 -0
  90. package/lib/chain/blocks/payloadEnvelopeProcessor.js +46 -0
  91. package/lib/chain/blocks/payloadEnvelopeProcessor.js.map +1 -0
  92. package/lib/chain/blocks/types.d.ts +28 -15
  93. package/lib/chain/blocks/types.d.ts.map +1 -1
  94. package/lib/chain/blocks/types.js.map +1 -1
  95. package/lib/chain/blocks/utils/checkpoint.d.ts +2 -2
  96. package/lib/chain/blocks/utils/checkpoint.d.ts.map +1 -1
  97. package/lib/chain/blocks/utils/checkpoint.js.map +1 -1
  98. package/lib/chain/blocks/verifyBlock.d.ts +2 -2
  99. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  100. package/lib/chain/blocks/verifyBlock.js +4 -4
  101. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  102. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +5 -5
  103. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  104. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +5 -4
  105. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  106. package/lib/chain/blocks/verifyBlocksSignatures.d.ts +2 -2
  107. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  108. package/lib/chain/blocks/verifyBlocksSignatures.js +4 -2
  109. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  110. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts +3 -3
  111. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +1 -1
  112. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +3 -3
  113. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  114. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.d.ts +12 -0
  115. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.d.ts.map +1 -0
  116. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.js +40 -0
  117. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.js.map +1 -0
  118. package/lib/chain/chain.d.ts +22 -16
  119. package/lib/chain/chain.d.ts.map +1 -1
  120. package/lib/chain/chain.js +142 -69
  121. package/lib/chain/chain.js.map +1 -1
  122. package/lib/chain/emitter.d.ts +31 -9
  123. package/lib/chain/emitter.d.ts.map +1 -1
  124. package/lib/chain/emitter.js +12 -3
  125. package/lib/chain/emitter.js.map +1 -1
  126. package/lib/chain/errors/blockError.d.ts +10 -5
  127. package/lib/chain/errors/blockError.d.ts.map +1 -1
  128. package/lib/chain/errors/blockError.js +2 -0
  129. package/lib/chain/errors/blockError.js.map +1 -1
  130. package/lib/chain/errors/dataColumnSidecarError.d.ts +31 -1
  131. package/lib/chain/errors/dataColumnSidecarError.d.ts.map +1 -1
  132. package/lib/chain/errors/dataColumnSidecarError.js +7 -0
  133. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
  134. package/lib/chain/errors/executionPayloadEnvelope.d.ts +12 -2
  135. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  136. package/lib/chain/errors/executionPayloadEnvelope.js +3 -1
  137. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  138. package/lib/chain/forkChoice/index.d.ts +4 -4
  139. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  140. package/lib/chain/forkChoice/index.js +30 -34
  141. package/lib/chain/forkChoice/index.js.map +1 -1
  142. package/lib/chain/initState.d.ts +2 -2
  143. package/lib/chain/initState.d.ts.map +1 -1
  144. package/lib/chain/initState.js +1 -1
  145. package/lib/chain/initState.js.map +1 -1
  146. package/lib/chain/interface.d.ts +21 -17
  147. package/lib/chain/interface.d.ts.map +1 -1
  148. package/lib/chain/lightClient/index.d.ts +2 -2
  149. package/lib/chain/lightClient/index.d.ts.map +1 -1
  150. package/lib/chain/lightClient/index.js +11 -4
  151. package/lib/chain/lightClient/index.js.map +1 -1
  152. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +6 -6
  153. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  154. package/lib/chain/opPools/aggregatedAttestationPool.js +13 -13
  155. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  156. package/lib/chain/opPools/executionPayloadBidPool.d.ts +2 -2
  157. package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -1
  158. package/lib/chain/opPools/executionPayloadBidPool.js +2 -2
  159. package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -1
  160. package/lib/chain/opPools/opPool.d.ts +3 -3
  161. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  162. package/lib/chain/opPools/opPool.js +7 -7
  163. package/lib/chain/opPools/opPool.js.map +1 -1
  164. package/lib/chain/opPools/utils.d.ts +2 -2
  165. package/lib/chain/opPools/utils.d.ts.map +1 -1
  166. package/lib/chain/opPools/utils.js +1 -1
  167. package/lib/chain/opPools/utils.js.map +1 -1
  168. package/lib/chain/options.d.ts +1 -0
  169. package/lib/chain/options.d.ts.map +1 -1
  170. package/lib/chain/options.js +1 -0
  171. package/lib/chain/options.js.map +1 -1
  172. package/lib/chain/prepareNextSlot.d.ts +2 -2
  173. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  174. package/lib/chain/prepareNextSlot.js +10 -4
  175. package/lib/chain/prepareNextSlot.js.map +1 -1
  176. package/lib/chain/produceBlock/computeNewStateRoot.d.ts +4 -4
  177. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  178. package/lib/chain/produceBlock/computeNewStateRoot.js +14 -10
  179. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  180. package/lib/chain/produceBlock/produceBlockBody.d.ts +7 -7
  181. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  182. package/lib/chain/produceBlock/produceBlockBody.js +32 -17
  183. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  184. package/lib/chain/regen/interface.d.ts +15 -13
  185. package/lib/chain/regen/interface.d.ts.map +1 -1
  186. package/lib/chain/regen/interface.js +2 -0
  187. package/lib/chain/regen/interface.js.map +1 -1
  188. package/lib/chain/regen/queued.d.ts +14 -14
  189. package/lib/chain/regen/queued.d.ts.map +1 -1
  190. package/lib/chain/regen/queued.js.map +1 -1
  191. package/lib/chain/regen/regen.d.ts +6 -5
  192. package/lib/chain/regen/regen.d.ts.map +1 -1
  193. package/lib/chain/regen/regen.js +6 -6
  194. package/lib/chain/regen/regen.js.map +1 -1
  195. package/lib/chain/seenCache/index.d.ts +1 -1
  196. package/lib/chain/seenCache/index.d.ts.map +1 -1
  197. package/lib/chain/seenCache/index.js +1 -1
  198. package/lib/chain/seenCache/index.js.map +1 -1
  199. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +1 -1
  200. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  201. package/lib/chain/seenCache/seenGossipBlockInput.js +4 -4
  202. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  203. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts +38 -0
  204. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts.map +1 -0
  205. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js +76 -0
  206. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js.map +1 -0
  207. package/lib/chain/serializeState.d.ts +2 -2
  208. package/lib/chain/serializeState.d.ts.map +1 -1
  209. package/lib/chain/serializeState.js +1 -1
  210. package/lib/chain/serializeState.js.map +1 -1
  211. package/lib/chain/shufflingCache.d.ts +2 -2
  212. package/lib/chain/shufflingCache.d.ts.map +1 -1
  213. package/lib/chain/shufflingCache.js +3 -4
  214. package/lib/chain/shufflingCache.js.map +1 -1
  215. package/lib/chain/stateCache/fifoBlockStateCache.d.ts +6 -6
  216. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
  217. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  218. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +11 -11
  219. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  220. package/lib/chain/stateCache/persistentCheckpointsCache.js +12 -16
  221. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  222. package/lib/chain/stateCache/types.d.ts +14 -14
  223. package/lib/chain/stateCache/types.d.ts.map +1 -1
  224. package/lib/chain/stateCache/types.js.map +1 -1
  225. package/lib/chain/validation/attesterSlashing.js +3 -3
  226. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  227. package/lib/chain/validation/blobSidecar.js +1 -1
  228. package/lib/chain/validation/blobSidecar.js.map +1 -1
  229. package/lib/chain/validation/block.d.ts.map +1 -1
  230. package/lib/chain/validation/block.js +15 -6
  231. package/lib/chain/validation/block.js.map +1 -1
  232. package/lib/chain/validation/blsToExecutionChange.js +2 -2
  233. package/lib/chain/validation/blsToExecutionChange.js.map +1 -1
  234. package/lib/chain/validation/dataColumnSidecar.d.ts +11 -4
  235. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  236. package/lib/chain/validation/dataColumnSidecar.js +185 -6
  237. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  238. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  239. package/lib/chain/validation/executionPayloadBid.js +10 -7
  240. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  241. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  242. package/lib/chain/validation/executionPayloadEnvelope.js +34 -19
  243. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  244. package/lib/chain/validation/payloadAttestationMessage.js +5 -3
  245. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  246. package/lib/chain/validation/proposerSlashing.js +1 -1
  247. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  248. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts +2 -2
  249. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts.map +1 -1
  250. package/lib/chain/validation/signatureSets/contributionAndProof.js +1 -1
  251. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  252. package/lib/chain/validation/signatureSets/syncCommittee.d.ts +2 -2
  253. package/lib/chain/validation/signatureSets/syncCommittee.d.ts.map +1 -1
  254. package/lib/chain/validation/signatureSets/syncCommittee.js +1 -1
  255. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  256. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts +2 -2
  257. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts.map +1 -1
  258. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  259. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts +2 -2
  260. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts.map +1 -1
  261. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js +1 -1
  262. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  263. package/lib/chain/validation/syncCommittee.d.ts +4 -4
  264. package/lib/chain/validation/syncCommittee.d.ts.map +1 -1
  265. package/lib/chain/validation/syncCommittee.js +17 -12
  266. package/lib/chain/validation/syncCommittee.js.map +1 -1
  267. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +1 -1
  268. package/lib/chain/validation/syncCommitteeContributionAndProof.js +5 -2
  269. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  270. package/lib/chain/validation/voluntaryExit.d.ts.map +1 -1
  271. package/lib/chain/validation/voluntaryExit.js +3 -3
  272. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  273. package/lib/chain/validatorMonitor.d.ts +5 -4
  274. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  275. package/lib/chain/validatorMonitor.js +14 -9
  276. package/lib/chain/validatorMonitor.js.map +1 -1
  277. package/lib/db/buckets.d.ts +2 -2
  278. package/lib/db/buckets.d.ts.map +1 -1
  279. package/lib/db/buckets.js +2 -2
  280. package/lib/db/buckets.js.map +1 -1
  281. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  282. package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
  283. package/lib/db/repositories/dataColumnSidecar.d.ts.map +1 -1
  284. package/lib/db/repositories/dataColumnSidecar.js +4 -2
  285. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  286. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  287. package/lib/db/repositories/dataColumnSidecarArchive.js +4 -2
  288. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  289. package/lib/metrics/metrics/lodestar.d.ts +60 -4
  290. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  291. package/lib/metrics/metrics/lodestar.js +126 -15
  292. package/lib/metrics/metrics/lodestar.js.map +1 -1
  293. package/lib/network/gossip/encoding.d.ts.map +1 -1
  294. package/lib/network/gossip/encoding.js +15 -0
  295. package/lib/network/gossip/encoding.js.map +1 -1
  296. package/lib/network/interface.d.ts +7 -4
  297. package/lib/network/interface.d.ts.map +1 -1
  298. package/lib/network/libp2p/index.d.ts.map +1 -1
  299. package/lib/network/libp2p/index.js +22 -11
  300. package/lib/network/libp2p/index.js.map +1 -1
  301. package/lib/network/network.d.ts +7 -4
  302. package/lib/network/network.d.ts.map +1 -1
  303. package/lib/network/network.js +12 -3
  304. package/lib/network/network.js.map +1 -1
  305. package/lib/network/options.d.ts.map +1 -1
  306. package/lib/network/options.js +7 -2
  307. package/lib/network/options.js.map +1 -1
  308. package/lib/network/processor/extractSlotRootFns.d.ts +1 -1
  309. package/lib/network/processor/extractSlotRootFns.d.ts.map +1 -1
  310. package/lib/network/processor/extractSlotRootFns.js +34 -4
  311. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  312. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  313. package/lib/network/processor/gossipHandlers.js +287 -70
  314. package/lib/network/processor/gossipHandlers.js.map +1 -1
  315. package/lib/network/processor/index.d.ts +22 -7
  316. package/lib/network/processor/index.d.ts.map +1 -1
  317. package/lib/network/processor/index.js +313 -80
  318. package/lib/network/processor/index.js.map +1 -1
  319. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  320. package/lib/network/reqresp/ReqRespBeaconNode.js +9 -0
  321. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  322. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.d.ts +8 -0
  323. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.d.ts.map +1 -0
  324. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js +69 -0
  325. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js.map +1 -0
  326. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.d.ts +6 -0
  327. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.d.ts.map +1 -0
  328. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js +28 -0
  329. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js.map +1 -0
  330. package/lib/network/reqresp/handlers/index.d.ts.map +1 -1
  331. package/lib/network/reqresp/handlers/index.js +11 -1
  332. package/lib/network/reqresp/handlers/index.js.map +1 -1
  333. package/lib/network/reqresp/protocols.d.ts +2 -0
  334. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  335. package/lib/network/reqresp/protocols.js +10 -0
  336. package/lib/network/reqresp/protocols.js.map +1 -1
  337. package/lib/network/reqresp/rateLimit.d.ts.map +1 -1
  338. package/lib/network/reqresp/rateLimit.js +8 -0
  339. package/lib/network/reqresp/rateLimit.js.map +1 -1
  340. package/lib/network/reqresp/score.d.ts.map +1 -1
  341. package/lib/network/reqresp/score.js +2 -0
  342. package/lib/network/reqresp/score.js.map +1 -1
  343. package/lib/network/reqresp/types.d.ts +10 -4
  344. package/lib/network/reqresp/types.d.ts.map +1 -1
  345. package/lib/network/reqresp/types.js +16 -4
  346. package/lib/network/reqresp/types.js.map +1 -1
  347. package/lib/node/nodejs.d.ts +2 -2
  348. package/lib/node/nodejs.d.ts.map +1 -1
  349. package/lib/node/nodejs.js +3 -3
  350. package/lib/node/nodejs.js.map +1 -1
  351. package/lib/node/notifier.d.ts.map +1 -1
  352. package/lib/node/notifier.js +3 -3
  353. package/lib/node/notifier.js.map +1 -1
  354. package/lib/sync/backfill/backfill.d.ts +2 -2
  355. package/lib/sync/backfill/backfill.d.ts.map +1 -1
  356. package/lib/sync/backfill/backfill.js +2 -2
  357. package/lib/sync/backfill/backfill.js.map +1 -1
  358. package/lib/sync/unknownBlock.d.ts +3 -9
  359. package/lib/sync/unknownBlock.d.ts.map +1 -1
  360. package/lib/sync/unknownBlock.js +10 -43
  361. package/lib/sync/unknownBlock.js.map +1 -1
  362. package/lib/sync/utils/downloadByRange.d.ts +3 -3
  363. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  364. package/lib/sync/utils/downloadByRange.js +4 -2
  365. package/lib/sync/utils/downloadByRange.js.map +1 -1
  366. package/lib/sync/utils/downloadByRoot.d.ts +3 -3
  367. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  368. package/lib/sync/utils/downloadByRoot.js +10 -5
  369. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  370. package/lib/util/blobs.d.ts +3 -3
  371. package/lib/util/blobs.d.ts.map +1 -1
  372. package/lib/util/blobs.js +21 -10
  373. package/lib/util/blobs.js.map +1 -1
  374. package/lib/util/dataColumns.d.ts +18 -11
  375. package/lib/util/dataColumns.d.ts.map +1 -1
  376. package/lib/util/dataColumns.js +51 -17
  377. package/lib/util/dataColumns.js.map +1 -1
  378. package/lib/util/execution.d.ts +6 -2
  379. package/lib/util/execution.d.ts.map +1 -1
  380. package/lib/util/execution.js +49 -25
  381. package/lib/util/execution.js.map +1 -1
  382. package/lib/util/sszBytes.d.ts +29 -2
  383. package/lib/util/sszBytes.d.ts.map +1 -1
  384. package/lib/util/sszBytes.js +258 -14
  385. package/lib/util/sszBytes.js.map +1 -1
  386. package/lib/util/types.d.ts +2 -0
  387. package/lib/util/types.d.ts.map +1 -1
  388. package/lib/util/types.js +1 -0
  389. package/lib/util/types.js.map +1 -1
  390. package/package.json +16 -16
  391. package/src/api/impl/beacon/blocks/index.ts +69 -33
  392. package/src/api/impl/beacon/pool/index.ts +5 -1
  393. package/src/api/impl/beacon/state/index.ts +43 -55
  394. package/src/api/impl/beacon/state/utils.ts +11 -25
  395. package/src/api/impl/debug/index.ts +2 -2
  396. package/src/api/impl/lodestar/index.ts +8 -8
  397. package/src/api/impl/proof/index.ts +2 -9
  398. package/src/api/impl/validator/index.ts +38 -43
  399. package/src/api/impl/validator/utils.ts +4 -7
  400. package/src/chain/ColumnReconstructionTracker.ts +6 -5
  401. package/src/chain/GetBlobsTracker.ts +14 -12
  402. package/src/chain/archiveStore/archiveStore.ts +1 -0
  403. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +10 -39
  404. package/src/chain/archiveStore/historicalState/historicalStateRegen.ts +2 -1
  405. package/src/chain/archiveStore/historicalState/types.ts +2 -0
  406. package/src/chain/archiveStore/historicalState/worker.ts +1 -4
  407. package/src/chain/archiveStore/interface.ts +1 -0
  408. package/src/chain/balancesCache.ts +5 -11
  409. package/src/chain/blocks/blockInput/blockInput.ts +8 -8
  410. package/src/chain/blocks/blockInput/types.ts +5 -4
  411. package/src/chain/blocks/importBlock.ts +85 -32
  412. package/src/chain/blocks/importExecutionPayload.ts +277 -0
  413. package/src/chain/blocks/index.ts +3 -2
  414. package/src/chain/blocks/payloadEnvelopeInput/index.ts +2 -0
  415. package/src/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.ts +377 -0
  416. package/src/chain/blocks/payloadEnvelopeInput/types.ts +34 -0
  417. package/src/chain/blocks/payloadEnvelopeProcessor.ts +61 -0
  418. package/src/chain/blocks/types.ts +34 -15
  419. package/src/chain/blocks/utils/checkpoint.ts +2 -2
  420. package/src/chain/blocks/verifyBlock.ts +5 -10
  421. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +10 -14
  422. package/src/chain/blocks/verifyBlocksSignatures.ts +10 -3
  423. package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +6 -8
  424. package/src/chain/blocks/writePayloadEnvelopeInputToDb.ts +55 -0
  425. package/src/chain/chain.ts +188 -101
  426. package/src/chain/emitter.ts +27 -9
  427. package/src/chain/errors/blockError.ts +8 -5
  428. package/src/chain/errors/dataColumnSidecarError.ts +32 -1
  429. package/src/chain/errors/executionPayloadEnvelope.ts +6 -2
  430. package/src/chain/forkChoice/index.ts +35 -51
  431. package/src/chain/initState.ts +7 -2
  432. package/src/chain/interface.ts +22 -18
  433. package/src/chain/lightClient/index.ts +17 -18
  434. package/src/chain/opPools/aggregatedAttestationPool.ts +20 -21
  435. package/src/chain/opPools/executionPayloadBidPool.ts +3 -3
  436. package/src/chain/opPools/opPool.ts +13 -14
  437. package/src/chain/opPools/utils.ts +3 -3
  438. package/src/chain/options.ts +2 -0
  439. package/src/chain/prepareNextSlot.ts +14 -8
  440. package/src/chain/produceBlock/computeNewStateRoot.ts +18 -16
  441. package/src/chain/produceBlock/produceBlockBody.ts +51 -48
  442. package/src/chain/regen/interface.ts +15 -17
  443. package/src/chain/regen/queued.ts +16 -20
  444. package/src/chain/regen/regen.ts +16 -17
  445. package/src/chain/seenCache/index.ts +1 -1
  446. package/src/chain/seenCache/seenGossipBlockInput.ts +4 -4
  447. package/src/chain/seenCache/seenPayloadEnvelopeInput.ts +106 -0
  448. package/src/chain/serializeState.ts +3 -3
  449. package/src/chain/shufflingCache.ts +5 -7
  450. package/src/chain/stateCache/fifoBlockStateCache.ts +7 -7
  451. package/src/chain/stateCache/persistentCheckpointsCache.ts +27 -42
  452. package/src/chain/stateCache/types.ts +14 -18
  453. package/src/chain/validation/attesterSlashing.ts +3 -3
  454. package/src/chain/validation/blobSidecar.ts +1 -1
  455. package/src/chain/validation/block.ts +16 -10
  456. package/src/chain/validation/blsToExecutionChange.ts +2 -2
  457. package/src/chain/validation/dataColumnSidecar.ts +231 -8
  458. package/src/chain/validation/executionPayloadBid.ts +10 -10
  459. package/src/chain/validation/executionPayloadEnvelope.ts +42 -26
  460. package/src/chain/validation/payloadAttestationMessage.ts +6 -4
  461. package/src/chain/validation/proposerSlashing.ts +1 -1
  462. package/src/chain/validation/signatureSets/contributionAndProof.ts +2 -7
  463. package/src/chain/validation/signatureSets/syncCommittee.ts +2 -7
  464. package/src/chain/validation/signatureSets/syncCommitteeContribution.ts +2 -2
  465. package/src/chain/validation/signatureSets/syncCommitteeSelectionProof.ts +2 -7
  466. package/src/chain/validation/syncCommittee.ts +25 -20
  467. package/src/chain/validation/syncCommitteeContributionAndProof.ts +9 -10
  468. package/src/chain/validation/voluntaryExit.ts +3 -8
  469. package/src/chain/validatorMonitor.ts +25 -13
  470. package/src/db/buckets.ts +2 -2
  471. package/src/db/repositories/dataColumnSidecar.ts +4 -2
  472. package/src/db/repositories/dataColumnSidecarArchive.ts +4 -2
  473. package/src/metrics/metrics/lodestar.ts +134 -19
  474. package/src/network/gossip/encoding.ts +16 -0
  475. package/src/network/interface.ts +18 -4
  476. package/src/network/libp2p/index.ts +24 -13
  477. package/src/network/network.ts +39 -8
  478. package/src/network/options.ts +7 -2
  479. package/src/network/processor/extractSlotRootFns.ts +43 -4
  480. package/src/network/processor/gossipHandlers.ts +356 -80
  481. package/src/network/processor/index.ts +395 -92
  482. package/src/network/reqresp/ReqRespBeaconNode.ts +13 -0
  483. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts +94 -0
  484. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts +43 -0
  485. package/src/network/reqresp/handlers/index.ts +12 -0
  486. package/src/network/reqresp/protocols.ts +12 -0
  487. package/src/network/reqresp/rateLimit.ts +18 -0
  488. package/src/network/reqresp/score.ts +2 -0
  489. package/src/network/reqresp/types.ts +26 -5
  490. package/src/node/nodejs.ts +6 -5
  491. package/src/node/notifier.ts +5 -6
  492. package/src/sync/backfill/backfill.ts +3 -3
  493. package/src/sync/unknownBlock.ts +13 -53
  494. package/src/sync/utils/downloadByRange.ts +9 -7
  495. package/src/sync/utils/downloadByRoot.ts +16 -12
  496. package/src/util/blobs.ts +35 -15
  497. package/src/util/dataColumns.ts +69 -25
  498. package/src/util/execution.ts +49 -30
  499. package/src/util/sszBytes.ts +335 -13
  500. package/src/util/types.ts +6 -0
  501. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts +0 -15
  502. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts.map +0 -1
  503. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js +0 -28
  504. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js.map +0 -1
  505. package/src/chain/seenCache/seenExecutionPayloadEnvelope.ts +0 -34
@@ -1 +1 @@
1
- {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain/chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain/chain.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import path from "node:path";
2
2
  import { PayloadStatus, UpdateHeadOpt, getCheckpointPayloadStatus, } from "@lodestar/fork-choice";
3
- import { BUILDER_INDEX_SELF_BUILD, EFFECTIVE_BALANCE_INCREMENT, GENESIS_SLOT, SLOTS_PER_EPOCH, isForkPostElectra, isForkPostGloas, } from "@lodestar/params";
4
- import { computeAnchorCheckpoint, computeAttestationsRewards, computeBlockRewards, computeEndSlotAtEpoch, computeEpochAtSlot, computeStartSlotAtEpoch, computeSyncCommitteeRewards, getEffectiveBalanceIncrementsZeroInactive, getEffectiveBalancesFromStateBytes, processSlots, } from "@lodestar/state-transition";
3
+ import { BUILDER_INDEX_SELF_BUILD, EFFECTIVE_BALANCE_INCREMENT, GENESIS_SLOT, SLOTS_PER_EPOCH, isForkPostGloas, } from "@lodestar/params";
4
+ import { computeEndSlotAtEpoch, computeEpochAtSlot, computeStartSlotAtEpoch, getEffectiveBalancesFromStateBytes, isStatePostAltair, isStatePostElectra, isStatePostGloas, } from "@lodestar/state-transition";
5
5
  import { isBlindedBeaconBlock, ssz, sszTypesFor, } from "@lodestar/types";
6
6
  import { fromHex, gweiToWei, isErrorAborted, pruneSetToMax, sleep, toRootHex } from "@lodestar/utils";
7
7
  import { GENESIS_EPOCH, ZERO_HASH } from "../constants/index.js";
@@ -22,7 +22,9 @@ import { CheckpointBalancesCache } from "./balancesCache.js";
22
22
  import { BeaconProposerCache } from "./beaconProposerCache.js";
23
23
  import { isBlockInputBlobs, isBlockInputColumns } from "./blocks/blockInput/index.js";
24
24
  import { BlockProcessor } from "./blocks/index.js";
25
+ import { PayloadEnvelopeProcessor } from "./blocks/payloadEnvelopeProcessor.js";
25
26
  import { persistBlockInput } from "./blocks/writeBlockInputToDb.js";
27
+ import { persistPayloadEnvelopeInput } from "./blocks/writePayloadEnvelopeInputToDb.js";
26
28
  import { BlsMultiThreadWorkerPool, BlsSingleThreadVerifier } from "./bls/index.js";
27
29
  import { ColumnReconstructionTracker } from "./ColumnReconstructionTracker.js";
28
30
  import { ChainEvent, ChainEventEmitter } from "./emitter.js";
@@ -32,12 +34,12 @@ import { FindHeadFnName } from "./interface.js";
32
34
  import { LightClientServer } from "./lightClient/index.js";
33
35
  import { AggregatedAttestationPool, AttestationPool, ExecutionPayloadBidPool, OpPool, PayloadAttestationPool, SyncCommitteeMessagePool, SyncContributionAndProofPool, } from "./opPools/index.js";
34
36
  import { PrepareNextSlotScheduler } from "./prepareNextSlot.js";
35
- import { computeEnvelopeStateRoot, computeNewStateRoot } from "./produceBlock/computeNewStateRoot.js";
37
+ import { computeNewStateRoot, computePayloadEnvelopeStateRoot } from "./produceBlock/computeNewStateRoot.js";
36
38
  import { BlockType } from "./produceBlock/index.js";
37
39
  import { produceBlockBody, produceCommonBlockBody } from "./produceBlock/produceBlockBody.js";
38
40
  import { QueuedStateRegenerator, RegenCaller } from "./regen/index.js";
39
41
  import { ReprocessController } from "./reprocess.js";
40
- import { SeenAggregators, SeenAttesters, SeenBlockProposers, SeenContributionAndProof, SeenExecutionPayloadBids, SeenExecutionPayloadEnvelopes, SeenPayloadAttesters, SeenSyncCommitteeMessages, } from "./seenCache/index.js";
42
+ import { SeenAggregators, SeenAttesters, SeenBlockProposers, SeenContributionAndProof, SeenExecutionPayloadBids, SeenPayloadAttesters, SeenPayloadEnvelopeInput, SeenSyncCommitteeMessages, } from "./seenCache/index.js";
41
43
  import { SeenAggregatedAttestations } from "./seenCache/seenAggregateAndProof.js";
42
44
  import { SeenAttestationDatas } from "./seenCache/seenAttestationData.js";
43
45
  import { SeenBlockAttesters } from "./seenCache/seenBlockAttesters.js";
@@ -62,6 +64,12 @@ const DEFAULT_MAX_CACHED_PRODUCED_RESULTS = 4;
62
64
  * write can hold significant memory. Keep moderate to avoid OOM during sync.
63
65
  */
64
66
  const DEFAULT_MAX_PENDING_UNFINALIZED_BLOCK_WRITES = 16;
67
+ /**
68
+ * The maximum number of pending unfinalized payload envelope writes to the database before backpressure is applied.
69
+ * Payload envelope write queue entries hold references to payload inputs (including columns),
70
+ * keeping them in memory. Keep moderate to avoid OOM during sync.
71
+ */
72
+ const DEFAULT_MAX_PENDING_UNFINALIZED_PAYLOAD_ENVELOPE_WRITES = 16;
65
73
  export class BeaconChain {
66
74
  genesisTime;
67
75
  genesisValidatorsRoot;
@@ -84,6 +92,7 @@ export class BeaconChain {
84
92
  reprocessController;
85
93
  archiveStore;
86
94
  unfinalizedBlockWrites;
95
+ unfinalizedPayloadEnvelopeWrites;
87
96
  // Ops pool
88
97
  attestationPool;
89
98
  aggregatedAttestationPool;
@@ -97,13 +106,13 @@ export class BeaconChain {
97
106
  seenAggregators = new SeenAggregators();
98
107
  seenPayloadAttesters = new SeenPayloadAttesters();
99
108
  seenAggregatedAttestations;
100
- seenExecutionPayloadEnvelopes = new SeenExecutionPayloadEnvelopes();
101
109
  seenExecutionPayloadBids = new SeenExecutionPayloadBids();
102
110
  seenBlockProposers = new SeenBlockProposers();
103
111
  seenSyncCommitteeMessages = new SeenSyncCommitteeMessages();
104
112
  seenContributionAndProof;
105
113
  seenAttestationDatas;
106
114
  seenBlockInputCache;
115
+ seenPayloadEnvelopeInputCache;
107
116
  // Seen cache for liveness checks
108
117
  seenBlockAttesters = new SeenBlockAttesters();
109
118
  // Global state caches
@@ -123,6 +132,7 @@ export class BeaconChain {
123
132
  columnReconstructionTracker;
124
133
  opts;
125
134
  blockProcessor;
135
+ payloadEnvelopeProcessor;
126
136
  db;
127
137
  // this is only available if nHistoricalStates is enabled
128
138
  cpStateDatastore;
@@ -193,26 +203,33 @@ export class BeaconChain {
193
203
  metrics,
194
204
  logger,
195
205
  });
206
+ this.seenPayloadEnvelopeInputCache = new SeenPayloadEnvelopeInput({
207
+ chainEvents: emitter,
208
+ signal,
209
+ serializedCache: this.serializedCache,
210
+ metrics,
211
+ logger,
212
+ });
196
213
  this._earliestAvailableSlot = anchorState.slot;
197
214
  this.shufflingCache = new ShufflingCache(metrics, logger, this.opts, [
198
215
  {
199
- shuffling: anchorState.epochCtx.previousShuffling,
200
- decisionRoot: anchorState.epochCtx.previousDecisionRoot,
216
+ shuffling: anchorState.getPreviousShuffling(),
217
+ decisionRoot: anchorState.previousDecisionRoot,
201
218
  },
202
219
  {
203
- shuffling: anchorState.epochCtx.currentShuffling,
204
- decisionRoot: anchorState.epochCtx.currentDecisionRoot,
220
+ shuffling: anchorState.getCurrentShuffling(),
221
+ decisionRoot: anchorState.currentDecisionRoot,
205
222
  },
206
223
  {
207
- shuffling: anchorState.epochCtx.nextShuffling,
208
- decisionRoot: anchorState.epochCtx.nextDecisionRoot,
224
+ shuffling: anchorState.getNextShuffling(),
225
+ decisionRoot: anchorState.nextDecisionRoot,
209
226
  },
210
227
  ]);
211
228
  // Global cache of validators pubkey/index mapping
212
229
  this.pubkeyCache = pubkeyCache;
213
230
  const fileDataStore = opts.nHistoricalStatesFileDataStore ?? true;
214
231
  const blockStateCache = new FIFOBlockStateCache(this.opts, { metrics });
215
- this.bufferPool = new BufferPool(anchorState.type.tree_serializedSize(anchorState.node), metrics);
232
+ this.bufferPool = new BufferPool(anchorState.serializedSize(), metrics);
216
233
  this.cpStateDatastore = fileDataStore ? new FileCPStateDatastore(dataDir) : new DbCPStateDatastore(this.db);
217
234
  const checkpointStateCache = new PersistentCheckpointStateCache({
218
235
  config,
@@ -223,10 +240,10 @@ export class BeaconChain {
223
240
  bufferPool: this.bufferPool,
224
241
  datastore: this.cpStateDatastore,
225
242
  }, this.opts);
226
- const { checkpoint } = computeAnchorCheckpoint(config, anchorState);
243
+ const { checkpoint } = anchorState.computeAnchorCheckpoint();
227
244
  blockStateCache.add(anchorState);
228
245
  blockStateCache.setHeadState(anchorState);
229
- const payloadPresent = getCheckpointPayloadStatus(anchorState, checkpoint.epoch) === PayloadStatus.FULL;
246
+ const payloadPresent = getCheckpointPayloadStatus(config, anchorState, checkpoint.epoch) === PayloadStatus.FULL;
230
247
  checkpointStateCache.add(checkpoint, anchorState, payloadPresent);
231
248
  const forkChoice = initializeForkChoice(config, emitter, clock.currentSlot, anchorState, isAnchorStateFinalized, opts, this.justifiedBalancesGetter.bind(this), metrics, logger);
232
249
  const regen = new QueuedStateRegenerator({
@@ -247,6 +264,7 @@ export class BeaconChain {
247
264
  }
248
265
  this.reprocessController = new ReprocessController(this.metrics);
249
266
  this.blockProcessor = new BlockProcessor(this, metrics, opts, signal);
267
+ this.payloadEnvelopeProcessor = new PayloadEnvelopeProcessor(this, metrics, signal);
250
268
  this.forkChoice = forkChoice;
251
269
  this.clock = clock;
252
270
  this.regen = regen;
@@ -270,6 +288,10 @@ export class BeaconChain {
270
288
  maxLength: DEFAULT_MAX_PENDING_UNFINALIZED_BLOCK_WRITES,
271
289
  signal,
272
290
  }, metrics?.unfinalizedBlockWritesQueue);
291
+ this.unfinalizedPayloadEnvelopeWrites = new JobItemQueue(persistPayloadEnvelopeInput.bind(this), {
292
+ maxLength: DEFAULT_MAX_PENDING_UNFINALIZED_PAYLOAD_ENVELOPE_WRITES,
293
+ signal,
294
+ }, metrics?.unfinalizedPayloadEnvelopeWritesQueue);
273
295
  // always run PrepareNextSlotScheduler except for fork_choice spec tests
274
296
  if (!opts?.disablePrepareNextSlot) {
275
297
  new PrepareNextSlotScheduler(this, this.config, metrics, this.logger, signal);
@@ -295,10 +317,14 @@ export class BeaconChain {
295
317
  // we can abort any ongoing unfinalized block writes.
296
318
  // TODO: persist fork choice to disk and allow unfinalized block writes to complete.
297
319
  this.unfinalizedBlockWrites.dropAllJobs();
320
+ this.unfinalizedPayloadEnvelopeWrites.dropAllJobs();
298
321
  this.abortController.abort();
299
322
  }
300
323
  seenBlock(blockRoot) {
301
- return this.seenBlockInputCache.has(blockRoot) || this.forkChoice.hasBlockHex(blockRoot);
324
+ return this.seenBlockInputCache.hasBlock(blockRoot) || this.forkChoice.hasBlockHexUnsafe(blockRoot);
325
+ }
326
+ seenPayloadEnvelope(blockRoot) {
327
+ return this.seenPayloadEnvelopeInputCache.hasPayload(blockRoot) || this.forkChoice.hasPayloadHexUnsafe(blockRoot);
302
328
  }
303
329
  regenCanAcceptWork() {
304
330
  return this.regen.canAcceptWork();
@@ -398,12 +424,12 @@ export class BeaconChain {
398
424
  async getStateByStateRoot(stateRoot, opts) {
399
425
  if (opts?.allowRegen) {
400
426
  const state = await this.regen.getState(stateRoot, RegenCaller.restApi);
401
- const block = this.forkChoice.getBlockDefaultStatus(state.latestBlockHeader.hashTreeRoot());
427
+ const block = this.forkChoice.getBlockDefaultStatus(ssz.phase0.BeaconBlockHeader.hashTreeRoot(state.latestBlockHeader));
402
428
  const finalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
403
429
  return {
404
430
  state,
405
431
  executionOptimistic: block != null && isOptimisticBlock(block),
406
- finalized: state.epochCtx.epoch <= finalizedEpoch && finalizedEpoch !== GENESIS_EPOCH,
432
+ finalized: state.epoch <= finalizedEpoch && finalizedEpoch !== GENESIS_EPOCH,
407
433
  };
408
434
  }
409
435
  // TODO: This can only fulfill requests for a very narrow set of roots.
@@ -412,12 +438,12 @@ export class BeaconChain {
412
438
  // TODO: This is very inneficient for debug requests of serialized content, since it deserializes to serialize again
413
439
  const cachedStateCtx = this.regen.getStateSync(stateRoot);
414
440
  if (cachedStateCtx) {
415
- const block = this.forkChoice.getBlockDefaultStatus(cachedStateCtx.latestBlockHeader.hashTreeRoot());
441
+ const block = this.forkChoice.getBlockDefaultStatus(ssz.phase0.BeaconBlockHeader.hashTreeRoot(cachedStateCtx.latestBlockHeader));
416
442
  const finalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
417
443
  return {
418
444
  state: cachedStateCtx,
419
445
  executionOptimistic: block != null && isOptimisticBlock(block),
420
- finalized: cachedStateCtx.epochCtx.epoch <= finalizedEpoch && finalizedEpoch !== GENESIS_EPOCH,
446
+ finalized: cachedStateCtx.epoch <= finalizedEpoch && finalizedEpoch !== GENESIS_EPOCH,
421
447
  };
422
448
  }
423
449
  // this is mostly useful for a node with `--chain.archiveStateEpochFrequency 1`
@@ -442,12 +468,12 @@ export class BeaconChain {
442
468
  const checkpointHexPayload = fcCheckpointToHexPayload(checkpoint);
443
469
  const cachedStateCtx = this.regen.getCheckpointStateSync(checkpointHexPayload);
444
470
  if (cachedStateCtx) {
445
- const block = this.forkChoice.getBlockDefaultStatus(cachedStateCtx.latestBlockHeader.hashTreeRoot());
471
+ const block = this.forkChoice.getBlockDefaultStatus(ssz.phase0.BeaconBlockHeader.hashTreeRoot(cachedStateCtx.latestBlockHeader));
446
472
  const finalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
447
473
  return {
448
474
  state: cachedStateCtx,
449
475
  executionOptimistic: block != null && isOptimisticBlock(block),
450
- finalized: cachedStateCtx.epochCtx.epoch <= finalizedEpoch && finalizedEpoch !== GENESIS_EPOCH,
476
+ finalized: cachedStateCtx.epoch <= finalizedEpoch && finalizedEpoch !== GENESIS_EPOCH,
451
477
  };
452
478
  }
453
479
  return null;
@@ -587,13 +613,38 @@ export class BeaconChain {
587
613
  }
588
614
  return null;
589
615
  }
616
+ async getSerializedExecutionPayloadEnvelope(blockSlot, blockRootHex) {
617
+ const payloadInput = this.seenPayloadEnvelopeInputCache.get(blockRootHex);
618
+ if (payloadInput?.hasPayloadEnvelope()) {
619
+ const envelope = payloadInput.getPayloadEnvelope();
620
+ const serialized = this.serializedCache.get(envelope);
621
+ if (serialized) {
622
+ return serialized;
623
+ }
624
+ return ssz.gloas.SignedExecutionPayloadEnvelope.serialize(envelope);
625
+ }
626
+ return ((await this.db.executionPayloadEnvelope.getBinary(fromHex(blockRootHex))) ??
627
+ (await this.db.executionPayloadEnvelopeArchive.getBinary(blockSlot)) ??
628
+ null);
629
+ }
590
630
  async getDataColumnSidecars(blockSlot, blockRootHex) {
591
- const blockInput = this.seenBlockInputCache.get(blockRootHex);
592
- if (blockInput) {
593
- if (!isBlockInputColumns(blockInput)) {
594
- throw new Error(`Expected block input to have columns: slot=${blockSlot} root=${blockRootHex}`);
631
+ const fork = this.config.getForkName(blockSlot);
632
+ if (isForkPostGloas(fork)) {
633
+ // After gloas, columns are tracked in PayloadEnvelopeInput
634
+ const payloadInput = this.seenPayloadEnvelopeInputCache.get(blockRootHex);
635
+ if (payloadInput) {
636
+ return payloadInput.getAllColumns();
637
+ }
638
+ }
639
+ else {
640
+ // Before gloas, columns are tracked in BlockInput
641
+ const blockInput = this.seenBlockInputCache.get(blockRootHex);
642
+ if (blockInput) {
643
+ if (!isBlockInputColumns(blockInput)) {
644
+ throw new Error(`Expected block input to have columns: slot=${blockSlot} root=${blockRootHex}`);
645
+ }
646
+ return blockInput.getAllColumns();
595
647
  }
596
- return blockInput.getAllColumns();
597
648
  }
598
649
  const sidecarsUnfinalized = await this.db.dataColumnSidecar.values(fromHex(blockRootHex));
599
650
  if (sidecarsUnfinalized.length > 0) {
@@ -603,22 +654,43 @@ export class BeaconChain {
603
654
  return sidecarsFinalized;
604
655
  }
605
656
  async getSerializedDataColumnSidecars(blockSlot, blockRootHex, indices) {
606
- const blockInput = this.seenBlockInputCache.get(blockRootHex);
607
- if (blockInput) {
608
- if (!isBlockInputColumns(blockInput)) {
609
- throw new Error(`Expected block input to have columns: slot=${blockSlot} root=${blockRootHex}`);
657
+ const fork = this.config.getForkName(blockSlot);
658
+ if (isForkPostGloas(fork)) {
659
+ // After gloas, columns are tracked in PayloadEnvelopeInput
660
+ const payloadInput = this.seenPayloadEnvelopeInputCache.get(blockRootHex);
661
+ if (payloadInput) {
662
+ return indices.map((index) => {
663
+ const sidecar = payloadInput.getColumn(index);
664
+ if (!sidecar) {
665
+ return undefined;
666
+ }
667
+ const serialized = this.serializedCache.get(sidecar);
668
+ if (serialized) {
669
+ return serialized;
670
+ }
671
+ return sszTypesFor(fork).DataColumnSidecar.serialize(sidecar);
672
+ });
610
673
  }
611
- return indices.map((index) => {
612
- const sidecar = blockInput.getColumn(index);
613
- if (!sidecar) {
614
- return undefined;
615
- }
616
- const serialized = this.serializedCache.get(sidecar);
617
- if (serialized) {
618
- return serialized;
674
+ }
675
+ else {
676
+ // Before gloas, columns are tracked in BlockInput
677
+ const blockInput = this.seenBlockInputCache.get(blockRootHex);
678
+ if (blockInput) {
679
+ if (!isBlockInputColumns(blockInput)) {
680
+ throw new Error(`Expected block input to have columns: slot=${blockSlot} root=${blockRootHex}`);
619
681
  }
620
- return sszTypesFor(blockInput.forkName).DataColumnSidecar.serialize(sidecar);
621
- });
682
+ return indices.map((index) => {
683
+ const sidecar = blockInput.getColumn(index);
684
+ if (!sidecar) {
685
+ return undefined;
686
+ }
687
+ const serialized = this.serializedCache.get(sidecar);
688
+ if (serialized) {
689
+ return serialized;
690
+ }
691
+ return sszTypesFor(blockInput.forkName).DataColumnSidecar.serialize(sidecar);
692
+ });
693
+ }
622
694
  }
623
695
  const sidecarsUnfinalized = await this.db.dataColumnSidecar.getManyBinary(fromHex(blockRootHex), indices);
624
696
  if (sidecarsUnfinalized.some((sidecar) => sidecar != null)) {
@@ -641,9 +713,8 @@ export class BeaconChain {
641
713
  return this.produceBlockWrapper(BlockType.Blinded, blockAttributes);
642
714
  }
643
715
  async produceBlockWrapper(blockType, { randaoReveal, graffiti, slot, feeRecipient, commonBlockBodyPromise, parentBlock, }) {
644
- const fork = this.config.getForkName(slot);
645
716
  const state = await this.regen.getBlockSlotState(parentBlock, slot, { dontTransferCache: true }, RegenCaller.produceBlock);
646
- const proposerIndex = state.epochCtx.getBeaconProposer(slot);
717
+ const proposerIndex = state.getBeaconProposer(slot);
647
718
  const proposerPubKey = this.pubkeyCache.getOrThrow(proposerIndex).toBytes();
648
719
  const { body, produceResult, executionPayloadValue, shouldOverrideBuilder } = await produceBlockBody.call(this, blockType, state, {
649
720
  randaoReveal,
@@ -657,7 +728,7 @@ export class BeaconChain {
657
728
  });
658
729
  // The hashtree root computed here for debug log will get cached and hence won't introduce additional delays
659
730
  const bodyRoot = produceResult.type === BlockType.Full
660
- ? sszTypesFor(fork).BeaconBlockBody.hashTreeRoot(body)
731
+ ? this.config.getForkTypes(slot).BeaconBlockBody.hashTreeRoot(body)
661
732
  : this.config
662
733
  .getPostBellatrixForkTypes(slot)
663
734
  .BlindedBeaconBlockBody.hashTreeRoot(body);
@@ -673,12 +744,13 @@ export class BeaconChain {
673
744
  stateRoot: ZERO_HASH,
674
745
  body,
675
746
  };
676
- const { newStateRoot, proposerReward, postState } = computeNewStateRoot(this.metrics, state, block);
747
+ const { newStateRoot, proposerReward, postBlockState } = computeNewStateRoot(this.metrics, state, block);
677
748
  block.stateRoot = newStateRoot;
678
749
  const blockRoot = produceResult.type === BlockType.Full
679
- ? sszTypesFor(fork).BeaconBlock.hashTreeRoot(block)
750
+ ? this.config.getForkTypes(slot).BeaconBlock.hashTreeRoot(block)
680
751
  : this.config.getPostBellatrixForkTypes(slot).BlindedBeaconBlock.hashTreeRoot(block);
681
752
  const blockRootHex = toRootHex(blockRoot);
753
+ const fork = this.config.getForkName(slot);
682
754
  if (isForkPostGloas(fork)) {
683
755
  // TODO GLOAS: we should retire BlockType post-gloas, may need a new enum for self vs non-self built
684
756
  if (produceResult.type !== BlockType.Full) {
@@ -693,8 +765,11 @@ export class BeaconChain {
693
765
  slot,
694
766
  stateRoot: ZERO_HASH,
695
767
  };
696
- const envelopeStateRoot = computeEnvelopeStateRoot(this.metrics, postState, envelope);
697
- gloasResult.envelopeStateRoot = envelopeStateRoot;
768
+ if (!isStatePostGloas(postBlockState)) {
769
+ throw Error(`Expected gloas+ post-state for execution payload envelope, got fork=${postBlockState.forkName}`);
770
+ }
771
+ const payloadEnvelopeStateRoot = computePayloadEnvelopeStateRoot(this.metrics, postBlockState, envelope);
772
+ gloasResult.payloadEnvelopeStateRoot = payloadEnvelopeStateRoot;
698
773
  }
699
774
  // Track the produced block for consensus broadcast validations, later validation, etc.
700
775
  this.blockProductionCache.set(blockRootHex, produceResult);
@@ -707,6 +782,9 @@ export class BeaconChain {
707
782
  async processChainSegment(blocks, opts) {
708
783
  return this.blockProcessor.processBlocksJob(blocks, opts);
709
784
  }
785
+ async processExecutionPayload(payloadInput, opts) {
786
+ return this.payloadEnvelopeProcessor.processPayloadEnvelopeJob(payloadInput, opts);
787
+ }
710
788
  getStatus() {
711
789
  const head = this.forkChoice.getHead();
712
790
  const finalizedCheckpoint = this.forkChoice.getFinalizedCheckpoint();
@@ -808,8 +886,8 @@ export class BeaconChain {
808
886
  const logStr = `slot_${blockSlot}_invalid_state_root_${toRootHex(postStateRoot)}`;
809
887
  await Promise.all([
810
888
  this.persistSszObject(`SignedBeaconBlock_slot_${blockSlot}`, blockType.serialize(block), blockType.hashTreeRoot(block), `${logStr}_block`),
811
- this.persistSszObject(`preState_slot_${preState.slot}_${preState.type.typeName}`, preState.serialize(), preState.hashTreeRoot(), `${logStr}_pre_state`),
812
- this.persistSszObject(`postState_slot_${postState.slot}_${postState.type.typeName}`, postState.serialize(), postState.hashTreeRoot(), `${logStr}_post_state`),
889
+ this.persistSszObject(`preState_slot_${preState.slot}_BeaconState`, preState.serialize(), preState.hashTreeRoot(), `${logStr}_pre_state`),
890
+ this.persistSszObject(`postState_slot_${postState.slot}_BeaconState`, postState.serialize(), postState.hashTreeRoot(), `${logStr}_post_state`),
813
891
  ]);
814
892
  }
815
893
  persistInvalidSszValue(type, sszObject, suffix) {
@@ -822,11 +900,6 @@ export class BeaconChain {
822
900
  void this.persistSszObject(typeName, sszBytes, sszBytes, suffix);
823
901
  }
824
902
  }
825
- persistInvalidSszView(view, suffix) {
826
- if (this.opts.persistInvalidSszObjects) {
827
- void this.persistSszObject(view.type.typeName, view.serialize(), view.hashTreeRoot(), suffix);
828
- }
829
- }
830
903
  /**
831
904
  * Regenerate state for attestation verification, this does not happen with default chain option of maxSkipSlots = 32 .
832
905
  * However, need to handle just in case. Lodestar doesn't support multiple regen state requests for attestation verification
@@ -858,7 +931,7 @@ export class BeaconChain {
858
931
  }
859
932
  // resolve the promise to unblock other calls of the same epoch and dependent root
860
933
  this.shufflingCache.processState(state);
861
- return state.epochCtx.getShufflingAtEpoch(attEpoch);
934
+ return state.getShufflingAtEpoch(attEpoch);
862
935
  }
863
936
  /**
864
937
  * `ForkChoice.onBlock` must never throw for a block that is valid with respect to the network
@@ -888,7 +961,7 @@ export class BeaconChain {
888
961
  stateRoot: toRootHex(state.hashTreeRoot()),
889
962
  });
890
963
  }
891
- return getEffectiveBalanceIncrementsZeroInactive(state);
964
+ return state.getEffectiveBalanceIncrementsZeroInactive();
892
965
  }
893
966
  /**
894
967
  * - Assumptions + invariant this function is based on:
@@ -959,12 +1032,10 @@ export class BeaconChain {
959
1032
  metrics.opPool.blsToExecutionChangePoolSize.set(this.opPool.blsToExecutionChangeSize);
960
1033
  metrics.chain.blacklistedBlocks.set(this.blacklistedBlocks.size);
961
1034
  const headState = this.getHeadState();
962
- const fork = this.config.getForkName(headState.slot);
963
- if (isForkPostElectra(fork)) {
964
- const headStateElectra = headState;
965
- metrics.pendingDeposits.set(headStateElectra.pendingDeposits.length);
966
- metrics.pendingPartialWithdrawals.set(headStateElectra.pendingPartialWithdrawals.length);
967
- metrics.pendingConsolidations.set(headStateElectra.pendingConsolidations.length);
1035
+ if (isStatePostElectra(headState)) {
1036
+ metrics.pendingDeposits.set(headState.pendingDepositsCount);
1037
+ metrics.pendingPartialWithdrawals.set(headState.pendingPartialWithdrawalsCount);
1038
+ metrics.pendingConsolidations.set(headState.pendingConsolidationsCount);
968
1039
  }
969
1040
  }
970
1041
  onClockSlot(slot) {
@@ -1027,7 +1098,6 @@ export class BeaconChain {
1027
1098
  this.logger.verbose("Fork choice finalized", { epoch: cp.epoch, root: cp.rootHex });
1028
1099
  const finalizedSlot = computeStartSlotAtEpoch(cp.epoch);
1029
1100
  this.seenBlockProposers.prune(finalizedSlot);
1030
- this.seenExecutionPayloadEnvelopes.prune(finalizedSlot);
1031
1101
  // Update validator custody to account for effective balance changes
1032
1102
  await this.updateValidatorsCustodyRequirement(cp);
1033
1103
  // TODO: Improve using regen here
@@ -1090,7 +1160,7 @@ export class BeaconChain {
1090
1160
  effectiveBalances = getEffectiveBalancesFromStateBytes(this.config, stateOrBytes, validatorIndices);
1091
1161
  }
1092
1162
  else {
1093
- effectiveBalances = validatorIndices.map((index) => stateOrBytes.validators.get(index).effectiveBalance ?? 0);
1163
+ effectiveBalances = validatorIndices.map((index) => stateOrBytes.getValidator(index).effectiveBalance ?? 0);
1094
1164
  }
1095
1165
  }
1096
1166
  const targetCustodyGroupCount = getValidatorsCustodyRequirement(this.config, effectiveBalances);
@@ -1135,9 +1205,9 @@ export class BeaconChain {
1135
1205
  if (preState === null) {
1136
1206
  throw Error(`Pre-state is unavailable given block's parent root ${toRootHex(block.parentRoot)}`);
1137
1207
  }
1138
- preState = processSlots(preState, block.slot); // Dial preState's slot to block.slot
1208
+ preState = preState.processSlots(block.slot); // Dial preState's slot to block.slot
1139
1209
  const proposerRewards = this.regen.getStateSync(toRootHex(block.stateRoot))?.proposerRewards ?? undefined;
1140
- return computeBlockRewards(this.config, block, preState, proposerRewards);
1210
+ return preState.computeBlockRewards(block, proposerRewards);
1141
1211
  }
1142
1212
  async getAttestationsRewards(epoch, validatorIds) {
1143
1213
  // We use end slot of (epoch + 1) to ensure we have seen all attestations. On-time or late. Any late attestation beyond this slot is not considered
@@ -1152,7 +1222,7 @@ export class BeaconChain {
1152
1222
  if (cachedState === null) {
1153
1223
  throw Error(`State is not in cache for slot ${slot}`);
1154
1224
  }
1155
- const rewards = await computeAttestationsRewards(this.config, this.pubkeyCache, cachedState, validatorIds);
1225
+ const rewards = await cachedState.computeAttestationsRewards(validatorIds);
1156
1226
  return { rewards, executionOptimistic, finalized };
1157
1227
  }
1158
1228
  async getSyncCommitteeRewards(block, validatorIds) {
@@ -1160,8 +1230,11 @@ export class BeaconChain {
1160
1230
  if (preState === null) {
1161
1231
  throw Error(`Pre-state is unavailable given block's parent root ${toRootHex(block.parentRoot)}`);
1162
1232
  }
1163
- preState = processSlots(preState, block.slot); // Dial preState's slot to block.slot
1164
- return computeSyncCommitteeRewards(this.config, this.pubkeyCache, block, preState, validatorIds);
1233
+ preState = preState.processSlots(block.slot); // Dial preState's slot to block.slot
1234
+ if (!isStatePostAltair(preState)) {
1235
+ throw new Error("Sync committee rewards are not supported before Altair");
1236
+ }
1237
+ return preState.computeSyncCommitteeRewards(block, validatorIds ?? []);
1165
1238
  }
1166
1239
  }
1167
1240
  //# sourceMappingURL=chain.js.map