@lodestar/beacon-node 1.43.0-dev.6641fd750e → 1.43.0-dev.66d2c102e3

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 (368) hide show
  1. package/lib/api/impl/beacon/blocks/index.js +4 -6
  2. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  3. package/lib/api/impl/beacon/state/utils.d.ts +2 -2
  4. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  5. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  6. package/lib/api/impl/lodestar/attesterSlashing.d.ts +8 -0
  7. package/lib/api/impl/lodestar/attesterSlashing.d.ts.map +1 -0
  8. package/lib/api/impl/lodestar/attesterSlashing.js +29 -0
  9. package/lib/api/impl/lodestar/attesterSlashing.js.map +1 -0
  10. package/lib/api/impl/lodestar/index.d.ts.map +1 -1
  11. package/lib/api/impl/lodestar/index.js +37 -2
  12. package/lib/api/impl/lodestar/index.js.map +1 -1
  13. package/lib/api/impl/validator/index.d.ts.map +1 -1
  14. package/lib/api/impl/validator/index.js +1 -4
  15. package/lib/api/impl/validator/index.js.map +1 -1
  16. package/lib/chain/GetBlobsTracker.d.ts +1 -1
  17. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  18. package/lib/chain/GetBlobsTracker.js +1 -2
  19. package/lib/chain/GetBlobsTracker.js.map +1 -1
  20. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  21. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  22. package/lib/chain/archiveStore/interface.d.ts +4 -4
  23. package/lib/chain/archiveStore/interface.d.ts.map +1 -1
  24. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts +4 -4
  25. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +1 -1
  26. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +2 -4
  27. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
  28. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +2 -2
  29. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  30. package/lib/chain/archiveStore/utils/archiveBlocks.js +110 -58
  31. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  32. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  33. package/lib/chain/blocks/importBlock.js +32 -37
  34. package/lib/chain/blocks/importBlock.js.map +1 -1
  35. package/lib/chain/blocks/importExecutionPayload.d.ts +25 -13
  36. package/lib/chain/blocks/importExecutionPayload.d.ts.map +1 -1
  37. package/lib/chain/blocks/importExecutionPayload.js +73 -84
  38. package/lib/chain/blocks/importExecutionPayload.js.map +1 -1
  39. package/lib/chain/blocks/index.d.ts +5 -3
  40. package/lib/chain/blocks/index.d.ts.map +1 -1
  41. package/lib/chain/blocks/index.js +29 -11
  42. package/lib/chain/blocks/index.js.map +1 -1
  43. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts +3 -0
  44. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.d.ts.map +1 -1
  45. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js +20 -0
  46. package/lib/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.js.map +1 -1
  47. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts +5 -0
  48. package/lib/chain/blocks/payloadEnvelopeProcessor.d.ts.map +1 -1
  49. package/lib/chain/blocks/payloadEnvelopeProcessor.js +7 -5
  50. package/lib/chain/blocks/payloadEnvelopeProcessor.js.map +1 -1
  51. package/lib/chain/blocks/types.d.ts +15 -21
  52. package/lib/chain/blocks/types.d.ts.map +1 -1
  53. package/lib/chain/blocks/utils/chainSegment.d.ts +23 -2
  54. package/lib/chain/blocks/utils/chainSegment.d.ts.map +1 -1
  55. package/lib/chain/blocks/utils/chainSegment.js +81 -12
  56. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  57. package/lib/chain/blocks/verifyBlock.d.ts +3 -2
  58. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  59. package/lib/chain/blocks/verifyBlock.js +30 -5
  60. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  61. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +1 -1
  62. package/lib/chain/blocks/verifyBlocksSanityChecks.js +15 -4
  63. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  64. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts +24 -0
  65. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.d.ts.map +1 -0
  66. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js +76 -0
  67. package/lib/chain/blocks/verifyExecutionPayloadEnvelope.js.map +1 -0
  68. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts +14 -0
  69. package/lib/chain/blocks/verifyPayloadsDataAvailability.d.ts.map +1 -0
  70. package/lib/chain/blocks/verifyPayloadsDataAvailability.js +25 -0
  71. package/lib/chain/blocks/verifyPayloadsDataAvailability.js.map +1 -0
  72. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.d.ts +1 -1
  73. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.d.ts.map +1 -1
  74. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.js +2 -11
  75. package/lib/chain/blocks/writePayloadEnvelopeInputToDb.js.map +1 -1
  76. package/lib/chain/chain.d.ts +8 -6
  77. package/lib/chain/chain.d.ts.map +1 -1
  78. package/lib/chain/chain.js +36 -43
  79. package/lib/chain/chain.js.map +1 -1
  80. package/lib/chain/emitter.d.ts +16 -4
  81. package/lib/chain/emitter.d.ts.map +1 -1
  82. package/lib/chain/emitter.js +5 -0
  83. package/lib/chain/emitter.js.map +1 -1
  84. package/lib/chain/errors/attestationError.d.ts +8 -1
  85. package/lib/chain/errors/attestationError.d.ts.map +1 -1
  86. package/lib/chain/errors/attestationError.js +4 -0
  87. package/lib/chain/errors/attestationError.js.map +1 -1
  88. package/lib/chain/errors/blockError.d.ts +8 -1
  89. package/lib/chain/errors/blockError.d.ts.map +1 -1
  90. package/lib/chain/errors/blockError.js +2 -0
  91. package/lib/chain/errors/blockError.js.map +1 -1
  92. package/lib/chain/errors/executionPayloadBid.d.ts +5 -0
  93. package/lib/chain/errors/executionPayloadBid.d.ts.map +1 -1
  94. package/lib/chain/errors/executionPayloadBid.js +1 -0
  95. package/lib/chain/errors/executionPayloadBid.js.map +1 -1
  96. package/lib/chain/errors/executionPayloadEnvelope.d.ts +5 -0
  97. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  98. package/lib/chain/errors/executionPayloadEnvelope.js +1 -0
  99. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  100. package/lib/chain/errors/index.d.ts +1 -0
  101. package/lib/chain/errors/index.d.ts.map +1 -1
  102. package/lib/chain/errors/index.js +1 -0
  103. package/lib/chain/errors/index.js.map +1 -1
  104. package/lib/chain/errors/proposerPreferences.d.ts +33 -0
  105. package/lib/chain/errors/proposerPreferences.d.ts.map +1 -0
  106. package/lib/chain/errors/proposerPreferences.js +13 -0
  107. package/lib/chain/errors/proposerPreferences.js.map +1 -0
  108. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  109. package/lib/chain/forkChoice/index.js +11 -15
  110. package/lib/chain/forkChoice/index.js.map +1 -1
  111. package/lib/chain/interface.d.ts +7 -5
  112. package/lib/chain/interface.d.ts.map +1 -1
  113. package/lib/chain/interface.js.map +1 -1
  114. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  115. package/lib/chain/prepareNextSlot.js +48 -22
  116. package/lib/chain/prepareNextSlot.js.map +1 -1
  117. package/lib/chain/produceBlock/computeNewStateRoot.d.ts +3 -9
  118. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  119. package/lib/chain/produceBlock/computeNewStateRoot.js +5 -32
  120. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  121. package/lib/chain/produceBlock/produceBlockBody.d.ts +4 -8
  122. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  123. package/lib/chain/produceBlock/produceBlockBody.js +55 -24
  124. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  125. package/lib/chain/regen/errors.d.ts +1 -11
  126. package/lib/chain/regen/errors.d.ts.map +1 -1
  127. package/lib/chain/regen/errors.js +0 -2
  128. package/lib/chain/regen/errors.js.map +1 -1
  129. package/lib/chain/regen/interface.d.ts +7 -12
  130. package/lib/chain/regen/interface.d.ts.map +1 -1
  131. package/lib/chain/regen/interface.js +1 -0
  132. package/lib/chain/regen/interface.js.map +1 -1
  133. package/lib/chain/regen/queued.d.ts +6 -11
  134. package/lib/chain/regen/queued.d.ts.map +1 -1
  135. package/lib/chain/regen/queued.js +8 -40
  136. package/lib/chain/regen/queued.js.map +1 -1
  137. package/lib/chain/regen/regen.d.ts +0 -5
  138. package/lib/chain/regen/regen.d.ts.map +1 -1
  139. package/lib/chain/regen/regen.js +7 -34
  140. package/lib/chain/regen/regen.js.map +1 -1
  141. package/lib/chain/seenCache/index.d.ts +1 -0
  142. package/lib/chain/seenCache/index.d.ts.map +1 -1
  143. package/lib/chain/seenCache/index.js +1 -0
  144. package/lib/chain/seenCache/index.js.map +1 -1
  145. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts +11 -4
  146. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts.map +1 -1
  147. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js +20 -18
  148. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js.map +1 -1
  149. package/lib/chain/seenCache/seenProposerPreferences.d.ts +15 -0
  150. package/lib/chain/seenCache/seenProposerPreferences.d.ts.map +1 -0
  151. package/lib/chain/seenCache/seenProposerPreferences.js +25 -0
  152. package/lib/chain/seenCache/seenProposerPreferences.js.map +1 -0
  153. package/lib/chain/stateCache/datastore/db.d.ts +5 -4
  154. package/lib/chain/stateCache/datastore/db.d.ts.map +1 -1
  155. package/lib/chain/stateCache/datastore/db.js +10 -32
  156. package/lib/chain/stateCache/datastore/db.js.map +1 -1
  157. package/lib/chain/stateCache/datastore/file.d.ts +1 -1
  158. package/lib/chain/stateCache/datastore/file.d.ts.map +1 -1
  159. package/lib/chain/stateCache/datastore/file.js +5 -5
  160. package/lib/chain/stateCache/datastore/file.js.map +1 -1
  161. package/lib/chain/stateCache/datastore/types.d.ts +1 -1
  162. package/lib/chain/stateCache/datastore/types.d.ts.map +1 -1
  163. package/lib/chain/stateCache/fifoBlockStateCache.d.ts +1 -7
  164. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
  165. package/lib/chain/stateCache/fifoBlockStateCache.js +0 -8
  166. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  167. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +13 -30
  168. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  169. package/lib/chain/stateCache/persistentCheckpointsCache.js +120 -216
  170. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  171. package/lib/chain/stateCache/types.d.ts +8 -15
  172. package/lib/chain/stateCache/types.d.ts.map +1 -1
  173. package/lib/chain/stateCache/types.js.map +1 -1
  174. package/lib/chain/validation/aggregateAndProof.js +12 -0
  175. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  176. package/lib/chain/validation/attestation.d.ts.map +1 -1
  177. package/lib/chain/validation/attestation.js +12 -0
  178. package/lib/chain/validation/attestation.js.map +1 -1
  179. package/lib/chain/validation/block.d.ts.map +1 -1
  180. package/lib/chain/validation/block.js +1 -0
  181. package/lib/chain/validation/block.js.map +1 -1
  182. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -1
  183. package/lib/chain/validation/executionPayloadBid.js +13 -1
  184. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  185. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -1
  186. package/lib/chain/validation/executionPayloadEnvelope.js +21 -11
  187. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  188. package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -1
  189. package/lib/chain/validation/payloadAttestationMessage.js +4 -3
  190. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  191. package/lib/chain/validation/proposerPreferences.d.ts +8 -0
  192. package/lib/chain/validation/proposerPreferences.d.ts.map +1 -0
  193. package/lib/chain/validation/proposerPreferences.js +69 -0
  194. package/lib/chain/validation/proposerPreferences.js.map +1 -0
  195. package/lib/db/repositories/executionPayloadEnvelopeArchive.js +1 -1
  196. package/lib/db/repositories/executionPayloadEnvelopeArchive.js.map +1 -1
  197. package/lib/execution/engine/http.d.ts.map +1 -1
  198. package/lib/execution/engine/http.js +21 -14
  199. package/lib/execution/engine/http.js.map +1 -1
  200. package/lib/execution/engine/interface.d.ts +1 -0
  201. package/lib/execution/engine/interface.d.ts.map +1 -1
  202. package/lib/execution/engine/mock.d.ts.map +1 -1
  203. package/lib/execution/engine/mock.js +6 -0
  204. package/lib/execution/engine/mock.js.map +1 -1
  205. package/lib/execution/engine/types.d.ts +20 -0
  206. package/lib/execution/engine/types.d.ts.map +1 -1
  207. package/lib/execution/engine/types.js +18 -0
  208. package/lib/execution/engine/types.js.map +1 -1
  209. package/lib/metrics/metrics/lodestar.d.ts +1 -0
  210. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  211. package/lib/metrics/metrics/lodestar.js +4 -0
  212. package/lib/metrics/metrics/lodestar.js.map +1 -1
  213. package/lib/network/gossip/interface.d.ts +7 -1
  214. package/lib/network/gossip/interface.d.ts.map +1 -1
  215. package/lib/network/gossip/interface.js +1 -0
  216. package/lib/network/gossip/interface.js.map +1 -1
  217. package/lib/network/gossip/scoringParameters.d.ts.map +1 -1
  218. package/lib/network/gossip/scoringParameters.js +12 -1
  219. package/lib/network/gossip/scoringParameters.js.map +1 -1
  220. package/lib/network/gossip/topic.d.ts +30 -748
  221. package/lib/network/gossip/topic.d.ts.map +1 -1
  222. package/lib/network/gossip/topic.js +6 -0
  223. package/lib/network/gossip/topic.js.map +1 -1
  224. package/lib/network/network.js +1 -1
  225. package/lib/network/network.js.map +1 -1
  226. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  227. package/lib/network/processor/gossipHandlers.js +32 -12
  228. package/lib/network/processor/gossipHandlers.js.map +1 -1
  229. package/lib/network/processor/gossipQueues/index.d.ts.map +1 -1
  230. package/lib/network/processor/gossipQueues/index.js +5 -0
  231. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  232. package/lib/network/processor/index.d.ts.map +1 -1
  233. package/lib/network/processor/index.js +1 -0
  234. package/lib/network/processor/index.js.map +1 -1
  235. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  236. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +14 -6
  237. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  238. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +1 -1
  239. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +11 -5
  240. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
  241. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
  242. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +17 -5
  243. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  244. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.d.ts.map +1 -1
  245. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js +7 -4
  246. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRange.js.map +1 -1
  247. package/lib/node/nodejs.d.ts.map +1 -1
  248. package/lib/node/nodejs.js +4 -2
  249. package/lib/node/nodejs.js.map +1 -1
  250. package/lib/node/notifier.js +7 -1
  251. package/lib/node/notifier.js.map +1 -1
  252. package/lib/sync/range/batch.d.ts +12 -2
  253. package/lib/sync/range/batch.d.ts.map +1 -1
  254. package/lib/sync/range/batch.js +56 -30
  255. package/lib/sync/range/batch.js.map +1 -1
  256. package/lib/sync/range/chain.d.ts +6 -2
  257. package/lib/sync/range/chain.d.ts.map +1 -1
  258. package/lib/sync/range/chain.js +4 -3
  259. package/lib/sync/range/chain.js.map +1 -1
  260. package/lib/sync/range/range.d.ts.map +1 -1
  261. package/lib/sync/range/range.js +17 -6
  262. package/lib/sync/range/range.js.map +1 -1
  263. package/lib/sync/types.d.ts +34 -0
  264. package/lib/sync/types.d.ts.map +1 -1
  265. package/lib/sync/types.js +34 -0
  266. package/lib/sync/types.js.map +1 -1
  267. package/lib/sync/unknownBlock.d.ts +24 -1
  268. package/lib/sync/unknownBlock.d.ts.map +1 -1
  269. package/lib/sync/unknownBlock.js +649 -53
  270. package/lib/sync/unknownBlock.js.map +1 -1
  271. package/lib/sync/utils/downloadByRange.d.ts +46 -10
  272. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  273. package/lib/sync/utils/downloadByRange.js +147 -24
  274. package/lib/sync/utils/downloadByRange.js.map +1 -1
  275. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  276. package/lib/sync/utils/downloadByRoot.js +6 -2
  277. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  278. package/lib/sync/utils/pendingBlocksTree.d.ts +0 -1
  279. package/lib/sync/utils/pendingBlocksTree.d.ts.map +1 -1
  280. package/lib/sync/utils/pendingBlocksTree.js +0 -9
  281. package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
  282. package/lib/util/sszBytes.d.ts.map +1 -1
  283. package/lib/util/sszBytes.js +16 -3
  284. package/lib/util/sszBytes.js.map +1 -1
  285. package/package.json +17 -16
  286. package/src/api/impl/beacon/blocks/index.ts +6 -6
  287. package/src/api/impl/beacon/state/utils.ts +2 -2
  288. package/src/api/impl/lodestar/attesterSlashing.ts +43 -0
  289. package/src/api/impl/lodestar/index.ts +49 -3
  290. package/src/api/impl/validator/index.ts +3 -6
  291. package/src/chain/GetBlobsTracker.ts +1 -2
  292. package/src/chain/archiveStore/archiveStore.ts +5 -5
  293. package/src/chain/archiveStore/interface.ts +4 -4
  294. package/src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts +6 -8
  295. package/src/chain/archiveStore/utils/archiveBlocks.ts +153 -94
  296. package/src/chain/blocks/importBlock.ts +31 -42
  297. package/src/chain/blocks/importExecutionPayload.ts +93 -104
  298. package/src/chain/blocks/index.ts +45 -14
  299. package/src/chain/blocks/payloadEnvelopeInput/payloadEnvelopeInput.ts +27 -0
  300. package/src/chain/blocks/payloadEnvelopeProcessor.ts +7 -6
  301. package/src/chain/blocks/types.ts +15 -26
  302. package/src/chain/blocks/utils/chainSegment.ts +106 -17
  303. package/src/chain/blocks/verifyBlock.ts +35 -6
  304. package/src/chain/blocks/verifyBlocksSanityChecks.ts +16 -7
  305. package/src/chain/blocks/verifyExecutionPayloadEnvelope.ts +129 -0
  306. package/src/chain/blocks/verifyPayloadsDataAvailability.ts +38 -0
  307. package/src/chain/blocks/writePayloadEnvelopeInputToDb.ts +9 -18
  308. package/src/chain/chain.ts +51 -65
  309. package/src/chain/emitter.ts +15 -3
  310. package/src/chain/errors/attestationError.ts +6 -1
  311. package/src/chain/errors/blockError.ts +4 -1
  312. package/src/chain/errors/executionPayloadBid.ts +6 -0
  313. package/src/chain/errors/executionPayloadEnvelope.ts +6 -0
  314. package/src/chain/errors/index.ts +1 -0
  315. package/src/chain/errors/proposerPreferences.ts +39 -0
  316. package/src/chain/forkChoice/index.ts +8 -20
  317. package/src/chain/interface.ts +11 -3
  318. package/src/chain/prepareNextSlot.ts +62 -23
  319. package/src/chain/produceBlock/computeNewStateRoot.ts +6 -43
  320. package/src/chain/produceBlock/produceBlockBody.ts +73 -27
  321. package/src/chain/regen/errors.ts +1 -6
  322. package/src/chain/regen/interface.ts +7 -12
  323. package/src/chain/regen/queued.ts +12 -48
  324. package/src/chain/regen/regen.ts +8 -36
  325. package/src/chain/seenCache/index.ts +1 -0
  326. package/src/chain/seenCache/seenPayloadEnvelopeInput.ts +22 -20
  327. package/src/chain/seenCache/seenProposerPreferences.ts +29 -0
  328. package/src/chain/stateCache/datastore/db.ts +10 -33
  329. package/src/chain/stateCache/datastore/file.ts +5 -6
  330. package/src/chain/stateCache/datastore/types.ts +2 -3
  331. package/src/chain/stateCache/fifoBlockStateCache.ts +1 -10
  332. package/src/chain/stateCache/persistentCheckpointsCache.ts +139 -247
  333. package/src/chain/stateCache/types.ts +8 -14
  334. package/src/chain/validation/aggregateAndProof.ts +13 -0
  335. package/src/chain/validation/attestation.ts +13 -0
  336. package/src/chain/validation/block.ts +1 -0
  337. package/src/chain/validation/executionPayloadBid.ts +14 -0
  338. package/src/chain/validation/executionPayloadEnvelope.ts +22 -12
  339. package/src/chain/validation/payloadAttestationMessage.ts +5 -3
  340. package/src/chain/validation/proposerPreferences.ts +91 -0
  341. package/src/db/repositories/executionPayloadEnvelopeArchive.ts +1 -1
  342. package/src/execution/engine/http.ts +21 -14
  343. package/src/execution/engine/interface.ts +1 -0
  344. package/src/execution/engine/mock.ts +8 -1
  345. package/src/execution/engine/types.ts +41 -0
  346. package/src/metrics/metrics/lodestar.ts +4 -0
  347. package/src/network/gossip/interface.ts +6 -0
  348. package/src/network/gossip/scoringParameters.ts +14 -1
  349. package/src/network/gossip/topic.ts +6 -0
  350. package/src/network/network.ts +1 -1
  351. package/src/network/processor/gossipHandlers.ts +41 -16
  352. package/src/network/processor/gossipQueues/index.ts +5 -0
  353. package/src/network/processor/index.ts +1 -0
  354. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +14 -6
  355. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +11 -5
  356. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +17 -5
  357. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRange.ts +7 -4
  358. package/src/node/nodejs.ts +4 -2
  359. package/src/node/notifier.ts +8 -1
  360. package/src/sync/range/batch.ts +90 -35
  361. package/src/sync/range/chain.ts +13 -5
  362. package/src/sync/range/range.ts +18 -6
  363. package/src/sync/types.ts +72 -0
  364. package/src/sync/unknownBlock.ts +810 -57
  365. package/src/sync/utils/downloadByRange.ts +256 -39
  366. package/src/sync/utils/downloadByRoot.ts +12 -2
  367. package/src/sync/utils/pendingBlocksTree.ts +0 -15
  368. package/src/util/sszBytes.ts +21 -3
