@lodestar/beacon-node 1.35.0-dev.7a3b3a996e → 1.35.0-dev.811265f1e2

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 (385) hide show
  1. package/lib/api/impl/beacon/blocks/index.js +46 -58
  2. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  3. package/lib/api/impl/errors.js +0 -2
  4. package/lib/api/impl/errors.js.map +1 -1
  5. package/lib/api/impl/lodestar/index.js +1 -1
  6. package/lib/api/impl/lodestar/index.js.map +1 -1
  7. package/lib/api/impl/validator/index.js +1 -2
  8. package/lib/api/impl/validator/index.js.map +1 -1
  9. package/lib/api/rest/activeSockets.js +2 -3
  10. package/lib/api/rest/activeSockets.js.map +1 -1
  11. package/lib/api/rest/base.js +0 -4
  12. package/lib/api/rest/base.js.map +1 -1
  13. package/lib/api/rest/index.js +0 -2
  14. package/lib/api/rest/index.js.map +1 -1
  15. package/lib/api/rest/swaggerUI.js +2 -4
  16. package/lib/api/rest/swaggerUI.js.map +1 -1
  17. package/lib/chain/archiveStore/archiveStore.js +38 -49
  18. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  19. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +0 -2
  20. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  21. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +0 -5
  22. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
  23. package/lib/chain/balancesCache.js +3 -1
  24. package/lib/chain/balancesCache.js.map +1 -1
  25. package/lib/chain/beaconProposerCache.js +0 -1
  26. package/lib/chain/beaconProposerCache.js.map +1 -1
  27. package/lib/chain/blocks/blockInput/blockInput.d.ts +7 -19
  28. package/lib/chain/blocks/blockInput/blockInput.js +88 -132
  29. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  30. package/lib/chain/blocks/blockInput/types.d.ts +10 -19
  31. package/lib/chain/blocks/blockInput/types.js +0 -1
  32. package/lib/chain/blocks/blockInput/types.js.map +1 -1
  33. package/lib/chain/blocks/blockInput/utils.d.ts +4 -0
  34. package/lib/chain/blocks/blockInput/utils.js +29 -6
  35. package/lib/chain/blocks/blockInput/utils.js.map +1 -1
  36. package/lib/chain/blocks/importBlock.js +12 -16
  37. package/lib/chain/blocks/importBlock.js.map +1 -1
  38. package/lib/chain/blocks/index.d.ts +4 -5
  39. package/lib/chain/blocks/index.js +4 -5
  40. package/lib/chain/blocks/index.js.map +1 -1
  41. package/lib/chain/blocks/types.d.ts +106 -3
  42. package/lib/chain/blocks/types.js +119 -0
  43. package/lib/chain/blocks/types.js.map +1 -1
  44. package/lib/chain/blocks/utils/chainSegment.d.ts +2 -2
  45. package/lib/chain/blocks/utils/chainSegment.js +2 -2
  46. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  47. package/lib/chain/blocks/verifyBlock.d.ts +3 -3
  48. package/lib/chain/blocks/verifyBlock.js +14 -15
  49. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  50. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts +22 -7
  51. package/lib/chain/blocks/verifyBlocksDataAvailability.js +110 -18
  52. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  53. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +3 -4
  54. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +22 -24
  55. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  56. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts +3 -4
  57. package/lib/chain/blocks/verifyBlocksSanityChecks.js +2 -2
  58. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  59. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts +2 -3
  60. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +2 -2
  61. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  62. package/lib/chain/blocks/writeBlockInputToDb.d.ts +3 -3
  63. package/lib/chain/blocks/writeBlockInputToDb.js +66 -61
  64. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  65. package/lib/chain/bls/multithread/index.js +163 -167
  66. package/lib/chain/bls/multithread/index.js.map +1 -1
  67. package/lib/chain/bls/singleThread.js +0 -1
  68. package/lib/chain/bls/singleThread.js.map +1 -1
  69. package/lib/chain/chain.d.ts +10 -12
  70. package/lib/chain/chain.js +20 -79
  71. package/lib/chain/chain.js.map +1 -1
  72. package/lib/chain/emitter.d.ts +2 -43
  73. package/lib/chain/emitter.js +0 -18
  74. package/lib/chain/emitter.js.map +1 -1
  75. package/lib/chain/errors/blobSidecarError.d.ts +0 -24
  76. package/lib/chain/errors/blobSidecarError.js +0 -10
  77. package/lib/chain/errors/blobSidecarError.js.map +1 -1
  78. package/lib/chain/errors/blockError.js +0 -1
  79. package/lib/chain/errors/blockError.js.map +1 -1
  80. package/lib/chain/errors/dataColumnSidecarError.d.ts +0 -42
  81. package/lib/chain/errors/dataColumnSidecarError.js +0 -14
  82. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
  83. package/lib/chain/errors/gossipValidation.js +0 -1
  84. package/lib/chain/errors/gossipValidation.js.map +1 -1
  85. package/lib/chain/genesis/genesis.js +5 -16
  86. package/lib/chain/genesis/genesis.js.map +1 -1
  87. package/lib/chain/interface.d.ts +9 -12
  88. package/lib/chain/interface.js.map +1 -1
  89. package/lib/chain/lightClient/index.js +9 -16
  90. package/lib/chain/lightClient/index.js.map +1 -1
  91. package/lib/chain/opPools/aggregatedAttestationPool.js +8 -13
  92. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  93. package/lib/chain/opPools/attestationPool.js +2 -7
  94. package/lib/chain/opPools/attestationPool.js.map +1 -1
  95. package/lib/chain/opPools/opPool.js +12 -10
  96. package/lib/chain/opPools/opPool.js.map +1 -1
  97. package/lib/chain/opPools/syncCommitteeMessagePool.js +6 -9
  98. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  99. package/lib/chain/opPools/syncContributionAndProofPool.js +2 -5
  100. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  101. package/lib/chain/prepareNextSlot.js +136 -141
  102. package/lib/chain/prepareNextSlot.js.map +1 -1
  103. package/lib/chain/produceBlock/produceBlockBody.d.ts +1 -1
  104. package/lib/chain/produceBlock/produceBlockBody.js +10 -3
  105. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  106. package/lib/chain/regen/errors.js +0 -1
  107. package/lib/chain/regen/errors.js.map +1 -1
  108. package/lib/chain/regen/queued.js +28 -35
  109. package/lib/chain/regen/queued.js.map +1 -1
  110. package/lib/chain/regen/regen.js +0 -1
  111. package/lib/chain/regen/regen.js.map +1 -1
  112. package/lib/chain/reprocess.js +1 -3
  113. package/lib/chain/reprocess.js.map +1 -1
  114. package/lib/chain/seenCache/index.d.ts +1 -1
  115. package/lib/chain/seenCache/index.js +1 -1
  116. package/lib/chain/seenCache/index.js.map +1 -1
  117. package/lib/chain/seenCache/seenAggregateAndProof.js +6 -7
  118. package/lib/chain/seenCache/seenAggregateAndProof.js.map +1 -1
  119. package/lib/chain/seenCache/seenAttestationData.js +2 -5
  120. package/lib/chain/seenCache/seenAttestationData.js.map +1 -1
  121. package/lib/chain/seenCache/seenAttesters.js +4 -2
  122. package/lib/chain/seenCache/seenAttesters.js.map +1 -1
  123. package/lib/chain/seenCache/seenBlockInput.d.ts +84 -0
  124. package/lib/chain/seenCache/seenBlockInput.js +225 -0
  125. package/lib/chain/seenCache/seenBlockInput.js.map +1 -0
  126. package/lib/chain/seenCache/seenBlockProposers.js +4 -2
  127. package/lib/chain/seenCache/seenBlockProposers.js.map +1 -1
  128. package/lib/chain/seenCache/seenCommittee.js +3 -1
  129. package/lib/chain/seenCache/seenCommittee.js.map +1 -1
  130. package/lib/chain/seenCache/seenCommitteeContribution.js +2 -3
  131. package/lib/chain/seenCache/seenCommitteeContribution.js.map +1 -1
  132. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +78 -74
  133. package/lib/chain/seenCache/seenGossipBlockInput.js +369 -235
  134. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  135. package/lib/chain/shufflingCache.js +2 -5
  136. package/lib/chain/shufflingCache.js.map +1 -1
  137. package/lib/chain/stateCache/blockStateCacheImpl.js +7 -13
  138. package/lib/chain/stateCache/blockStateCacheImpl.js.map +1 -1
  139. package/lib/chain/stateCache/datastore/db.js +0 -1
  140. package/lib/chain/stateCache/datastore/db.js.map +1 -1
  141. package/lib/chain/stateCache/datastore/file.js +0 -1
  142. package/lib/chain/stateCache/datastore/file.js.map +1 -1
  143. package/lib/chain/stateCache/fifoBlockStateCache.js +0 -10
  144. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  145. package/lib/chain/stateCache/inMemoryCheckpointsCache.js +4 -10
  146. package/lib/chain/stateCache/inMemoryCheckpointsCache.js.map +1 -1
  147. package/lib/chain/stateCache/mapMetrics.js +4 -4
  148. package/lib/chain/stateCache/mapMetrics.js.map +1 -1
  149. package/lib/chain/stateCache/persistentCheckpointsCache.js +4 -13
  150. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  151. package/lib/chain/validation/blobSidecar.d.ts +3 -8
  152. package/lib/chain/validation/blobSidecar.js +31 -73
  153. package/lib/chain/validation/blobSidecar.js.map +1 -1
  154. package/lib/chain/validation/dataColumnSidecar.d.ts +9 -7
  155. package/lib/chain/validation/dataColumnSidecar.js +56 -94
  156. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  157. package/lib/chain/validatorMonitor.js +1 -2
  158. package/lib/chain/validatorMonitor.js.map +1 -1
  159. package/lib/db/beacon.js +0 -24
  160. package/lib/db/beacon.js.map +1 -1
  161. package/lib/db/repositories/depositDataRoot.js +0 -1
  162. package/lib/db/repositories/depositDataRoot.js.map +1 -1
  163. package/lib/db/single/preGenesisState.js +0 -6
  164. package/lib/db/single/preGenesisState.js.map +1 -1
  165. package/lib/db/single/preGenesisStateLastProcessedBlock.js +0 -5
  166. package/lib/db/single/preGenesisStateLastProcessedBlock.js.map +1 -1
  167. package/lib/eth1/eth1DataCache.js +0 -2
  168. package/lib/eth1/eth1DataCache.js.map +1 -1
  169. package/lib/eth1/eth1DepositDataTracker.js +5 -18
  170. package/lib/eth1/eth1DepositDataTracker.js.map +1 -1
  171. package/lib/eth1/eth1DepositsCache.js +0 -3
  172. package/lib/eth1/eth1DepositsCache.js.map +1 -1
  173. package/lib/eth1/eth1MergeBlockTracker.js +4 -10
  174. package/lib/eth1/eth1MergeBlockTracker.js.map +1 -1
  175. package/lib/eth1/index.js +0 -2
  176. package/lib/eth1/index.js.map +1 -1
  177. package/lib/eth1/provider/eth1Provider.js +2 -6
  178. package/lib/eth1/provider/eth1Provider.js.map +1 -1
  179. package/lib/eth1/provider/jsonRpcHttpClient.js +2 -16
  180. package/lib/eth1/provider/jsonRpcHttpClient.js.map +1 -1
  181. package/lib/eth1/provider/utils.d.ts +0 -5
  182. package/lib/eth1/provider/utils.js +1 -9
  183. package/lib/eth1/provider/utils.js.map +1 -1
  184. package/lib/execution/builder/cache.js +0 -6
  185. package/lib/execution/builder/cache.js.map +1 -1
  186. package/lib/execution/builder/http.js +8 -14
  187. package/lib/execution/builder/http.js.map +1 -1
  188. package/lib/execution/engine/disabled.js +4 -2
  189. package/lib/execution/engine/disabled.js.map +1 -1
  190. package/lib/execution/engine/http.d.ts +2 -2
  191. package/lib/execution/engine/http.js +11 -43
  192. package/lib/execution/engine/http.js.map +1 -1
  193. package/lib/execution/engine/interface.d.ts +2 -2
  194. package/lib/execution/engine/mock.d.ts +0 -1
  195. package/lib/execution/engine/mock.js +12 -16
  196. package/lib/execution/engine/mock.js.map +1 -1
  197. package/lib/execution/engine/payloadIdCache.js +3 -1
  198. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  199. package/lib/execution/engine/types.d.ts +1 -5
  200. package/lib/execution/engine/types.js +8 -37
  201. package/lib/execution/engine/types.js.map +1 -1
  202. package/lib/execution/engine/utils.js +1 -2
  203. package/lib/execution/engine/utils.js.map +1 -1
  204. package/lib/metrics/metrics/beacon.d.ts +5 -11
  205. package/lib/metrics/metrics/beacon.js +20 -40
  206. package/lib/metrics/metrics/beacon.js.map +1 -1
  207. package/lib/metrics/metrics/lodestar.d.ts +13 -55
  208. package/lib/metrics/metrics/lodestar.js +7 -84
  209. package/lib/metrics/metrics/lodestar.js.map +1 -1
  210. package/lib/metrics/nodeJsMetrics.js +1 -1
  211. package/lib/metrics/nodeJsMetrics.js.map +1 -1
  212. package/lib/metrics/utils/avgMinMax.js +6 -10
  213. package/lib/metrics/utils/avgMinMax.js.map +1 -1
  214. package/lib/metrics/utils/gauge.js +4 -1
  215. package/lib/metrics/utils/gauge.js.map +1 -1
  216. package/lib/monitoring/properties.js +0 -4
  217. package/lib/monitoring/properties.js.map +1 -1
  218. package/lib/monitoring/service.js +1 -13
  219. package/lib/monitoring/service.js.map +1 -1
  220. package/lib/monitoring/system.js +27 -25
  221. package/lib/monitoring/system.js.map +1 -1
  222. package/lib/network/core/networkCore.d.ts +1 -1
  223. package/lib/network/core/networkCore.js +49 -66
  224. package/lib/network/core/networkCore.js.map +1 -1
  225. package/lib/network/core/networkCoreWorkerHandler.d.ts +1 -1
  226. package/lib/network/core/networkCoreWorkerHandler.js +1 -4
  227. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  228. package/lib/network/discv5/index.js +1 -4
  229. package/lib/network/discv5/index.js.map +1 -1
  230. package/lib/network/discv5/worker.js.map +1 -1
  231. package/lib/network/events.d.ts +18 -2
  232. package/lib/network/events.js +7 -0
  233. package/lib/network/events.js.map +1 -1
  234. package/lib/network/gossip/encoding.js +0 -2
  235. package/lib/network/gossip/encoding.js.map +1 -1
  236. package/lib/network/gossip/errors.js +0 -1
  237. package/lib/network/gossip/errors.js.map +1 -1
  238. package/lib/network/gossip/gossipsub.js +0 -7
  239. package/lib/network/gossip/gossipsub.js.map +1 -1
  240. package/lib/network/gossip/topic.d.ts +49 -49
  241. package/lib/network/gossip/topic.js +1 -2
  242. package/lib/network/gossip/topic.js.map +1 -1
  243. package/lib/network/interface.d.ts +1 -2
  244. package/lib/network/metadata.js +0 -4
  245. package/lib/network/metadata.js.map +1 -1
  246. package/lib/network/network.d.ts +1 -3
  247. package/lib/network/network.js +71 -89
  248. package/lib/network/network.js.map +1 -1
  249. package/lib/network/options.js +1 -1
  250. package/lib/network/options.js.map +1 -1
  251. package/lib/network/peers/datastore.js +2 -8
  252. package/lib/network/peers/datastore.js.map +1 -1
  253. package/lib/network/peers/discover.js +64 -74
  254. package/lib/network/peers/discover.js.map +1 -1
  255. package/lib/network/peers/peerManager.js +130 -154
  256. package/lib/network/peers/peerManager.js.map +1 -1
  257. package/lib/network/peers/peersData.d.ts +1 -1
  258. package/lib/network/peers/peersData.js +3 -1
  259. package/lib/network/peers/peersData.js.map +1 -1
  260. package/lib/network/peers/score/score.js +0 -6
  261. package/lib/network/peers/score/score.js.map +1 -1
  262. package/lib/network/peers/score/store.js +0 -3
  263. package/lib/network/peers/score/store.js.map +1 -1
  264. package/lib/network/peers/utils/subnetMap.js +4 -2
  265. package/lib/network/peers/utils/subnetMap.js.map +1 -1
  266. package/lib/network/processor/aggregatorTracker.js +3 -1
  267. package/lib/network/processor/aggregatorTracker.js.map +1 -1
  268. package/lib/network/processor/gossipHandlers.js +164 -145
  269. package/lib/network/processor/gossipHandlers.js.map +1 -1
  270. package/lib/network/processor/gossipQueues/indexed.js +9 -11
  271. package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
  272. package/lib/network/processor/gossipQueues/linear.js +8 -9
  273. package/lib/network/processor/gossipQueues/linear.js.map +1 -1
  274. package/lib/network/processor/index.d.ts +1 -2
  275. package/lib/network/processor/index.js +6 -21
  276. package/lib/network/processor/index.js.map +1 -1
  277. package/lib/network/reqresp/ReqRespBeaconNode.js +2 -11
  278. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  279. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +28 -0
  280. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +328 -0
  281. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +1 -0
  282. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +49 -0
  283. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +499 -0
  284. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +1 -0
  285. package/lib/network/reqresp/index.d.ts +2 -0
  286. package/lib/network/reqresp/index.js +2 -0
  287. package/lib/network/reqresp/index.js.map +1 -1
  288. package/lib/network/reqresp/rateLimit.js +5 -11
  289. package/lib/network/reqresp/rateLimit.js.map +1 -1
  290. package/lib/network/statusCache.js +0 -1
  291. package/lib/network/statusCache.js.map +1 -1
  292. package/lib/network/subnets/attnetsService.js +65 -73
  293. package/lib/network/subnets/attnetsService.js.map +1 -1
  294. package/lib/network/subnets/syncnetsService.js +22 -29
  295. package/lib/network/subnets/syncnetsService.js.map +1 -1
  296. package/lib/node/nodejs.js +0 -15
  297. package/lib/node/nodejs.js.map +1 -1
  298. package/lib/sync/backfill/backfill.js +15 -57
  299. package/lib/sync/backfill/backfill.js.map +1 -1
  300. package/lib/sync/constants.d.ts +1 -2
  301. package/lib/sync/constants.js +1 -2
  302. package/lib/sync/constants.js.map +1 -1
  303. package/lib/sync/interface.d.ts +59 -1
  304. package/lib/sync/interface.js +20 -0
  305. package/lib/sync/interface.js.map +1 -1
  306. package/lib/sync/options.d.ts +1 -1
  307. package/lib/sync/range/batch.d.ts +32 -48
  308. package/lib/sync/range/batch.js +55 -201
  309. package/lib/sync/range/batch.js.map +1 -1
  310. package/lib/sync/range/chain.d.ts +10 -15
  311. package/lib/sync/range/chain.js +70 -141
  312. package/lib/sync/range/chain.js.map +1 -1
  313. package/lib/sync/range/range.d.ts +2 -2
  314. package/lib/sync/range/range.js +54 -86
  315. package/lib/sync/range/range.js.map +1 -1
  316. package/lib/sync/range/utils/hashBlocks.d.ts +2 -2
  317. package/lib/sync/range/utils/hashBlocks.js +4 -6
  318. package/lib/sync/range/utils/hashBlocks.js.map +1 -1
  319. package/lib/sync/range/utils/peerBalancer.js +13 -18
  320. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  321. package/lib/sync/sync.js +87 -95
  322. package/lib/sync/sync.js.map +1 -1
  323. package/lib/sync/unknownBlock.d.ts +28 -42
  324. package/lib/sync/unknownBlock.js +458 -404
  325. package/lib/sync/unknownBlock.js.map +1 -1
  326. package/lib/sync/utils/pendingBlocksTree.d.ts +6 -14
  327. package/lib/sync/utils/pendingBlocksTree.js +18 -24
  328. package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
  329. package/lib/util/array.js +3 -7
  330. package/lib/util/array.js.map +1 -1
  331. package/lib/util/asyncIterableToEvents.js +3 -6
  332. package/lib/util/asyncIterableToEvents.js.map +1 -1
  333. package/lib/util/binarySearch.js +0 -2
  334. package/lib/util/binarySearch.js.map +1 -1
  335. package/lib/util/blobs.d.ts +2 -2
  336. package/lib/util/blobs.js +4 -4
  337. package/lib/util/blobs.js.map +1 -1
  338. package/lib/util/bufferPool.js +2 -7
  339. package/lib/util/bufferPool.js.map +1 -1
  340. package/lib/util/clock.js +18 -23
  341. package/lib/util/clock.js.map +1 -1
  342. package/lib/util/dataColumns.d.ts +12 -15
  343. package/lib/util/dataColumns.js +132 -90
  344. package/lib/util/dataColumns.js.map +1 -1
  345. package/lib/util/itTrigger.js +4 -4
  346. package/lib/util/itTrigger.js.map +1 -1
  347. package/lib/util/map.js +0 -2
  348. package/lib/util/map.js.map +1 -1
  349. package/lib/util/queue/itemQueue.js +49 -52
  350. package/lib/util/queue/itemQueue.js.map +1 -1
  351. package/lib/util/serializedCache.js +3 -1
  352. package/lib/util/serializedCache.js.map +1 -1
  353. package/lib/util/set.js +0 -2
  354. package/lib/util/set.js.map +1 -1
  355. package/lib/util/sszBytes.d.ts +0 -1
  356. package/lib/util/sszBytes.js +1 -1
  357. package/lib/util/sszBytes.js.map +1 -1
  358. package/lib/util/timeSeries.js +1 -3
  359. package/lib/util/timeSeries.js.map +1 -1
  360. package/lib/util/types.d.ts +1 -1
  361. package/lib/util/types.js +2 -2
  362. package/lib/util/types.js.map +1 -1
  363. package/lib/util/wrapError.d.ts +0 -7
  364. package/package.json +16 -22
  365. package/lib/bun-wrappers/prometheus-gc-stats.d.ts +0 -2
  366. package/lib/bun-wrappers/prometheus-gc-stats.js +0 -8
  367. package/lib/bun-wrappers/prometheus-gc-stats.js.map +0 -1
  368. package/lib/chain/ColumnReconstructionTracker.d.ts +0 -32
  369. package/lib/chain/ColumnReconstructionTracker.js +0 -67
  370. package/lib/chain/ColumnReconstructionTracker.js.map +0 -1
  371. package/lib/chain/GetBlobsTracker.d.ts +0 -31
  372. package/lib/chain/GetBlobsTracker.js +0 -82
  373. package/lib/chain/GetBlobsTracker.js.map +0 -1
  374. package/lib/sync/types.d.ts +0 -44
  375. package/lib/sync/types.js +0 -34
  376. package/lib/sync/types.js.map +0 -1
  377. package/lib/sync/utils/downloadByRange.d.ts +0 -186
  378. package/lib/sync/utils/downloadByRange.js +0 -457
  379. package/lib/sync/utils/downloadByRange.js.map +0 -1
  380. package/lib/sync/utils/downloadByRoot.d.ts +0 -119
  381. package/lib/sync/utils/downloadByRoot.js +0 -319
  382. package/lib/sync/utils/downloadByRoot.js.map +0 -1
  383. package/lib/util/execution.d.ts +0 -20
  384. package/lib/util/execution.js +0 -148
  385. package/lib/util/execution.js.map +0 -1
