@lodestar/beacon-node 1.34.1 → 1.35.0-dev.092cc3954a

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 (512) hide show
  1. package/lib/api/impl/beacon/blocks/index.js +71 -53
  2. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  3. package/lib/api/impl/beacon/pool/index.js +3 -3
  4. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  5. package/lib/api/impl/debug/index.js +20 -9
  6. package/lib/api/impl/debug/index.js.map +1 -1
  7. package/lib/api/impl/errors.js +2 -0
  8. package/lib/api/impl/errors.js.map +1 -1
  9. package/lib/api/impl/index.d.ts +3 -3
  10. package/lib/api/impl/index.js +3 -3
  11. package/lib/api/impl/index.js.map +1 -1
  12. package/lib/api/impl/lodestar/index.js +1 -1
  13. package/lib/api/impl/lodestar/index.js.map +1 -1
  14. package/lib/api/impl/validator/index.js +2 -1
  15. package/lib/api/impl/validator/index.js.map +1 -1
  16. package/lib/api/rest/activeSockets.js +3 -2
  17. package/lib/api/rest/activeSockets.js.map +1 -1
  18. package/lib/api/rest/base.d.ts +1 -1
  19. package/lib/api/rest/base.js +6 -2
  20. package/lib/api/rest/base.js.map +1 -1
  21. package/lib/api/rest/index.js +2 -0
  22. package/lib/api/rest/index.js.map +1 -1
  23. package/lib/api/rest/swaggerUI.js +4 -2
  24. package/lib/api/rest/swaggerUI.js.map +1 -1
  25. package/lib/bun-wrappers/prometheus-gc-stats.d.ts +2 -0
  26. package/lib/bun-wrappers/prometheus-gc-stats.js +8 -0
  27. package/lib/bun-wrappers/prometheus-gc-stats.js.map +1 -0
  28. package/lib/chain/ColumnReconstructionTracker.d.ts +32 -0
  29. package/lib/chain/ColumnReconstructionTracker.js +71 -0
  30. package/lib/chain/ColumnReconstructionTracker.js.map +1 -0
  31. package/lib/chain/GetBlobsTracker.d.ts +31 -0
  32. package/lib/chain/GetBlobsTracker.js +82 -0
  33. package/lib/chain/GetBlobsTracker.js.map +1 -0
  34. package/lib/chain/archiveStore/archiveStore.js +49 -38
  35. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  36. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +2 -0
  37. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  38. package/lib/chain/archiveStore/index.d.ts +1 -1
  39. package/lib/chain/archiveStore/index.js +1 -1
  40. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +5 -0
  41. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
  42. package/lib/chain/archiveStore/utils/archiveBlocks.js +14 -7
  43. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  44. package/lib/chain/balancesCache.js +1 -3
  45. package/lib/chain/balancesCache.js.map +1 -1
  46. package/lib/chain/beaconProposerCache.js +1 -0
  47. package/lib/chain/beaconProposerCache.js.map +1 -1
  48. package/lib/chain/blocks/blockInput/blockInput.d.ts +19 -7
  49. package/lib/chain/blocks/blockInput/blockInput.js +132 -88
  50. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  51. package/lib/chain/blocks/blockInput/index.d.ts +1 -1
  52. package/lib/chain/blocks/blockInput/index.js +1 -1
  53. package/lib/chain/blocks/blockInput/types.d.ts +19 -10
  54. package/lib/chain/blocks/blockInput/types.js +1 -0
  55. package/lib/chain/blocks/blockInput/types.js.map +1 -1
  56. package/lib/chain/blocks/blockInput/utils.d.ts +0 -4
  57. package/lib/chain/blocks/blockInput/utils.js +6 -29
  58. package/lib/chain/blocks/blockInput/utils.js.map +1 -1
  59. package/lib/chain/blocks/importBlock.js +36 -32
  60. package/lib/chain/blocks/importBlock.js.map +1 -1
  61. package/lib/chain/blocks/index.d.ts +6 -5
  62. package/lib/chain/blocks/index.js +5 -4
  63. package/lib/chain/blocks/index.js.map +1 -1
  64. package/lib/chain/blocks/types.d.ts +3 -108
  65. package/lib/chain/blocks/types.js +0 -119
  66. package/lib/chain/blocks/types.js.map +1 -1
  67. package/lib/chain/blocks/utils/chainSegment.d.ts +2 -2
  68. package/lib/chain/blocks/utils/chainSegment.js +2 -2
  69. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  70. package/lib/chain/blocks/verifyBlock.d.ts +3 -3
  71. package/lib/chain/blocks/verifyBlock.js +15 -14
  72. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  73. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts +7 -22
  74. package/lib/chain/blocks/verifyBlocksDataAvailability.js +18 -110
  75. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  76. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +4 -3
  77. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +24 -22
  78. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  79. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts +4 -3
  80. package/lib/chain/blocks/verifyBlocksSanityChecks.js +2 -2
  81. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  82. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts +3 -2
  83. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +2 -2
  84. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  85. package/lib/chain/blocks/writeBlockInputToDb.d.ts +3 -3
  86. package/lib/chain/blocks/writeBlockInputToDb.js +61 -63
  87. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  88. package/lib/chain/bls/multithread/index.js +167 -163
  89. package/lib/chain/bls/multithread/index.js.map +1 -1
  90. package/lib/chain/bls/singleThread.js +1 -0
  91. package/lib/chain/bls/singleThread.js.map +1 -1
  92. package/lib/chain/chain.d.ts +13 -11
  93. package/lib/chain/chain.js +79 -20
  94. package/lib/chain/chain.js.map +1 -1
  95. package/lib/chain/emitter.d.ts +43 -2
  96. package/lib/chain/emitter.js +18 -0
  97. package/lib/chain/emitter.js.map +1 -1
  98. package/lib/chain/errors/blobSidecarError.d.ts +24 -0
  99. package/lib/chain/errors/blobSidecarError.js +10 -0
  100. package/lib/chain/errors/blobSidecarError.js.map +1 -1
  101. package/lib/chain/errors/blockError.js +1 -0
  102. package/lib/chain/errors/blockError.js.map +1 -1
  103. package/lib/chain/errors/dataColumnSidecarError.d.ts +42 -0
  104. package/lib/chain/errors/dataColumnSidecarError.js +14 -0
  105. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
  106. package/lib/chain/errors/gossipValidation.js +1 -0
  107. package/lib/chain/errors/gossipValidation.js.map +1 -1
  108. package/lib/chain/errors/index.d.ts +2 -2
  109. package/lib/chain/errors/index.js +2 -2
  110. package/lib/chain/errors/index.js.map +1 -1
  111. package/lib/chain/forkChoice/index.js.map +1 -1
  112. package/lib/chain/genesis/genesis.js +16 -5
  113. package/lib/chain/genesis/genesis.js.map +1 -1
  114. package/lib/chain/index.d.ts +2 -2
  115. package/lib/chain/index.js +2 -2
  116. package/lib/chain/index.js.map +1 -1
  117. package/lib/chain/interface.d.ts +13 -9
  118. package/lib/chain/interface.js.map +1 -1
  119. package/lib/chain/lightClient/index.js +16 -9
  120. package/lib/chain/lightClient/index.js.map +1 -1
  121. package/lib/chain/lightClient/proofs.js.map +1 -1
  122. package/lib/chain/opPools/aggregatedAttestationPool.js +14 -9
  123. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  124. package/lib/chain/opPools/attestationPool.js +8 -3
  125. package/lib/chain/opPools/attestationPool.js.map +1 -1
  126. package/lib/chain/opPools/index.d.ts +1 -1
  127. package/lib/chain/opPools/index.js +1 -1
  128. package/lib/chain/opPools/index.js.map +1 -1
  129. package/lib/chain/opPools/opPool.js +10 -12
  130. package/lib/chain/opPools/opPool.js.map +1 -1
  131. package/lib/chain/opPools/syncCommitteeMessagePool.js +9 -6
  132. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  133. package/lib/chain/opPools/syncContributionAndProofPool.js +5 -2
  134. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  135. package/lib/chain/options.js +1 -1
  136. package/lib/chain/options.js.map +1 -1
  137. package/lib/chain/prepareNextSlot.js +141 -134
  138. package/lib/chain/prepareNextSlot.js.map +1 -1
  139. package/lib/chain/produceBlock/produceBlockBody.d.ts +1 -1
  140. package/lib/chain/produceBlock/produceBlockBody.js +3 -10
  141. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  142. package/lib/chain/regen/errors.js +1 -0
  143. package/lib/chain/regen/errors.js.map +1 -1
  144. package/lib/chain/regen/index.d.ts +1 -1
  145. package/lib/chain/regen/index.js +1 -1
  146. package/lib/chain/regen/index.js.map +1 -1
  147. package/lib/chain/regen/queued.js +35 -28
  148. package/lib/chain/regen/queued.js.map +1 -1
  149. package/lib/chain/regen/regen.js +1 -0
  150. package/lib/chain/regen/regen.js.map +1 -1
  151. package/lib/chain/reprocess.js +3 -1
  152. package/lib/chain/reprocess.js.map +1 -1
  153. package/lib/chain/seenCache/index.d.ts +1 -1
  154. package/lib/chain/seenCache/index.js +1 -1
  155. package/lib/chain/seenCache/index.js.map +1 -1
  156. package/lib/chain/seenCache/seenAggregateAndProof.js +7 -6
  157. package/lib/chain/seenCache/seenAggregateAndProof.js.map +1 -1
  158. package/lib/chain/seenCache/seenAttestationData.js +5 -2
  159. package/lib/chain/seenCache/seenAttestationData.js.map +1 -1
  160. package/lib/chain/seenCache/seenAttesters.js +2 -4
  161. package/lib/chain/seenCache/seenAttesters.js.map +1 -1
  162. package/lib/chain/seenCache/seenBlockProposers.js +2 -4
  163. package/lib/chain/seenCache/seenBlockProposers.js.map +1 -1
  164. package/lib/chain/seenCache/seenCommittee.js +1 -3
  165. package/lib/chain/seenCache/seenCommittee.js.map +1 -1
  166. package/lib/chain/seenCache/seenCommitteeContribution.js +3 -2
  167. package/lib/chain/seenCache/seenCommitteeContribution.js.map +1 -1
  168. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +74 -78
  169. package/lib/chain/seenCache/seenGossipBlockInput.js +235 -369
  170. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  171. package/lib/chain/shufflingCache.js +5 -2
  172. package/lib/chain/shufflingCache.js.map +1 -1
  173. package/lib/chain/stateCache/blockStateCacheImpl.js +13 -7
  174. package/lib/chain/stateCache/blockStateCacheImpl.js.map +1 -1
  175. package/lib/chain/stateCache/datastore/db.js +1 -0
  176. package/lib/chain/stateCache/datastore/db.js.map +1 -1
  177. package/lib/chain/stateCache/datastore/file.js +1 -0
  178. package/lib/chain/stateCache/datastore/file.js.map +1 -1
  179. package/lib/chain/stateCache/datastore/index.d.ts +1 -1
  180. package/lib/chain/stateCache/datastore/index.js +1 -1
  181. package/lib/chain/stateCache/datastore/index.js.map +1 -1
  182. package/lib/chain/stateCache/fifoBlockStateCache.js +10 -0
  183. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  184. package/lib/chain/stateCache/inMemoryCheckpointsCache.js +10 -4
  185. package/lib/chain/stateCache/inMemoryCheckpointsCache.js.map +1 -1
  186. package/lib/chain/stateCache/index.d.ts +1 -1
  187. package/lib/chain/stateCache/index.js +1 -1
  188. package/lib/chain/stateCache/index.js.map +1 -1
  189. package/lib/chain/stateCache/mapMetrics.js +4 -4
  190. package/lib/chain/stateCache/mapMetrics.js.map +1 -1
  191. package/lib/chain/stateCache/persistentCheckpointsCache.js +14 -6
  192. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  193. package/lib/chain/validation/blobSidecar.d.ts +8 -3
  194. package/lib/chain/validation/blobSidecar.js +73 -31
  195. package/lib/chain/validation/blobSidecar.js.map +1 -1
  196. package/lib/chain/validation/dataColumnSidecar.d.ts +7 -9
  197. package/lib/chain/validation/dataColumnSidecar.js +95 -57
  198. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  199. package/lib/chain/validation/index.d.ts +1 -1
  200. package/lib/chain/validation/index.js +1 -1
  201. package/lib/chain/validation/index.js.map +1 -1
  202. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts +1 -2
  203. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  204. package/lib/chain/validatorMonitor.d.ts +1 -3
  205. package/lib/chain/validatorMonitor.js +2 -1
  206. package/lib/chain/validatorMonitor.js.map +1 -1
  207. package/lib/db/beacon.js +24 -0
  208. package/lib/db/beacon.js.map +1 -1
  209. package/lib/db/index.d.ts +1 -1
  210. package/lib/db/index.js.map +1 -1
  211. package/lib/db/repositories/blobSidecars.js.map +1 -1
  212. package/lib/db/repositories/blockArchive.js +4 -5
  213. package/lib/db/repositories/blockArchive.js.map +1 -1
  214. package/lib/db/repositories/blockArchiveIndex.d.ts +4 -0
  215. package/lib/db/repositories/blockArchiveIndex.js +13 -5
  216. package/lib/db/repositories/blockArchiveIndex.js.map +1 -1
  217. package/lib/db/repositories/dataColumnSidecar.js +8 -7
  218. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  219. package/lib/db/repositories/dataColumnSidecarArchive.js +17 -7
  220. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  221. package/lib/db/repositories/depositDataRoot.js +1 -0
  222. package/lib/db/repositories/depositDataRoot.js.map +1 -1
  223. package/lib/db/repositories/index.d.ts +10 -10
  224. package/lib/db/repositories/index.js +9 -9
  225. package/lib/db/repositories/index.js.map +1 -1
  226. package/lib/db/repositories/stateArchive.js +3 -2
  227. package/lib/db/repositories/stateArchive.js.map +1 -1
  228. package/lib/db/repositories/stateArchiveIndex.d.ts +1 -0
  229. package/lib/db/repositories/stateArchiveIndex.js +6 -2
  230. package/lib/db/repositories/stateArchiveIndex.js.map +1 -1
  231. package/lib/db/single/preGenesisState.d.ts +1 -0
  232. package/lib/db/single/preGenesisState.js +11 -4
  233. package/lib/db/single/preGenesisState.js.map +1 -1
  234. package/lib/db/single/preGenesisStateLastProcessedBlock.d.ts +1 -0
  235. package/lib/db/single/preGenesisStateLastProcessedBlock.js +10 -4
  236. package/lib/db/single/preGenesisStateLastProcessedBlock.js.map +1 -1
  237. package/lib/eth1/eth1DataCache.js +2 -0
  238. package/lib/eth1/eth1DataCache.js.map +1 -1
  239. package/lib/eth1/eth1DepositDataTracker.js +18 -5
  240. package/lib/eth1/eth1DepositDataTracker.js.map +1 -1
  241. package/lib/eth1/eth1DepositsCache.js +3 -0
  242. package/lib/eth1/eth1DepositsCache.js.map +1 -1
  243. package/lib/eth1/eth1MergeBlockTracker.js +10 -4
  244. package/lib/eth1/eth1MergeBlockTracker.js.map +1 -1
  245. package/lib/eth1/index.js +2 -0
  246. package/lib/eth1/index.js.map +1 -1
  247. package/lib/eth1/provider/eth1Provider.d.ts +1 -2
  248. package/lib/eth1/provider/eth1Provider.js +6 -2
  249. package/lib/eth1/provider/eth1Provider.js.map +1 -1
  250. package/lib/eth1/provider/jsonRpcHttpClient.d.ts +1 -1
  251. package/lib/eth1/provider/jsonRpcHttpClient.js +16 -2
  252. package/lib/eth1/provider/jsonRpcHttpClient.js.map +1 -1
  253. package/lib/eth1/provider/jwt.js.map +1 -1
  254. package/lib/eth1/provider/utils.d.ts +5 -0
  255. package/lib/eth1/provider/utils.js +9 -1
  256. package/lib/eth1/provider/utils.js.map +1 -1
  257. package/lib/eth1/utils/deposits.js.map +1 -1
  258. package/lib/execution/builder/cache.js +6 -0
  259. package/lib/execution/builder/cache.js.map +1 -1
  260. package/lib/execution/builder/http.js +14 -8
  261. package/lib/execution/builder/http.js.map +1 -1
  262. package/lib/execution/builder/index.js.map +1 -1
  263. package/lib/execution/engine/disabled.js +2 -4
  264. package/lib/execution/engine/disabled.js.map +1 -1
  265. package/lib/execution/engine/http.d.ts +2 -2
  266. package/lib/execution/engine/http.js +43 -11
  267. package/lib/execution/engine/http.js.map +1 -1
  268. package/lib/execution/engine/interface.d.ts +2 -2
  269. package/lib/execution/engine/interface.js.map +1 -1
  270. package/lib/execution/engine/mock.d.ts +1 -0
  271. package/lib/execution/engine/mock.js +16 -12
  272. package/lib/execution/engine/mock.js.map +1 -1
  273. package/lib/execution/engine/payloadIdCache.js +1 -3
  274. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  275. package/lib/execution/engine/types.d.ts +5 -1
  276. package/lib/execution/engine/types.js +37 -8
  277. package/lib/execution/engine/types.js.map +1 -1
  278. package/lib/execution/engine/utils.js +3 -3
  279. package/lib/execution/engine/utils.js.map +1 -1
  280. package/lib/execution/index.d.ts +2 -2
  281. package/lib/execution/index.js +2 -2
  282. package/lib/execution/index.js.map +1 -1
  283. package/lib/index.d.ts +6 -6
  284. package/lib/index.js +5 -5
  285. package/lib/index.js.map +1 -1
  286. package/lib/metrics/index.d.ts +1 -1
  287. package/lib/metrics/index.js +1 -1
  288. package/lib/metrics/index.js.map +1 -1
  289. package/lib/metrics/metrics/beacon.d.ts +11 -5
  290. package/lib/metrics/metrics/beacon.js +40 -20
  291. package/lib/metrics/metrics/beacon.js.map +1 -1
  292. package/lib/metrics/metrics/lodestar.d.ts +55 -13
  293. package/lib/metrics/metrics/lodestar.js +85 -8
  294. package/lib/metrics/metrics/lodestar.js.map +1 -1
  295. package/lib/metrics/metrics.d.ts +1 -1
  296. package/lib/metrics/metrics.js.map +1 -1
  297. package/lib/metrics/nodeJsMetrics.js +1 -1
  298. package/lib/metrics/nodeJsMetrics.js.map +1 -1
  299. package/lib/metrics/server/http.d.ts +1 -1
  300. package/lib/metrics/utils/avgMinMax.d.ts +1 -1
  301. package/lib/metrics/utils/avgMinMax.js +10 -6
  302. package/lib/metrics/utils/avgMinMax.js.map +1 -1
  303. package/lib/metrics/utils/gauge.d.ts +1 -1
  304. package/lib/metrics/utils/gauge.js +1 -4
  305. package/lib/metrics/utils/gauge.js.map +1 -1
  306. package/lib/metrics/utils/registryMetricCreator.d.ts +1 -1
  307. package/lib/metrics/utils/registryMetricCreator.js.map +1 -1
  308. package/lib/monitoring/properties.js +4 -0
  309. package/lib/monitoring/properties.js.map +1 -1
  310. package/lib/monitoring/service.js +13 -1
  311. package/lib/monitoring/service.js.map +1 -1
  312. package/lib/monitoring/system.js +25 -27
  313. package/lib/monitoring/system.js.map +1 -1
  314. package/lib/network/core/networkCore.d.ts +2 -2
  315. package/lib/network/core/networkCore.js +67 -50
  316. package/lib/network/core/networkCore.js.map +1 -1
  317. package/lib/network/core/networkCoreWorker.js +1 -1
  318. package/lib/network/core/networkCoreWorker.js.map +1 -1
  319. package/lib/network/core/networkCoreWorkerHandler.d.ts +2 -2
  320. package/lib/network/core/networkCoreWorkerHandler.js +5 -2
  321. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  322. package/lib/network/discv5/index.d.ts +2 -2
  323. package/lib/network/discv5/index.js +5 -2
  324. package/lib/network/discv5/index.js.map +1 -1
  325. package/lib/network/discv5/worker.js +3 -3
  326. package/lib/network/discv5/worker.js.map +1 -1
  327. package/lib/network/events.d.ts +2 -18
  328. package/lib/network/events.js +0 -7
  329. package/lib/network/events.js.map +1 -1
  330. package/lib/network/gossip/encoding.d.ts +1 -1
  331. package/lib/network/gossip/encoding.js +4 -2
  332. package/lib/network/gossip/encoding.js.map +1 -1
  333. package/lib/network/gossip/errors.js +1 -0
  334. package/lib/network/gossip/errors.js.map +1 -1
  335. package/lib/network/gossip/gossipsub.d.ts +1 -1
  336. package/lib/network/gossip/gossipsub.js +8 -1
  337. package/lib/network/gossip/gossipsub.js.map +1 -1
  338. package/lib/network/gossip/index.d.ts +2 -2
  339. package/lib/network/gossip/index.js +2 -2
  340. package/lib/network/gossip/index.js.map +1 -1
  341. package/lib/network/gossip/interface.d.ts +2 -2
  342. package/lib/network/gossip/topic.d.ts +125 -105
  343. package/lib/network/gossip/topic.js +2 -1
  344. package/lib/network/gossip/topic.js.map +1 -1
  345. package/lib/network/index.d.ts +3 -3
  346. package/lib/network/index.js +3 -3
  347. package/lib/network/index.js.map +1 -1
  348. package/lib/network/interface.d.ts +3 -2
  349. package/lib/network/libp2p/index.js +2 -2
  350. package/lib/network/libp2p/index.js.map +1 -1
  351. package/lib/network/metadata.js +4 -0
  352. package/lib/network/metadata.js.map +1 -1
  353. package/lib/network/network.d.ts +4 -2
  354. package/lib/network/network.js +89 -71
  355. package/lib/network/network.js.map +1 -1
  356. package/lib/network/options.js +1 -1
  357. package/lib/network/options.js.map +1 -1
  358. package/lib/network/peers/datastore.js +8 -2
  359. package/lib/network/peers/datastore.js.map +1 -1
  360. package/lib/network/peers/discover.js +75 -66
  361. package/lib/network/peers/discover.js.map +1 -1
  362. package/lib/network/peers/peerManager.js +154 -130
  363. package/lib/network/peers/peerManager.js.map +1 -1
  364. package/lib/network/peers/peersData.d.ts +1 -1
  365. package/lib/network/peers/peersData.js +1 -3
  366. package/lib/network/peers/peersData.js.map +1 -1
  367. package/lib/network/peers/score/index.d.ts +1 -1
  368. package/lib/network/peers/score/index.js +1 -1
  369. package/lib/network/peers/score/index.js.map +1 -1
  370. package/lib/network/peers/score/score.js +6 -0
  371. package/lib/network/peers/score/score.js.map +1 -1
  372. package/lib/network/peers/score/store.js +3 -0
  373. package/lib/network/peers/score/store.js.map +1 -1
  374. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  375. package/lib/network/peers/utils/subnetMap.js +2 -4
  376. package/lib/network/peers/utils/subnetMap.js.map +1 -1
  377. package/lib/network/processor/aggregatorTracker.js +1 -3
  378. package/lib/network/processor/aggregatorTracker.js.map +1 -1
  379. package/lib/network/processor/gossipHandlers.js +145 -165
  380. package/lib/network/processor/gossipHandlers.js.map +1 -1
  381. package/lib/network/processor/gossipQueues/indexed.js +11 -9
  382. package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
  383. package/lib/network/processor/gossipQueues/linear.js +9 -8
  384. package/lib/network/processor/gossipQueues/linear.js.map +1 -1
  385. package/lib/network/processor/index.d.ts +2 -1
  386. package/lib/network/processor/index.js +22 -8
  387. package/lib/network/processor/index.js.map +1 -1
  388. package/lib/network/reqresp/ReqRespBeaconNode.d.ts +1 -1
  389. package/lib/network/reqresp/ReqRespBeaconNode.js +11 -2
  390. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  391. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +1 -2
  392. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  393. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  394. package/lib/network/reqresp/index.d.ts +1 -3
  395. package/lib/network/reqresp/index.js +1 -3
  396. package/lib/network/reqresp/index.js.map +1 -1
  397. package/lib/network/reqresp/rateLimit.js +11 -5
  398. package/lib/network/reqresp/rateLimit.js.map +1 -1
  399. package/lib/network/reqresp/utils/dataColumnResponseValidation.js +8 -4
  400. package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -1
  401. package/lib/network/statusCache.js +1 -0
  402. package/lib/network/statusCache.js.map +1 -1
  403. package/lib/network/subnets/attnetsService.js +73 -65
  404. package/lib/network/subnets/attnetsService.js.map +1 -1
  405. package/lib/network/subnets/interface.js +1 -1
  406. package/lib/network/subnets/interface.js.map +1 -1
  407. package/lib/network/subnets/syncnetsService.js +29 -22
  408. package/lib/network/subnets/syncnetsService.js.map +1 -1
  409. package/lib/network/subnets/util.js +1 -2
  410. package/lib/network/subnets/util.js.map +1 -1
  411. package/lib/node/nodejs.d.ts +1 -1
  412. package/lib/node/nodejs.js +15 -0
  413. package/lib/node/nodejs.js.map +1 -1
  414. package/lib/node/notifier.js +1 -2
  415. package/lib/node/notifier.js.map +1 -1
  416. package/lib/node/options.js.map +1 -1
  417. package/lib/node/utils/interop/state.js +1 -2
  418. package/lib/node/utils/interop/state.js.map +1 -1
  419. package/lib/sync/backfill/backfill.d.ts +1 -1
  420. package/lib/sync/backfill/backfill.js +58 -16
  421. package/lib/sync/backfill/backfill.js.map +1 -1
  422. package/lib/sync/constants.d.ts +2 -1
  423. package/lib/sync/constants.js +2 -1
  424. package/lib/sync/constants.js.map +1 -1
  425. package/lib/sync/interface.d.ts +1 -59
  426. package/lib/sync/interface.js +0 -20
  427. package/lib/sync/interface.js.map +1 -1
  428. package/lib/sync/options.d.ts +1 -1
  429. package/lib/sync/range/batch.d.ts +48 -32
  430. package/lib/sync/range/batch.js +201 -55
  431. package/lib/sync/range/batch.js.map +1 -1
  432. package/lib/sync/range/chain.d.ts +15 -10
  433. package/lib/sync/range/chain.js +141 -70
  434. package/lib/sync/range/chain.js.map +1 -1
  435. package/lib/sync/range/range.d.ts +3 -3
  436. package/lib/sync/range/range.js +86 -54
  437. package/lib/sync/range/range.js.map +1 -1
  438. package/lib/sync/range/utils/hashBlocks.d.ts +2 -2
  439. package/lib/sync/range/utils/hashBlocks.js +6 -4
  440. package/lib/sync/range/utils/hashBlocks.js.map +1 -1
  441. package/lib/sync/range/utils/peerBalancer.js +18 -13
  442. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  443. package/lib/sync/sync.d.ts +1 -2
  444. package/lib/sync/sync.js +95 -87
  445. package/lib/sync/sync.js.map +1 -1
  446. package/lib/sync/types.d.ts +44 -0
  447. package/lib/sync/types.js +34 -0
  448. package/lib/sync/types.js.map +1 -0
  449. package/lib/sync/unknownBlock.d.ts +42 -28
  450. package/lib/sync/unknownBlock.js +404 -458
  451. package/lib/sync/unknownBlock.js.map +1 -1
  452. package/lib/sync/utils/downloadByRange.d.ts +186 -0
  453. package/lib/sync/utils/downloadByRange.js +457 -0
  454. package/lib/sync/utils/downloadByRange.js.map +1 -0
  455. package/lib/sync/utils/downloadByRoot.d.ts +119 -0
  456. package/lib/sync/utils/downloadByRoot.js +319 -0
  457. package/lib/sync/utils/downloadByRoot.js.map +1 -0
  458. package/lib/sync/utils/pendingBlocksTree.d.ts +14 -6
  459. package/lib/sync/utils/pendingBlocksTree.js +24 -18
  460. package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
  461. package/lib/util/array.js +7 -3
  462. package/lib/util/array.js.map +1 -1
  463. package/lib/util/asyncIterableToEvents.js +6 -3
  464. package/lib/util/asyncIterableToEvents.js.map +1 -1
  465. package/lib/util/binarySearch.js +2 -0
  466. package/lib/util/binarySearch.js.map +1 -1
  467. package/lib/util/blobs.d.ts +2 -2
  468. package/lib/util/blobs.js +4 -4
  469. package/lib/util/blobs.js.map +1 -1
  470. package/lib/util/bufferPool.js +7 -2
  471. package/lib/util/bufferPool.js.map +1 -1
  472. package/lib/util/clock.d.ts +1 -1
  473. package/lib/util/clock.js +23 -18
  474. package/lib/util/clock.js.map +1 -1
  475. package/lib/util/dataColumns.d.ts +13 -10
  476. package/lib/util/dataColumns.js +92 -134
  477. package/lib/util/dataColumns.js.map +1 -1
  478. package/lib/util/execution.d.ts +20 -0
  479. package/lib/util/execution.js +148 -0
  480. package/lib/util/execution.js.map +1 -0
  481. package/lib/util/itTrigger.js +4 -4
  482. package/lib/util/itTrigger.js.map +1 -1
  483. package/lib/util/map.js +2 -0
  484. package/lib/util/map.js.map +1 -1
  485. package/lib/util/queue/index.d.ts +1 -1
  486. package/lib/util/queue/index.js +1 -1
  487. package/lib/util/queue/index.js.map +1 -1
  488. package/lib/util/queue/itemQueue.js +52 -49
  489. package/lib/util/queue/itemQueue.js.map +1 -1
  490. package/lib/util/serializedCache.js +1 -3
  491. package/lib/util/serializedCache.js.map +1 -1
  492. package/lib/util/set.js +2 -0
  493. package/lib/util/set.js.map +1 -1
  494. package/lib/util/sszBytes.d.ts +1 -0
  495. package/lib/util/sszBytes.js +1 -1
  496. package/lib/util/sszBytes.js.map +1 -1
  497. package/lib/util/timeSeries.js +3 -1
  498. package/lib/util/timeSeries.js.map +1 -1
  499. package/lib/util/types.d.ts +1 -1
  500. package/lib/util/types.js +2 -2
  501. package/lib/util/types.js.map +1 -1
  502. package/lib/util/wrapError.d.ts +7 -0
  503. package/package.json +22 -16
  504. package/lib/chain/seenCache/seenBlockInput.d.ts +0 -84
  505. package/lib/chain/seenCache/seenBlockInput.js +0 -225
  506. package/lib/chain/seenCache/seenBlockInput.js.map +0 -1
  507. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +0 -28
  508. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +0 -328
  509. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +0 -1
  510. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +0 -49
  511. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +0 -499
  512. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"chainSegment.js","sourceRoot":"","sources":["../../../../src/chain/blocks/utils/chainSegment.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACpC,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAGjE;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAuB,EAAE,MAAoB;IACpF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QAClC,uFAAuF;QACvF,0BAA0B;QAC1B,IACE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CACd,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,EAC/E,KAAK,CAAC,OAAO,CAAC,UAAU,CACzB,EACD,CAAC;YACD,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,uBAAuB,EAAC,CAAC,CAAC;QAC9E,CAAC;QACD,8EAA8E;QAC9E,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,gBAAgB,EAAC,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"chainSegment.js","sourceRoot":"","sources":["../../../../src/chain/blocks/utils/chainSegment.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,GAAG,EAAC,MAAM,iBAAiB,CAAC;AACpC,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,uBAAuB,CAAC;AAGjE;;GAEG;AAEH,MAAM,UAAU,wBAAwB,CAAC,MAAuB,EAAE,MAAqB;IACrF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACvC,uFAAuF;QACvF,0BAA0B;QAC1B,IACE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CACd,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,EAC/E,KAAK,CAAC,OAAO,CAAC,UAAU,CACzB,EACD,CAAC;YACD,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,uBAAuB,EAAC,CAAC,CAAC;QAC9E,CAAC;QACD,8EAA8E;QAC9E,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,gBAAgB,EAAC,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -2,7 +2,8 @@ import { ProtoBlock } from "@lodestar/fork-choice";
2
2
  import { CachedBeaconStateAllForks, DataAvailabilityStatus } from "@lodestar/state-transition";
3
3
  import type { BeaconChain } from "../chain.js";
4
4
  import { BlockProcessOpts } from "../options.js";
5
- import { BlockInput, ImportBlockOpts } from "./types.js";
5
+ import { IBlockInput } from "./blockInput/index.js";
6
+ import { ImportBlockOpts } from "./types.js";
6
7
  import { SegmentExecStatus } from "./verifyBlocksExecutionPayloads.js";
7
8
  /**
8
9
  * Verifies 1 or more blocks are fully valid; from a linear sequence of blocks.
@@ -15,11 +16,10 @@ import { SegmentExecStatus } from "./verifyBlocksExecutionPayloads.js";
15
16
  *
16
17
  * If there's an error during one of the steps, the rest are aborted with an AbortController.
17
18
  */
18
- export declare function verifyBlocksInEpoch(this: BeaconChain, parentBlock: ProtoBlock, blocksInput: BlockInput[], opts: BlockProcessOpts & ImportBlockOpts): Promise<{
19
+ export declare function verifyBlocksInEpoch(this: BeaconChain, parentBlock: ProtoBlock, blockInputs: IBlockInput[], opts: BlockProcessOpts & ImportBlockOpts): Promise<{
19
20
  postStates: CachedBeaconStateAllForks[];
20
21
  proposerBalanceDeltas: number[];
21
22
  segmentExecStatus: SegmentExecStatus;
22
23
  dataAvailabilityStatuses: DataAvailabilityStatus[];
23
- availableBlockInputs: BlockInput[];
24
24
  }>;
25
25
  //# sourceMappingURL=verifyBlock.d.ts.map
@@ -4,7 +4,7 @@ import { DataAvailabilityStatus, computeEpochAtSlot, isStateValidatorsNodesPopul
4
4
  import { toRootHex } from "@lodestar/utils";
5
5
  import { BlockError, BlockErrorCode } from "../errors/index.js";
6
6
  import { RegenCaller } from "../regen/index.js";
7
- import { BlockInputType } from "./types.js";
7
+ import { DAType } from "./blockInput/index.js";
8
8
  import { DENEB_BLOWFISH_BANNER } from "./utils/blowfishBanner.js";
9
9
  import { ELECTRA_GIRAFFE_BANNER } from "./utils/giraffeBanner.js";
10
10
  import { CAPELLA_OWL_BANNER } from "./utils/ownBanner.js";
@@ -26,8 +26,8 @@ import { writeBlockInputToDb } from "./writeBlockInputToDb.js";
26
26
  *
27
27
  * If there's an error during one of the steps, the rest are aborted with an AbortController.
28
28
  */
29
- export async function verifyBlocksInEpoch(parentBlock, blocksInput, opts) {
30
- const blocks = blocksInput.map(({ block }) => block);
29
+ export async function verifyBlocksInEpoch(parentBlock, blockInputs, opts) {
30
+ const blocks = blockInputs.map((blockInput) => blockInput.getBlock());
31
31
  const lastBlock = blocks.at(-1);
32
32
  if (!lastBlock) {
33
33
  throw Error("Empty partiallyVerifiedBlocks");
@@ -65,20 +65,20 @@ export async function verifyBlocksInEpoch(parentBlock, blocksInput, opts) {
65
65
  const abortController = new AbortController();
66
66
  try {
67
67
  // batch all I/O operations to reduce overhead
68
- const [segmentExecStatus, { dataAvailabilityStatuses, availableTime, availableBlockInputs }, { postStates, proposerBalanceDeltas, verifyStateTime }, { verifySignaturesTime },] = await Promise.all([
68
+ const [segmentExecStatus, { dataAvailabilityStatuses, availableTime }, { postStates, proposerBalanceDeltas, verifyStateTime }, { verifySignaturesTime },] = await Promise.all([
69
69
  // Execution payloads
70
70
  opts.skipVerifyExecutionPayload !== true
71
- ? verifyBlocksExecutionPayload(this, parentBlock, blocks, preState0, abortController.signal, opts)
71
+ ? verifyBlocksExecutionPayload(this, parentBlock, blockInputs, preState0, abortController.signal, opts)
72
72
  : Promise.resolve({
73
73
  execAborted: null,
74
74
  executionStatuses: blocks.map((_blk) => ExecutionStatus.Syncing),
75
75
  mergeBlockFound: null,
76
76
  }),
77
77
  // data availability for the blobs
78
- verifyBlocksDataAvailability(this, blocksInput, abortController.signal, opts),
78
+ verifyBlocksDataAvailability(blockInputs, abortController.signal),
79
79
  // Run state transition only
80
80
  // TODO: Ensure it yields to allow flushing to workers and engine API
81
- verifyBlocksStateTransitionOnly(preState0, blocksInput,
81
+ verifyBlocksStateTransitionOnly(preState0, blockInputs,
82
82
  // hack availability for state transition eval as availability is separately determined
83
83
  blocks.map(() => DataAvailabilityStatus.Available), this.logger, this.metrics, this.validatorMonitor, abortController.signal, opts),
84
84
  // All signatures at once
@@ -89,7 +89,7 @@ export async function verifyBlocksInEpoch(parentBlock, blocksInput, opts) {
89
89
  // rarely invalid blocks we'll batch all I/O operation here to reduce the overhead if there's
90
90
  // an error, we'll remove blocks not in forkchoice
91
91
  opts.verifyOnly !== true && opts.eagerPersistBlock
92
- ? writeBlockInputToDb.call(this, blocksInput)
92
+ ? writeBlockInputToDb.call(this, blockInputs)
93
93
  : Promise.resolve(),
94
94
  ]);
95
95
  if (opts.verifyOnly !== true) {
@@ -133,23 +133,24 @@ export async function verifyBlocksInEpoch(parentBlock, blocksInput, opts) {
133
133
  }
134
134
  if (segmentExecStatus.execAborted === null) {
135
135
  const { executionStatuses, executionTime } = segmentExecStatus;
136
- if (blocksInput.length === 1 &&
136
+ if (blockInputs.length === 1 &&
137
137
  // gossip blocks have seenTimestampSec
138
138
  opts.seenTimestampSec !== undefined &&
139
- blocksInput[0].type !== BlockInputType.preData &&
139
+ blockInputs[0].type !== DAType.PreData &&
140
140
  executionStatuses[0] === ExecutionStatus.Valid) {
141
141
  // Find the max time when the block was actually verified
142
142
  const fullyVerifiedTime = Math.max(executionTime, verifyStateTime, verifySignaturesTime);
143
143
  const recvTofullyVerifedTime = fullyVerifiedTime / 1000 - opts.seenTimestampSec;
144
144
  this.metrics?.gossipBlock.receivedToFullyVerifiedTime.observe(recvTofullyVerifedTime);
145
145
  const verifiedToBlobsAvailabiltyTime = Math.max(availableTime - fullyVerifiedTime, 0) / 1000;
146
- const numBlobs = blocksInput[0].block.message.body.blobKzgCommitments.length;
146
+ const block = blockInputs[0].getBlock();
147
+ const numBlobs = block.message.body.blobKzgCommitments.length;
147
148
  this.metrics?.gossipBlock.verifiedToBlobsAvailabiltyTime.observe({ numBlobs }, verifiedToBlobsAvailabiltyTime);
148
149
  this.logger.verbose("Verified blockInput fully with blobs availability", {
149
- slot: blocksInput[0].block.message.slot,
150
+ slot: block.message.slot,
150
151
  recvTofullyVerifedTime,
151
152
  verifiedToBlobsAvailabiltyTime,
152
- type: blocksInput[0].type,
153
+ type: blockInputs[0].type,
153
154
  numBlobs,
154
155
  });
155
156
  }
@@ -157,7 +158,7 @@ export async function verifyBlocksInEpoch(parentBlock, blocksInput, opts) {
157
158
  else {
158
159
  this.logger.verbose("Block verification aborted due to execution payload", {}, segmentExecStatus.execAborted.execError);
159
160
  }
160
- return { postStates, dataAvailabilityStatuses, proposerBalanceDeltas, segmentExecStatus, availableBlockInputs };
161
+ return { postStates, dataAvailabilityStatuses, proposerBalanceDeltas, segmentExecStatus };
161
162
  }
162
163
  finally {
163
164
  abortController.abort();
@@ -1 +1 @@
1
- {"version":3,"file":"verifyBlock.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifyBlock.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAa,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAC,QAAQ,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAEL,sBAAsB,EACtB,kBAAkB,EAClB,+BAA+B,GAChC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAS,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAC,UAAU,EAAE,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAC,MAAM,EAAc,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAC,qBAAqB,EAAC,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAC,iCAAiC,EAAC,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,4BAA4B,EAAC,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAoB,4BAA4B,EAAC,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAC,sBAAsB,EAAC,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAC,+BAA+B,EAAC,MAAM,sCAAsC,CAAC;AACrF,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAEvC,WAAuB,EACvB,WAA0B,EAC1B,IAAwC;IAOxC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D,0CAA0C;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACzC,IAAI,WAAW,KAAK,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;YAClD,MAAM,KAAK,CAAC,SAAS,CAAC,SAAS,SAAS,sBAAsB,WAAW,EAAE,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,sCAAsC;IACtC,uCAAuC;IACvC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK;QAChC,2EAA2E;SAC1E,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,EAAC,iBAAiB,EAAE,KAAK,EAAC,EAAE,WAAW,CAAC,oBAAoB,CAAC;SACzF,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACX,MAAM,IAAI,UAAU,CAAC,MAAM,EAAE,EAAC,IAAI,EAAE,cAAc,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAU,EAAC,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;IAEL,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,+CAA+C,EAAE;YACnE,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,KAAK,EAAE,+BAA+B,CAAC,SAAS,CAAC;YACjD,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,4BAA4B,EAAE,SAAS,CAAC,4BAA4B;YACpE,wBAAwB,EAAE,SAAS,CAAC,wBAAwB;SAC7D,CAAC,CAAC;IACL,CAAC;IAED,kDAAkD;IAClD,IAAI,WAAW,KAAK,kBAAkB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,KAAK,CAAC,oBAAoB,SAAS,CAAC,IAAI,kCAAkC,WAAW,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAE9C,IAAI,CAAC;QACH,8CAA8C;QAC9C,MAAM,CACJ,iBAAiB,EACjB,EAAC,wBAAwB,EAAE,aAAa,EAAC,EACzC,EAAC,UAAU,EAAE,qBAAqB,EAAE,eAAe,EAAC,EACpD,EAAC,oBAAoB,EAAC,EACvB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACpB,qBAAqB;YACrB,IAAI,CAAC,0BAA0B,KAAK,IAAI;gBACtC,CAAC,CAAC,4BAA4B,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC;gBACvG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;oBACd,WAAW,EAAE,IAAI;oBACjB,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC;oBAChE,eAAe,EAAE,IAAI;iBACD,CAAC;YAE3B,kCAAkC;YAClC,4BAA4B,CAAC,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC;YAEjE,4BAA4B;YAC5B,qEAAqE;YACrE,+BAA+B,CAC7B,SAAS,EACT,WAAW;YACX,uFAAuF;YACvF,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAClD,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,gBAAgB,EACrB,eAAe,CAAC,MAAM,EACtB,IAAI,CACL;YAED,yBAAyB;YACzB,IAAI,CAAC,yBAAyB,KAAK,IAAI;gBACrC,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC;gBACtF,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAC,oBAAoB,EAAE,IAAI,CAAC,GAAG,EAAE,EAAC,CAAC;YAEvD,+FAA+F;YAC/F,6FAA6F;YAC7F,kDAAkD;YAClD,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,iBAAiB;gBAChD,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC;gBAC7C,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;SACtB,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,IAAI,iBAAiB,CAAC,WAAW,KAAK,IAAI,IAAI,iBAAiB,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;gBACzF,4FAA4F;gBAC5F,mDAAmD;gBACnD,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC;YAC7E,CAAC;YAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;YAClG,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAEtG,oGAAoG;YACpG,IAAI,cAAc,CAAC,IAAI,KAAK,gBAAgB,CAAC,IAAI,EAAE,CAAC;gBAClD,QAAQ,cAAc,CAAC,IAAI,EAAE,CAAC;oBAC5B,KAAK,QAAQ,CAAC,OAAO;wBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;wBACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAC,CAAC,CAAC;wBACpF,MAAM;oBAER,KAAK,QAAQ,CAAC,KAAK;wBACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;wBACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAC,CAAC,CAAC;wBAC5E,MAAM;oBAER,KAAK,QAAQ,CAAC,OAAO;wBACnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;wBACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAC,CAAC,CAAC;wBAC9E,MAAM;oBAER,KAAK,QAAQ,CAAC,IAAI;wBAChB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;wBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,EAAC,CAAC,CAAC;wBAC7E,MAAM;oBAER,QAAQ;gBACV,CAAC;YACH,CAAC;YAED,IAAI,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACjF,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAE7E,IAAI,gBAAgB,CAAC,KAAK,KAAK,kBAAkB,CAAC,KAAK,EAAE,CAAC;oBACxD,MAAM,EAAC,KAAK,EAAE,gBAAgB,EAAC,GAAG,gBAAgB,CAAC;oBAEnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAC,KAAK,EAAE,gBAAgB,EAAC,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,iBAAiB,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC3C,MAAM,EAAC,iBAAiB,EAAE,aAAa,EAAC,GAAG,iBAAiB,CAAC;YAC7D,IACE,WAAW,CAAC,MAAM,KAAK,CAAC;gBACxB,sCAAsC;gBACtC,IAAI,CAAC,gBAAgB,KAAK,SAAS;gBACnC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO;gBACtC,iBAAiB,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,KAAK,EAC9C,CAAC;gBACD,yDAAyD;gBACzD,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,EAAE,oBAAoB,CAAC,CAAC;gBACzF,MAAM,sBAAsB,GAAG,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBAChF,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,2BAA2B,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;gBAEtF,MAAM,8BAA8B,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,iBAAiB,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;gBAC7F,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,EAA6B,CAAC;gBACnE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;gBAE9D,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,8BAA8B,CAAC,OAAO,CAAC,EAAC,QAAQ,EAAC,EAAE,8BAA8B,CAAC,CAAC;gBAC7G,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mDAAmD,EAAE;oBACvE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;oBACxB,sBAAsB;oBACtB,8BAA8B;oBAC9B,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI;oBACzB,QAAQ;iBACT,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,OAAO,CACjB,qDAAqD,EACrD,EAAE,EACF,iBAAiB,CAAC,WAAW,CAAC,SAAS,CACxC,CAAC;QACJ,CAAC;QAED,OAAO,EAAC,UAAU,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,iBAAiB,EAAC,CAAC;IAC1F,CAAC;YAAS,CAAC;QACT,eAAe,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,MAAc,EAAE,MAAuB,EAAE,UAAiC;IAC/F,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5G,MAAM,kBAAkB,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACjF,MAAM,YAAY,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC5E,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC/C,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC1D,MAAM,CAAC,IAAI,CAAC,gDAAgD,EAAE;QAC5D,SAAS,EAAE,cAAc;QACzB,aAAa,EAAE,kBAAkB;QACjC,OAAO,EAAE,YAAY;KACtB,CAAC,CAAC;AACL,CAAC"}
@@ -1,29 +1,14 @@
1
- import { ChainForkConfig } from "@lodestar/config";
2
1
  import { DataAvailabilityStatus } from "@lodestar/state-transition";
3
- import { UintNum64 } from "@lodestar/types";
4
- import { Logger } from "@lodestar/utils";
5
- import { Metrics } from "../../metrics/metrics.js";
6
- import { BlockInput, ImportBlockOpts } from "./types.js";
2
+ import { IBlockInput } from "./blockInput/index.js";
3
+ export declare const BLOB_AVAILABILITY_TIMEOUT = 12000;
7
4
  /**
8
- * Verifies some early cheap sanity checks on the block before running the full state transition.
9
- *
10
- * - Parent is known to the fork-choice
11
- * - Check skipped slots limit
12
- * - check_block_relevancy()
13
- * - Block not in the future
14
- * - Not genesis block
15
- * - Block's slot is < Infinity
16
- * - Not finalized slot
17
- * - Not already known
5
+ * Verifies that all block inputs have data available.
6
+ * - Waits a max of BLOB_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 block input
18
9
  */
19
- export declare function verifyBlocksDataAvailability(chain: {
20
- config: ChainForkConfig;
21
- genesisTime: UintNum64;
22
- logger: Logger;
23
- metrics: Metrics | null;
24
- }, blocks: BlockInput[], signal: AbortSignal, opts: ImportBlockOpts): Promise<{
10
+ export declare function verifyBlocksDataAvailability(blocks: IBlockInput[], signal: AbortSignal): Promise<{
25
11
  dataAvailabilityStatuses: DataAvailabilityStatus[];
26
12
  availableTime: number;
27
- availableBlockInputs: BlockInput[];
28
13
  }>;
29
14
  //# sourceMappingURL=verifyBlocksDataAvailability.d.ts.map
@@ -1,118 +1,26 @@
1
- import { isForkPostDeneb, isForkPostFulu } from "@lodestar/params";
2
- import { DataAvailabilityStatus, computeTimeAtSlot } from "@lodestar/state-transition";
3
- import { ErrorAborted } from "@lodestar/utils";
4
- import { BlockError, BlockErrorCode } from "../errors/index.js";
5
- import { validateBlobSidecars } from "../validation/blobSidecar.js";
6
- import { validateDataColumnsSidecars } from "../validation/dataColumnSidecar.js";
7
- import { BlobSidecarValidation, BlockInputType, getBlockInput, } from "./types.js";
1
+ import { DataAvailabilityStatus } from "@lodestar/state-transition";
2
+ import { DAType } from "./blockInput/index.js";
8
3
  // we can now wait for full 12 seconds because unavailable block sync will try pulling
9
4
  // the blobs from the network anyway after 500ms of seeing the block
10
- const BLOB_AVAILABILITY_TIMEOUT = 12_000;
5
+ export const BLOB_AVAILABILITY_TIMEOUT = 12_000;
11
6
  /**
12
- * Verifies some early cheap sanity checks on the block before running the full state transition.
13
- *
14
- * - Parent is known to the fork-choice
15
- * - Check skipped slots limit
16
- * - check_block_relevancy()
17
- * - Block not in the future
18
- * - Not genesis block
19
- * - Block's slot is < Infinity
20
- * - Not finalized slot
21
- * - Not already known
7
+ * Verifies that all block inputs have data available.
8
+ * - Waits a max of BLOB_AVAILABILITY_TIMEOUT for all data to be available
9
+ * - Returns the time at which all data was available
10
+ * - Returns the data availability status for each block input
22
11
  */
23
- export async function verifyBlocksDataAvailability(chain, blocks, signal, opts) {
24
- const lastBlock = blocks.at(-1);
25
- if (!lastBlock) {
26
- throw Error("Empty partiallyVerifiedBlocks");
27
- }
28
- const dataAvailabilityStatuses = [];
29
- const seenTime = opts.seenTimestampSec !== undefined ? opts.seenTimestampSec * 1000 : Date.now();
30
- const availableBlockInputs = [];
31
- for (const blockInput of blocks) {
32
- if (signal.aborted) {
33
- throw new ErrorAborted("verifyBlocksDataAvailability");
12
+ export async function verifyBlocksDataAvailability(blocks, signal) {
13
+ await Promise.all(blocks.map((blockInput) => blockInput.waitForAllData(BLOB_AVAILABILITY_TIMEOUT, signal)));
14
+ const availableTime = Math.max(0, Math.max(...blocks.map((blockInput) => blockInput.getTimeComplete())));
15
+ const dataAvailabilityStatuses = blocks.map((blockInput) => {
16
+ if (blockInput.type === DAType.PreData) {
17
+ return DataAvailabilityStatus.PreData;
34
18
  }
35
- // Validate status of only not yet finalized blocks, we don't need yet to propogate the status
36
- // as it is not used upstream anywhere
37
- const { dataAvailabilityStatus, availableBlockInput } = await maybeValidateBlobs(chain, blockInput, signal, opts);
38
- dataAvailabilityStatuses.push(dataAvailabilityStatus);
39
- availableBlockInputs.push(availableBlockInput);
40
- }
41
- const availableTime = lastBlock.type === BlockInputType.dataPromise ? Date.now() : seenTime;
42
- if (blocks.length === 1 && opts.seenTimestampSec !== undefined && blocks[0].type !== BlockInputType.preData) {
43
- const recvToAvailableTime = availableTime / 1000 - opts.seenTimestampSec;
44
- const numBlobs = blocks[0].block.message.body.blobKzgCommitments.length;
45
- chain.metrics?.gossipBlock.receivedToBlobsAvailabilityTime.observe({ numBlobs }, recvToAvailableTime);
46
- chain.logger.verbose("Verified blobs availability", {
47
- slot: blocks[0].block.message.slot,
48
- recvToAvailableTime,
49
- type: blocks[0].type,
50
- });
51
- }
52
- return { dataAvailabilityStatuses, availableTime, availableBlockInputs };
53
- }
54
- async function maybeValidateBlobs(chain, blockInput, signal, opts) {
55
- switch (blockInput.type) {
56
- case BlockInputType.preData:
57
- return { dataAvailabilityStatus: DataAvailabilityStatus.PreData, availableBlockInput: blockInput };
58
- case BlockInputType.outOfRangeData:
59
- return { dataAvailabilityStatus: DataAvailabilityStatus.OutOfRange, availableBlockInput: blockInput };
60
- // biome-ignore lint/suspicious/noFallthroughSwitchClause: We need fall-through behavior here
61
- case BlockInputType.availableData:
62
- if (opts.validBlobSidecars === BlobSidecarValidation.Full) {
63
- return { dataAvailabilityStatus: DataAvailabilityStatus.Available, availableBlockInput: blockInput };
64
- }
65
- case BlockInputType.dataPromise: {
66
- // run full validation
67
- const { block } = blockInput;
68
- const blockSlot = block.message.slot;
69
- const { blobKzgCommitments } = block.message.body;
70
- const beaconBlockRoot = chain.config.getForkTypes(blockSlot).BeaconBlock.hashTreeRoot(block.message);
71
- const blockData = blockInput.type === BlockInputType.availableData
72
- ? blockInput.blockData
73
- : await raceWithCutoff(chain, blockInput, blockInput.cachedData.availabilityPromise, signal);
74
- if (isForkPostFulu(blockData.fork)) {
75
- const { dataColumns } = blockData;
76
- const skipProofsCheck = opts.validBlobSidecars === BlobSidecarValidation.Individual;
77
- await validateDataColumnsSidecars(blockSlot, beaconBlockRoot, blobKzgCommitments, dataColumns, chain.metrics, {
78
- skipProofsCheck,
79
- });
80
- }
81
- else if (isForkPostDeneb(blockData.fork)) {
82
- const { blobs } = blockData;
83
- // if the blob sidecars have been individually verified then we can skip kzg proof check
84
- // but other checks to match blobs with block data still need to be performed
85
- const skipProofsCheck = opts.validBlobSidecars === BlobSidecarValidation.Individual;
86
- await validateBlobSidecars(blockSlot, beaconBlockRoot, blobKzgCommitments, blobs, { skipProofsCheck });
87
- }
88
- const availableBlockInput = getBlockInput.availableData(chain.config, blockInput.block, blockInput.source, blockData);
89
- return { dataAvailabilityStatus: DataAvailabilityStatus.Available, availableBlockInput: availableBlockInput };
19
+ if (blockInput.daOutOfRange) {
20
+ return DataAvailabilityStatus.OutOfRange;
90
21
  }
91
- }
92
- }
93
- /**
94
- * Wait for blobs to become available with a cutoff time. If fails then throw DATA_UNAVAILABLE error
95
- * which may try unknownblock/blobs fill (by root).
96
- */
97
- async function raceWithCutoff(chain, blockInput, availabilityPromise, signal) {
98
- const { block } = blockInput;
99
- const blockSlot = block.message.slot;
100
- const cutoffTime = computeTimeAtSlot(chain.config, blockSlot, chain.genesisTime) * 1000 + BLOB_AVAILABILITY_TIMEOUT - Date.now();
101
- const cutoffTimeout = cutoffTime > 0
102
- ? new Promise((_resolve, reject) => {
103
- setTimeout(() => reject(new Error("Timeout exceeded")), cutoffTime);
104
- signal.addEventListener("abort", () => reject(signal.reason));
105
- })
106
- : Promise.reject(new Error("Cutoff time must be greater than 0"));
107
- chain.logger.debug("Racing for blob availabilityPromise", { blockSlot, cutoffTime });
108
- try {
109
- await Promise.race([availabilityPromise, cutoffTimeout]);
110
- }
111
- catch (_e) {
112
- // throw unavailable so that the unknownblock/blobs can be triggered to pull the block
113
- throw new BlockError(block, { code: BlockErrorCode.DATA_UNAVAILABLE });
114
- }
115
- // we can only be here if availabilityPromise has resolved else an error will be thrown
116
- return availabilityPromise;
22
+ return DataAvailabilityStatus.Available;
23
+ });
24
+ return { dataAvailabilityStatuses, availableTime };
117
25
  }
118
26
  //# sourceMappingURL=verifyBlocksDataAvailability.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"verifyBlocksDataAvailability.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksDataAvailability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifyBlocksDataAvailability.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksDataAvailability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAC,MAAM,EAAc,MAAM,uBAAuB,CAAC;AAE1D,sFAAsF;AACtF,oEAAoE;AACpE,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,MAAqB,EACrB,MAAmB;IAKnB,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,yBAAyB,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5G,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;IACzG,MAAM,wBAAwB,GAA6B,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QACnF,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC;YACvC,OAAO,sBAAsB,CAAC,OAAO,CAAC;QACxC,CAAC;QACD,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;YAC5B,OAAO,sBAAsB,CAAC,UAAU,CAAC;QAC3C,CAAC;QACD,OAAO,sBAAsB,CAAC,SAAS,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,OAAO,EAAC,wBAAwB,EAAE,aAAa,EAAC,CAAC;AACnD,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { ChainForkConfig } from "@lodestar/config";
2
2
  import { ExecutionStatus, IForkChoice, LVHInvalidResponse, LVHValidResponse, MaybeValidExecutionStatus, ProtoBlock } from "@lodestar/fork-choice";
3
3
  import { CachedBeaconStateAllForks } from "@lodestar/state-transition";
4
- import { SignedBeaconBlock, Slot, bellatrix } from "@lodestar/types";
4
+ import { Slot, bellatrix } from "@lodestar/types";
5
5
  import { Logger } from "@lodestar/utils";
6
6
  import { IEth1ForBlockProduction } from "../../eth1/index.js";
7
7
  import { IExecutionEngine } from "../../execution/engine/interface.js";
@@ -9,6 +9,7 @@ import { Metrics } from "../../metrics/metrics.js";
9
9
  import { IClock } from "../../util/clock.js";
10
10
  import { BlockError } from "../errors/index.js";
11
11
  import { BlockProcessOpts } from "../options.js";
12
+ import { IBlockInput } from "./blockInput/types.js";
12
13
  import { ImportBlockOpts } from "./types.js";
13
14
  export type VerifyBlockExecutionPayloadModules = {
14
15
  eth1: IEth1ForBlockProduction;
@@ -60,10 +61,10 @@ type VerifyBlockExecutionResponse = VerifyExecutionErrorResponse | {
60
61
  *
61
62
  * Since the EL client must be aware of each parent, all payloads must be submitted in sequence.
62
63
  */
63
- export declare function verifyBlocksExecutionPayload(chain: VerifyBlockExecutionPayloadModules, parentBlock: ProtoBlock, blocks: SignedBeaconBlock[], preState0: CachedBeaconStateAllForks, signal: AbortSignal, opts: BlockProcessOpts & ImportBlockOpts): Promise<SegmentExecStatus>;
64
+ export declare function verifyBlocksExecutionPayload(chain: VerifyBlockExecutionPayloadModules, parentBlock: ProtoBlock, blockInputs: IBlockInput[], preState0: CachedBeaconStateAllForks, signal: AbortSignal, opts: BlockProcessOpts & ImportBlockOpts): Promise<SegmentExecStatus>;
64
65
  /**
65
66
  * Verifies a single block execution payload by sending it to the EL client (via HTTP).
66
67
  */
67
- export declare function verifyBlockExecutionPayload(chain: VerifyBlockExecutionPayloadModules, block: SignedBeaconBlock, preState0: CachedBeaconStateAllForks, opts: BlockProcessOpts, isOptimisticallySafe: boolean, currentSlot: Slot): Promise<VerifyBlockExecutionResponse>;
68
+ export declare function verifyBlockExecutionPayload(chain: VerifyBlockExecutionPayloadModules, blockInput: IBlockInput, preState0: CachedBeaconStateAllForks, opts: BlockProcessOpts, isOptimisticallySafe: boolean, currentSlot: Slot): Promise<VerifyBlockExecutionResponse>;
68
69
  export {};
69
70
  //# sourceMappingURL=verifyBlocksExecutionPayloads.d.ts.map
@@ -3,18 +3,18 @@ import { ForkSeq, SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY } from "@lodestar/params";
3
3
  import { isExecutionBlockBodyType, isExecutionEnabled, isExecutionStateType, isMergeTransitionBlock as isMergeTransitionBlockFn, } from "@lodestar/state-transition";
4
4
  import { ErrorAborted, toRootHex } from "@lodestar/utils";
5
5
  import { ExecutionPayloadStatus } from "../../execution/engine/interface.js";
6
- import { kzgCommitmentToVersionedHash } from "../../util/blobs.js";
7
6
  import { BlockError, BlockErrorCode } from "../errors/index.js";
7
+ import { isBlockInputBlobs, isBlockInputColumns } from "./blockInput/blockInput.js";
8
8
  /**
9
9
  * Verifies 1 or more execution payloads from a linear sequence of blocks.
10
10
  *
11
11
  * Since the EL client must be aware of each parent, all payloads must be submitted in sequence.
12
12
  */
13
- export async function verifyBlocksExecutionPayload(chain, parentBlock, blocks, preState0, signal, opts) {
13
+ export async function verifyBlocksExecutionPayload(chain, parentBlock, blockInputs, preState0, signal, opts) {
14
14
  const executionStatuses = [];
15
15
  let mergeBlockFound = null;
16
16
  const recvToValLatency = Date.now() / 1000 - (opts.seenTimestampSec ?? Date.now() / 1000);
17
- const lastBlock = blocks.at(-1);
17
+ const lastBlock = blockInputs.at(-1);
18
18
  // Error in the same way as verifyBlocksSanityChecks if empty blocks
19
19
  if (!lastBlock) {
20
20
  throw Error("Empty partiallyVerifiedBlocks");
@@ -82,18 +82,18 @@ export async function verifyBlocksExecutionPayload(chain, parentBlock, blocks, p
82
82
  const currentSlot = chain.clock.currentSlot;
83
83
  const safeSlotsToImportOptimistically = opts.safeSlotsToImportOptimistically ?? SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY;
84
84
  let isOptimisticallySafe = parentBlock.executionStatus !== ExecutionStatus.PreMerge ||
85
- lastBlock.message.slot + safeSlotsToImportOptimistically < currentSlot;
86
- for (let blockIndex = 0; blockIndex < blocks.length; blockIndex++) {
87
- const block = blocks[blockIndex];
85
+ lastBlock.slot + safeSlotsToImportOptimistically < currentSlot;
86
+ for (let blockIndex = 0; blockIndex < blockInputs.length; blockIndex++) {
87
+ const blockInput = blockInputs[blockIndex];
88
88
  // If blocks are invalid in consensus the main promise could resolve before this loop ends.
89
89
  // In that case stop sending blocks to execution engine
90
90
  if (signal.aborted) {
91
91
  throw new ErrorAborted("verifyBlockExecutionPayloads");
92
92
  }
93
- const verifyResponse = await verifyBlockExecutionPayload(chain, block, preState0, opts, isOptimisticallySafe, currentSlot);
93
+ const verifyResponse = await verifyBlockExecutionPayload(chain, blockInput, preState0, opts, isOptimisticallySafe, currentSlot);
94
94
  // If execError has happened, then we need to extract the segmentExecStatus and return
95
95
  if (verifyResponse.execError !== null) {
96
- return getSegmentErrorResponse({ verifyResponse, blockIndex }, parentBlock, blocks);
96
+ return getSegmentErrorResponse({ verifyResponse, blockIndex }, parentBlock, blockInputs);
97
97
  }
98
98
  // If we are here then its because executionStatus is one of MaybeValidExecutionStatus
99
99
  const { executionStatus } = verifyResponse;
@@ -104,14 +104,15 @@ export async function verifyBlocksExecutionPayload(chain, parentBlock, blocks, p
104
104
  isOptimisticallySafe = true;
105
105
  }
106
106
  executionStatuses.push(executionStatus);
107
+ const blockBody = blockInput.getBlock().message.body;
107
108
  const isMergeTransitionBlock =
108
109
  // If the merge block is found, stop the search as the isMergeTransitionBlockFn condition
109
110
  // will still evaluate to true for the following blocks leading to errors (while syncing)
110
111
  // as the preState0 still belongs to the pre state of the first block on segment
111
112
  mergeBlockFound === null &&
112
113
  isExecutionStateType(preState0) &&
113
- isExecutionBlockBodyType(block.message.body) &&
114
- isMergeTransitionBlockFn(preState0, block.message.body);
114
+ isExecutionBlockBodyType(blockBody) &&
115
+ isMergeTransitionBlockFn(preState0, blockBody);
115
116
  // If this is a merge transition block, check to ensure if it references
116
117
  // a valid terminal PoW block.
117
118
  //
@@ -126,7 +127,7 @@ export async function verifyBlocksExecutionPayload(chain, parentBlock, blocks, p
126
127
  // deal it with the external services like eth1 tracker here than
127
128
  // in import block
128
129
  if (isMergeTransitionBlock) {
129
- const mergeBlock = block.message;
130
+ const mergeBlock = blockInput.getBlock().message;
130
131
  const mergeBlockHash = toRootHex(chain.config.getForkTypes(mergeBlock.slot).BeaconBlock.hashTreeRoot(mergeBlock));
131
132
  const powBlockRootHex = toRootHex(mergeBlock.body.executionPayload.parentHash);
132
133
  const powBlock = await chain.eth1.getPowBlock(powBlockRootHex).catch((error) => {
@@ -153,13 +154,15 @@ export async function verifyBlocksExecutionPayload(chain, parentBlock, blocks, p
153
154
  }
154
155
  }
155
156
  const executionTime = Date.now();
156
- if (blocks.length === 1 && opts.seenTimestampSec !== undefined && executionStatuses[0] === ExecutionStatus.Valid) {
157
+ if (blockInputs.length === 1 &&
158
+ opts.seenTimestampSec !== undefined &&
159
+ executionStatuses[0] === ExecutionStatus.Valid) {
157
160
  const recvToValidation = executionTime / 1000 - opts.seenTimestampSec;
158
161
  const validationTime = recvToValidation - recvToValLatency;
159
162
  chain.metrics?.gossipBlock.executionPayload.recvToValidation.observe(recvToValidation);
160
163
  chain.metrics?.gossipBlock.executionPayload.validationTime.observe(validationTime);
161
164
  chain.logger.debug("Verified execution payload", {
162
- slot: blocks[0].message.slot,
165
+ slot: blockInputs[0].slot,
163
166
  recvToValLatency,
164
167
  recvToValidation,
165
168
  validationTime,
@@ -175,7 +178,8 @@ export async function verifyBlocksExecutionPayload(chain, parentBlock, blocks, p
175
178
  /**
176
179
  * Verifies a single block execution payload by sending it to the EL client (via HTTP).
177
180
  */
178
- export async function verifyBlockExecutionPayload(chain, block, preState0, opts, isOptimisticallySafe, currentSlot) {
181
+ export async function verifyBlockExecutionPayload(chain, blockInput, preState0, opts, isOptimisticallySafe, currentSlot) {
182
+ const block = blockInput.getBlock();
179
183
  /** Not null if execution is enabled */
180
184
  const executionPayloadEnabled = isExecutionStateType(preState0) &&
181
185
  isExecutionBlockBodyType(block.message.body) &&
@@ -192,13 +196,11 @@ export async function verifyBlockExecutionPayload(chain, block, preState0, opts,
192
196
  return { executionStatus: ExecutionStatus.PreMerge, execError: null };
193
197
  }
194
198
  // TODO: Handle better notifyNewPayload() returning error is syncing
195
- const fork = chain.config.getForkName(block.message.slot);
196
- const versionedHashes = ForkSeq[fork] >= ForkSeq.deneb
197
- ? block.message.body.blobKzgCommitments.map(kzgCommitmentToVersionedHash)
198
- : undefined;
199
+ const fork = blockInput.forkName;
200
+ const versionedHashes = isBlockInputBlobs(blockInput) || isBlockInputColumns(blockInput) ? blockInput.getVersionedHashes() : undefined;
199
201
  const parentBlockRoot = ForkSeq[fork] >= ForkSeq.deneb ? block.message.parentRoot : undefined;
200
202
  const executionRequests = ForkSeq[fork] >= ForkSeq.electra ? block.message.body.executionRequests : undefined;
201
- const logCtx = { slot: block.message.slot, executionBlock: executionPayloadEnabled.blockNumber };
203
+ const logCtx = { slot: blockInput.slot, executionBlock: executionPayloadEnabled.blockNumber };
202
204
  chain.logger.debug("Call engine api newPayload", logCtx);
203
205
  const execResult = await chain.executionEngine.notifyNewPayload(fork, executionPayloadEnabled, versionedHashes, parentBlockRoot, executionRequests);
204
206
  chain.logger.debug("Receive engine api newPayload result", { ...logCtx, status: execResult.status });
@@ -214,7 +216,7 @@ export async function verifyBlockExecutionPayload(chain, block, preState0, opts,
214
216
  const lvhResponse = {
215
217
  executionStatus,
216
218
  latestValidExecHash: execResult.latestValidHash,
217
- invalidateFromParentBlockRoot: toRootHex(block.message.parentRoot),
219
+ invalidateFromParentBlockRoot: blockInput.parentRootHex,
218
220
  };
219
221
  const execError = new BlockError(block, {
220
222
  code: BlockErrorCode.EXECUTION_ENGINE_ERROR,
@@ -230,7 +232,7 @@ export async function verifyBlockExecutionPayload(chain, block, preState0, opts,
230
232
  // the safeSlotsToImportOptimistically window of current slot, then we can import else
231
233
  // we need to throw and not import his block
232
234
  const safeSlotsToImportOptimistically = opts.safeSlotsToImportOptimistically ?? SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY;
233
- if (!isOptimisticallySafe && block.message.slot + safeSlotsToImportOptimistically >= currentSlot) {
235
+ if (!isOptimisticallySafe && blockInput.slot + safeSlotsToImportOptimistically >= currentSlot) {
234
236
  const execError = new BlockError(block, {
235
237
  code: BlockErrorCode.EXECUTION_ENGINE_ERROR,
236
238
  execStatus: ExecutionPayloadStatus.UNSAFE_OPTIMISTIC_STATUS,
@@ -276,7 +278,7 @@ function getSegmentErrorResponse({ verifyResponse, blockIndex }, parentBlock, bl
276
278
  lvhResponse.latestValidExecHash !== null) {
277
279
  let lvhFound = false;
278
280
  for (let mayBeLVHIndex = blockIndex - 1; mayBeLVHIndex >= 0; mayBeLVHIndex--) {
279
- const block = blocks[mayBeLVHIndex];
281
+ const block = blocks[mayBeLVHIndex].getBlock();
280
282
  if (toRootHex(block.message.body.executionPayload.blockHash) ===
281
283
  lvhResponse.latestValidExecHash) {
282
284
  lvhFound = true;
@@ -1 +1 @@
1
- {"version":3,"file":"verifyBlocksExecutionPayloads.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksExecutionPayloads.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifyBlocksExecutionPayloads.js","sourceRoot":"","sources":["../../../src/chain/blocks/verifyBlocksExecutionPayloads.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,8 @@ import { IForkChoice, ProtoBlock } from "@lodestar/fork-choice";
3
3
  import { RootHex, Slot } from "@lodestar/types";
4
4
  import { IClock } from "../../util/clock.js";
5
5
  import { IChainOptions } from "../options.js";
6
- import { BlockInput, ImportBlockOpts } from "./types.js";
6
+ import { IBlockInput } from "./blockInput/types.js";
7
+ import { ImportBlockOpts } from "./types.js";
7
8
  /**
8
9
  * Verifies some early cheap sanity checks on the block before running the full state transition.
9
10
  *
@@ -22,8 +23,8 @@ export declare function verifyBlocksSanityChecks(chain: {
22
23
  config: ChainForkConfig;
23
24
  opts: IChainOptions;
24
25
  blacklistedBlocks: Map<RootHex, Slot | null>;
25
- }, blocks: BlockInput[], opts: ImportBlockOpts): {
26
- relevantBlocks: BlockInput[];
26
+ }, blocks: IBlockInput[], opts: ImportBlockOpts): {
27
+ relevantBlocks: IBlockInput[];
27
28
  parentSlots: Slot[];
28
29
  parentBlock: ProtoBlock | null;
29
30
  };