@@ -1 +1 @@
1
- {"version":3,"file":"verifyBlocksSanityChecks.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksSanityChecks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifyBlocksSanityChecks.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksSanityChecks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,uBAAuB,EAAC,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAgB,kBAAkB,EAAC,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAK9D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAMC,EACD,MAAqB,EACrB,IAAqB,EAKrB;IACA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,cAAc,GAAkB,EAAE,CAAC;IACzC,MAAM,WAAW,GAAW,EAAE,CAAC;IAC/B,IAAI,WAAW,GAAsB,IAAI,CAAC;IAE1C,KAAK,MAAM,UAAU,IAAI,MAAM,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACrC,MAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAEnH,IAAI,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,uEAAuE;YACvE,IAAI,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;gBACpD,qDAAqD;gBACrD,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,iBAAiB,EAAC,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACrE,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAClD,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,iBAAiB,EAAC,CAAC,CAAC;QACxE,CAAC;QAED,oBAAoB;QACpB,mDAAmD;QACnD,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,SAAS;YACX,CAAC;YACD,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,aAAa,EAAC,CAAC,CAAC;QACpE,CAAC;QAED,qBAAqB;QACrB,uDAAuD;QACvD,MAAM,aAAa,GAAG,uBAAuB,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC,KAAK,CAAC,CAAC;QAC/F,IAAI,SAAS,IAAI,aAAa,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,SAAS;YACX,CAAC;YACD,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,2BAA2B,EAAE,SAAS,EAAE,aAAa,EAAC,CAAC,CAAC;QAC5G,CAAC;QAED,MAAM,iBAAiB,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAI,eAAqB,CAAC;QAE1B,IAAI,iBAAiB,EAAE,CAAC;YACtB,eAAe,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,qGAAqG;YACrG,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACvD,MAAM,wBAAwB,GAAG,KAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;YACvF,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAC9B,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,cAAc,EAAE,UAAU,EAAC,CAAC,CAAC;YACjF,CAAC;YAED,WAAW,GAAG,wBAAwB,CAAC;YACvC,IAAI,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtC,MAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;gBACxG,MAAM,sBAAsB,GAAG,KAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;gBACrG,IAAI,CAAC,sBAAsB,EAAE,CAAC;oBAC5B,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE;wBAC1B,IAAI,EAAE,cAAc,CAAC,sBAAsB;wBAC3C,UAAU;wBACV,eAAe;qBAChB,CAAC,CAAC;gBACL,CAAC;gBACD,WAAW,GAAG,sBAAsB,CAAC;YACvC,CAAC;YACD,qCAAqC;YACrC,eAAe,GAAG,WAAW,CAAC,IAAI,CAAC;QACrC,CAAC;QAED,oDAAoD;QACpD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;QAC5C,IAAI,SAAS,GAAG,WAAW,EAAE,CAAC;YAC5B,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,EAAC,CAAC,CAAC;QAC1F,CAAC;QAED,oBAAoB;QACpB,mDAAmD;QACnD,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,SAAS;YACX,CAAC;YAED,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC,CAAC;QACrF,CAAC;QAED,oBAAoB;QACpB,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACpC,CAAC;IAED,mFAAmF;IACnF,iCAAiC;IACjC,IAAI,WAAW,KAAK,IAAI,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,MAAM,KAAK,CAAC,qEAAqE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5G,CAAC;IAED,OAAO,EAAC,cAAc,EAAE,WAAW,EAAE,WAAW,EAAC,CAAC;AAAA,CACnD"}
@@ -0,0 +1,24 @@
1
+ import { BeaconConfig } from "@lodestar/config";
2
+ import { type IBeaconStateViewGloas, type PubkeyCache } from "@lodestar/state-transition";
3
+ import { gloas } from "@lodestar/types";
4
+ import { IBlsVerifier } from "../bls/index.js";
5
+ export type VerifyExecutionPayloadEnvelopeOpts = {
6
+ verifyExecutionRequestsRoot?: boolean;
7
+ };
8
+ /**
9
+ * Verify execution payload envelope fields against the post-block state.
10
+ *
11
+ * Signature verification and the execution engine call (`verify_and_notify_new_payload`) are
12
+ * performed outside this function, see `verifyExecutionPayloadEnvelopeSignature` and
13
+ * `importExecutionPayload` which run both in parallel with this check.
14
+ *
15
+ * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.5/specs/gloas/fork-choice.md#new-verify_execution_payload_envelope
16
+ */
17
+ export declare function verifyExecutionPayloadEnvelope(config: BeaconConfig, state: IBeaconStateViewGloas, envelope: gloas.ExecutionPayloadEnvelope, opts?: VerifyExecutionPayloadEnvelopeOpts): void;
18
+ /**
19
+ * Verify the BLS signature of an execution payload envelope.
20
+ *
21
+ * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.5/specs/gloas/fork-choice.md#new-verify_execution_payload_envelope_signature
22
+ */
23
+ export declare function verifyExecutionPayloadEnvelopeSignature(config: BeaconConfig, state: IBeaconStateViewGloas, pubkeyCache: PubkeyCache, signedEnvelope: gloas.SignedExecutionPayloadEnvelope, proposerIndex: number, bls: IBlsVerifier): Promise<boolean>;
24
+ //# sourceMappingURL=verifyExecutionPayloadEnvelope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyExecutionPayloadEnvelope.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/verifyExecutionPayloadEnvelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAGjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,KAAK,EAAM,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAE7C,MAAM,MAAM,kCAAkC,GAAG;IAC/C,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACvC,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,qBAAqB,EAC5B,QAAQ,EAAE,KAAK,CAAC,wBAAwB,EACxC,IAAI,CAAC,EAAE,kCAAkC,GACxC,IAAI,CA4EN;AAED;;;;GAIG;AACH,wBAAsB,uCAAuC,CAC3D,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,qBAAqB,EAC5B,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,KAAK,CAAC,8BAA8B,EACpD,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,OAAO,CAAC,CASlB"}
@@ -0,0 +1,76 @@
1
+ import { computeTimeAtSlot, getExecutionPayloadEnvelopeSignatureSet, } from "@lodestar/state-transition";
2
+ import { ssz } from "@lodestar/types";
3
+ import { byteArrayEquals, toHex, toRootHex } from "@lodestar/utils";
4
+ /**
5
+ * Verify execution payload envelope fields against the post-block state.
6
+ *
7
+ * Signature verification and the execution engine call (`verify_and_notify_new_payload`) are
8
+ * performed outside this function, see `verifyExecutionPayloadEnvelopeSignature` and
9
+ * `importExecutionPayload` which run both in parallel with this check.
10
+ *
11
+ * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.5/specs/gloas/fork-choice.md#new-verify_execution_payload_envelope
12
+ */
13
+ export function verifyExecutionPayloadEnvelope(config, state, envelope, opts) {
14
+ const { verifyExecutionRequestsRoot = true } = opts ?? {};
15
+ const payload = envelope.payload;
16
+ // Verify consistency with the beacon block.
17
+ // Compute header root on a clone of latestBlockHeader to avoid mutating state.
18
+ const headerValue = ssz.phase0.BeaconBlockHeader.clone(state.latestBlockHeader);
19
+ if (byteArrayEquals(headerValue.stateRoot, ssz.Root.defaultValue())) {
20
+ headerValue.stateRoot = state.hashTreeRoot();
21
+ }
22
+ const headerRoot = ssz.phase0.BeaconBlockHeader.hashTreeRoot(headerValue);
23
+ if (!byteArrayEquals(envelope.beaconBlockRoot, headerRoot)) {
24
+ throw new Error(`Envelope's block is not the latest block header envelope=${toRootHex(envelope.beaconBlockRoot)} latestBlockHeader=${toRootHex(headerRoot)}`);
25
+ }
26
+ // Verify consistency with the committed bid
27
+ const bid = state.latestExecutionPayloadBid;
28
+ if (envelope.builderIndex !== bid.builderIndex) {
29
+ throw new Error(`Builder index mismatch between envelope and committed bid envelope=${envelope.builderIndex} bid=${bid.builderIndex}`);
30
+ }
31
+ if (!byteArrayEquals(bid.prevRandao, payload.prevRandao)) {
32
+ throw new Error(`Prev randao mismatch between bid and payload bid=${toHex(bid.prevRandao)} payload=${toHex(payload.prevRandao)}`);
33
+ }
34
+ if (Number(bid.gasLimit) !== payload.gasLimit) {
35
+ throw new Error(`Gas limit mismatch between payload and bid payload=${payload.gasLimit} bid=${Number(bid.gasLimit)}`);
36
+ }
37
+ if (!byteArrayEquals(bid.blockHash, payload.blockHash)) {
38
+ throw new Error(`Block hash mismatch between payload and bid payload=${toRootHex(payload.blockHash)} bid=${toRootHex(bid.blockHash)}`);
39
+ }
40
+ // Verify execution_requests_root matches bid commitment.
41
+ // Can be skipped if already verified during gossip validation.
42
+ if (verifyExecutionRequestsRoot) {
43
+ const requestsRoot = ssz.electra.ExecutionRequests.hashTreeRoot(envelope.executionRequests);
44
+ if (!byteArrayEquals(requestsRoot, bid.executionRequestsRoot)) {
45
+ throw new Error(`Execution requests root mismatch envelope=${toRootHex(requestsRoot)} bid=${toRootHex(bid.executionRequestsRoot)}`);
46
+ }
47
+ }
48
+ // Verify the execution payload is valid
49
+ if (payload.slotNumber !== state.slot) {
50
+ throw new Error(`Slot mismatch between payload and state payload=${payload.slotNumber} state=${state.slot}`);
51
+ }
52
+ if (!byteArrayEquals(payload.parentHash, state.latestBlockHash)) {
53
+ throw new Error(`Parent hash mismatch between payload and state payload=${toRootHex(payload.parentHash)} state=${toRootHex(state.latestBlockHash)}`);
54
+ }
55
+ const expectedTimestamp = computeTimeAtSlot(config, state.slot, state.genesisTime);
56
+ if (payload.timestamp !== expectedTimestamp) {
57
+ throw new Error(`Timestamp mismatch between payload and state payload=${payload.timestamp} state=${expectedTimestamp}`);
58
+ }
59
+ // Verify consistency with expected withdrawals
60
+ const payloadWithdrawalsRoot = ssz.capella.Withdrawals.hashTreeRoot(payload.withdrawals);
61
+ const expectedWithdrawalsRoot = ssz.capella.Withdrawals.hashTreeRoot(state.payloadExpectedWithdrawals);
62
+ if (!byteArrayEquals(payloadWithdrawalsRoot, expectedWithdrawalsRoot)) {
63
+ throw new Error(`Withdrawals mismatch between payload and expected payload=${toRootHex(payloadWithdrawalsRoot)} expected=${toRootHex(expectedWithdrawalsRoot)}`);
64
+ }
65
+ // Execution engine verification (verify_and_notify_new_payload) is done externally by the caller
66
+ }
67
+ /**
68
+ * Verify the BLS signature of an execution payload envelope.
69
+ *
70
+ * Spec: https://github.com/ethereum/consensus-specs/blob/v1.7.0-alpha.5/specs/gloas/fork-choice.md#new-verify_execution_payload_envelope_signature
71
+ */
72
+ export async function verifyExecutionPayloadEnvelopeSignature(config, state, pubkeyCache, signedEnvelope, proposerIndex, bls) {
73
+ const signatureSet = getExecutionPayloadEnvelopeSignatureSet(config, pubkeyCache, state, signedEnvelope, proposerIndex);
74
+ return bls.verifySignatureSets([signatureSet]);
75
+ }
76
+ //# sourceMappingURL=verifyExecutionPayloadEnvelope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyExecutionPayloadEnvelope.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyExecutionPayloadEnvelope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { DataAvailabilityStatus } from "@lodestar/state-transition";
2
+ import { PayloadEnvelopeInput } from "../seenCache/seenPayloadEnvelopeInput.js";
3
+ export declare const PAYLOAD_DATA_AVAILABILITY_TIMEOUT = 12000;
4
+ /**
5
+ * Verifies that all payload envelope inputs have their data columns available.
6
+ * - Waits a max of PAYLOAD_DATA_AVAILABILITY_TIMEOUT for all data to be available
7
+ * - Returns the time at which all data was available
8
+ * - Returns the data availability status for each payload input
9
+ */
10
+ export declare function verifyPayloadsDataAvailability(payloadInputs: PayloadEnvelopeInput[], signal: AbortSignal): Promise<{
11
+ dataAvailabilityStatuses: DataAvailabilityStatus[];
12
+ availableTime: number;
13
+ }>;
14
+ //# sourceMappingURL=verifyPayloadsDataAvailability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyPayloadsDataAvailability.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/verifyPayloadsDataAvailability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAC,oBAAoB,EAAC,MAAM,0CAA0C,CAAC;AAI9E,eAAO,MAAM,iCAAiC,QAAS,CAAC;AAExD;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,aAAa,EAAE,oBAAoB,EAAE,EACrC,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC;IACT,wBAAwB,EAAE,sBAAsB,EAAE,CAAC;IACnD,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC,CAiBD"}
@@ -0,0 +1,25 @@
1
+ import { DataAvailabilityStatus } from "@lodestar/state-transition";
2
+ // we can now wait for full 12 seconds because sync and reconstruction will try pulling
3
+ // the data columns from the network anyway while the envelope is being processed
4
+ export const PAYLOAD_DATA_AVAILABILITY_TIMEOUT = 12_000;
5
+ /**
6
+ * Verifies that all payload envelope inputs have their data columns available.
7
+ * - Waits a max of PAYLOAD_DATA_AVAILABILITY_TIMEOUT for all data to be available
8
+ * - Returns the time at which all data was available
9
+ * - Returns the data availability status for each payload input
10
+ */
11
+ export async function verifyPayloadsDataAvailability(payloadInputs, signal) {
12
+ const promises = [];
13
+ for (const payloadInput of payloadInputs) {
14
+ if (!payloadInput.hasAllData()) {
15
+ promises.push(payloadInput.waitForAllData(PAYLOAD_DATA_AVAILABILITY_TIMEOUT, signal));
16
+ }
17
+ }
18
+ await Promise.all(promises);
19
+ const availableTime = Math.max(0, Math.max(...payloadInputs.map((payloadInput) => payloadInput.getTimeComplete())));
20
+ const dataAvailabilityStatuses = payloadInputs.map((payloadInput) => payloadInput.getBlobKzgCommitments().length === 0
21
+ ? DataAvailabilityStatus.NotRequired
22
+ : DataAvailabilityStatus.Available);
23
+ return { dataAvailabilityStatuses, availableTime };
24
+ }
25
+ //# sourceMappingURL=verifyPayloadsDataAvailability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifyPayloadsDataAvailability.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyPayloadsDataAvailability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAIlE,uFAAuF;AACvF,iFAAiF;AACjF,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC;AAExD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,aAAqC,EACrC,MAAmB,EAIlB;IACD,MAAM,QAAQ,GAAyC,EAAE,CAAC;IAC1D,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,iCAAiC,EAAE,MAAM,CAAC,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE5B,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;IACpH,MAAM,wBAAwB,GAA6B,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAC5F,YAAY,CAAC,qBAAqB,EAAE,CAAC,MAAM,KAAK,CAAC;QAC/C,CAAC,CAAC,sBAAsB,CAAC,WAAW;QACpC,CAAC,CAAC,sBAAsB,CAAC,SAAS,CACrC,CAAC;IAEF,OAAO,EAAC,wBAAwB,EAAE,aAAa,EAAC,CAAC;AAAA,CAClD"}
@@ -3,7 +3,7 @@ import { PayloadEnvelopeInput } from "../seenCache/seenPayloadEnvelopeInput.js";
3
3
  /**
4
4
  * Persists payload envelope data to DB. This operation must be eventually completed if a payload is imported.
5
5
  *
6
- * TODO GLOAS: Persist envelope metadata (stateRoot, executionRequests, builderIndex, etc.) without the full
6
+ * TODO GLOAS: Persist envelope metadata (executionRequests, builderIndex, etc.) without the full
7
7
  * execution payload body — only keep the blockHash reference. The EL already stores the payload.
8
8
  * See https://github.com/ChainSafe/lodestar/issues/5671
9
9
  */