@@ -1,119 +0,0 @@
1
- import { ChainForkConfig } from "@lodestar/config";
2
- import { ForkPostDeneb, ForkPostFulu, ForkPreFulu } from "@lodestar/params";
3
- import { BlobIndex, ColumnIndex, SignedBeaconBlock, Slot, deneb, fulu } from "@lodestar/types";
4
- import { LodestarError } from "@lodestar/utils";
5
- import { SeenBlockInput } from "../../chain/seenCache/seenGossipBlockInput.js";
6
- import { INetwork } from "../../network/interface.js";
7
- import { BlockInputSyncCacheItem, PendingBlockInput } from "../types.js";
8
- import { PeerSyncMeta } from "../../network/peers/peersData.js";
9
- import { PeerIdStr } from "../../util/peerId.js";
10
- import { WarnResult } from "../../util/wrapError.js";
11
- export type FetchByRootCoreProps = {
12
- config: ChainForkConfig;
13
- network: INetwork;
14
- peerMeta: PeerSyncMeta;
15
- };
16
- export type FetchByRootProps = FetchByRootCoreProps & {
17
- cacheItem: BlockInputSyncCacheItem;
18
- blockRoot: Uint8Array;
19
- };
20
- export type FetchByRootAndValidateBlockProps = Omit<FetchByRootCoreProps, "peerMeta"> & {
21
- peerIdStr: PeerIdStr;
22
- blockRoot: Uint8Array;
23
- };
24
- export type FetchByRootAndValidateBlobsProps = FetchByRootAndValidateBlockProps & {
25
- forkName: ForkPreFulu;
26
- block: SignedBeaconBlock<ForkPostDeneb>;
27
- blockRoot: Uint8Array;
28
- missing: BlobIndex[];
29
- };
30
- export type FetchByRootAndValidateColumnsProps = FetchByRootCoreProps & {
31
- blockRoot: Uint8Array;
32
- forkName: ForkPostFulu;
33
- block: SignedBeaconBlock<ForkPostFulu>;
34
- missing: ColumnIndex[];
35
- };
36
- export type FetchByRootResponses = {
37
- block: SignedBeaconBlock;
38
- blobSidecars?: deneb.BlobSidecars;
39
- columnSidecars?: fulu.DataColumnSidecars;
40
- };
41
- export type DownloadByRootProps = FetchByRootCoreProps & {
42
- cacheItem: BlockInputSyncCacheItem;
43
- seenCache: SeenBlockInput;
44
- };
45
- export declare function downloadByRoot({ config, seenCache, network, peerMeta, cacheItem, }: DownloadByRootProps): Promise<WarnResult<PendingBlockInput, DownloadByRootError>>;
46
- export declare function fetchByRoot({ config, network, peerMeta, blockRoot, cacheItem, }: FetchByRootProps): Promise<WarnResult<FetchByRootResponses, DownloadByRootError>>;
47
- export declare function fetchAndValidateBlock({ config, network, peerIdStr, blockRoot, }: FetchByRootAndValidateBlockProps): Promise<SignedBeaconBlock>;
48
- export declare function fetchAndValidateBlobs({ network, peerIdStr, blockRoot, block, missing, }: FetchByRootAndValidateBlobsProps): Promise<deneb.BlobSidecars>;
49
- export declare function fetchBlobsByRoot({ network, peerIdStr, blockRoot, missing, indicesInPossession, }: Pick<FetchByRootAndValidateBlobsProps, "network" | "peerIdStr" | "blockRoot" | "missing"> & {
50
- indicesInPossession?: number[];
51
- }): Promise<deneb.BlobSidecars>;
52
- export declare function fetchAndValidateColumns({ network, peerMeta, block, blockRoot, missing, }: FetchByRootAndValidateColumnsProps): Promise<WarnResult<fulu.DataColumnSidecars, DownloadByRootError>>;
53
- export declare function fetchColumnsByRoot({ network, peerMeta, blockRoot, missing, }: Pick<FetchByRootAndValidateColumnsProps, "network" | "peerMeta" | "blockRoot" | "missing">): Promise<fulu.DataColumnSidecars>;
54
- export type ValidateColumnSidecarsProps = Pick<FetchByRootAndValidateColumnsProps, "config" | "peerMeta" | "blockRoot" | "missing"> & {
55
- slot: number;
56
- blobCount: number;
57
- needed?: fulu.DataColumnSidecars;
58
- needToPublish?: fulu.DataColumnSidecars;
59
- };
60
- export declare function validateColumnSidecars({ peerMeta, slot, blockRoot, blobCount, missing, needed, needToPublish, }: ValidateColumnSidecarsProps): Promise<void>;
61
- export declare enum DownloadByRootErrorCode {
62
- MISMATCH_BLOCK_ROOT = "DOWNLOAD_BY_ROOT_ERROR_MISMATCH_BLOCK_ROOT",
63
- EXTRA_SIDECAR_RECEIVED = "DOWNLOAD_BY_ROOT_ERROR_EXTRA_SIDECAR_RECEIVED",
64
- NO_SIDECAR_RECEIVED = "DOWNLOAD_BY_ROOT_ERROR_NO_SIDECAR_RECEIVED",
65
- NOT_ENOUGH_SIDECARS_RECEIVED = "DOWNLOAD_BY_ROOT_ERROR_NOT_ENOUGH_SIDECARS_RECEIVED",
66
- INVALID_INCLUSION_PROOF = "DOWNLOAD_BY_ROOT_ERROR_INVALID_INCLUSION_PROOF",
67
- INVALID_KZG_PROOF = "DOWNLOAD_BY_ROOT_ERROR_INVALID_KZG_PROOF",
68
- MISSING_BLOCK_RESPONSE = "DOWNLOAD_BY_ROOT_ERROR_MISSING_BLOCK_RESPONSE",
69
- MISSING_BLOB_RESPONSE = "DOWNLOAD_BY_ROOT_ERROR_MISSING_BLOB_RESPONSE",
70
- MISSING_COLUMN_RESPONSE = "DOWNLOAD_BY_ROOT_ERROR_MISSING_COLUMN_RESPONSE",
71
- Z = "DOWNLOAD_BY_ROOT_ERROR_Z"
72
- }
73
- export type DownloadByRootErrorType = {
74
- code: DownloadByRootErrorCode.MISMATCH_BLOCK_ROOT;
75
- peer: string;
76
- requestedBlockRoot: string;
77
- receivedBlockRoot: string;
78
- } | {
79
- code: DownloadByRootErrorCode.EXTRA_SIDECAR_RECEIVED;
80
- peer: string;
81
- slot: Slot;
82
- blockRoot: string;
83
- invalidIndices: string;
84
- } | {
85
- code: DownloadByRootErrorCode.NO_SIDECAR_RECEIVED;
86
- peer: string;
87
- slot: Slot;
88
- blockRoot: string;
89
- } | {
90
- code: DownloadByRootErrorCode.NOT_ENOUGH_SIDECARS_RECEIVED;
91
- peer: string;
92
- slot: Slot;
93
- blockRoot: string;
94
- missingIndices: string;
95
- } | {
96
- code: DownloadByRootErrorCode.INVALID_INCLUSION_PROOF;
97
- peer: string;
98
- blockRoot: string;
99
- sidecarIndex: number;
100
- } | {
101
- code: DownloadByRootErrorCode.INVALID_KZG_PROOF;
102
- peer: string;
103
- blockRoot: string;
104
- } | {
105
- code: DownloadByRootErrorCode.MISSING_BLOCK_RESPONSE;
106
- peer: string;
107
- blockRoot: string;
108
- } | {
109
- code: DownloadByRootErrorCode.MISSING_BLOB_RESPONSE;
110
- peer: string;
111
- blockRoot: string;
112
- } | {
113
- code: DownloadByRootErrorCode.MISSING_COLUMN_RESPONSE;
114
- peer: string;
115
- blockRoot: string;
116
- };
117
- export declare class DownloadByRootError extends LodestarError<DownloadByRootErrorType> {
118
- }
119
- //# sourceMappingURL=downloadByRoot.d.ts.map
@@ -1,319 +0,0 @@
1
- import { isForkPostDeneb, isForkPostFulu } from "@lodestar/params";
2
- import { LodestarError, fromHex, prettyBytes, prettyPrintIndices, toRootHex } from "@lodestar/utils";
3
- import { isBlockInputBlobs, isBlockInputColumns } from "../../chain/blocks/blockInput/blockInput.js";
4
- import { BlockInputSource } from "../../chain/blocks/blockInput/types.js";
5
- import { validateBlockBlobSidecars } from "../../chain/validation/blobSidecar.js";
6
- import { validateBlockDataColumnSidecars } from "../../chain/validation/dataColumnSidecar.js";
7
- import { prettyPrintPeerIdStr } from "../../network/util.js";
8
- import { byteArrayEquals } from "../../util/bytes.js";
9
- import { PendingBlockInputStatus, getBlockInputSyncCacheItemRootHex, isPendingBlockInput, } from "../types.js";
10
- export async function downloadByRoot({ config, seenCache, network, peerMeta, cacheItem, }) {
11
- const rootHex = getBlockInputSyncCacheItemRootHex(cacheItem);
12
- const blockRoot = fromHex(rootHex);
13
- const { peerId: peerIdStr } = peerMeta;
14
- const { result: { block, blobSidecars, columnSidecars }, warnings, } = await fetchByRoot({
15
- config,
16
- network,
17
- cacheItem,
18
- blockRoot,
19
- peerMeta,
20
- });
21
- let blockInput;
22
- if (isPendingBlockInput(cacheItem)) {
23
- blockInput = cacheItem.blockInput;
24
- if (!blockInput.hasBlock()) {
25
- blockInput.addBlock({
26
- block,
27
- blockRootHex: rootHex,
28
- source: BlockInputSource.byRoot,
29
- seenTimestampSec: Date.now(),
30
- peerIdStr,
31
- });
32
- }
33
- }
34
- else {
35
- blockInput = seenCache.getByBlock({
36
- block,
37
- peerIdStr,
38
- blockRootHex: rootHex,
39
- seenTimestampSec: Date.now(),
40
- source: BlockInputSource.byRoot,
41
- });
42
- }
43
- const hasAllDataPreDownload = blockInput.hasBlockAndAllData();
44
- if (isBlockInputBlobs(blockInput) && !hasAllDataPreDownload) {
45
- // blobSidecars could be undefined if gossip resulted in full block+blobs so we don't download any
46
- if (!blobSidecars) {
47
- throw new DownloadByRootError({
48
- code: DownloadByRootErrorCode.MISSING_BLOB_RESPONSE,
49
- blockRoot: prettyBytes(rootHex),
50
- peer: peerIdStr,
51
- });
52
- }
53
- for (const blobSidecar of blobSidecars) {
54
- blockInput.addBlob({
55
- blobSidecar,
56
- blockRootHex: rootHex,
57
- seenTimestampSec: Date.now(),
58
- source: BlockInputSource.byRoot,
59
- peerIdStr,
60
- });
61
- }
62
- }
63
- if (isBlockInputColumns(blockInput) && !hasAllDataPreDownload) {
64
- // columnSidecars could be undefined if gossip resulted in full block+columns so we don't download any
65
- if (!columnSidecars) {
66
- throw new DownloadByRootError({
67
- code: DownloadByRootErrorCode.MISSING_COLUMN_RESPONSE,
68
- blockRoot: prettyBytes(rootHex),
69
- peer: peerIdStr,
70
- });
71
- }
72
- for (const columnSidecar of columnSidecars) {
73
- blockInput.addColumn({
74
- columnSidecar,
75
- blockRootHex: rootHex,
76
- seenTimestampSec: Date.now(),
77
- source: BlockInputSource.byRoot,
78
- peerIdStr,
79
- },
80
- // the same DataColumnSidecar may be added by gossip while waiting for fetchByRoot
81
- { throwOnDuplicateAdd: false });
82
- }
83
- }
84
- let status;
85
- let timeSyncedSec;
86
- if (blockInput.hasBlockAndAllData()) {
87
- status = PendingBlockInputStatus.downloaded;
88
- timeSyncedSec = Date.now() / 1000;
89
- }
90
- else {
91
- status = PendingBlockInputStatus.pending;
92
- }
93
- return {
94
- result: {
95
- status,
96
- blockInput,
97
- timeSyncedSec,
98
- timeAddedSec: cacheItem.timeAddedSec,
99
- peerIdStrings: cacheItem.peerIdStrings,
100
- },
101
- warnings,
102
- };
103
- }
104
- export async function fetchByRoot({ config, network, peerMeta, blockRoot, cacheItem, }) {
105
- let block;
106
- let blobSidecars;
107
- let columnSidecarResult;
108
- const { peerId: peerIdStr } = peerMeta;
109
- if (isPendingBlockInput(cacheItem)) {
110
- if (cacheItem.blockInput.hasBlock()) {
111
- block = cacheItem.blockInput.getBlock();
112
- }
113
- else {
114
- block = await fetchAndValidateBlock({
115
- config,
116
- network,
117
- peerIdStr,
118
- blockRoot,
119
- });
120
- }
121
- const forkName = config.getForkName(block.message.slot);
122
- if (!cacheItem.blockInput.hasAllData()) {
123
- if (isBlockInputBlobs(cacheItem.blockInput)) {
124
- blobSidecars = await fetchAndValidateBlobs({
125
- config,
126
- network,
127
- peerIdStr,
128
- forkName: forkName,
129
- block: block,
130
- blockRoot,
131
- missing: cacheItem.blockInput.getMissingBlobMeta().map(({ index }) => index),
132
- });
133
- }
134
- if (isBlockInputColumns(cacheItem.blockInput)) {
135
- columnSidecarResult = await fetchAndValidateColumns({
136
- config,
137
- network,
138
- peerMeta,
139
- forkName: forkName,
140
- block: block,
141
- blockRoot,
142
- missing: cacheItem.blockInput.getMissingSampledColumnMeta().missing,
143
- });
144
- }
145
- }
146
- }
147
- else {
148
- block = await fetchAndValidateBlock({
149
- config,
150
- network,
151
- peerIdStr,
152
- blockRoot,
153
- });
154
- const forkName = config.getForkName(block.message.slot);
155
- if (isForkPostFulu(forkName)) {
156
- columnSidecarResult = await fetchAndValidateColumns({
157
- config,
158
- network,
159
- peerMeta,
160
- forkName,
161
- blockRoot,
162
- block: block,
163
- missing: network.custodyConfig.sampledColumns,
164
- });
165
- }
166
- else if (isForkPostDeneb(forkName)) {
167
- const commitments = block.message.body.blobKzgCommitments;
168
- const blobCount = commitments.length;
169
- blobSidecars = await fetchAndValidateBlobs({
170
- config,
171
- network,
172
- peerIdStr,
173
- forkName: forkName,
174
- blockRoot,
175
- block: block,
176
- missing: Array.from({ length: blobCount }, (_, i) => i),
177
- });
178
- }
179
- }
180
- return {
181
- result: {
182
- block,
183
- blobSidecars,
184
- columnSidecars: columnSidecarResult?.result,
185
- },
186
- warnings: columnSidecarResult?.warnings ?? null,
187
- };
188
- }
189
- export async function fetchAndValidateBlock({ config, network, peerIdStr, blockRoot, }) {
190
- const response = await network.sendBeaconBlocksByRoot(peerIdStr, [blockRoot]);
191
- const block = response.at(0)?.data;
192
- if (!block) {
193
- throw new DownloadByRootError({
194
- code: DownloadByRootErrorCode.MISSING_BLOCK_RESPONSE,
195
- peer: prettyPrintPeerIdStr(peerIdStr),
196
- blockRoot: prettyBytes(blockRoot),
197
- });
198
- }
199
- const receivedRoot = config.getForkTypes(block.message.slot).BeaconBlock.hashTreeRoot(block.message);
200
- if (!byteArrayEquals(receivedRoot, blockRoot)) {
201
- throw new DownloadByRootError({
202
- code: DownloadByRootErrorCode.MISMATCH_BLOCK_ROOT,
203
- peer: prettyPrintPeerIdStr(peerIdStr),
204
- requestedBlockRoot: prettyBytes(blockRoot),
205
- receivedBlockRoot: prettyBytes(toRootHex(receivedRoot)),
206
- }, "block does not match requested root");
207
- }
208
- return block;
209
- }
210
- export async function fetchAndValidateBlobs({ network, peerIdStr, blockRoot, block, missing, }) {
211
- const blobSidecars = await fetchBlobsByRoot({
212
- network,
213
- peerIdStr,
214
- blockRoot,
215
- missing,
216
- });
217
- await validateBlockBlobSidecars(block.message.slot, blockRoot, missing.length, blobSidecars);
218
- return blobSidecars;
219
- }
220
- export async function fetchBlobsByRoot({ network, peerIdStr, blockRoot, missing, indicesInPossession = [], }) {
221
- const blobsRequest = missing
222
- .filter((index) => !indicesInPossession.includes(index))
223
- .map((index) => ({ blockRoot, index }));
224
- if (!blobsRequest.length) {
225
- return [];
226
- }
227
- return await network.sendBlobSidecarsByRoot(peerIdStr, blobsRequest);
228
- }
229
- export async function fetchAndValidateColumns({ network, peerMeta, block, blockRoot, missing, }) {
230
- const { peerId: peerIdStr } = peerMeta;
231
- const slot = block.message.slot;
232
- const blobCount = block.message.body.blobKzgCommitments.length;
233
- if (blobCount === 0) {
234
- return { result: [], warnings: null };
235
- }
236
- const blockRootHex = toRootHex(blockRoot);
237
- const peerColumns = new Set(peerMeta.custodyColumns ?? []);
238
- const requestedColumns = missing.filter((c) => peerColumns.has(c));
239
- const columnSidecars = await network.sendDataColumnSidecarsByRoot(peerIdStr, [
240
- { blockRoot, columns: requestedColumns },
241
- ]);
242
- const warnings = [];
243
- // it's not acceptable if no sidecar is returned with >0 blobCount
244
- if (columnSidecars.length === 0) {
245
- throw new DownloadByRootError({
246
- code: DownloadByRootErrorCode.NO_SIDECAR_RECEIVED,
247
- peer: prettyPrintPeerIdStr(peerIdStr),
248
- slot,
249
- blockRoot: blockRootHex,
250
- });
251
- }
252
- // it's ok if only some sidecars are returned, we will try to get the rest from other peers
253
- const requestedColumnsSet = new Set(requestedColumns);
254
- const returnedColumns = columnSidecars.map((c) => c.index);
255
- const returnedColumnsSet = new Set(returnedColumns);
256
- const missingIndices = requestedColumns.filter((c) => !returnedColumnsSet.has(c));
257
- if (missingIndices.length > 0) {
258
- warnings.push(new DownloadByRootError({
259
- code: DownloadByRootErrorCode.NOT_ENOUGH_SIDECARS_RECEIVED,
260
- peer: prettyPrintPeerIdStr(peerIdStr),
261
- slot,
262
- blockRoot: blockRootHex,
263
- missingIndices: prettyPrintIndices(missingIndices),
264
- }, "Did not receive all of the requested columnSidecars"));
265
- }
266
- // check extra returned columnSidecar
267
- const extraIndices = returnedColumns.filter((c) => !requestedColumnsSet.has(c));
268
- if (extraIndices.length > 0) {
269
- warnings.push(new DownloadByRootError({
270
- code: DownloadByRootErrorCode.EXTRA_SIDECAR_RECEIVED,
271
- peer: prettyPrintPeerIdStr(peerIdStr),
272
- slot,
273
- blockRoot: blockRootHex,
274
- invalidIndices: prettyPrintIndices(extraIndices),
275
- }, "Received columnSidecars that were not requested"));
276
- }
277
- await validateBlockDataColumnSidecars(slot, blockRoot, blobCount, columnSidecars);
278
- return { result: columnSidecars, warnings: warnings.length > 0 ? warnings : null };
279
- }
280
- // TODO(fulu) not in use, remove?
281
- export async function fetchColumnsByRoot({ network, peerMeta, blockRoot, missing, }) {
282
- return await network.sendDataColumnSidecarsByRoot(peerMeta.peerId, [{ blockRoot, columns: missing }]);
283
- }
284
- // TODO(fulu) not in use, remove?
285
- export async function validateColumnSidecars({ peerMeta, slot, blockRoot, blobCount, missing, needed = [], needToPublish = [], }) {
286
- const requestedIndices = missing;
287
- const extraIndices = [];
288
- for (const columnSidecar of needed) {
289
- if (!requestedIndices.includes(columnSidecar.index)) {
290
- extraIndices.push(columnSidecar.index);
291
- }
292
- }
293
- if (extraIndices.length > 0) {
294
- throw new DownloadByRootError({
295
- code: DownloadByRootErrorCode.EXTRA_SIDECAR_RECEIVED,
296
- peer: prettyPrintPeerIdStr(peerMeta.peerId),
297
- slot,
298
- blockRoot: prettyBytes(blockRoot),
299
- invalidIndices: prettyPrintIndices(extraIndices),
300
- }, "Received a columnSidecar that was not requested");
301
- }
302
- await validateBlockDataColumnSidecars(slot, blockRoot, blobCount, [...needed, ...needToPublish]);
303
- }
304
- export var DownloadByRootErrorCode;
305
- (function (DownloadByRootErrorCode) {
306
- DownloadByRootErrorCode["MISMATCH_BLOCK_ROOT"] = "DOWNLOAD_BY_ROOT_ERROR_MISMATCH_BLOCK_ROOT";
307
- DownloadByRootErrorCode["EXTRA_SIDECAR_RECEIVED"] = "DOWNLOAD_BY_ROOT_ERROR_EXTRA_SIDECAR_RECEIVED";
308
- DownloadByRootErrorCode["NO_SIDECAR_RECEIVED"] = "DOWNLOAD_BY_ROOT_ERROR_NO_SIDECAR_RECEIVED";
309
- DownloadByRootErrorCode["NOT_ENOUGH_SIDECARS_RECEIVED"] = "DOWNLOAD_BY_ROOT_ERROR_NOT_ENOUGH_SIDECARS_RECEIVED";
310
- DownloadByRootErrorCode["INVALID_INCLUSION_PROOF"] = "DOWNLOAD_BY_ROOT_ERROR_INVALID_INCLUSION_PROOF";
311
- DownloadByRootErrorCode["INVALID_KZG_PROOF"] = "DOWNLOAD_BY_ROOT_ERROR_INVALID_KZG_PROOF";
312
- DownloadByRootErrorCode["MISSING_BLOCK_RESPONSE"] = "DOWNLOAD_BY_ROOT_ERROR_MISSING_BLOCK_RESPONSE";
313
- DownloadByRootErrorCode["MISSING_BLOB_RESPONSE"] = "DOWNLOAD_BY_ROOT_ERROR_MISSING_BLOB_RESPONSE";
314
- DownloadByRootErrorCode["MISSING_COLUMN_RESPONSE"] = "DOWNLOAD_BY_ROOT_ERROR_MISSING_COLUMN_RESPONSE";
315
- DownloadByRootErrorCode["Z"] = "DOWNLOAD_BY_ROOT_ERROR_Z";
316
- })(DownloadByRootErrorCode || (DownloadByRootErrorCode = {}));
317
- export class DownloadByRootError extends LodestarError {
318
- }
319
- //# sourceMappingURL=downloadByRoot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"downloadByRoot.js","sourceRoot":"","sources":["../../../src/sync/utils/downloadByRoot.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import { ChainForkConfig } from "@lodestar/config";
2
- import { IExecutionEngine } from "../execution/index.js";
3
- import { ChainEventEmitter } from "../chain/emitter.js";
4
- import { IBlockInput } from "../chain/blocks/blockInput/types.js";
5
- import { Metrics } from "../metrics/index.js";
6
- export declare enum DataColumnEngineResult {
7
- PreFulu = "pre_fulu",
8
- NotAttemptedFull = "not_attempted_full",
9
- NotAttemptedNoBlobs = "not_attempted_no_blobs",
10
- NullResponse = "null_response",
11
- SuccessResolved = "success_resolved",
12
- SuccessLate = "success_late",
13
- Failed = "failed"
14
- }
15
- export declare function getBlobSidecarsFromExecution(config: ChainForkConfig, executionEngine: IExecutionEngine, metrics: Metrics | null, emitter: ChainEventEmitter, blockInput: IBlockInput): Promise<void>;
16
- /**
17
- * Post fulu, call getBlobsV2 from execution engine once per slot whenever we see either beacon_block or data_column_sidecar gossip message
18
- */
19
- export declare function getDataColumnSidecarsFromExecution(config: ChainForkConfig, executionEngine: IExecutionEngine, emitter: ChainEventEmitter, blockInput: IBlockInput, metrics: Metrics | null, blobAndProofBuffers?: Uint8Array[]): Promise<DataColumnEngineResult>;
20
- //# sourceMappingURL=execution.d.ts.map
@@ -1,148 +0,0 @@
1
- import { getCellsAndProofs, getDataColumnSidecarsFromBlock, getDataColumnSidecarsFromColumnSidecar, } from "./dataColumns.js";
2
- import { ChainEvent } from "../chain/emitter.js";
3
- import { BlockInputSource } from "../chain/blocks/blockInput/types.js";
4
- import { isBlockInputBlobs, isBlockInputColumns } from "../chain/blocks/blockInput/blockInput.js";
5
- import { computePreFuluKzgCommitmentsInclusionProof } from "./blobs.js";
6
- import { signedBlockToSignedHeader } from "@lodestar/state-transition";
7
- import { routes } from "@lodestar/api";
8
- import { toHex } from "@lodestar/utils";
9
- export var DataColumnEngineResult;
10
- (function (DataColumnEngineResult) {
11
- DataColumnEngineResult["PreFulu"] = "pre_fulu";
12
- // the recover is not attempted because it has full data columns
13
- DataColumnEngineResult["NotAttemptedFull"] = "not_attempted_full";
14
- // block has no blob so no need to call EL
15
- DataColumnEngineResult["NotAttemptedNoBlobs"] = "not_attempted_no_blobs";
16
- // EL call returned null, meaning it could not find the blobs
17
- DataColumnEngineResult["NullResponse"] = "null_response";
18
- // the recover is a success and it helps resolve availability
19
- DataColumnEngineResult["SuccessResolved"] = "success_resolved";
20
- // the recover is a success but it's late, availability is already resolved by either gossip or getBlobsV2
21
- DataColumnEngineResult["SuccessLate"] = "success_late";
22
- DataColumnEngineResult["Failed"] = "failed";
23
- })(DataColumnEngineResult || (DataColumnEngineResult = {}));
24
- export async function getBlobSidecarsFromExecution(config, executionEngine, metrics, emitter, blockInput) {
25
- if (!isBlockInputBlobs(blockInput)) {
26
- return;
27
- }
28
- if (blockInput.hasAllData()) {
29
- return;
30
- }
31
- const forkName = blockInput.forkName;
32
- const blobMeta = blockInput.getMissingBlobMeta();
33
- metrics?.blobs.getBlobsV1Requests.inc();
34
- metrics?.blobs.getBlobsV1RequestedBlobCount.inc(blobMeta.length);
35
- const enginedResponse = await executionEngine
36
- .getBlobs(forkName, blobMeta.map(({ versionedHash }) => versionedHash))
37
- .catch((_e) => {
38
- // TODO(fulu): this should only count as a single error? need to update the promql to reflect this
39
- metrics?.blobs.getBlobsV1Error.inc(blobMeta.length);
40
- return null;
41
- });
42
- if (enginedResponse === null) {
43
- return;
44
- }
45
- const block = blockInput.getBlock();
46
- const blobSidecars = [];
47
- // response.length should always match blobMeta.length and they should be in the same order
48
- for (let i = 0; i < blobMeta.length; i++) {
49
- const blobAndProof = enginedResponse[i];
50
- if (!blobAndProof) {
51
- metrics?.blobs.getBlobsV1Miss.inc();
52
- }
53
- else {
54
- metrics?.blobs.getBlobsV1Hit.inc();
55
- if (blockInput.hasBlob(blobMeta[i].index)) {
56
- // blob arrived and was cached while waiting for API response
57
- metrics?.blobs.getBlobsV1HitButArrivedWhileWaiting.inc();
58
- continue;
59
- }
60
- metrics?.blobs.getBlobsV1HitUseful.inc();
61
- const { blob, proof } = blobAndProof;
62
- const index = blobMeta[i].index;
63
- const kzgCommitment = block.message.body.blobKzgCommitments[index];
64
- const blobSidecar = {
65
- index,
66
- blob,
67
- kzgProof: proof,
68
- kzgCommitment,
69
- // TODO(fulu): refactor this to only calculate the root inside these following two functions once
70
- kzgCommitmentInclusionProof: computePreFuluKzgCommitmentsInclusionProof(forkName, block.message.body, index),
71
- signedBlockHeader: signedBlockToSignedHeader(config, block),
72
- };
73
- blockInput.addBlob({
74
- blobSidecar,
75
- blockRootHex: blockInput.blockRootHex,
76
- seenTimestampSec: Date.now() / 1000,
77
- source: BlockInputSource.engine,
78
- });
79
- if (emitter.listenerCount(routes.events.EventType.blobSidecar)) {
80
- emitter.emit(routes.events.EventType.blobSidecar, {
81
- blockRoot: blockInput.blockRootHex,
82
- slot: blockInput.slot,
83
- index,
84
- kzgCommitment: toHex(kzgCommitment),
85
- versionedHash: toHex(blobMeta[i].versionedHash),
86
- });
87
- }
88
- blobSidecars.push(blobSidecar);
89
- }
90
- }
91
- emitter.emit(ChainEvent.publishBlobSidecars, blobSidecars);
92
- metrics?.gossipBlob.publishedFromEngine.inc(blobSidecars.length);
93
- }
94
- /**
95
- * Post fulu, call getBlobsV2 from execution engine once per slot whenever we see either beacon_block or data_column_sidecar gossip message
96
- */
97
- export async function getDataColumnSidecarsFromExecution(config, executionEngine, emitter, blockInput, metrics, blobAndProofBuffers) {
98
- // If its not a column block input, exit
99
- if (!isBlockInputColumns(blockInput)) {
100
- return DataColumnEngineResult.PreFulu;
101
- }
102
- // If already have all columns, exit
103
- if (blockInput.hasAllData()) {
104
- return DataColumnEngineResult.NotAttemptedFull;
105
- }
106
- const versionedHashes = blockInput.getVersionedHashes();
107
- // If there are no blobs in this block, exit
108
- if (versionedHashes.length === 0) {
109
- return DataColumnEngineResult.NotAttemptedNoBlobs;
110
- }
111
- // Get blobs from execution engine
112
- metrics?.peerDas.getBlobsV2Requests.inc();
113
- const timer = metrics?.peerDas.getBlobsV2RequestDuration.startTimer();
114
- const blobs = await executionEngine.getBlobs(blockInput.forkName, versionedHashes, blobAndProofBuffers);
115
- timer?.();
116
- // Execution engine was unable to find one or more blobs
117
- if (blobs === null) {
118
- return DataColumnEngineResult.NullResponse;
119
- }
120
- metrics?.peerDas.getBlobsV2Responses.inc();
121
- // Return if we received all data columns while waiting for getBlobs
122
- if (blockInput.hasAllData()) {
123
- return DataColumnEngineResult.SuccessLate;
124
- }
125
- let dataColumnSidecars;
126
- const cellsAndProofs = await getCellsAndProofs(blobs);
127
- if (blockInput.hasBlock()) {
128
- dataColumnSidecars = getDataColumnSidecarsFromBlock(config, blockInput.getBlock(), cellsAndProofs);
129
- }
130
- else {
131
- const firstSidecar = blockInput.getAllColumns()[0];
132
- dataColumnSidecars = getDataColumnSidecarsFromColumnSidecar(firstSidecar, cellsAndProofs);
133
- }
134
- // Publish columns if and only if subscribed to them
135
- const previouslyMissingColumns = blockInput.getMissingSampledColumnMeta().missing;
136
- const sampledColumns = previouslyMissingColumns.map((columnIndex) => dataColumnSidecars[columnIndex]);
137
- // for columns that we already seen, it will be ignored through `ignoreDuplicatePublishError` gossip option
138
- emitter.emit(ChainEvent.publishDataColumns, sampledColumns);
139
- // add all sampled columns to the block input, even if we didn't sample them
140
- const seenTimestampSec = Date.now() / 1000;
141
- for (const columnSidecar of sampledColumns) {
142
- blockInput.addColumn({ columnSidecar, blockRootHex: blockInput.blockRootHex, source: BlockInputSource.engine, seenTimestampSec }, { throwOnDuplicateAdd: false } // columns may have been added while waiting
143
- );
144
- }
145
- metrics?.dataColumns.bySource.inc({ source: BlockInputSource.engine }, previouslyMissingColumns.length);
146
- return DataColumnEngineResult.SuccessResolved;
147
- }
148
- //# sourceMappingURL=execution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/util/execution.ts"],"names":[],"mappings":"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"}