@lodestar/beacon-node 1.39.1 → 1.40.0-dev.1020f27ca9

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 (441) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +15 -25
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/beacon/state/utils.d.ts +2 -7
  5. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  6. package/lib/api/impl/beacon/state/utils.js +0 -12
  7. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  8. package/lib/api/impl/config/constants.d.ts +3 -0
  9. package/lib/api/impl/config/constants.d.ts.map +1 -1
  10. package/lib/api/impl/config/constants.js +5 -1
  11. package/lib/api/impl/config/constants.js.map +1 -1
  12. package/lib/api/impl/debug/index.d.ts +1 -1
  13. package/lib/api/impl/debug/index.d.ts.map +1 -1
  14. package/lib/api/impl/debug/index.js +3 -6
  15. package/lib/api/impl/debug/index.js.map +1 -1
  16. package/lib/api/impl/lodestar/index.d.ts.map +1 -1
  17. package/lib/api/impl/lodestar/index.js +16 -3
  18. package/lib/api/impl/lodestar/index.js.map +1 -1
  19. package/lib/api/impl/proof/index.d.ts.map +1 -1
  20. package/lib/api/impl/proof/index.js +1 -2
  21. package/lib/api/impl/proof/index.js.map +1 -1
  22. package/lib/api/impl/validator/index.d.ts.map +1 -1
  23. package/lib/api/impl/validator/index.js +10 -11
  24. package/lib/api/impl/validator/index.js.map +1 -1
  25. package/lib/chain/ColumnReconstructionTracker.d.ts +2 -0
  26. package/lib/chain/ColumnReconstructionTracker.d.ts.map +1 -1
  27. package/lib/chain/ColumnReconstructionTracker.js +7 -3
  28. package/lib/chain/ColumnReconstructionTracker.js.map +1 -1
  29. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +1 -1
  30. package/lib/chain/archiveStore/historicalState/getHistoricalState.js +5 -3
  31. package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
  32. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  33. package/lib/chain/archiveStore/utils/archiveBlocks.js +23 -14
  34. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  35. package/lib/chain/blocks/blockInput/blockInput.d.ts +2 -0
  36. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  37. package/lib/chain/blocks/blockInput/blockInput.js +6 -0
  38. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  39. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  40. package/lib/chain/blocks/importBlock.js +14 -9
  41. package/lib/chain/blocks/importBlock.js.map +1 -1
  42. package/lib/chain/blocks/index.d.ts.map +1 -1
  43. package/lib/chain/blocks/index.js +0 -14
  44. package/lib/chain/blocks/index.js.map +1 -1
  45. package/lib/chain/blocks/types.d.ts +0 -2
  46. package/lib/chain/blocks/types.d.ts.map +1 -1
  47. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  48. package/lib/chain/blocks/verifyBlock.js +9 -9
  49. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  50. package/lib/chain/blocks/verifyBlocksSignatures.d.ts +2 -2
  51. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +1 -1
  52. package/lib/chain/blocks/verifyBlocksSignatures.js +2 -2
  53. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  54. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +1 -1
  55. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +1 -0
  56. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  57. package/lib/chain/blocks/writeBlockInputToDb.d.ts +1 -4
  58. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  59. package/lib/chain/blocks/writeBlockInputToDb.js +20 -28
  60. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  61. package/lib/chain/bls/multithread/index.d.ts +3 -1
  62. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  63. package/lib/chain/bls/multithread/index.js +5 -3
  64. package/lib/chain/bls/multithread/index.js.map +1 -1
  65. package/lib/chain/bls/multithread/jobItem.d.ts +2 -2
  66. package/lib/chain/bls/multithread/jobItem.d.ts.map +1 -1
  67. package/lib/chain/bls/multithread/jobItem.js +2 -2
  68. package/lib/chain/bls/multithread/jobItem.js.map +1 -1
  69. package/lib/chain/bls/singleThread.d.ts +4 -2
  70. package/lib/chain/bls/singleThread.d.ts.map +1 -1
  71. package/lib/chain/bls/singleThread.js +4 -2
  72. package/lib/chain/bls/singleThread.js.map +1 -1
  73. package/lib/chain/bls/utils.d.ts +2 -2
  74. package/lib/chain/bls/utils.d.ts.map +1 -1
  75. package/lib/chain/bls/utils.js +9 -6
  76. package/lib/chain/bls/utils.js.map +1 -1
  77. package/lib/chain/chain.d.ts +24 -6
  78. package/lib/chain/chain.d.ts.map +1 -1
  79. package/lib/chain/chain.js +201 -25
  80. package/lib/chain/chain.js.map +1 -1
  81. package/lib/chain/errors/attestationError.d.ts +14 -1
  82. package/lib/chain/errors/attestationError.d.ts.map +1 -1
  83. package/lib/chain/errors/attestationError.js +8 -0
  84. package/lib/chain/errors/attestationError.js.map +1 -1
  85. package/lib/chain/errors/executionPayloadBid.d.ts +48 -0
  86. package/lib/chain/errors/executionPayloadBid.d.ts.map +1 -0
  87. package/lib/chain/errors/executionPayloadBid.js +15 -0
  88. package/lib/chain/errors/executionPayloadBid.js.map +1 -0
  89. package/lib/chain/errors/executionPayloadEnvelope.d.ts +48 -0
  90. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -0
  91. package/lib/chain/errors/executionPayloadEnvelope.js +16 -0
  92. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -0
  93. package/lib/chain/errors/index.d.ts +3 -0
  94. package/lib/chain/errors/index.d.ts.map +1 -1
  95. package/lib/chain/errors/index.js +3 -0
  96. package/lib/chain/errors/index.js.map +1 -1
  97. package/lib/chain/errors/payloadAttestation.d.ts +34 -0
  98. package/lib/chain/errors/payloadAttestation.d.ts.map +1 -0
  99. package/lib/chain/errors/payloadAttestation.js +13 -0
  100. package/lib/chain/errors/payloadAttestation.js.map +1 -0
  101. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  102. package/lib/chain/forkChoice/index.js +18 -0
  103. package/lib/chain/forkChoice/index.js.map +1 -1
  104. package/lib/chain/initState.d.ts +1 -1
  105. package/lib/chain/initState.d.ts.map +1 -1
  106. package/lib/chain/initState.js +5 -3
  107. package/lib/chain/initState.js.map +1 -1
  108. package/lib/chain/interface.d.ts +23 -5
  109. package/lib/chain/interface.d.ts.map +1 -1
  110. package/lib/chain/interface.js.map +1 -1
  111. package/lib/chain/lightClient/proofs.d.ts.map +1 -1
  112. package/lib/chain/lightClient/proofs.js +0 -2
  113. package/lib/chain/lightClient/proofs.js.map +1 -1
  114. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +5 -9
  115. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  116. package/lib/chain/opPools/aggregatedAttestationPool.js +12 -141
  117. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  118. package/lib/chain/opPools/executionPayloadBidPool.d.ts +21 -0
  119. package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -0
  120. package/lib/chain/opPools/executionPayloadBidPool.js +57 -0
  121. package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -0
  122. package/lib/chain/opPools/index.d.ts +2 -0
  123. package/lib/chain/opPools/index.d.ts.map +1 -1
  124. package/lib/chain/opPools/index.js +2 -0
  125. package/lib/chain/opPools/index.js.map +1 -1
  126. package/lib/chain/opPools/opPool.js +5 -8
  127. package/lib/chain/opPools/opPool.js.map +1 -1
  128. package/lib/chain/opPools/payloadAttestationPool.d.ts +24 -0
  129. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -0
  130. package/lib/chain/opPools/payloadAttestationPool.js +109 -0
  131. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -0
  132. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  133. package/lib/chain/prepareNextSlot.js +9 -10
  134. package/lib/chain/prepareNextSlot.js.map +1 -1
  135. package/lib/chain/produceBlock/produceBlockBody.d.ts +3 -2
  136. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  137. package/lib/chain/produceBlock/produceBlockBody.js +6 -4
  138. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  139. package/lib/chain/regen/interface.d.ts +4 -13
  140. package/lib/chain/regen/interface.d.ts.map +1 -1
  141. package/lib/chain/regen/interface.js +1 -1
  142. package/lib/chain/regen/interface.js.map +1 -1
  143. package/lib/chain/regen/queued.d.ts +5 -9
  144. package/lib/chain/regen/queued.d.ts.map +1 -1
  145. package/lib/chain/regen/queued.js +16 -40
  146. package/lib/chain/regen/queued.js.map +1 -1
  147. package/lib/chain/regen/regen.d.ts +6 -8
  148. package/lib/chain/regen/regen.d.ts.map +1 -1
  149. package/lib/chain/regen/regen.js +20 -34
  150. package/lib/chain/regen/regen.js.map +1 -1
  151. package/lib/chain/seenCache/index.d.ts +3 -1
  152. package/lib/chain/seenCache/index.d.ts.map +1 -1
  153. package/lib/chain/seenCache/index.js +3 -1
  154. package/lib/chain/seenCache/index.js.map +1 -1
  155. package/lib/chain/seenCache/seenAttesters.d.ts +5 -0
  156. package/lib/chain/seenCache/seenAttesters.d.ts.map +1 -1
  157. package/lib/chain/seenCache/seenAttesters.js +5 -0
  158. package/lib/chain/seenCache/seenAttesters.js.map +1 -1
  159. package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts +12 -0
  160. package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts.map +1 -0
  161. package/lib/chain/seenCache/seenExecutionPayloadBids.js +30 -0
  162. package/lib/chain/seenCache/seenExecutionPayloadBids.js.map +1 -0
  163. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts +15 -0
  164. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts.map +1 -0
  165. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js +28 -0
  166. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js.map +1 -0
  167. package/lib/chain/seenCache/seenGossipBlockInput.js +1 -1
  168. package/lib/chain/shufflingCache.d.ts +16 -11
  169. package/lib/chain/shufflingCache.d.ts.map +1 -1
  170. package/lib/chain/shufflingCache.js +47 -41
  171. package/lib/chain/shufflingCache.js.map +1 -1
  172. package/lib/chain/stateCache/blockStateCacheImpl.d.ts +1 -2
  173. package/lib/chain/stateCache/blockStateCacheImpl.d.ts.map +1 -1
  174. package/lib/chain/stateCache/blockStateCacheImpl.js +2 -2
  175. package/lib/chain/stateCache/blockStateCacheImpl.js.map +1 -1
  176. package/lib/chain/stateCache/fifoBlockStateCache.d.ts +1 -2
  177. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
  178. package/lib/chain/stateCache/fifoBlockStateCache.js +4 -4
  179. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  180. package/lib/chain/stateCache/inMemoryCheckpointsCache.d.ts +4 -5
  181. package/lib/chain/stateCache/inMemoryCheckpointsCache.d.ts.map +1 -1
  182. package/lib/chain/stateCache/inMemoryCheckpointsCache.js +9 -10
  183. package/lib/chain/stateCache/inMemoryCheckpointsCache.js.map +1 -1
  184. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +5 -6
  185. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  186. package/lib/chain/stateCache/persistentCheckpointsCache.js +17 -17
  187. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  188. package/lib/chain/stateCache/types.d.ts +5 -6
  189. package/lib/chain/stateCache/types.d.ts.map +1 -1
  190. package/lib/chain/stateCache/types.js.map +1 -1
  191. package/lib/chain/validation/aggregateAndProof.js +35 -14
  192. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  193. package/lib/chain/validation/attestation.d.ts +2 -2
  194. package/lib/chain/validation/attestation.d.ts.map +1 -1
  195. package/lib/chain/validation/attestation.js +28 -9
  196. package/lib/chain/validation/attestation.js.map +1 -1
  197. package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
  198. package/lib/chain/validation/attesterSlashing.js +2 -2
  199. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  200. package/lib/chain/validation/blobSidecar.d.ts.map +1 -1
  201. package/lib/chain/validation/blobSidecar.js +3 -3
  202. package/lib/chain/validation/blobSidecar.js.map +1 -1
  203. package/lib/chain/validation/block.d.ts.map +1 -1
  204. package/lib/chain/validation/block.js +7 -4
  205. package/lib/chain/validation/block.js.map +1 -1
  206. package/lib/chain/validation/blsToExecutionChange.d.ts.map +1 -1
  207. package/lib/chain/validation/blsToExecutionChange.js +9 -2
  208. package/lib/chain/validation/blsToExecutionChange.js.map +1 -1
  209. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  210. package/lib/chain/validation/dataColumnSidecar.js +3 -3
  211. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  212. package/lib/chain/validation/executionPayloadBid.d.ts +5 -0
  213. package/lib/chain/validation/executionPayloadBid.d.ts.map +1 -0
  214. package/lib/chain/validation/executionPayloadBid.js +104 -0
  215. package/lib/chain/validation/executionPayloadBid.js.map +1 -0
  216. package/lib/chain/validation/executionPayloadEnvelope.d.ts +5 -0
  217. package/lib/chain/validation/executionPayloadEnvelope.d.ts.map +1 -0
  218. package/lib/chain/validation/executionPayloadEnvelope.js +89 -0
  219. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -0
  220. package/lib/chain/validation/payloadAttestationMessage.d.ts +9 -0
  221. package/lib/chain/validation/payloadAttestationMessage.d.ts.map +1 -0
  222. package/lib/chain/validation/payloadAttestationMessage.js +72 -0
  223. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -0
  224. package/lib/chain/validation/proposerSlashing.js +3 -2
  225. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  226. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts +2 -3
  227. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts.map +1 -1
  228. package/lib/chain/validation/signatureSets/aggregateAndProof.js +8 -3
  229. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  230. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts +2 -2
  231. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts.map +1 -1
  232. package/lib/chain/validation/signatureSets/contributionAndProof.js +3 -3
  233. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  234. package/lib/chain/validation/signatureSets/selectionProof.d.ts +2 -3
  235. package/lib/chain/validation/signatureSets/selectionProof.d.ts.map +1 -1
  236. package/lib/chain/validation/signatureSets/selectionProof.js +8 -3
  237. package/lib/chain/validation/signatureSets/selectionProof.js.map +1 -1
  238. package/lib/chain/validation/signatureSets/syncCommittee.d.ts +2 -2
  239. package/lib/chain/validation/signatureSets/syncCommittee.d.ts.map +1 -1
  240. package/lib/chain/validation/signatureSets/syncCommittee.js +3 -3
  241. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  242. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts +1 -2
  243. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts.map +1 -1
  244. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js +2 -2
  245. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  246. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts +2 -2
  247. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts.map +1 -1
  248. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js +3 -3
  249. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  250. package/lib/chain/validation/syncCommittee.js +1 -1
  251. package/lib/chain/validation/syncCommittee.js.map +1 -1
  252. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +1 -1
  253. package/lib/chain/validation/syncCommitteeContributionAndProof.js +3 -5
  254. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  255. package/lib/chain/validation/voluntaryExit.js +1 -1
  256. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  257. package/lib/chain/validatorMonitor.d.ts +2 -0
  258. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  259. package/lib/chain/validatorMonitor.js +49 -7
  260. package/lib/chain/validatorMonitor.js.map +1 -1
  261. package/lib/db/repositories/checkpointState.d.ts +2 -6
  262. package/lib/db/repositories/checkpointState.d.ts.map +1 -1
  263. package/lib/db/repositories/checkpointState.js +3 -16
  264. package/lib/db/repositories/checkpointState.js.map +1 -1
  265. package/lib/db/repositories/stateArchive.d.ts +9 -9
  266. package/lib/db/repositories/stateArchive.d.ts.map +1 -1
  267. package/lib/db/repositories/stateArchive.js +6 -21
  268. package/lib/db/repositories/stateArchive.js.map +1 -1
  269. package/lib/execution/engine/mock.d.ts +9 -6
  270. package/lib/execution/engine/mock.d.ts.map +1 -1
  271. package/lib/execution/engine/mock.js +34 -7
  272. package/lib/execution/engine/mock.js.map +1 -1
  273. package/lib/index.d.ts +1 -1
  274. package/lib/index.d.ts.map +1 -1
  275. package/lib/index.js +1 -1
  276. package/lib/index.js.map +1 -1
  277. package/lib/metrics/metrics/lodestar.d.ts +28 -6
  278. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  279. package/lib/metrics/metrics/lodestar.js +67 -17
  280. package/lib/metrics/metrics/lodestar.js.map +1 -1
  281. package/lib/network/gossip/interface.d.ts +20 -2
  282. package/lib/network/gossip/interface.d.ts.map +1 -1
  283. package/lib/network/gossip/interface.js +3 -0
  284. package/lib/network/gossip/interface.js.map +1 -1
  285. package/lib/network/gossip/scoringParameters.d.ts.map +1 -1
  286. package/lib/network/gossip/scoringParameters.js +38 -2
  287. package/lib/network/gossip/scoringParameters.js.map +1 -1
  288. package/lib/network/gossip/topic.d.ts +77 -1
  289. package/lib/network/gossip/topic.d.ts.map +1 -1
  290. package/lib/network/gossip/topic.js +20 -0
  291. package/lib/network/gossip/topic.js.map +1 -1
  292. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  293. package/lib/network/processor/gossipHandlers.js +34 -3
  294. package/lib/network/processor/gossipHandlers.js.map +1 -1
  295. package/lib/network/processor/gossipQueues/index.d.ts.map +1 -1
  296. package/lib/network/processor/gossipQueues/index.js +16 -0
  297. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  298. package/lib/network/processor/index.d.ts.map +1 -1
  299. package/lib/network/processor/index.js +3 -0
  300. package/lib/network/processor/index.js.map +1 -1
  301. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  302. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +2 -4
  303. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  304. package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts +1 -2
  305. package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts.map +1 -1
  306. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js +5 -26
  307. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
  308. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts +1 -2
  309. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts.map +1 -1
  310. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +5 -7
  311. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
  312. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
  313. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +1 -2
  314. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  315. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts.map +1 -1
  316. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +1 -5
  317. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  318. package/lib/network/reqresp/handlers/index.js +2 -2
  319. package/lib/network/reqresp/handlers/index.js.map +1 -1
  320. package/lib/network/reqresp/utils/dataColumnResponseValidation.js +1 -1
  321. package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -1
  322. package/lib/node/nodejs.d.ts.map +1 -1
  323. package/lib/node/nodejs.js +17 -2
  324. package/lib/node/nodejs.js.map +1 -1
  325. package/lib/sync/backfill/backfill.js +2 -2
  326. package/lib/sync/backfill/backfill.js.map +1 -1
  327. package/lib/sync/backfill/verify.d.ts +1 -2
  328. package/lib/sync/backfill/verify.d.ts.map +1 -1
  329. package/lib/sync/backfill/verify.js +2 -2
  330. package/lib/sync/backfill/verify.js.map +1 -1
  331. package/lib/sync/range/chain.d.ts.map +1 -1
  332. package/lib/sync/range/chain.js +0 -1
  333. package/lib/sync/range/chain.js.map +1 -1
  334. package/lib/sync/range/range.d.ts.map +1 -1
  335. package/lib/sync/range/range.js +0 -3
  336. package/lib/sync/range/range.js.map +1 -1
  337. package/lib/sync/unknownBlock.d.ts.map +1 -1
  338. package/lib/sync/unknownBlock.js +0 -3
  339. package/lib/sync/unknownBlock.js.map +1 -1
  340. package/lib/util/sszBytes.js +1 -1
  341. package/lib/util/sszBytes.js.map +1 -1
  342. package/package.json +15 -15
  343. package/src/api/impl/beacon/blocks/index.ts +17 -25
  344. package/src/api/impl/beacon/state/utils.ts +2 -22
  345. package/src/api/impl/config/constants.ts +8 -0
  346. package/src/api/impl/debug/index.ts +2 -6
  347. package/src/api/impl/lodestar/index.ts +19 -4
  348. package/src/api/impl/proof/index.ts +1 -2
  349. package/src/api/impl/validator/index.ts +13 -14
  350. package/src/chain/ColumnReconstructionTracker.ts +8 -4
  351. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +5 -3
  352. package/src/chain/archiveStore/utils/archiveBlocks.ts +25 -14
  353. package/src/chain/blocks/blockInput/blockInput.ts +8 -0
  354. package/src/chain/blocks/importBlock.ts +15 -9
  355. package/src/chain/blocks/index.ts +0 -19
  356. package/src/chain/blocks/types.ts +0 -2
  357. package/src/chain/blocks/verifyBlock.ts +9 -12
  358. package/src/chain/blocks/verifyBlocksSignatures.ts +4 -12
  359. package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +1 -0
  360. package/src/chain/blocks/writeBlockInputToDb.ts +24 -30
  361. package/src/chain/bls/multithread/index.ts +7 -4
  362. package/src/chain/bls/multithread/jobItem.ts +7 -3
  363. package/src/chain/bls/singleThread.ts +5 -3
  364. package/src/chain/bls/utils.ts +15 -7
  365. package/src/chain/chain.ts +230 -36
  366. package/src/chain/errors/attestationError.ts +11 -1
  367. package/src/chain/errors/executionPayloadBid.ts +35 -0
  368. package/src/chain/errors/executionPayloadEnvelope.ts +34 -0
  369. package/src/chain/errors/index.ts +3 -0
  370. package/src/chain/errors/payloadAttestation.ts +25 -0
  371. package/src/chain/forkChoice/index.ts +19 -0
  372. package/src/chain/initState.ts +5 -3
  373. package/src/chain/interface.ts +34 -3
  374. package/src/chain/lightClient/proofs.ts +0 -2
  375. package/src/chain/opPools/aggregatedAttestationPool.ts +19 -191
  376. package/src/chain/opPools/executionPayloadBidPool.ts +77 -0
  377. package/src/chain/opPools/index.ts +2 -0
  378. package/src/chain/opPools/opPool.ts +5 -7
  379. package/src/chain/opPools/payloadAttestationPool.ts +157 -0
  380. package/src/chain/prepareNextSlot.ts +8 -12
  381. package/src/chain/produceBlock/produceBlockBody.ts +13 -6
  382. package/src/chain/regen/interface.ts +3 -17
  383. package/src/chain/regen/queued.ts +17 -56
  384. package/src/chain/regen/regen.ts +22 -43
  385. package/src/chain/seenCache/index.ts +3 -1
  386. package/src/chain/seenCache/seenAttesters.ts +5 -0
  387. package/src/chain/seenCache/seenExecutionPayloadBids.ts +35 -0
  388. package/src/chain/seenCache/seenExecutionPayloadEnvelope.ts +34 -0
  389. package/src/chain/seenCache/seenGossipBlockInput.ts +1 -1
  390. package/src/chain/shufflingCache.ts +67 -50
  391. package/src/chain/stateCache/blockStateCacheImpl.ts +2 -3
  392. package/src/chain/stateCache/fifoBlockStateCache.ts +4 -5
  393. package/src/chain/stateCache/inMemoryCheckpointsCache.ts +9 -15
  394. package/src/chain/stateCache/persistentCheckpointsCache.ts +17 -25
  395. package/src/chain/stateCache/types.ts +5 -10
  396. package/src/chain/validation/aggregateAndProof.ts +36 -14
  397. package/src/chain/validation/attestation.ts +36 -19
  398. package/src/chain/validation/attesterSlashing.ts +9 -7
  399. package/src/chain/validation/blobSidecar.ts +2 -7
  400. package/src/chain/validation/block.ts +8 -4
  401. package/src/chain/validation/blsToExecutionChange.ts +9 -7
  402. package/src/chain/validation/dataColumnSidecar.ts +2 -7
  403. package/src/chain/validation/executionPayloadBid.ts +141 -0
  404. package/src/chain/validation/executionPayloadEnvelope.ts +122 -0
  405. package/src/chain/validation/payloadAttestationMessage.ts +109 -0
  406. package/src/chain/validation/proposerSlashing.ts +3 -7
  407. package/src/chain/validation/signatureSets/aggregateAndProof.ts +9 -14
  408. package/src/chain/validation/signatureSets/contributionAndProof.ts +2 -4
  409. package/src/chain/validation/signatureSets/selectionProof.ts +9 -9
  410. package/src/chain/validation/signatureSets/syncCommittee.ts +2 -4
  411. package/src/chain/validation/signatureSets/syncCommitteeContribution.ts +2 -3
  412. package/src/chain/validation/signatureSets/syncCommitteeSelectionProof.ts +2 -4
  413. package/src/chain/validation/syncCommittee.ts +1 -1
  414. package/src/chain/validation/syncCommitteeContributionAndProof.ts +3 -5
  415. package/src/chain/validation/voluntaryExit.ts +1 -1
  416. package/src/chain/validatorMonitor.ts +62 -8
  417. package/src/db/repositories/checkpointState.ts +3 -19
  418. package/src/db/repositories/stateArchive.ts +13 -27
  419. package/src/execution/engine/mock.ts +40 -13
  420. package/src/index.ts +1 -1
  421. package/src/metrics/metrics/lodestar.ts +68 -17
  422. package/src/network/gossip/interface.ts +17 -0
  423. package/src/network/gossip/scoringParameters.ts +44 -2
  424. package/src/network/gossip/topic.ts +21 -0
  425. package/src/network/processor/gossipHandlers.ts +48 -3
  426. package/src/network/processor/gossipQueues/index.ts +16 -0
  427. package/src/network/processor/index.ts +3 -0
  428. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +2 -4
  429. package/src/network/reqresp/handlers/beaconBlocksByRoot.ts +5 -32
  430. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +5 -9
  431. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +5 -2
  432. package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +1 -5
  433. package/src/network/reqresp/handlers/index.ts +2 -2
  434. package/src/network/reqresp/utils/dataColumnResponseValidation.ts +1 -1
  435. package/src/node/nodejs.ts +18 -3
  436. package/src/sync/backfill/backfill.ts +2 -2
  437. package/src/sync/backfill/verify.ts +2 -3
  438. package/src/sync/range/chain.ts +0 -1
  439. package/src/sync/range/range.ts +0 -3
  440. package/src/sync/unknownBlock.ts +0 -3
  441. package/src/util/sszBytes.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"produceBlockBody.js","sourceRoot":"","sources":["../../../src/chain/produceBlock/produceBlockBody.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"produceBlockBody.js","sourceRoot":"","sources":["../../../src/chain/produceBlock/produceBlockBody.ts"],"names":[],"mappings":"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"}
@@ -17,21 +17,17 @@ export declare enum RegenCaller {
17
17
  validateGossipAggregateAndProof = "validateGossipAggregateAndProof",
18
18
  validateGossipAttestation = "validateGossipAttestation",
19
19
  validateGossipVoluntaryExit = "validateGossipVoluntaryExit",
20
+ validateGossipExecutionPayloadBid = "validateGossipExecutionPayloadBid",
20
21
  onForkChoiceFinalized = "onForkChoiceFinalized",
21
22
  restApi = "restApi"
22
23
  }
23
24
  export declare enum RegenFnName {
24
25
  getBlockSlotState = "getBlockSlotState",
25
26
  getState = "getState",
26
- getPreState = "getPreState",
27
- getCheckpointState = "getCheckpointState"
27
+ getPreState = "getPreState"
28
28
  }
29
29
  export type StateRegenerationOpts = {
30
30
  dontTransferCache: boolean;
31
- /**
32
- * Do not queue shuffling calculation async. Forces sync JIT calculation in afterProcessEpoch if not passed as `true`
33
- */
34
- asyncShufflingCalculation?: boolean;
35
31
  };
36
32
  export interface IStateRegenerator extends IStateRegeneratorInternal {
37
33
  dropCache(): void;
@@ -57,18 +53,13 @@ export interface IStateRegeneratorInternal {
57
53
  * This will always return a state in the latest viable epoch
58
54
  */
59
55
  getPreState(block: BeaconBlock, opts: StateRegenerationOpts, rCaller: RegenCaller): Promise<CachedBeaconStateAllForks>;
60
- /**
61
- * Return a valid checkpoint state
62
- * This will always return a state with `state.slot % SLOTS_PER_EPOCH === 0`
63
- */
64
- getCheckpointState(cp: phase0.Checkpoint, opts: StateRegenerationOpts, rCaller: RegenCaller): Promise<CachedBeaconStateAllForks>;
65
56
  /**
66
57
  * Return the state of `blockRoot` processed to slot `slot`
67
58
  */
68
- getBlockSlotState(blockRoot: RootHex, slot: Slot, opts: StateRegenerationOpts, rCaller: RegenCaller): Promise<CachedBeaconStateAllForks>;
59
+ getBlockSlotState(block: ProtoBlock, slot: Slot, opts: StateRegenerationOpts, rCaller: RegenCaller): Promise<CachedBeaconStateAllForks>;
69
60
  /**
70
61
  * Return the exact state with `stateRoot`
71
62
  */
72
- getState(stateRoot: RootHex, rCaller: RegenCaller, opts?: StateRegenerationOpts): Promise<CachedBeaconStateAllForks>;
63
+ getState(stateRoot: RootHex, rCaller: RegenCaller): Promise<CachedBeaconStateAllForks>;
73
64
  }
74
65
  //# sourceMappingURL=interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/chain/regen/interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/chain/regen/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAC,yBAAyB,EAAC,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAErD,oBAAY,WAAW;IACrB,SAAS,cAAc;IACvB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;IAC7B,mBAAmB,wBAAwB;IAC3C,kBAAkB,uBAAuB;IACzC,wBAAwB,6BAA6B;IACrD,eAAe,oBAAoB;IACnC,mBAAmB,wBAAwB;IAC3C,sBAAsB,2BAA2B;IACjD,oBAAoB,yBAAyB;IAC7C,+BAA+B,oCAAoC;IACnE,yBAAyB,8BAA8B;IACvD,2BAA2B,gCAAgC;IAC3D,iCAAiC,sCAAsC;IACvE,qBAAqB,0BAA0B;IAC/C,OAAO,YAAY;CACpB;AAED,oBAAY,WAAW;IACrB,iBAAiB,sBAAsB;IACvC,QAAQ,aAAa;IACrB,WAAW,gBAAgB;CAC5B;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,WAAW,iBAAkB,SAAQ,yBAAyB;IAClE,SAAS,IAAI,IAAI,CAAC;IAClB,gBAAgB,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;IACrD,YAAY,CAAC,SAAS,EAAE,OAAO,GAAG,yBAAyB,GAAG,IAAI,CAAC;IACnE,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,yBAAyB,GAAG,IAAI,CAAC;IACtE,yBAAyB,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,yBAAyB,GAAG,UAAU,GAAG,IAAI,CAAC,CAAC;IACrG,sBAAsB,CAAC,EAAE,EAAE,aAAa,GAAG,yBAAyB,GAAG,IAAI,CAAC;IAC5E,mBAAmB,CAAC,IAAI,EAAE,UAAU,GAAG,yBAAyB,GAAG,IAAI,CAAC;IACxE,iBAAiB,CAAC,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9F,gBAAgB,CAAC,cAAc,EAAE,KAAK,GAAG,IAAI,CAAC;IAC9C,YAAY,CAAC,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAChF,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,yBAAyB,GAAG,IAAI,CAAC;IACjF,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,yBAAyB,GAAG,IAAI,CAAC;IACtF,2BAA2B,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;CAC5E;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,WAAW,CACT,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,qBAAqB,EAC3B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAEtC;;OAEG;IACH,iBAAiB,CACf,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,qBAAqB,EAC3B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;CACxF"}
@@ -13,6 +13,7 @@ export var RegenCaller;
13
13
  RegenCaller["validateGossipAggregateAndProof"] = "validateGossipAggregateAndProof";
14
14
  RegenCaller["validateGossipAttestation"] = "validateGossipAttestation";
15
15
  RegenCaller["validateGossipVoluntaryExit"] = "validateGossipVoluntaryExit";
16
+ RegenCaller["validateGossipExecutionPayloadBid"] = "validateGossipExecutionPayloadBid";
16
17
  RegenCaller["onForkChoiceFinalized"] = "onForkChoiceFinalized";
17
18
  RegenCaller["restApi"] = "restApi";
18
19
  })(RegenCaller || (RegenCaller = {}));