@@ -1 +1 @@
1
- {"version":3,"file":"writePayloadEnvelopeInputToDb.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/writePayloadEnvelopeInputToDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAAC,oBAAoB,EAAC,MAAM,0CAA0C,CAAC;AAG9E;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAAC,IAAI,CAAC,CAoBf"}
1
+ {"version":3,"file":"writePayloadEnvelopeInputToDb.d.ts","sourceRoot":"","sources":["../../../src/chain/blocks/writePayloadEnvelopeInputToDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAAC,oBAAoB,EAAC,MAAM,0CAA0C,CAAC;AAG9E;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,oBAAoB,GACjC,OAAO,CAAC,IAAI,CAAC,CAWf"}
@@ -2,7 +2,7 @@ import { writeDataColumnsToDb } from "./writeBlockInputToDb.js";
2
2
  /**
3
3
  * Persists payload envelope data to DB. This operation must be eventually completed if a payload is imported.
4
4
  *
5
- * TODO GLOAS: Persist envelope metadata (stateRoot, executionRequests, builderIndex, etc.) without the full
5
+ * TODO GLOAS: Persist envelope metadata (executionRequests, builderIndex, etc.) without the full
6
6
  * execution payload body — only keep the blockHash reference. The EL already stores the payload.
7
7
  * See https://github.com/ChainSafe/lodestar/issues/5671
8
8
  */
@@ -21,20 +21,11 @@ export async function writePayloadEnvelopeInputToDb(payloadInput) {
21
21
  });
