@lodestar/beacon-node 1.35.0-dev.f80d2d52da → 1.35.0-dev.feed916580

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 (499) hide show
  1. package/lib/api/impl/beacon/blocks/index.js +58 -46
  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 +1 -1
  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 +5 -1
  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 -66
  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 +12 -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 -136
  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 +2 -3
  213. package/lib/db/repositories/blockArchive.js.map +1 -1
  214. package/lib/db/repositories/dataColumnSidecar.js +1 -1
  215. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  216. package/lib/db/repositories/dataColumnSidecarArchive.js +1 -1
  217. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  218. package/lib/db/repositories/depositDataRoot.js +1 -0
  219. package/lib/db/repositories/depositDataRoot.js.map +1 -1
  220. package/lib/db/repositories/index.d.ts +10 -10
  221. package/lib/db/repositories/index.js +9 -9
  222. package/lib/db/repositories/index.js.map +1 -1
  223. package/lib/db/single/preGenesisState.js +6 -0
  224. package/lib/db/single/preGenesisState.js.map +1 -1
  225. package/lib/db/single/preGenesisStateLastProcessedBlock.js +5 -0
  226. package/lib/db/single/preGenesisStateLastProcessedBlock.js.map +1 -1
  227. package/lib/eth1/eth1DataCache.js +2 -0
  228. package/lib/eth1/eth1DataCache.js.map +1 -1
  229. package/lib/eth1/eth1DepositDataTracker.js +18 -5
  230. package/lib/eth1/eth1DepositDataTracker.js.map +1 -1
  231. package/lib/eth1/eth1DepositsCache.js +3 -0
  232. package/lib/eth1/eth1DepositsCache.js.map +1 -1
  233. package/lib/eth1/eth1MergeBlockTracker.js +10 -4
  234. package/lib/eth1/eth1MergeBlockTracker.js.map +1 -1
  235. package/lib/eth1/index.js +2 -0
  236. package/lib/eth1/index.js.map +1 -1
  237. package/lib/eth1/provider/eth1Provider.d.ts +1 -2
  238. package/lib/eth1/provider/eth1Provider.js +6 -2
  239. package/lib/eth1/provider/eth1Provider.js.map +1 -1
  240. package/lib/eth1/provider/jsonRpcHttpClient.d.ts +1 -1
  241. package/lib/eth1/provider/jsonRpcHttpClient.js +16 -2
  242. package/lib/eth1/provider/jsonRpcHttpClient.js.map +1 -1
  243. package/lib/eth1/provider/jwt.js.map +1 -1
  244. package/lib/eth1/provider/utils.d.ts +5 -0
  245. package/lib/eth1/provider/utils.js +9 -1
  246. package/lib/eth1/provider/utils.js.map +1 -1
  247. package/lib/eth1/utils/deposits.js.map +1 -1
  248. package/lib/execution/builder/cache.js +6 -0
  249. package/lib/execution/builder/cache.js.map +1 -1
  250. package/lib/execution/builder/http.js +14 -8
  251. package/lib/execution/builder/http.js.map +1 -1
  252. package/lib/execution/builder/index.js.map +1 -1
  253. package/lib/execution/engine/disabled.js +2 -4
  254. package/lib/execution/engine/disabled.js.map +1 -1
  255. package/lib/execution/engine/http.d.ts +2 -2
  256. package/lib/execution/engine/http.js +43 -11
  257. package/lib/execution/engine/http.js.map +1 -1
  258. package/lib/execution/engine/interface.d.ts +2 -2
  259. package/lib/execution/engine/interface.js.map +1 -1
  260. package/lib/execution/engine/mock.d.ts +1 -0
  261. package/lib/execution/engine/mock.js +16 -12
  262. package/lib/execution/engine/mock.js.map +1 -1
  263. package/lib/execution/engine/payloadIdCache.js +1 -3
  264. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  265. package/lib/execution/engine/types.d.ts +5 -1
  266. package/lib/execution/engine/types.js +37 -8
  267. package/lib/execution/engine/types.js.map +1 -1
  268. package/lib/execution/engine/utils.js +3 -3
  269. package/lib/execution/engine/utils.js.map +1 -1
  270. package/lib/execution/index.d.ts +2 -2
  271. package/lib/execution/index.js +2 -2
  272. package/lib/execution/index.js.map +1 -1
  273. package/lib/index.d.ts +6 -6
  274. package/lib/index.js +5 -5
  275. package/lib/index.js.map +1 -1
  276. package/lib/metrics/index.d.ts +1 -1
  277. package/lib/metrics/index.js +1 -1
  278. package/lib/metrics/index.js.map +1 -1
  279. package/lib/metrics/metrics/beacon.d.ts +11 -5
  280. package/lib/metrics/metrics/beacon.js +40 -20
  281. package/lib/metrics/metrics/beacon.js.map +1 -1
  282. package/lib/metrics/metrics/lodestar.d.ts +55 -13
  283. package/lib/metrics/metrics/lodestar.js +84 -7
  284. package/lib/metrics/metrics/lodestar.js.map +1 -1
  285. package/lib/metrics/metrics.d.ts +1 -1
  286. package/lib/metrics/metrics.js.map +1 -1
  287. package/lib/metrics/nodeJsMetrics.js +1 -1
  288. package/lib/metrics/nodeJsMetrics.js.map +1 -1
  289. package/lib/metrics/server/http.d.ts +1 -1
  290. package/lib/metrics/utils/avgMinMax.d.ts +1 -1
  291. package/lib/metrics/utils/avgMinMax.js +10 -6
  292. package/lib/metrics/utils/avgMinMax.js.map +1 -1
  293. package/lib/metrics/utils/gauge.d.ts +1 -1
  294. package/lib/metrics/utils/gauge.js +1 -4
  295. package/lib/metrics/utils/gauge.js.map +1 -1
  296. package/lib/metrics/utils/registryMetricCreator.d.ts +1 -1
  297. package/lib/metrics/utils/registryMetricCreator.js.map +1 -1
  298. package/lib/monitoring/properties.js +4 -0
  299. package/lib/monitoring/properties.js.map +1 -1
  300. package/lib/monitoring/service.js +13 -1
  301. package/lib/monitoring/service.js.map +1 -1
  302. package/lib/monitoring/system.js +25 -27
  303. package/lib/monitoring/system.js.map +1 -1
  304. package/lib/network/core/networkCore.d.ts +2 -2
  305. package/lib/network/core/networkCore.js +67 -50
  306. package/lib/network/core/networkCore.js.map +1 -1
  307. package/lib/network/core/networkCoreWorker.js +1 -1
  308. package/lib/network/core/networkCoreWorker.js.map +1 -1
  309. package/lib/network/core/networkCoreWorkerHandler.d.ts +2 -2
  310. package/lib/network/core/networkCoreWorkerHandler.js +5 -2
  311. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  312. package/lib/network/discv5/index.d.ts +2 -2
  313. package/lib/network/discv5/index.js +5 -2
  314. package/lib/network/discv5/index.js.map +1 -1
  315. package/lib/network/discv5/worker.js +3 -3
  316. package/lib/network/discv5/worker.js.map +1 -1
  317. package/lib/network/events.d.ts +2 -18
  318. package/lib/network/events.js +0 -7
  319. package/lib/network/events.js.map +1 -1
  320. package/lib/network/gossip/encoding.d.ts +1 -1
  321. package/lib/network/gossip/encoding.js +4 -2
  322. package/lib/network/gossip/encoding.js.map +1 -1
  323. package/lib/network/gossip/errors.js +1 -0
  324. package/lib/network/gossip/errors.js.map +1 -1
  325. package/lib/network/gossip/gossipsub.d.ts +1 -1
  326. package/lib/network/gossip/gossipsub.js +8 -1
  327. package/lib/network/gossip/gossipsub.js.map +1 -1
  328. package/lib/network/gossip/index.d.ts +2 -2
  329. package/lib/network/gossip/index.js +2 -2
  330. package/lib/network/gossip/index.js.map +1 -1
  331. package/lib/network/gossip/interface.d.ts +2 -2
  332. package/lib/network/gossip/topic.d.ts +125 -105
  333. package/lib/network/gossip/topic.js +2 -1
  334. package/lib/network/gossip/topic.js.map +1 -1
  335. package/lib/network/index.d.ts +3 -3
  336. package/lib/network/index.js +3 -3
  337. package/lib/network/index.js.map +1 -1
  338. package/lib/network/interface.d.ts +3 -2
  339. package/lib/network/libp2p/index.js +2 -2
  340. package/lib/network/libp2p/index.js.map +1 -1
  341. package/lib/network/metadata.js +4 -0
  342. package/lib/network/metadata.js.map +1 -1
  343. package/lib/network/network.d.ts +4 -2
  344. package/lib/network/network.js +89 -71
  345. package/lib/network/network.js.map +1 -1
  346. package/lib/network/options.js +1 -1
  347. package/lib/network/options.js.map +1 -1
  348. package/lib/network/peers/datastore.js +8 -2
  349. package/lib/network/peers/datastore.js.map +1 -1
  350. package/lib/network/peers/discover.js +75 -66
  351. package/lib/network/peers/discover.js.map +1 -1
  352. package/lib/network/peers/peerManager.js +154 -130
  353. package/lib/network/peers/peerManager.js.map +1 -1
  354. package/lib/network/peers/peersData.d.ts +1 -1
  355. package/lib/network/peers/peersData.js +1 -3
  356. package/lib/network/peers/peersData.js.map +1 -1
  357. package/lib/network/peers/score/index.d.ts +1 -1
  358. package/lib/network/peers/score/index.js +1 -1
  359. package/lib/network/peers/score/index.js.map +1 -1
  360. package/lib/network/peers/score/score.js +6 -0
  361. package/lib/network/peers/score/score.js.map +1 -1
  362. package/lib/network/peers/score/store.js +3 -0
  363. package/lib/network/peers/score/store.js.map +1 -1
  364. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  365. package/lib/network/peers/utils/subnetMap.js +2 -4
  366. package/lib/network/peers/utils/subnetMap.js.map +1 -1
  367. package/lib/network/processor/aggregatorTracker.js +1 -3
  368. package/lib/network/processor/aggregatorTracker.js.map +1 -1
  369. package/lib/network/processor/gossipHandlers.js +145 -165
  370. package/lib/network/processor/gossipHandlers.js.map +1 -1
  371. package/lib/network/processor/gossipQueues/indexed.js +11 -9
  372. package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
  373. package/lib/network/processor/gossipQueues/linear.js +9 -8
  374. package/lib/network/processor/gossipQueues/linear.js.map +1 -1
  375. package/lib/network/processor/index.d.ts +2 -1
  376. package/lib/network/processor/index.js +22 -8
  377. package/lib/network/processor/index.js.map +1 -1
  378. package/lib/network/reqresp/ReqRespBeaconNode.d.ts +1 -1
  379. package/lib/network/reqresp/ReqRespBeaconNode.js +11 -2
  380. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  381. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  382. package/lib/network/reqresp/index.d.ts +1 -3
  383. package/lib/network/reqresp/index.js +1 -3
  384. package/lib/network/reqresp/index.js.map +1 -1
  385. package/lib/network/reqresp/rateLimit.js +11 -5
  386. package/lib/network/reqresp/rateLimit.js.map +1 -1
  387. package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -1
  388. package/lib/network/statusCache.js +1 -0
  389. package/lib/network/statusCache.js.map +1 -1
  390. package/lib/network/subnets/attnetsService.js +73 -65
  391. package/lib/network/subnets/attnetsService.js.map +1 -1
  392. package/lib/network/subnets/interface.js +1 -1
  393. package/lib/network/subnets/interface.js.map +1 -1
  394. package/lib/network/subnets/syncnetsService.js +29 -22
  395. package/lib/network/subnets/syncnetsService.js.map +1 -1
  396. package/lib/network/subnets/util.js +1 -2
  397. package/lib/network/subnets/util.js.map +1 -1
  398. package/lib/node/nodejs.d.ts +1 -1
  399. package/lib/node/nodejs.js +15 -0
  400. package/lib/node/nodejs.js.map +1 -1
  401. package/lib/node/notifier.js +1 -2
  402. package/lib/node/notifier.js.map +1 -1
  403. package/lib/node/options.js.map +1 -1
  404. package/lib/node/utils/interop/state.js +1 -2
  405. package/lib/node/utils/interop/state.js.map +1 -1
  406. package/lib/sync/backfill/backfill.d.ts +1 -1
  407. package/lib/sync/backfill/backfill.js +58 -16
  408. package/lib/sync/backfill/backfill.js.map +1 -1
  409. package/lib/sync/constants.d.ts +2 -1
  410. package/lib/sync/constants.js +2 -1
  411. package/lib/sync/constants.js.map +1 -1
  412. package/lib/sync/interface.d.ts +1 -59
  413. package/lib/sync/interface.js +0 -20
  414. package/lib/sync/interface.js.map +1 -1
  415. package/lib/sync/options.d.ts +1 -1
  416. package/lib/sync/range/batch.d.ts +48 -32
  417. package/lib/sync/range/batch.js +201 -55
  418. package/lib/sync/range/batch.js.map +1 -1
  419. package/lib/sync/range/chain.d.ts +15 -10
  420. package/lib/sync/range/chain.js +141 -70
  421. package/lib/sync/range/chain.js.map +1 -1
  422. package/lib/sync/range/range.d.ts +3 -3
  423. package/lib/sync/range/range.js +86 -54
  424. package/lib/sync/range/range.js.map +1 -1
  425. package/lib/sync/range/utils/hashBlocks.d.ts +2 -2
  426. package/lib/sync/range/utils/hashBlocks.js +6 -4
  427. package/lib/sync/range/utils/hashBlocks.js.map +1 -1
  428. package/lib/sync/range/utils/peerBalancer.js +18 -13
  429. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  430. package/lib/sync/sync.d.ts +1 -2
  431. package/lib/sync/sync.js +95 -87
  432. package/lib/sync/sync.js.map +1 -1
  433. package/lib/sync/types.d.ts +44 -0
  434. package/lib/sync/types.js +34 -0
  435. package/lib/sync/types.js.map +1 -0
  436. package/lib/sync/unknownBlock.d.ts +42 -28
  437. package/lib/sync/unknownBlock.js +404 -458
  438. package/lib/sync/unknownBlock.js.map +1 -1
  439. package/lib/sync/utils/downloadByRange.d.ts +186 -0
  440. package/lib/sync/utils/downloadByRange.js +457 -0
  441. package/lib/sync/utils/downloadByRange.js.map +1 -0
  442. package/lib/sync/utils/downloadByRoot.d.ts +119 -0
  443. package/lib/sync/utils/downloadByRoot.js +319 -0
  444. package/lib/sync/utils/downloadByRoot.js.map +1 -0
  445. package/lib/sync/utils/pendingBlocksTree.d.ts +14 -6
  446. package/lib/sync/utils/pendingBlocksTree.js +24 -18
  447. package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
  448. package/lib/util/array.js +7 -3
  449. package/lib/util/array.js.map +1 -1
  450. package/lib/util/asyncIterableToEvents.js +6 -3
  451. package/lib/util/asyncIterableToEvents.js.map +1 -1
  452. package/lib/util/binarySearch.js +2 -0
  453. package/lib/util/binarySearch.js.map +1 -1
  454. package/lib/util/blobs.d.ts +2 -2
  455. package/lib/util/blobs.js +4 -4
  456. package/lib/util/blobs.js.map +1 -1
  457. package/lib/util/bufferPool.js +7 -2
  458. package/lib/util/bufferPool.js.map +1 -1
  459. package/lib/util/clock.d.ts +1 -1
  460. package/lib/util/clock.js +23 -18
  461. package/lib/util/clock.js.map +1 -1
  462. package/lib/util/dataColumns.d.ts +13 -10
  463. package/lib/util/dataColumns.js +92 -134
  464. package/lib/util/dataColumns.js.map +1 -1
  465. package/lib/util/execution.d.ts +20 -0
  466. package/lib/util/execution.js +148 -0
  467. package/lib/util/execution.js.map +1 -0
  468. package/lib/util/itTrigger.js +4 -4
  469. package/lib/util/itTrigger.js.map +1 -1
  470. package/lib/util/map.js +2 -0
  471. package/lib/util/map.js.map +1 -1
  472. package/lib/util/queue/index.d.ts +1 -1
  473. package/lib/util/queue/index.js +1 -1
  474. package/lib/util/queue/index.js.map +1 -1
  475. package/lib/util/queue/itemQueue.js +52 -49
  476. package/lib/util/queue/itemQueue.js.map +1 -1
  477. package/lib/util/serializedCache.js +1 -3
  478. package/lib/util/serializedCache.js.map +1 -1
  479. package/lib/util/set.js +2 -0
  480. package/lib/util/set.js.map +1 -1
  481. package/lib/util/sszBytes.d.ts +1 -0
  482. package/lib/util/sszBytes.js +1 -1
  483. package/lib/util/sszBytes.js.map +1 -1
  484. package/lib/util/timeSeries.js +3 -1
  485. package/lib/util/timeSeries.js.map +1 -1
  486. package/lib/util/types.d.ts +1 -1
  487. package/lib/util/types.js +2 -2
  488. package/lib/util/types.js.map +1 -1
  489. package/lib/util/wrapError.d.ts +7 -0
  490. package/package.json +23 -17
  491. package/lib/chain/seenCache/seenBlockInput.d.ts +0 -84
  492. package/lib/chain/seenCache/seenBlockInput.js +0 -225
  493. package/lib/chain/seenCache/seenBlockInput.js.map +0 -1
  494. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.d.ts +0 -28
  495. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js +0 -328
  496. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRange.js.map +0 -1
  497. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.d.ts +0 -49
  498. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js +0 -499
  499. package/lib/network/reqresp/beaconBlocksMaybeBlobsByRoot.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"seenCommitteeContribution.js","sourceRoot":"","sources":["../../../src/chain/seenCache/seenCommitteeContribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seenCommitteeContribution.js","sourceRoot":"","sources":["../../../src/chain/seenCache/seenCommitteeContribution.ts"],"names":[],"mappings":"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"}