@@ -21,6 +22,5 @@ export var RegenFnName;
21
22
  RegenFnName["getBlockSlotState"] = "getBlockSlotState";
22
23
  RegenFnName["getState"] = "getState";
23
24
  RegenFnName["getPreState"] = "getPreState";
24
- RegenFnName["getCheckpointState"] = "getCheckpointState";
25
25
  })(RegenFnName || (RegenFnName = {}));
26
26
  //# sourceMappingURL=interface.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/chain/regen/interface.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,WAgBX;AAhBD,WAAY,WAAW;IACrB,sCAAuB,CAAA;IACvB,4CAA6B,CAAA;IAC7B,4CAA6B,CAAA;IAC7B,0DAA2C,CAAA;IAC3C,wDAAyC,CAAA;IACzC,oEAAqD,CAAA;IACrD,kDAAmC,CAAA;IACnC,0DAA2C,CAAA;IAC3C,gEAAiD,CAAA;IACjD,4DAA6C,CAAA;IAC7C,kFAAmE,CAAA;IACnE,sEAAuD,CAAA;IACvD,0EAA2D,CAAA;IAC3D,8DAA+C,CAAA;IAC/C,kCAAmB,CAAA;AACrB,CAAC,EAhBW,WAAW,KAAX,WAAW,QAgBtB;AAED,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,sDAAuC,CAAA;IACvC,oCAAqB,CAAA;IACrB,0CAA2B,CAAA;IAC3B,wDAAyC,CAAA;AAC3C,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB"}
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/chain/regen/interface.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,WAiBX;AAjBD,WAAY,WAAW;IACrB,sCAAuB,CAAA;IACvB,4CAA6B,CAAA;IAC7B,4CAA6B,CAAA;IAC7B,0DAA2C,CAAA;IAC3C,wDAAyC,CAAA;IACzC,oEAAqD,CAAA;IACrD,kDAAmC,CAAA;IACnC,0DAA2C,CAAA;IAC3C,gEAAiD,CAAA;IACjD,4DAA6C,CAAA;IAC7C,kFAAmE,CAAA;IACnE,sEAAuD,CAAA;IACvD,0EAA2D,CAAA;IAC3D,sFAAuE,CAAA;IACvE,8DAA+C,CAAA;IAC/C,kCAAmB,CAAA;AACrB,CAAC,EAjBW,WAAW,KAAX,WAAW,QAiBtB;AAED,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,sDAAuC,CAAA;IACvC,oCAAqB,CAAA;IACrB,0CAA2B,CAAA;AAC7B,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB"}
@@ -37,22 +37,19 @@ export declare class QueuedStateRegenerator implements IStateRegenerator {
37
37
  dumpCacheSummary(): routes.lodestar.StateCacheItem[];
38
38
  /**
39
39
  * Get a state from block state cache.
40
- * This is not for block processing so don't transfer cache
41
40
  */
42
41
  getStateSync(stateRoot: RootHex): CachedBeaconStateAllForks | null;
43
42
  /**
44
43
  * Get state for block processing.
45
- * By default, do not transfer cache except for the block at clock slot
46
- * which is usually the gossip block.
47
44
  */
48
- getPreStateSync(block: BeaconBlock, opts?: StateRegenerationOpts): CachedBeaconStateAllForks | null;
45
+ getPreStateSync(block: BeaconBlock): CachedBeaconStateAllForks | null;
49
46
  getCheckpointStateOrBytes(cp: CheckpointHex): Promise<CachedBeaconStateAllForks | Uint8Array | null>;
50
47
  /**
51
- * Get checkpoint state from cache, this function is not for block processing so don't transfer cache
48
+ * Get checkpoint state from cache
52
49
  */
53
50
  getCheckpointStateSync(cp: CheckpointHex): CachedBeaconStateAllForks | null;
54
51
  /**
55
- * Get state closest to head, this function is not for block processing so don't transfer cache
52
+ * Get state closest to head
56
53
  */
57
54
  getClosestHeadState(head: ProtoBlock): CachedBeaconStateAllForks | null;
58
55
  pruneOnCheckpoint(finalizedEpoch: Epoch, justifiedEpoch: Epoch, headStateRoot: RootHex): void;
@@ -66,15 +63,14 @@ export declare class QueuedStateRegenerator implements IStateRegenerator {
66
63
  * - State after `block.parentRoot` dialed forward to block.slot
67
64
  */
68
65
  getPreState(block: BeaconBlock, opts: StateRegenerationOpts, rCaller: RegenCaller): Promise<CachedBeaconStateAllForks>;
69
- getCheckpointState(cp: phase0.Checkpoint, opts: StateRegenerationOpts, rCaller: RegenCaller): Promise<CachedBeaconStateAllForks>;
70
66
  /**
71
67
  * Get state of provided `blockRoot` and dial forward to `slot`
72
68
  * Use this api with care because we don't want the queue to be busy
73
69
  * For the context, gossip block validation uses this api so we want it to be as fast as possible
74
70
  * @returns
75
71
  */
76
- getBlockSlotState(blockRoot: RootHex, slot: Slot, opts: StateRegenerationOpts, rCaller: RegenCaller): Promise<CachedBeaconStateAllForks>;
77
- getState(stateRoot: RootHex, rCaller: RegenCaller, opts?: StateRegenerationOpts): Promise<CachedBeaconStateAllForks>;
72
+ getBlockSlotState(block: ProtoBlock, slot: Slot, opts: StateRegenerationOpts, rCaller: RegenCaller): Promise<CachedBeaconStateAllForks>;
73
+ getState(stateRoot: RootHex, rCaller: RegenCaller): Promise<CachedBeaconStateAllForks>;
78
74
  private jobQueueProcessor;
79
75
  }
80
76
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"queued.d.ts","sourceRoot":"","sources":["../../../src/chain/regen/queued.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queued.d.ts","sourceRoot":"","sources":["../../../src/chain/regen/queued.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { computeEpochAtSlot } from "@lodestar/state-transition";
2
2
  import { toRootHex } from "@lodestar/utils";
3
3
  import { JobItemQueue } from "../../util/queue/index.js";
4
- import { toCheckpointHex } from "../stateCache/index.js";
5
4
  import { RegenError, RegenErrorCode } from "./errors.js";
6
5
  import { RegenCaller, RegenFnName, } from "./interface.js";
7
6
  import { StateRegenerator } from "./regen.js";
@@ -47,17 +46,14 @@ export class QueuedStateRegenerator {
47
46
  }
48
47
  /**
49
48
  * Get a state from block state cache.
50
- * This is not for block processing so don't transfer cache
51
49
  */
52
50
  getStateSync(stateRoot) {
53
- return this.blockStateCache.get(stateRoot, { dontTransferCache: true });
51
+ return this.blockStateCache.get(stateRoot);
54
52
  }
55
53
  /**
56
54
  * Get state for block processing.
57
- * By default, do not transfer cache except for the block at clock slot
58
- * which is usually the gossip block.
59
55
  */
60
- getPreStateSync(block, opts = { dontTransferCache: true }) {
56
+ getPreStateSync(block) {
61
57
  const parentRoot = toRootHex(block.parentRoot);
62
58
  const parentBlock = this.forkChoice.getBlockHex(parentRoot);
63
59
  if (!parentBlock) {
@@ -70,7 +66,7 @@ export class QueuedStateRegenerator {
70
66
  const blockEpoch = computeEpochAtSlot(block.slot);
71
67
  // Check the checkpoint cache (if the pre-state is a checkpoint state)
72
68
  if (parentEpoch < blockEpoch) {
73
- const checkpointState = this.checkpointStateCache.getLatest(parentRoot, blockEpoch, opts);
69
+ const checkpointState = this.checkpointStateCache.getLatest(parentRoot, blockEpoch);
74
70
  if (checkpointState && computeEpochAtSlot(checkpointState.slot) === blockEpoch) {
75
71
  return checkpointState;
76
72
  }
@@ -79,7 +75,7 @@ export class QueuedStateRegenerator {
79
75
  // Otherwise the state transition may not be cached and wasted. Queue for regen since the
80
76
  // work required will still be significant.
81
77
  if (parentEpoch === blockEpoch) {
82
- const state = this.blockStateCache.get(parentBlock.stateRoot, opts);
78
+ const state = this.blockStateCache.get(parentBlock.stateRoot);
83
79
  if (state) {
84
80
  return state;
85
81
  }
@@ -90,18 +86,16 @@ export class QueuedStateRegenerator {
90
86
  return this.checkpointStateCache.getStateOrBytes(cp);
91
87
  }
92
88
  /**
93
- * Get checkpoint state from cache, this function is not for block processing so don't transfer cache
89
+ * Get checkpoint state from cache
94
90
  */
95
91
  getCheckpointStateSync(cp) {
96
- return this.checkpointStateCache.get(cp, { dontTransferCache: true });
92
+ return this.checkpointStateCache.get(cp);
97
93
  }
98
94
  /**
99
- * Get state closest to head, this function is not for block processing so don't transfer cache
95
+ * Get state closest to head
100
96
  */
101
97
  getClosestHeadState(head) {
102
- const opts = { dontTransferCache: true };
103
- return (this.checkpointStateCache.getLatest(head.blockRoot, Infinity, opts) ||
104
- this.blockStateCache.get(head.stateRoot, opts));
98
+ return this.checkpointStateCache.getLatest(head.blockRoot, Infinity) || this.blockStateCache.get(head.stateRoot);
105
99
  }
106
100
  pruneOnCheckpoint(finalizedEpoch, justifiedEpoch, headStateRoot) {
107
101
  this.checkpointStateCache.prune(finalizedEpoch, justifiedEpoch);
@@ -130,10 +124,7 @@ export class QueuedStateRegenerator {
130
124
  maybeHeadSlot: maybeHeadState.slot,
131
125
  maybeHeadStateRoot,
132
126
  };
133
- const headState = newHeadStateRoot === maybeHeadStateRoot
134
- ? maybeHeadState
135
- : // maybeHeadState was already in block state cache so we don't transfer the cache
136
- this.blockStateCache.get(newHeadStateRoot, { dontTransferCache: true });
127
+ const headState = newHeadStateRoot === maybeHeadStateRoot ? maybeHeadState : this.blockStateCache.get(newHeadStateRoot);
137
128
  if (headState) {
138
129
  this.blockStateCache.setHeadState(headState);
139
130
  }
@@ -147,9 +138,7 @@ export class QueuedStateRegenerator {
147
138
  this.blockStateCache.setHeadState(null);
148
139
  // for the new FIFOBlockStateCache, it's important to reload state to regen head state here if needed
149
140
  const allowDiskReload = true;
150
- // transfer cache here because we want to regen state asap
151
- const cloneOpts = { dontTransferCache: false };
152
- this.regen.getState(newHeadStateRoot, RegenCaller.processBlock, cloneOpts, allowDiskReload).then((headStateRegen) => this.blockStateCache.setHeadState(headStateRegen), (e) => this.logger.error("Error on head state regen", logCtx, e));
141
+ this.regen.getState(newHeadStateRoot, RegenCaller.processBlock, allowDiskReload).then((headStateRegen) => this.blockStateCache.setHeadState(headStateRegen), (e) => this.logger.error("Error on head state regen", logCtx, e));
153
142
  }
154
143
  }
155
144
  updatePreComputedCheckpoint(rootHex, epoch) {
@@ -162,7 +151,7 @@ export class QueuedStateRegenerator {
162
151
  async getPreState(block, opts, rCaller) {
163
152
  this.metrics?.regenFnCallTotal.inc({ caller: rCaller, entrypoint: RegenFnName.getPreState });
164
153
  // First attempt to fetch the state from caches before queueing
165
- const cachedState = this.getPreStateSync(block, opts);
154
+ const cachedState = this.getPreStateSync(block);
166
155
  if (cachedState !== null) {
167
156
  return cachedState;
168
157
  }
@@ -170,38 +159,27 @@ export class QueuedStateRegenerator {
170
159
  this.metrics?.regenFnQueuedTotal.inc({ caller: rCaller, entrypoint: RegenFnName.getPreState });
171
160
  return this.jobQueue.push({ key: "getPreState", args: [block, opts, rCaller] });
172
161
  }
173
- async getCheckpointState(cp, opts, rCaller) {
174
- this.metrics?.regenFnCallTotal.inc({ caller: rCaller, entrypoint: RegenFnName.getCheckpointState });
175
- // First attempt to fetch the state from cache before queueing
176
- const checkpointState = this.checkpointStateCache.get(toCheckpointHex(cp), opts);
177
- if (checkpointState) {
178
- return checkpointState;
179
- }
180
- // The state is not immediately available in the caches, enqueue the job
181
- this.metrics?.regenFnQueuedTotal.inc({ caller: rCaller, entrypoint: RegenFnName.getCheckpointState });
182
- return this.jobQueue.push({ key: "getCheckpointState", args: [cp, opts, rCaller] });
183
- }
184
162
  /**
185
163
  * Get state of provided `blockRoot` and dial forward to `slot`
186
164
  * Use this api with care because we don't want the queue to be busy
187
165
  * For the context, gossip block validation uses this api so we want it to be as fast as possible
188
166
  * @returns
189
167
  */
190
- async getBlockSlotState(blockRoot, slot, opts, rCaller) {
168
+ async getBlockSlotState(block, slot, opts, rCaller) {
191
169
  this.metrics?.regenFnCallTotal.inc({ caller: rCaller, entrypoint: RegenFnName.getBlockSlotState });
192
170
  // The state is not immediately available in the caches, enqueue the job
193
- return this.jobQueue.push({ key: "getBlockSlotState", args: [blockRoot, slot, opts, rCaller] });
171
+ return this.jobQueue.push({ key: "getBlockSlotState", args: [block, slot, opts, rCaller] });
194
172
  }
195
- async getState(stateRoot, rCaller, opts = { dontTransferCache: true }) {
173
+ async getState(stateRoot, rCaller) {
196
174
  this.metrics?.regenFnCallTotal.inc({ caller: rCaller, entrypoint: RegenFnName.getState });
197
175
  // First attempt to fetch the state from cache before queueing
198
- const state = this.blockStateCache.get(stateRoot, opts);
176
+ const state = this.blockStateCache.get(stateRoot);
199
177
  if (state) {
200
178
  return state;
201
179
  }
202
180
  // The state is not immediately available in the cache, enqueue the job
203
181
  this.metrics?.regenFnQueuedTotal.inc({ caller: rCaller, entrypoint: RegenFnName.getState });
204
- return this.jobQueue.push({ key: "getState", args: [stateRoot, rCaller, opts] });
182
+ return this.jobQueue.push({ key: "getState", args: [stateRoot, rCaller] });
205
183
  }
206
184
  jobQueueProcessor = async (regenRequest) => {
207
185
  const metricsLabels = {
@@ -214,8 +192,6 @@ export class QueuedStateRegenerator {
214
192
  switch (regenRequest.key) {
215
193
  case "getPreState":
216
194
  return await this.regen.getPreState(...regenRequest.args);
217
- case "getCheckpointState":
218
- return await this.regen.getCheckpointState(...regenRequest.args);
219
195
  case "getBlockSlotState":
220
196
  return await this.regen.getBlockSlotState(...regenRequest.args);
221
197
  case "getState":
@@ -1 +1 @@
1
- {"version":3,"file":"queued.js","sourceRoot":"","sources":["../../../src/chain/regen/queued.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queued.js","sourceRoot":"","sources":["../../../src/chain/regen/queued.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import { ChainForkConfig } from "@lodestar/config";
2
- import { IForkChoice } from "@lodestar/fork-choice";
2
+ import { IForkChoice, ProtoBlock } from "@lodestar/fork-choice";
3
3
  import { CachedBeaconStateAllForks } from "@lodestar/state-transition";
4
- import { BeaconBlock, RootHex, Slot, phase0 } from "@lodestar/types";
4
+ import { BeaconBlock, RootHex, Slot } from "@lodestar/types";
5
5
  import { Logger } from "@lodestar/utils";
6
6
  import { IBeaconDb } from "../../db/index.js";
7
7
  import { Metrics } from "../../metrics/index.js";
8
8
  import { ChainEventEmitter } from "../emitter.js";
9
+ import { SeenBlockInput } from "../seenCache/seenGossipBlockInput.js";
9
10
  import { BlockStateCache, CheckpointStateCache } from "../stateCache/types.js";
10
11
  import { ValidatorMonitor } from "../validatorMonitor.js";
11
12
  import { IStateRegeneratorInternal, RegenCaller, StateRegenerationOpts } from "./interface.js";
@@ -14,6 +15,7 @@ export type RegenModules = {
14
15
  forkChoice: IForkChoice;
15
16
  blockStateCache: BlockStateCache;
16
17
  checkpointStateCache: CheckpointStateCache;
18
+ seenBlockInputCache: SeenBlockInput;
17
19
  config: ChainForkConfig;
18
20
  emitter: ChainEventEmitter;
19
21
  logger: Logger;
@@ -37,21 +39,17 @@ export declare class StateRegenerator implements IStateRegeneratorInternal {
37
39
  * - reload state if needed in this flow
38
40
  */
39
41
  getPreState(block: BeaconBlock, opts: StateRegenerationOpts, regenCaller: RegenCaller): Promise<CachedBeaconStateAllForks>;
40
- /**
41
- * Get state after block `cp.root` dialed forward to first slot of `cp.epoch`
42
- */
43
- getCheckpointState(cp: phase0.Checkpoint, opts: StateRegenerationOpts, regenCaller: RegenCaller, allowDiskReload?: boolean): Promise<CachedBeaconStateAllForks>;
44
42
  /**
45
43
  * Get state after block `blockRoot` dialed forward to `slot`
46
44
  * - allowDiskReload should be used with care, as it will cause the state to be reloaded from disk
47
45
  */
48
- getBlockSlotState(blockRoot: RootHex, slot: Slot, opts: StateRegenerationOpts, regenCaller: RegenCaller, allowDiskReload?: boolean): Promise<CachedBeaconStateAllForks>;
46
+ getBlockSlotState(block: ProtoBlock, slot: Slot, opts: StateRegenerationOpts, regenCaller: RegenCaller, allowDiskReload?: boolean): Promise<CachedBeaconStateAllForks>;
49
47
  /**
50
48
  * Get state by exact root. If not in cache directly, requires finding the block that references the state from the
51
49
  * forkchoice and replaying blocks to get to it.
52
50
  * - allowDiskReload should be used with care, as it will cause the state to be reloaded from disk
53
51
  */
54
- getState(stateRoot: RootHex, caller: RegenCaller, opts?: StateRegenerationOpts, allowDiskReload?: boolean): Promise<CachedBeaconStateAllForks>;
52
+ getState(stateRoot: RootHex, caller: RegenCaller, allowDiskReload?: boolean): Promise<CachedBeaconStateAllForks>;
55
53
  private findFirstStateBlock;
56
54
  }
57
55
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"regen.d.ts","sourceRoot":"","sources":["../../../src/chain/regen/regen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,WAAW,EAAa,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EACL,yBAAyB,EAQ1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,WAAW,EAAE,OAAO,EAAqB,IAAI,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAC,MAAM,EAAqB,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAC;AAG/C,OAAO,EAAa,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAC,eAAe,EAAE,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAC,yBAAyB,EAAE,WAAW,EAAE,qBAAqB,EAAC,MAAM,gBAAgB,CAAC;AAE7F,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,SAAS,CAAC;IACd,UAAU,EAAE,WAAW,CAAC;IACxB,eAAe,EAAE,eAAe,CAAC;IACjC,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC3C,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,yBAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY;IAElD;;;;;OAKG;IACG,WAAW,CACf,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,qBAAqB,EAC3B,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,yBAAyB,CAAC;IA0BrC;;OAEG;IACG,kBAAkB,CACtB,EAAE,EAAE,MAAM,CAAC,UAAU,EACrB,IAAI,EAAE,qBAAqB,EAC3B,WAAW,EAAE,WAAW,EACxB,eAAe,UAAQ,GACtB,OAAO,CAAC,yBAAyB,CAAC;IAKrC;;;OAGG;IACG,iBAAiB,CACrB,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,qBAAqB,EAC3B,WAAW,EAAE,WAAW,EACxB,eAAe,UAAQ,GACtB,OAAO,CAAC,yBAAyB,CAAC;IAoCrC;;;;OAIG;IACG,QAAQ,CACZ,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,WAAW,EACnB,IAAI,CAAC,EAAE,qBAAqB,EAE5B,eAAe,UAAQ,GACtB,OAAO,CAAC,yBAAyB,CAAC;IAuJrC,OAAO,CAAC,mBAAmB;CAY5B;AA2BD;;;;;;GAMG;AACH,wBAAsB,+BAA+B,CACnD,OAAO,EAAE;IACP,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,EACD,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,yBAAyB,CAAC,CA6DpC"}
1
+ {"version":3,"file":"regen.d.ts","sourceRoot":"","sources":["../../../src/chain/regen/regen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAC,WAAW,EAAE,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EACL,yBAAyB,EAQ1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAC,WAAW,EAAE,OAAO,EAAqB,IAAI,EAAC,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAC,MAAM,EAAqB,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAC,SAAS,EAAC,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAC;AAG/C,OAAO,EAAa,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAC,cAAc,EAAC,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAC,eAAe,EAAE,oBAAoB,EAAC,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAC,gBAAgB,EAAC,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAC,yBAAyB,EAAE,WAAW,EAAE,qBAAqB,EAAC,MAAM,gBAAgB,CAAC;AAE7F,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,SAAS,CAAC;IACd,UAAU,EAAE,WAAW,CAAC;IACxB,eAAe,EAAE,eAAe,CAAC;IACjC,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,mBAAmB,EAAE,cAAc,CAAC;IACpC,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC3C,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,gBAAiB,YAAW,yBAAyB;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,YAAY;IAElD;;;;;OAKG;IACG,WAAW,CACf,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,qBAAqB,EAC3B,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,yBAAyB,CAAC;IA0BrC;;;OAGG;IACG,iBAAiB,CACrB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,qBAAqB,EAC3B,WAAW,EAAE,WAAW,EACxB,eAAe,UAAQ,GACtB,OAAO,CAAC,yBAAyB,CAAC;IA6BrC;;;;OAIG;IACG,QAAQ,CACZ,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,WAAW,EAEnB,eAAe,UAAQ,GACtB,OAAO,CAAC,yBAAyB,CAAC;IAqJrC,OAAO,CAAC,mBAAmB;CAY5B;AA2BD;;;;;;GAMG;AACH,wBAAsB,+BAA+B,CACnD,OAAO,EAAE;IACP,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,EACD,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,yBAAyB,CAAC,CA6DpC"}
@@ -40,30 +40,16 @@ export class StateRegenerator {
40
40
  // We may have the checkpoint state with parent root inside the checkpoint state cache
41
41
  // through gossip validation.
42
42
  if (parentEpoch < blockEpoch) {
43
- return this.getCheckpointState({ root: block.parentRoot, epoch: blockEpoch }, opts, regenCaller, allowDiskReload);
43
+ return this.getBlockSlotState(parentBlock, block.slot, opts, regenCaller, allowDiskReload);
44
44
  }
45
45
  // Otherwise, get the state normally.
46
- return this.getState(parentBlock.stateRoot, regenCaller, opts, allowDiskReload);
47
- }
48
- /**
49
- * Get state after block `cp.root` dialed forward to first slot of `cp.epoch`
50
- */
51
- async getCheckpointState(cp, opts, regenCaller, allowDiskReload = false) {
52
- const checkpointStartSlot = computeStartSlotAtEpoch(cp.epoch);
53
- return this.getBlockSlotState(toRootHex(cp.root), checkpointStartSlot, opts, regenCaller, allowDiskReload);
46
+ return this.getState(parentBlock.stateRoot, regenCaller, allowDiskReload);
54
47
  }
55
48
  /**
56
49
  * Get state after block `blockRoot` dialed forward to `slot`
57
50
  * - allowDiskReload should be used with care, as it will cause the state to be reloaded from disk
58
51
  */
59
- async getBlockSlotState(blockRoot, slot, opts, regenCaller, allowDiskReload = false) {
60
- const block = this.modules.forkChoice.getBlockHex(blockRoot);
61
- if (!block) {
62
- throw new RegenError({
63
- code: RegenErrorCode.BLOCK_NOT_IN_FORKCHOICE,
64
- blockRoot,
65
- });
66
- }
52
+ async getBlockSlotState(block, slot, opts, regenCaller, allowDiskReload = false) {
67
53
  if (slot < block.slot) {
68
54
  throw new RegenError({
69
55
  code: RegenErrorCode.SLOT_BEFORE_BLOCK_SLOT,
@@ -71,11 +57,12 @@ export class StateRegenerator {
71
57
  blockSlot: block.slot,
72
58
  });
73
59
  }
60
+ const { blockRoot } = block;
74
61
  const { checkpointStateCache } = this.modules;
75
62
  const epoch = computeEpochAtSlot(slot);
76
63
  const latestCheckpointStateCtx = allowDiskReload
77
- ? await checkpointStateCache.getOrReloadLatest(blockRoot, epoch, opts)
78
- : checkpointStateCache.getLatest(blockRoot, epoch, opts);
64
+ ? await checkpointStateCache.getOrReloadLatest(blockRoot, epoch)
65
+ : checkpointStateCache.getLatest(blockRoot, epoch);
79
66
  // If a checkpoint state exists with the given checkpoint root, it either is in requested epoch
80
67
  // or needs to have empty slots processed until the requested epoch
81
68
  if (latestCheckpointStateCtx) {
@@ -84,7 +71,7 @@ export class StateRegenerator {
84
71
  // Otherwise, use the fork choice to get the stateRoot from block at the checkpoint root
85
72
  // regenerate that state,
86
73
  // then process empty slots until the requested epoch
87
- const blockStateCtx = await this.getState(block.stateRoot, regenCaller, opts, allowDiskReload);
74
+ const blockStateCtx = await this.getState(block.stateRoot, regenCaller, allowDiskReload);
88
75
  return processSlotsByCheckpoint(this.modules, blockStateCtx, slot, regenCaller, opts);
89
76
  }
90
77
  /**
@@ -92,20 +79,14 @@ export class StateRegenerator {
92
79
  * forkchoice and replaying blocks to get to it.
93
80
  * - allowDiskReload should be used with care, as it will cause the state to be reloaded from disk
94
81
  */
95
- async getState(stateRoot, caller, opts,
82
+ async getState(stateRoot, caller,
96
83
  // internal option, don't want to expose to external caller
97
84
  allowDiskReload = false) {
98
85
  // Trivial case, state at stateRoot is already cached
99
- const cachedStateCtx = this.modules.blockStateCache.get(stateRoot, opts);
86
+ const cachedStateCtx = this.modules.blockStateCache.get(stateRoot);
100
87
  if (cachedStateCtx) {
101
88
  return cachedStateCtx;
102
89
  }
103
- // in block gossip validation (getPreState() call), dontTransferCache is specified as true because we only want to transfer cache in verifyBlocksStateTransitionOnly()
104
- // but here we want to process blocks as fast as possible so force to transfer cache in this case
105
- if (opts && allowDiskReload) {
106
- // if there is no `opts` specified, it already means "false"
107
- opts.dontTransferCache = false;
108
- }
109
90
  // Otherwise we have to use the fork choice to traverse backwards, block by block,
110
91
  // searching the state caches
111
92
  // then replay blocks forward to the desired stateRoot
@@ -118,7 +99,7 @@ export class StateRegenerator {
118
99
  const getSeedStateTimer = this.modules.metrics?.regenGetState.getSeedState.startTimer({ caller });
119
100
  // iterateAncestorBlocks only returns ancestor blocks, not the block itself
120
101
  for (const b of this.modules.forkChoice.iterateAncestorBlocks(block.blockRoot)) {
121
- state = this.modules.blockStateCache.get(b.stateRoot, opts);
102
+ state = this.modules.blockStateCache.get(b.stateRoot);
122
103
  if (state) {
123
104
  break;
124
105
  }
@@ -127,8 +108,8 @@ export class StateRegenerator {
127
108
  continue;
128
109
  const epoch = computeEpochAtSlot(lastBlockToReplay.slot - 1);
129
110
  state = allowDiskReload
130
- ? await checkpointStateCache.getOrReloadLatest(b.blockRoot, epoch, opts)
131
- : checkpointStateCache.getLatest(b.blockRoot, epoch, opts);
111
+ ? await checkpointStateCache.getOrReloadLatest(b.blockRoot, epoch)
112
+ : checkpointStateCache.getLatest(b.blockRoot, epoch);
132
113
  if (state) {
133
114
  break;
134
115
  }
@@ -154,7 +135,10 @@ export class StateRegenerator {
154
135
  const protoBlocksAsc = blocksToReplay.reverse();
155
136
  for (const [i, protoBlock] of protoBlocksAsc.entries()) {
156
137
  replaySlots[i] = protoBlock.slot;
157
- blockPromises[i] = this.modules.db.block.get(fromHex(protoBlock.blockRoot));
138
+ const blockInput = this.modules.seenBlockInputCache.get(protoBlock.blockRoot);
139
+ blockPromises[i] = blockInput?.hasBlock()
140
+ ? Promise.resolve(blockInput.getBlock())
141
+ : this.modules.db.block.get(fromHex(protoBlock.blockRoot));
158
142
  }
159
143
  const logCtx = { stateRoot, caller, replaySlots: replaySlots.join(",") };
160
144
  this.modules.logger.debug("Replaying blocks to get state", logCtx);
@@ -185,6 +169,7 @@ export class StateRegenerator {
185
169
  try {
186
170
  // Only advances state trusting block's signture and hashes.
187
171
  // We are only running the state transition to get a specific state's data.
172
+ // stateTransition() does the clone() inside, transfer cache to make the regen faster
188
173
  state = stateTransition(state, block, {
189
174
  // Replay previously imported blocks, assume valid and available
190
175
  executionPayloadStatus: ExecutionPayloadStatus.valid,
@@ -192,6 +177,7 @@ export class StateRegenerator {
192
177
  verifyStateRoot: false,
193
178
  verifyProposer: false,
194
179
  verifySignatures: false,
180
+ dontTransferCache: false,
195
181
  }, this.modules);
196
182
  const hashTreeRootTimer = this.modules.metrics?.stateHashTreeRootTime.startTimer({
197
183
  source: StateHashTreeRootSource.regenState,
@@ -277,8 +263,8 @@ export async function processSlotsToNearestCheckpoint(modules, preState, slot, r
277
263
  const checkpointState = postState;
278
264
  const cp = getCheckpointFromState(checkpointState);
279
265
  checkpointStateCache.add(cp, checkpointState);
280
- // consumers should not mutate or get the transfered cache
281
- emitter?.emit(ChainEvent.checkpoint, cp, checkpointState.clone(true));
266
+ // consumers should not mutate state ever
267
+ emitter?.emit(ChainEvent.checkpoint, cp, checkpointState);
282
268
  if (count >= 1) {
283
269
  // in normal condition, we only process 1 epoch so never reach this
284
270
  // in that case, we want to prune state at the last 1/3 slot of slot 0 of the next epoch after importing the 1st block of epoch