22
22
  }
23
23
  export async function persistPayloadEnvelopeInput(payloadInput) {
24
- await writePayloadEnvelopeInputToDb
25
- .call(this, payloadInput)
26
- .catch((e) => {
24
+ await writePayloadEnvelopeInputToDb.call(this, payloadInput).catch((e) => {
27
25
  this.logger.error("Error persisting payload envelope in hot db", {
28
26
  slot: payloadInput.slot,
29
27
  root: payloadInput.blockRootHex,
30
28
  }, e);
31
- })
32
- .finally(() => {
33
- this.seenPayloadEnvelopeInputCache.prune(payloadInput.blockRootHex);
34
- this.logger.debug("Pruned payload envelope input", {
35
- slot: payloadInput.slot,
36
- root: payloadInput.blockRootHex,
37
- });
38
29
  });
39
30
  }
40
31
  //# sourceMappingURL=writePayloadEnvelopeInputToDb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"writePayloadEnvelopeInputToDb.js","sourceRoot":"","sources":["../../../src/chain/blocks/writePayloadEnvelopeInputToDb.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,oBAAoB,EAAC,MAAM,0BAA0B,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAEjD,YAAkC,EACnB;IACf,MAAM,QAAQ,GAAG,YAAY,CAAC,kBAAkB,EAAE,CAAC;IACnD,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;IAE/C,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,aAAa;QACnC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;QAC7G,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEnD,mFAAmF;IACnF,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACpF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;QACpD,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,IAAI,EAAE,YAAY;KACnB,CAAC,CAAC;AAAA,CACJ;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAE/C,YAAkC,EACnB;IACf,MAAM,6BAA6B;SAChC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC;SACxB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6CAA6C,EAC7C;YACE,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,YAAY,CAAC,YAAY;SAChC,EACD,CAAC,CACF,CAAC;IAAA,CACH,CAAC;SACD,OAAO,CAAC,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE;YACjD,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,YAAY,CAAC,YAAY;SAChC,CAAC,CAAC;IAAA,CACJ,CAAC,CAAC;AAAA,CACN"}
1
+ {"version":3,"file":"writePayloadEnvelopeInputToDb.js","sourceRoot":"","sources":["../../../src/chain/blocks/writePayloadEnvelopeInputToDb.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,oBAAoB,EAAC,MAAM,0BAA0B,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAEjD,YAAkC,EACnB;IACf,MAAM,QAAQ,GAAG,YAAY,CAAC,kBAAkB,EAAE,CAAC;IACnD,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;IAE/C,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,aAAa;QACnC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;QAC7G,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEnD,mFAAmF;IACnF,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACpF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;QACpD,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,IAAI,EAAE,YAAY;KACnB,CAAC,CAAC;AAAA,CACJ;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAE/C,YAAkC,EACnB;IACf,MAAM,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6CAA6C,EAC7C;YACE,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,YAAY,CAAC,YAAY;SAChC,EACD,CAAC,CACF,CAAC;IAAA,CACH,CAAC,CAAC;AAAA,CACJ"}
@@ -1,9 +1,9 @@
1
1
  import { PrivateKey } from "@libp2p/interface";
2
2
  import { Type } from "@chainsafe/ssz";
3
3
  import { BeaconConfig } from "@lodestar/config";
4
- import { CheckpointWithPayloadStatus, IForkChoice, ProtoBlock } from "@lodestar/fork-choice";
4
+ import { CheckpointWithHex, IForkChoice, ProtoBlock } from "@lodestar/fork-choice";
5
5
  import { EpochShuffling, IBeaconStateView, PubkeyCache } from "@lodestar/state-transition";
6
- import { BeaconBlock, BlindedBeaconBlock, DataColumnSidecar, Epoch, Root, RootHex, SignedBeaconBlock, Slot, Status, UintNum64, ValidatorIndex, Wei, deneb, gloas, phase0, rewards } from "@lodestar/types";
6
+ import { BeaconBlock, BlindedBeaconBlock, DataColumnSidecar, Epoch, Root, RootHex, SignedBeaconBlock, Slot, Status, UintNum64, ValidatorIndex, Wei, deneb, electra, gloas, phase0, rewards } from "@lodestar/types";
7
7
  import { Logger } from "@lodestar/utils";
8
8
  import { ProcessShutdownCallback } from "@lodestar/validator";
9
9
  import { IBeaconDb } from "../db/index.js";
@@ -34,7 +34,7 @@ import { AssembledBlockType, BlockType, ProduceResult } from "./produceBlock/ind
34
34
  import { BlockAttributes } from "./produceBlock/produceBlockBody.js";
35
35
  import { QueuedStateRegenerator, RegenCaller } from "./regen/index.js";
36
36
  import { ReprocessController } from "./reprocess.js";
37
- import { PayloadEnvelopeInput, SeenAggregators, SeenAttesters, SeenBlockProposers, SeenContributionAndProof, SeenExecutionPayloadBids, SeenPayloadAttesters, SeenPayloadEnvelopeInput, SeenSyncCommitteeMessages } from "./seenCache/index.js";
37
+ import { PayloadEnvelopeInput, SeenAggregators, SeenAttesters, SeenBlockProposers, SeenContributionAndProof, SeenExecutionPayloadBids, SeenPayloadAttesters, SeenPayloadEnvelopeInput, SeenProposerPreferences, SeenSyncCommitteeMessages } from "./seenCache/index.js";
38
38
  import { SeenAggregatedAttestations } from "./seenCache/seenAggregateAndProof.js";
39
39
  import { SeenAttestationDatas } from "./seenCache/seenAttestationData.js";
40
40
  import { SeenBlockAttesters } from "./seenCache/seenBlockAttesters.js";
@@ -75,6 +75,7 @@ export declare class BeaconChain implements IBeaconChain {
75
75
  readonly seenPayloadAttesters: SeenPayloadAttesters;
76
76
  readonly seenAggregatedAttestations: SeenAggregatedAttestations;
77
77
  readonly seenExecutionPayloadBids: SeenExecutionPayloadBids;
78
+ readonly seenProposerPreferences: SeenProposerPreferences;
78
79
  readonly seenBlockProposers: SeenBlockProposers;
79
80
  readonly seenSyncCommitteeMessages: SeenSyncCommitteeMessages;
80
81
  readonly seenContributionAndProof: SeenContributionAndProof;
@@ -154,12 +155,12 @@ export declare class BeaconChain implements IBeaconChain {
154
155
  finalized: boolean;
155
156
  } | null>;
156
157
  getPersistedCheckpointState(checkpoint?: phase0.Checkpoint): Promise<Uint8Array | null>;
157
- getStateByCheckpoint(checkpoint: CheckpointWithPayloadStatus): {
158
+ getStateByCheckpoint(checkpoint: CheckpointWithHex): {
158
159
  state: IBeaconStateView;
159
160
  executionOptimistic: boolean;
160
161
  finalized: boolean;
161
162
  } | null;
162
- getStateOrBytesByCheckpoint(checkpoint: CheckpointWithPayloadStatus): Promise<{
163
+ getStateOrBytesByCheckpoint(checkpoint: CheckpointWithHex): Promise<{
163
164
  state: IBeaconStateView | Uint8Array;
164
165
  executionOptimistic: boolean;
165
166
  finalized: boolean;
@@ -184,6 +185,7 @@ export declare class BeaconChain implements IBeaconChain {
184
185
  getSerializedBlobSidecars(blockSlot: Slot, blockRootHex: string): Promise<Uint8Array | null>;
185
186
  getSerializedExecutionPayloadEnvelope(blockSlot: Slot, blockRootHex: string): Promise<Uint8Array | null>;
186
187
  getExecutionPayloadEnvelope(blockSlot: Slot, blockRootHex: string): Promise<gloas.SignedExecutionPayloadEnvelope | null>;
188
+ getParentExecutionRequests(parentBlockSlot: Slot, parentBlockRootHex: RootHex): Promise<electra.ExecutionRequests>;
187
189
  getDataColumnSidecars(blockSlot: Slot, blockRootHex: string): Promise<DataColumnSidecar[]>;
188
190
  getSerializedDataColumnSidecars(blockSlot: Slot, blockRootHex: string, indices: number[]): Promise<(Uint8Array | undefined)[]>;
189
191
  produceCommonBlockBody(blockAttributes: BlockAttributes): Promise<CommonBlockBody>;
@@ -211,7 +213,7 @@ export declare class BeaconChain implements IBeaconChain {
211
213
  shouldOverrideBuilder?: boolean;
212
214
  }>;
213
215
  processBlock(block: IBlockInput, opts?: ImportBlockOpts): Promise<void>;
214
- processChainSegment(blocks: IBlockInput[], opts?: ImportBlockOpts): Promise<void>;
216
+ processChainSegment(blocks: IBlockInput[], payloadEnvelopes: Map<Slot, PayloadEnvelopeInput> | null, opts?: ImportBlockOpts): Promise<void>;
215
217
  processExecutionPayload(payloadInput: PayloadEnvelopeInput, opts?: ImportPayloadOpts): Promise<void>;
216
218
  getStatus(): Status;
217
219
  recomputeForkChoiceHead(caller: ForkchoiceCaller): ProtoBlock;
@@ -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
- import { PayloadStatus, UpdateHeadOpt, getCheckpointPayloadStatus, } from "@lodestar/fork-choice";
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";
2
+ import { UpdateHeadOpt } from "@lodestar/fork-choice";
3
+ import { EFFECTIVE_BALANCE_INCREMENT, GENESIS_SLOT, SLOTS_PER_EPOCH, isForkPostGloas, } from "@lodestar/params";
4
+ import { computeEndSlotAtEpoch, computeEpochAtSlot, computeStartSlotAtEpoch, getEffectiveBalancesFromStateBytes, isStatePostAltair, isStatePostElectra, } 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";
@@ -34,12 +34,12 @@ import { FindHeadFnName } from "./interface.js";
34
34
  import { LightClientServer } from "./lightClient/index.js";
35
35
  import { AggregatedAttestationPool, AttestationPool, ExecutionPayloadBidPool, OpPool, PayloadAttestationPool, SyncCommitteeMessagePool, SyncContributionAndProofPool, } from "./opPools/index.js";
36
36
  import { PrepareNextSlotScheduler } from "./prepareNextSlot.js";
37
- import { computeNewStateRoot, computePayloadEnvelopeStateRoot } from "./produceBlock/computeNewStateRoot.js";
37
+ import { computeNewStateRoot } from "./produceBlock/computeNewStateRoot.js";
38
38
  import { BlockType } from "./produceBlock/index.js";
39
39
  import { produceBlockBody, produceCommonBlockBody } from "./produceBlock/produceBlockBody.js";
40
40
  import { QueuedStateRegenerator, RegenCaller } from "./regen/index.js";
41
41
  import { ReprocessController } from "./reprocess.js";
42
- import { SeenAggregators, SeenAttesters, SeenBlockProposers, SeenContributionAndProof, SeenExecutionPayloadBids, SeenPayloadAttesters, SeenPayloadEnvelopeInput, SeenSyncCommitteeMessages, } from "./seenCache/index.js";
42
+ import { SeenAggregators, SeenAttesters, SeenBlockProposers, SeenContributionAndProof, SeenExecutionPayloadBids, SeenPayloadAttesters, SeenPayloadEnvelopeInput, SeenProposerPreferences, SeenSyncCommitteeMessages, } from "./seenCache/index.js";
43
43
  import { SeenAggregatedAttestations } from "./seenCache/seenAggregateAndProof.js";
44
44
  import { SeenAttestationDatas } from "./seenCache/seenAttestationData.js";
45
45
  import { SeenBlockAttesters } from "./seenCache/seenBlockAttesters.js";
@@ -48,7 +48,7 @@ import { ShufflingCache } from "./shufflingCache.js";
48
48
  import { DbCPStateDatastore, checkpointToDatastoreKey } from "./stateCache/datastore/db.js";
49
49
  import { FileCPStateDatastore } from "./stateCache/datastore/file.js";
50
50
  import { FIFOBlockStateCache } from "./stateCache/fifoBlockStateCache.js";
51
- import { PersistentCheckpointStateCache, fcCheckpointToHexPayload } from "./stateCache/persistentCheckpointsCache.js";
51
+ import { PersistentCheckpointStateCache } from "./stateCache/persistentCheckpointsCache.js";
52
52
  /**
53
53
  * The maximum number of cached produced results to keep in memory.
54
54
  *
@@ -107,6 +107,7 @@ export class BeaconChain {
107
107
  seenPayloadAttesters = new SeenPayloadAttesters();
108
108
  seenAggregatedAttestations;
109
109
  seenExecutionPayloadBids = new SeenExecutionPayloadBids();
110
+ seenProposerPreferences = new SeenProposerPreferences();
110
111
  seenBlockProposers = new SeenBlockProposers();
111
112
  seenSyncCommitteeMessages = new SeenSyncCommitteeMessages();
112
113
  seenContributionAndProof;
@@ -243,8 +244,7 @@ export class BeaconChain {
243
244
  const { checkpoint } = anchorState.computeAnchorCheckpoint();
244
245
  blockStateCache.add(anchorState);
245
246
  blockStateCache.setHeadState(anchorState);
246
- const payloadPresent = getCheckpointPayloadStatus(config, anchorState, checkpoint.epoch) === PayloadStatus.FULL;
247
- checkpointStateCache.add(checkpoint, anchorState, payloadPresent);
247
+ checkpointStateCache.add(checkpoint, anchorState);
248
248
  const forkChoice = initializeForkChoice(config, emitter, clock.currentSlot, anchorState, isAnchorStateFinalized, opts, this.justifiedBalancesGetter.bind(this), metrics, logger);
249
249
  const regen = new QueuedStateRegenerator({
250
250
  config,
@@ -460,13 +460,13 @@ export class BeaconChain {
460
460
  }
461
461
  // TODO GLOAS: Need to revisit the design of this api. Currently we just retrieve FULL state of the checkpoint for backwards compatibility.
462
462
  // because pre-gloas we always store FULL checkpoint state.
463
- const persistedKey = checkpointToDatastoreKey(checkpoint, true);
463
+ const persistedKey = checkpointToDatastoreKey(checkpoint);
464
464
  return this.cpStateDatastore.read(persistedKey);
465
465
  }
466
466
  getStateByCheckpoint(checkpoint) {
467
467
  // finalized or justified checkpoint states maynot be available with PersistentCheckpointStateCache, use getCheckpointStateOrBytes() api to get Uint8Array
468
- const checkpointHexPayload = fcCheckpointToHexPayload(checkpoint);
469
- const cachedStateCtx = this.regen.getCheckpointStateSync(checkpointHexPayload);
468
+ const checkpointHex = { epoch: checkpoint.epoch, rootHex: checkpoint.rootHex };
469
+ const cachedStateCtx = this.regen.getCheckpointStateSync(checkpointHex);
470
470
  if (cachedStateCtx) {
471
471
  const block = this.forkChoice.getBlockDefaultStatus(ssz.phase0.BeaconBlockHeader.hashTreeRoot(cachedStateCtx.latestBlockHeader));
472
472
  const finalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
@@ -479,8 +479,8 @@ export class BeaconChain {
479
479
  return null;
480
480
  }
481
481
  async getStateOrBytesByCheckpoint(checkpoint) {
482
- const checkpointHexPayload = fcCheckpointToHexPayload(checkpoint);
483
- const cachedStateCtx = await this.regen.getCheckpointStateOrBytes(checkpointHexPayload);
482
+ const checkpointHex = { epoch: checkpoint.epoch, rootHex: checkpoint.rootHex };
483
+ const cachedStateCtx = await this.regen.getCheckpointStateOrBytes(checkpointHex);
484
484
  if (cachedStateCtx) {
485
485
  const block = this.forkChoice.getBlockDefaultStatus(checkpoint.root);
486
486
  const finalizedEpoch = this.forkChoice.getFinalizedCheckpoint().epoch;
@@ -636,6 +636,17 @@ export class BeaconChain {
636
636
  (await this.db.executionPayloadEnvelopeArchive.get(blockSlot)) ??
637
637
  null);
638
638
  }
639
+ async getParentExecutionRequests(parentBlockSlot, parentBlockRootHex) {
640
+ // at the fork boundary, parent is pre-gloas
641
+ if (!isForkPostGloas(this.config.getForkName(parentBlockSlot))) {
642
+ return ssz.electra.ExecutionRequests.defaultValue();
643
+ }
644
+ const envelope = await this.getExecutionPayloadEnvelope(parentBlockSlot, parentBlockRootHex);
645
+ if (envelope === null) {
646
+ throw Error(`Parent execution payload envelope not found slot=${parentBlockSlot}, root=${parentBlockRootHex}`);
647
+ }
648
+ return envelope.message.executionRequests;
649
+ }
639
650
  async getDataColumnSidecars(blockSlot, blockRootHex) {
640
651
  const fork = this.config.getForkName(blockSlot);
641
652
  if (isForkPostGloas(fork)) {
@@ -753,32 +764,16 @@ export class BeaconChain {
753
764
  stateRoot: ZERO_HASH,
754
765
  body,
755
766
  };
756
- const { newStateRoot, proposerReward, postBlockState } = computeNewStateRoot(this.metrics, state, block);
767
+ const { newStateRoot, proposerReward } = computeNewStateRoot(this.metrics, state, block);
757
768
  block.stateRoot = newStateRoot;
758
769
  const blockRoot = produceResult.type === BlockType.Full
759
770
  ? this.config.getForkTypes(slot).BeaconBlock.hashTreeRoot(block)
760
771
  : this.config.getPostBellatrixForkTypes(slot).BlindedBeaconBlock.hashTreeRoot(block);
761
772
  const blockRootHex = toRootHex(blockRoot);
762
773
  const fork = this.config.getForkName(slot);
763
- if (isForkPostGloas(fork)) {
764
- // TODO GLOAS: we should retire BlockType post-gloas, may need a new enum for self vs non-self built
765
- if (produceResult.type !== BlockType.Full) {
766
- throw Error(`Unexpected block type=${produceResult.type} for post-gloas fork=${fork}`);
767
- }
768
- const gloasResult = produceResult;
769
- const envelope = {
770
- payload: gloasResult.executionPayload,
771
- executionRequests: gloasResult.executionRequests,
772
- builderIndex: BUILDER_INDEX_SELF_BUILD,
773
- beaconBlockRoot: blockRoot,
774
- slot,
775
- stateRoot: ZERO_HASH,
776
- };
777
- if (!isStatePostGloas(postBlockState)) {
778
- throw Error(`Expected gloas+ post-state for execution payload envelope, got fork=${postBlockState.forkName}`);
779
- }
780
- const payloadEnvelopeStateRoot = computePayloadEnvelopeStateRoot(this.metrics, postBlockState, envelope);
781
- gloasResult.payloadEnvelopeStateRoot = payloadEnvelopeStateRoot;
774
+ // TODO GLOAS: we should retire BlockType post-gloas, may need a new enum for self vs non-self built
775
+ if (isForkPostGloas(fork) && produceResult.type !== BlockType.Full) {
776
+ throw Error(`Unexpected block type=${produceResult.type} for post-gloas fork=${fork}`);
782
777
  }
783
778
  // Track the produced block for consensus broadcast validations, later validation, etc.
784
779
  this.blockProductionCache.set(blockRootHex, produceResult);
@@ -786,10 +781,10 @@ export class BeaconChain {
786
781
  return { block, executionPayloadValue, consensusBlockValue: gweiToWei(proposerReward), shouldOverrideBuilder };
787
782
  }
788
783
  async processBlock(block, opts) {
789
- return this.blockProcessor.processBlocksJob([block], opts);
784
+ return this.blockProcessor.processBlocksJob([block], null, opts);
790
785
  }
791
- async processChainSegment(blocks, opts) {
792
- return this.blockProcessor.processBlocksJob(blocks, opts);
786
+ async processChainSegment(blocks, payloadEnvelopes, opts) {
787
+ await this.blockProcessor.processBlocksJob(blocks, payloadEnvelopes, opts);
793
788
  }
794
789
  async processExecutionPayload(payloadInput, opts) {
795
790
  return this.payloadEnvelopeProcessor.processPayloadEnvelopeJob(payloadInput, opts);
@@ -980,8 +975,8 @@ export class BeaconChain {
980
975
  * @param blockState state that declares justified checkpoint `checkpoint`
981
976
  */
982
977
  closestJustifiedBalancesStateToCheckpoint(checkpoint, blockState) {
983
- const checkpointHexPayload = fcCheckpointToHexPayload(checkpoint);
984
- const state = this.regen.getCheckpointStateSync(checkpointHexPayload);
978
+ const checkpointHex = { epoch: checkpoint.epoch, rootHex: checkpoint.rootHex };
979
+ const state = this.regen.getCheckpointStateSync(checkpointHex);
985
980
  if (state) {
986
981
  return { state, stateId: "checkpoint_state", shouldWarn: false };
987
982
  }
@@ -990,7 +985,7 @@ export class BeaconChain {
990
985
  return { state: blockState, stateId: "block_state_same_epoch", shouldWarn: true };
991
986
  }
992
987
  // Find a state in the same branch of checkpoint at same epoch. Balances should exactly the same
993
- for (const descendantBlock of this.forkChoice.forwardIterateDescendants(checkpoint.rootHex, checkpoint.payloadStatus)) {
988
+ for (const descendantBlock of this.forkChoice.forwardIterateDescendantsDefaultStatus(checkpoint.rootHex)) {
994
989
  if (computeEpochAtSlot(descendantBlock.slot) === checkpoint.epoch) {
995
990
  const descendantBlockState = this.regen.getStateSync(descendantBlock.stateRoot);
996
991
  if (descendantBlockState) {
@@ -1004,7 +999,7 @@ export class BeaconChain {
1004
999
  }
1005
1000
  // Find a state in the same branch of checkpoint at a latter epoch. Balances are not the same, but should be close
1006
1001
  // Note: must call .forwardIterateDescendants() again since nodes are not sorted
1007
- for (const descendantBlock of this.forkChoice.forwardIterateDescendants(checkpoint.rootHex, checkpoint.payloadStatus)) {
1002
+ for (const descendantBlock of this.forkChoice.forwardIterateDescendantsDefaultStatus(checkpoint.rootHex)) {
1008
1003
  if (computeEpochAtSlot(descendantBlock.slot) > checkpoint.epoch) {
1009
1004
  const descendantBlockState = this.regen.getStateSync(descendantBlock.stateRoot);
1010
1005
  if (descendantBlockState) {
@@ -1062,6 +1057,7 @@ export class BeaconChain {
1062
1057
  this.payloadAttestationPool.prune(slot);
1063
1058
  this.executionPayloadBidPool.prune(slot);
1064
1059
  this.seenExecutionPayloadBids.prune(slot);
1060
+ this.seenProposerPreferences.prune(slot);
1065
1061
  this.seenAttestationDatas.onSlot(slot);
1066
1062
  this.reprocessController.onSlot(slot);
1067
1063
  // Prune old cached block production artifacts, those are only useful on their slot
@@ -1080,9 +1076,6 @@ export class BeaconChain {
1080
1076
  }
1081
1077
  onClockEpoch(epoch) {
1082
1078
  this.metrics?.clockEpoch.set(epoch);
1083
- if (epoch === this.config.GLOAS_FORK_EPOCH) {
1084
- this.regen.upgradeForGloas(epoch);
1085
- }
1086
1079
  this.seenAttesters.prune(epoch);
1087
1080
  this.seenAggregators.prune(epoch);
1088
1081
  this.seenPayloadAttesters.prune(epoch);