@@ -1,94 +1,90 @@
1
1
  import { ChainForkConfig } from "@lodestar/config";
2
- import { ForkName } from "@lodestar/params";
3
- import { RootHex, SignedBeaconBlock, deneb, fulu } from "@lodestar/types";
2
+ import { CheckpointWithHex } from "@lodestar/fork-choice";
3
+ import { RootHex, deneb, fulu } from "@lodestar/types";
4
4
  import { Logger } from "@lodestar/utils";
5
- import { IExecutionEngine } from "../../execution/index.js";
6
- import { Metrics } from "../../metrics/index.js";
5
+ import { Metrics } from "../../metrics/metrics.js";
7
6
  import { IClock } from "../../util/clock.js";
8
7
  import { CustodyConfig } from "../../util/dataColumns.js";
9
- import { BlockInput, CachedData, GossipedInputType, NullBlockInput } from "../blocks/types.js";
8
+ import { BlockInput, BlockInputBlobs, BlockInputColumns, BlockWithSource, IBlockInput, SourceMeta } from "../blocks/blockInput/index.js";
10
9
  import { ChainEventEmitter } from "../emitter.js";
11
- export declare enum BlockInputAvailabilitySource {
12
- GOSSIP = "gossip",
13
- RECOVERED = "recovered",
14
- UNKNOWN_SYNC = "unknown_sync"
15
- }
16
- type GossipedBlockInput = {
17
- type: GossipedInputType.block;
18
- signedBlock: SignedBeaconBlock;
19
- } | {
20
- type: GossipedInputType.blob;
21
- blobSidecar: deneb.BlobSidecar;
22
- } | {
23
- type: GossipedInputType.dataColumn;
24
- dataColumnSidecar: fulu.DataColumnSidecar;
25
- dataColumnBytes: Uint8Array | null;
26
- };
27
- export type BlockInputCacheType = {
28
- fork: ForkName;
29
- block?: SignedBeaconBlock;
30
- cachedData?: CachedData;
31
- blockInputPromise: Promise<BlockInput>;
32
- resolveBlockInput: (blockInput: BlockInput) => void;
33
- };
34
- type GossipBlockInputResponseWithBlock = {
35
- blockInput: BlockInput;
36
- blockInputMeta: {
37
- pending: GossipedInputType.blob | null;
38
- haveBlobs: number;
39
- expectedBlobs: number;
40
- } | {
41
- pending: GossipedInputType.dataColumn | null;
42
- haveColumns: number;
43
- expectedColumns: number;
44
- };
45
- };
46
- type BlockInputPendingBlock = {
47
- pending: GossipedInputType.block;
48
- };
49
- export type BlockInputMetaPendingBlockWithBlobs = BlockInputPendingBlock & {
50
- haveBlobs: number;
51
- expectedBlobs: null;
52
- };
53
- type BlockInputMetaPendingBlockWithColumns = BlockInputPendingBlock & {
54
- haveColumns: number;
55
- expectedColumns: null;
10
+ export type SeenBlockInputCacheModules = {
11
+ config: ChainForkConfig;
12
+ clock: IClock;
13
+ chainEvents: ChainEventEmitter;
14
+ signal: AbortSignal;
15
+ custodyConfig: CustodyConfig;
16
+ metrics: Metrics | null;
17
+ logger?: Logger;
56
18
  };
57
- type GossipBlockInputResponseWithNullBlock = {
58
- blockInput: NullBlockInput;
59
- blockInputMeta: BlockInputMetaPendingBlockWithBlobs | BlockInputMetaPendingBlockWithColumns;
19
+ export type GetByBlobOptions = {
20
+ throwErrorIfAlreadyKnown?: boolean;
60
21
  };
61
- type GossipBlockInputResponse = GossipBlockInputResponseWithBlock | GossipBlockInputResponseWithNullBlock;
62
22
  /**
63
- * For predeneb, SeenGossipBlockInput only tracks and caches block so that we don't need to download known block
64
- * roots. From deneb, it serves same purpose plus tracks and caches the live blobs and blocks on the network to
65
- * solve data availability for the blockInput. If no block has been seen yet for some already seen blobs, it
66
- * responds will null, but on the first block or the consequent blobs it responds with blobs promise till all blobs
67
- * become available.
23
+ * Consumers that create BlockInputs or change types of old BlockInputs
68
24
  *
69
- * One can start processing block on blobs promise blockInput response and can await on the promise before
70
- * fully importing the block. The blobs promise is gets resolved as soon as all blobs corresponding to that
71
- * block are seen by SeenGossipBlockInput
25
+ * - gossipHandlers (block and blob)
26
+ * - beaconBlocksMaybeBlobsByRange
27
+ * - unavailableBeaconBlobsByRoot (beaconBlocksMaybeBlobsByRoot)
28
+ * - publishBlock in the beacon/blocks/index.ts API
29
+ * https://github.com/ChainSafe/lodestar/blob/unstable/packages/beacon-node/src/api/impl/beacon/blocks/index.ts#L62
30
+ * - maybeValidateBlobs in verifyBlocksDataAvailability (is_data_available spec function)
31
+ * https://github.com/ChainSafe/lodestar/blob/unstable/packages/beacon-node/src/chain/blocks/verifyBlocksDataAvailability.ts#L111
32
+ *
33
+ *
34
+ * Pruning management for SeenBlockInputCache
35
+ * ------------------------------------------
36
+ * There are four cases for how pruning needs to be handled
37
+ * - Normal operation following head via gossip (and/or reqresp). For this situation the consumer (process pipeline or
38
+ * caller of processBlock) will call the `prune` method to remove any processed BlockInputs from the cache. This will
39
+ * also remove any ancestors of the processed BlockInput as that will also need to have been successfully processed
40
+ * for import to work correctly
41
+ * - onFinalized event handler will help to prune any non-canonical forks once the chain finalizes. Any block-slots that
42
+ * are before the finalized checkpoint will be pruned.
43
+ * - Range-sync periods. The range process uses this cache to store and sync blocks with DA data as the chain is pulled
44
+ * from peers. We pull batches, by epoch, so 32 slots are pulled at a time and several batches are pulled concurrently.
45
+ * It is important to set the MAX_BLOCK_INPUT_CACHE_SIZE high enough to support range sync activities. Currently the
46
+ * value is set for 5 batches of 32 slots. As process block is called (similar to following head) the BlockInput and
47
+ * its ancestors will be pruned.
48
+ * - Non-Finality times. This is a bit more tricky. There can be long periods of non-finality and storing everything
49
+ * will cause OOM. The pruneToMax will help ensure a hard limit on the number of stored blocks (with DA) that are held
50
+ * in memory at any one time. The value for MAX_BLOCK_INPUT_CACHE_SIZE is set to accommodate range-sync but in
51
+ * practice this value may need to be massaged in the future if we find issues when debugging non-finality
72
52
  */
73
- export declare class SeenGossipBlockInput {
74
- private readonly blockInputCache;
53
+ export declare class SeenBlockInput {
54
+ private readonly config;
75
55
  private readonly custodyConfig;
76
- private readonly executionEngine;
77
56
  private readonly clock;
78
- private readonly emitter;
79
- private readonly logger;
80
- constructor(custodyConfig: CustodyConfig, executionEngine: IExecutionEngine, emitter: ChainEventEmitter, clock: IClock, logger: Logger);
81
- globalCacheId: number;
82
- prune(): void;
83
- hasBlock(blockRoot: RootHex): boolean;
57
+ private readonly chainEvents;
58
+ private readonly signal;
59
+ private readonly metrics;
60
+ private readonly logger?;
61
+ private blockInputs;
62
+ constructor({ config, custodyConfig, clock, chainEvents, signal, metrics, logger }: SeenBlockInputCacheModules);
63
+ has(rootHex: RootHex): boolean;
64
+ get(rootHex: RootHex): IBlockInput | undefined;
65
+ /**
66
+ * Removes the single BlockInput from the cache
67
+ */
68
+ remove(rootHex: RootHex): void;
69
+ /**
70
+ * Removes a processed BlockInput from the cache and also removes any ancestors of processed blocks
71
+ */
72
+ prune(rootHex: RootHex): void;
73
+ onFinalized: (checkpoint: CheckpointWithHex) => void;
74
+ getByBlock({ blockRootHex, block, source, seenTimestampSec, peerIdStr }: BlockWithSource): BlockInput;
75
+ getByBlob({ blockRootHex, blobSidecar, source, seenTimestampSec, peerIdStr, }: SourceMeta & {
76
+ blockRootHex: RootHex;
77
+ blobSidecar: deneb.BlobSidecar;
78
+ }, opts?: GetByBlobOptions): BlockInputBlobs;
79
+ getByColumn({ blockRootHex, columnSidecar, seenTimestampSec, source, peerIdStr, }: SourceMeta & {
80
+ blockRootHex: RootHex;
81
+ columnSidecar: fulu.DataColumnSidecar;
82
+ }, opts?: GetByBlobOptions): BlockInputColumns;
83
+ private buildCommonProps;
84
84
  /**
85
- * Intended to be used for gossip validation, specifically this check:
86
- * [IGNORE] The sidecar is the first sidecar for the tuple (block_header.slot, block_header.proposer_index,
87
- * sidecar.index) with valid header signature, sidecar inclusion proof, and kzg proof
85
+ * Use custom implementation of pruneSetToMax to allow for sorting by slot
86
+ * and deleting via key/rootHex
88
87
  */
89
- hasDataColumnSidecar(sidecar: fulu.DataColumnSidecar): boolean;
90
- getGossipBlockInput(config: ChainForkConfig, gossipedInput: GossipedBlockInput, metrics: Metrics | null): GossipBlockInputResponse;
88
+ private pruneToMaxSize;
91
89
  }
92
- export declare function getEmptyBlockInputCacheEntry(fork: ForkName, globalCacheId: number): BlockInputCacheType;
93
- export {};
94
90
  //# sourceMappingURL=seenGossipBlockInput.d.ts.map