@lodestar/beacon-node 1.35.0-dev.549f58dd39 → 1.35.0-dev.5c65fa3b36

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 (1117) hide show
  1. package/lib/api/impl/config/constants.d.ts +0 -5
  2. package/lib/api/impl/config/constants.js +1 -6
  3. package/lib/api/impl/config/constants.js.map +1 -1
  4. package/lib/api/impl/debug/index.js +1 -1
  5. package/lib/api/impl/debug/index.js.map +1 -1
  6. package/lib/api/impl/index.d.ts +3 -3
  7. package/lib/api/impl/index.js +3 -3
  8. package/lib/api/impl/index.js.map +1 -1
  9. package/lib/api/impl/validator/index.js +3 -5
  10. package/lib/api/impl/validator/index.js.map +1 -1
  11. package/lib/api/rest/base.d.ts +1 -1
  12. package/lib/api/rest/base.js +2 -2
  13. package/lib/api/rest/base.js.map +1 -1
  14. package/lib/api/rest/index.js.map +1 -1
  15. package/lib/chain/ColumnReconstructionTracker.d.ts +2 -2
  16. package/lib/chain/ColumnReconstructionTracker.js +3 -21
  17. package/lib/chain/ColumnReconstructionTracker.js.map +1 -1
  18. package/lib/chain/GetBlobsTracker.d.ts +2 -2
  19. package/lib/chain/GetBlobsTracker.js +3 -3
  20. package/lib/chain/GetBlobsTracker.js.map +1 -1
  21. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +0 -1
  22. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  23. package/lib/chain/archiveStore/historicalState/worker.js +1 -1
  24. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  25. package/lib/chain/archiveStore/index.d.ts +1 -1
  26. package/lib/chain/archiveStore/index.js +1 -1
  27. package/lib/chain/blocks/blockInput/blockInput.js +1 -1
  28. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  29. package/lib/chain/blocks/blockInput/index.d.ts +1 -1
  30. package/lib/chain/blocks/blockInput/index.js +1 -1
  31. package/lib/chain/blocks/importBlock.js +3 -4
  32. package/lib/chain/blocks/importBlock.js.map +1 -1
  33. package/lib/chain/blocks/index.d.ts +1 -1
  34. package/lib/chain/blocks/index.js.map +1 -1
  35. package/lib/chain/blocks/verifyBlocksDataAvailability.js +1 -8
  36. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  37. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +1 -1
  38. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  39. package/lib/chain/blocks/writeBlockInputToDb.js +7 -1
  40. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  41. package/lib/chain/bls/multithread/index.js +0 -1
  42. package/lib/chain/bls/multithread/index.js.map +1 -1
  43. package/lib/chain/chain.d.ts +3 -3
  44. package/lib/chain/chain.js +5 -4
  45. package/lib/chain/chain.js.map +1 -1
  46. package/lib/chain/emitter.d.ts +2 -2
  47. package/lib/chain/emitter.js.map +1 -1
  48. package/lib/chain/errors/index.d.ts +2 -2
  49. package/lib/chain/errors/index.js +2 -2
  50. package/lib/chain/errors/index.js.map +1 -1
  51. package/lib/chain/forkChoice/index.js.map +1 -1
  52. package/lib/chain/index.d.ts +2 -2
  53. package/lib/chain/index.js +2 -2
  54. package/lib/chain/index.js.map +1 -1
  55. package/lib/chain/interface.d.ts +2 -2
  56. package/lib/chain/interface.js.map +1 -1
  57. package/lib/chain/lightClient/index.js.map +1 -1
  58. package/lib/chain/lightClient/proofs.js.map +1 -1
  59. package/lib/chain/opPools/aggregatedAttestationPool.js +1 -1
  60. package/lib/chain/opPools/attestationPool.d.ts +3 -2
  61. package/lib/chain/opPools/attestationPool.js +6 -4
  62. package/lib/chain/opPools/attestationPool.js.map +1 -1
  63. package/lib/chain/opPools/index.d.ts +1 -1
  64. package/lib/chain/opPools/index.js +1 -1
  65. package/lib/chain/opPools/index.js.map +1 -1
  66. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts +2 -3
  67. package/lib/chain/opPools/syncCommitteeMessagePool.js +5 -6
  68. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  69. package/lib/chain/opPools/types.d.ts +1 -1
  70. package/lib/chain/opPools/types.js +1 -1
  71. package/lib/chain/opPools/types.js.map +1 -1
  72. package/lib/chain/options.js +1 -1
  73. package/lib/chain/options.js.map +1 -1
  74. package/lib/chain/prepareNextSlot.d.ts +3 -3
  75. package/lib/chain/prepareNextSlot.js +8 -8
  76. package/lib/chain/prepareNextSlot.js.map +1 -1
  77. package/lib/chain/regen/index.d.ts +1 -1
  78. package/lib/chain/regen/index.js +1 -1
  79. package/lib/chain/regen/index.js.map +1 -1
  80. package/lib/chain/stateCache/datastore/index.d.ts +1 -1
  81. package/lib/chain/stateCache/datastore/index.js +1 -1
  82. package/lib/chain/stateCache/datastore/index.js.map +1 -1
  83. package/lib/chain/stateCache/index.d.ts +1 -1
  84. package/lib/chain/stateCache/index.js +1 -1
  85. package/lib/chain/stateCache/index.js.map +1 -1
  86. package/lib/chain/stateCache/persistentCheckpointsCache.js +10 -10
  87. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  88. package/lib/chain/validation/blobSidecar.js.map +1 -1
  89. package/lib/chain/validation/dataColumnSidecar.js +1 -1
  90. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  91. package/lib/chain/validation/index.d.ts +1 -1
  92. package/lib/chain/validation/index.js +1 -1
  93. package/lib/chain/validation/index.js.map +1 -1
  94. package/lib/chain/validation/lightClientFinalityUpdate.js +3 -4
  95. package/lib/chain/validation/lightClientFinalityUpdate.js.map +1 -1
  96. package/lib/chain/validation/lightClientOptimisticUpdate.d.ts +4 -6
  97. package/lib/chain/validation/lightClientOptimisticUpdate.js +11 -11
  98. package/lib/chain/validation/lightClientOptimisticUpdate.js.map +1 -1
  99. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts +2 -1
  100. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  101. package/lib/chain/validatorMonitor.d.ts +3 -1
  102. package/lib/chain/validatorMonitor.js +14 -20
  103. package/lib/chain/validatorMonitor.js.map +1 -1
  104. package/lib/db/buckets.d.ts +4 -4
  105. package/lib/db/buckets.js +4 -4
  106. package/lib/db/buckets.js.map +1 -1
  107. package/lib/db/index.d.ts +1 -1
  108. package/lib/db/index.js.map +1 -1
  109. package/lib/db/repositories/blobSidecars.js +1 -1
  110. package/lib/db/repositories/blobSidecars.js.map +1 -1
  111. package/lib/db/repositories/blobSidecarsArchive.js +1 -1
  112. package/lib/db/repositories/blobSidecarsArchive.js.map +1 -1
  113. package/lib/db/repositories/blockArchive.js +3 -2
  114. package/lib/db/repositories/blockArchive.js.map +1 -1
  115. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  116. package/lib/db/repositories/dataColumnSidecar.js +2 -2
  117. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  118. package/lib/db/repositories/dataColumnSidecarArchive.js +2 -2
  119. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  120. package/lib/db/repositories/index.d.ts +10 -10
  121. package/lib/db/repositories/index.js +9 -9
  122. package/lib/db/repositories/index.js.map +1 -1
  123. package/lib/eth1/eth1DepositDataTracker.js.map +1 -1
  124. package/lib/eth1/eth1DepositsCache.js.map +1 -1
  125. package/lib/eth1/provider/eth1Provider.d.ts +2 -1
  126. package/lib/eth1/provider/eth1Provider.js.map +1 -1
  127. package/lib/eth1/provider/jsonRpcHttpClient.d.ts +1 -1
  128. package/lib/eth1/provider/jsonRpcHttpClient.js.map +1 -1
  129. package/lib/eth1/provider/jwt.js.map +1 -1
  130. package/lib/eth1/utils/deposits.js.map +1 -1
  131. package/lib/execution/builder/index.js.map +1 -1
  132. package/lib/execution/engine/interface.js.map +1 -1
  133. package/lib/execution/engine/types.js.map +1 -1
  134. package/lib/execution/engine/utils.js +2 -1
  135. package/lib/execution/engine/utils.js.map +1 -1
  136. package/lib/execution/index.d.ts +2 -2
  137. package/lib/execution/index.js +2 -2
  138. package/lib/execution/index.js.map +1 -1
  139. package/lib/index.d.ts +6 -6
  140. package/lib/index.js +5 -5
  141. package/lib/index.js.map +1 -1
  142. package/lib/metrics/index.d.ts +1 -1
  143. package/lib/metrics/index.js +1 -1
  144. package/lib/metrics/index.js.map +1 -1
  145. package/lib/metrics/metrics/lodestar.d.ts +3 -3
  146. package/lib/metrics/metrics/lodestar.js +4 -4
  147. package/lib/metrics/metrics/lodestar.js.map +1 -1
  148. package/lib/metrics/metrics.d.ts +1 -1
  149. package/lib/metrics/metrics.js.map +1 -1
  150. package/lib/metrics/nodeJsMetrics.js +1 -1
  151. package/lib/metrics/nodeJsMetrics.js.map +1 -1
  152. package/lib/metrics/server/http.d.ts +1 -1
  153. package/lib/metrics/utils/avgMinMax.d.ts +1 -1
  154. package/lib/metrics/utils/gauge.d.ts +1 -1
  155. package/lib/metrics/utils/gauge.js.map +1 -1
  156. package/lib/metrics/utils/registryMetricCreator.d.ts +1 -1
  157. package/lib/metrics/utils/registryMetricCreator.js.map +1 -1
  158. package/lib/monitoring/service.js.map +1 -1
  159. package/lib/monitoring/system.js.map +1 -1
  160. package/lib/network/core/networkCore.d.ts +1 -1
  161. package/lib/network/core/networkCore.js +1 -1
  162. package/lib/network/core/networkCore.js.map +1 -1
  163. package/lib/network/core/networkCoreWorker.js +1 -1
  164. package/lib/network/core/networkCoreWorker.js.map +1 -1
  165. package/lib/network/core/networkCoreWorkerHandler.d.ts +1 -1
  166. package/lib/network/core/networkCoreWorkerHandler.js +4 -10
  167. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  168. package/lib/network/discv5/index.d.ts +2 -2
  169. package/lib/network/discv5/index.js +2 -5
  170. package/lib/network/discv5/index.js.map +1 -1
  171. package/lib/network/discv5/worker.js +3 -3
  172. package/lib/network/discv5/worker.js.map +1 -1
  173. package/lib/network/gossip/encoding.d.ts +1 -1
  174. package/lib/network/gossip/encoding.js +2 -2
  175. package/lib/network/gossip/encoding.js.map +1 -1
  176. package/lib/network/gossip/gossipsub.d.ts +1 -2
  177. package/lib/network/gossip/gossipsub.js +17 -36
  178. package/lib/network/gossip/gossipsub.js.map +1 -1
  179. package/lib/network/gossip/index.d.ts +2 -2
  180. package/lib/network/gossip/index.js +2 -2
  181. package/lib/network/gossip/index.js.map +1 -1
  182. package/lib/network/gossip/interface.d.ts +2 -2
  183. package/lib/network/gossip/metrics.d.ts +7 -15
  184. package/lib/network/gossip/metrics.js +6 -16
  185. package/lib/network/gossip/metrics.js.map +1 -1
  186. package/lib/network/gossip/topic.d.ts +60 -80
  187. package/lib/network/gossip/topic.js.map +1 -1
  188. package/lib/network/index.d.ts +3 -3
  189. package/lib/network/index.js +3 -3
  190. package/lib/network/index.js.map +1 -1
  191. package/lib/network/interface.d.ts +1 -1
  192. package/lib/network/libp2p/index.js +3 -11
  193. package/lib/network/libp2p/index.js.map +1 -1
  194. package/lib/network/metadata.js +1 -2
  195. package/lib/network/metadata.js.map +1 -1
  196. package/lib/network/network.d.ts +2 -2
  197. package/lib/network/network.js +13 -11
  198. package/lib/network/network.js.map +1 -1
  199. package/lib/network/peers/datastore.d.ts +2 -2
  200. package/lib/network/peers/datastore.js +2 -2
  201. package/lib/network/peers/datastore.js.map +1 -1
  202. package/lib/network/peers/discover.js +2 -1
  203. package/lib/network/peers/discover.js.map +1 -1
  204. package/lib/network/peers/peerManager.js.map +1 -1
  205. package/lib/network/peers/score/index.d.ts +1 -1
  206. package/lib/network/peers/score/index.js +1 -1
  207. package/lib/network/peers/score/index.js.map +1 -1
  208. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  209. package/lib/network/processor/gossipHandlers.js +1 -1
  210. package/lib/network/processor/index.d.ts +1 -1
  211. package/lib/network/processor/index.js +5 -3
  212. package/lib/network/processor/index.js.map +1 -1
  213. package/lib/network/reqresp/ReqRespBeaconNode.d.ts +1 -1
  214. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  215. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  216. package/lib/network/reqresp/index.d.ts +1 -1
  217. package/lib/network/reqresp/index.js +1 -1
  218. package/lib/network/reqresp/index.js.map +1 -1
  219. package/lib/network/reqresp/rateLimit.js +2 -2
  220. package/lib/network/reqresp/rateLimit.js.map +1 -1
  221. package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -1
  222. package/lib/network/subnets/interface.js +1 -1
  223. package/lib/network/subnets/interface.js.map +1 -1
  224. package/lib/network/subnets/util.js +2 -1
  225. package/lib/network/subnets/util.js.map +1 -1
  226. package/lib/node/nodejs.d.ts +1 -1
  227. package/lib/node/nodejs.js.map +1 -1
  228. package/lib/node/notifier.js +2 -1
  229. package/lib/node/notifier.js.map +1 -1
  230. package/lib/node/options.js.map +1 -1
  231. package/lib/node/utils/interop/state.js +2 -1
  232. package/lib/node/utils/interop/state.js.map +1 -1
  233. package/lib/sync/backfill/backfill.d.ts +1 -1
  234. package/lib/sync/backfill/backfill.js +1 -1
  235. package/lib/sync/backfill/backfill.js.map +1 -1
  236. package/lib/sync/range/batch.d.ts +2 -2
  237. package/lib/sync/range/batch.js +1 -1
  238. package/lib/sync/range/batch.js.map +1 -1
  239. package/lib/sync/range/chain.d.ts +1 -1
  240. package/lib/sync/range/chain.js.map +1 -1
  241. package/lib/sync/range/range.d.ts +1 -1
  242. package/lib/sync/range/range.js.map +1 -1
  243. package/lib/sync/sync.d.ts +2 -1
  244. package/lib/sync/sync.js.map +1 -1
  245. package/lib/sync/types.d.ts +1 -0
  246. package/lib/sync/types.js.map +1 -1
  247. package/lib/sync/unknownBlock.d.ts +1 -0
  248. package/lib/sync/unknownBlock.js +20 -18
  249. package/lib/sync/unknownBlock.js.map +1 -1
  250. package/lib/sync/utils/downloadByRange.d.ts +1 -1
  251. package/lib/sync/utils/downloadByRoot.d.ts +2 -4
  252. package/lib/sync/utils/downloadByRoot.js +9 -36
  253. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  254. package/lib/util/blobs.js +3 -5
  255. package/lib/util/blobs.js.map +1 -1
  256. package/lib/util/clock.d.ts +1 -6
  257. package/lib/util/clock.js +0 -3
  258. package/lib/util/clock.js.map +1 -1
  259. package/lib/util/dataColumns.d.ts +15 -9
  260. package/lib/util/dataColumns.js +29 -16
  261. package/lib/util/dataColumns.js.map +1 -1
  262. package/lib/util/execution.d.ts +2 -2
  263. package/lib/util/execution.js +8 -25
  264. package/lib/util/execution.js.map +1 -1
  265. package/lib/util/queue/index.d.ts +1 -1
  266. package/lib/util/queue/index.js +1 -1
  267. package/lib/util/queue/index.js.map +1 -1
  268. package/package.json +21 -37
  269. package/lib/api/impl/api.d.ts.map +0 -1
  270. package/lib/api/impl/beacon/blocks/index.d.ts.map +0 -1
  271. package/lib/api/impl/beacon/blocks/utils.d.ts.map +0 -1
  272. package/lib/api/impl/beacon/index.d.ts.map +0 -1
  273. package/lib/api/impl/beacon/pool/index.d.ts.map +0 -1
  274. package/lib/api/impl/beacon/rewards/index.d.ts.map +0 -1
  275. package/lib/api/impl/beacon/state/index.d.ts.map +0 -1
  276. package/lib/api/impl/beacon/state/utils.d.ts.map +0 -1
  277. package/lib/api/impl/config/constants.d.ts.map +0 -1
  278. package/lib/api/impl/config/index.d.ts.map +0 -1
  279. package/lib/api/impl/debug/index.d.ts.map +0 -1
  280. package/lib/api/impl/errors.d.ts.map +0 -1
  281. package/lib/api/impl/events/index.d.ts.map +0 -1
  282. package/lib/api/impl/index.d.ts.map +0 -1
  283. package/lib/api/impl/lightclient/index.d.ts.map +0 -1
  284. package/lib/api/impl/lodestar/index.d.ts.map +0 -1
  285. package/lib/api/impl/node/index.d.ts.map +0 -1
  286. package/lib/api/impl/node/utils.d.ts.map +0 -1
  287. package/lib/api/impl/proof/index.d.ts.map +0 -1
  288. package/lib/api/impl/types.d.ts.map +0 -1
  289. package/lib/api/impl/utils.d.ts.map +0 -1
  290. package/lib/api/impl/validator/index.d.ts.map +0 -1
  291. package/lib/api/impl/validator/utils.d.ts.map +0 -1
  292. package/lib/api/index.d.ts.map +0 -1
  293. package/lib/api/options.d.ts.map +0 -1
  294. package/lib/api/rest/activeSockets.d.ts.map +0 -1
  295. package/lib/api/rest/base.d.ts.map +0 -1
  296. package/lib/api/rest/index.d.ts.map +0 -1
  297. package/lib/api/rest/swaggerUI.d.ts.map +0 -1
  298. package/lib/bun-wrappers/prometheus-gc-stats.d.ts +0 -2
  299. package/lib/bun-wrappers/prometheus-gc-stats.d.ts.map +0 -1
  300. package/lib/bun-wrappers/prometheus-gc-stats.js +0 -8
  301. package/lib/bun-wrappers/prometheus-gc-stats.js.map +0 -1
  302. package/lib/chain/ColumnReconstructionTracker.d.ts.map +0 -1
  303. package/lib/chain/GetBlobsTracker.d.ts.map +0 -1
  304. package/lib/chain/archiveStore/archiveStore.d.ts.map +0 -1
  305. package/lib/chain/archiveStore/constants.d.ts.map +0 -1
  306. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +0 -1
  307. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts.map +0 -1
  308. package/lib/chain/archiveStore/historicalState/metrics.d.ts.map +0 -1
  309. package/lib/chain/archiveStore/historicalState/types.d.ts.map +0 -1
  310. package/lib/chain/archiveStore/historicalState/worker.d.ts.map +0 -1
  311. package/lib/chain/archiveStore/index.d.ts.map +0 -1
  312. package/lib/chain/archiveStore/interface.d.ts.map +0 -1
  313. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +0 -1
  314. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +0 -1
  315. package/lib/chain/archiveStore/utils/pruneHistory.d.ts.map +0 -1
  316. package/lib/chain/archiveStore/utils/updateBackfillRange.d.ts.map +0 -1
  317. package/lib/chain/balancesCache.d.ts.map +0 -1
  318. package/lib/chain/beaconProposerCache.d.ts.map +0 -1
  319. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +0 -1
  320. package/lib/chain/blocks/blockInput/errors.d.ts.map +0 -1
  321. package/lib/chain/blocks/blockInput/index.d.ts.map +0 -1
  322. package/lib/chain/blocks/blockInput/types.d.ts.map +0 -1
  323. package/lib/chain/blocks/blockInput/utils.d.ts.map +0 -1
  324. package/lib/chain/blocks/importBlock.d.ts.map +0 -1
  325. package/lib/chain/blocks/index.d.ts.map +0 -1
  326. package/lib/chain/blocks/types.d.ts.map +0 -1
  327. package/lib/chain/blocks/utils/blowfishBanner.d.ts.map +0 -1
  328. package/lib/chain/blocks/utils/chainSegment.d.ts.map +0 -1
  329. package/lib/chain/blocks/utils/checkpoint.d.ts.map +0 -1
  330. package/lib/chain/blocks/utils/giraffeBanner.d.ts.map +0 -1
  331. package/lib/chain/blocks/utils/ownBanner.d.ts.map +0 -1
  332. package/lib/chain/blocks/utils/pandaMergeTransitionBanner.d.ts.map +0 -1
  333. package/lib/chain/blocks/utils/zebraBanner.d.ts.map +0 -1
  334. package/lib/chain/blocks/verifyBlock.d.ts.map +0 -1
  335. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +0 -1
  336. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +0 -1
  337. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +0 -1
  338. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +0 -1
  339. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +0 -1
  340. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +0 -1
  341. package/lib/chain/bls/index.d.ts.map +0 -1
  342. package/lib/chain/bls/interface.d.ts.map +0 -1
  343. package/lib/chain/bls/maybeBatch.d.ts.map +0 -1
  344. package/lib/chain/bls/multithread/index.d.ts.map +0 -1
  345. package/lib/chain/bls/multithread/jobItem.d.ts.map +0 -1
  346. package/lib/chain/bls/multithread/poolSize.d.ts.map +0 -1
  347. package/lib/chain/bls/multithread/types.d.ts.map +0 -1
  348. package/lib/chain/bls/multithread/utils.d.ts.map +0 -1
  349. package/lib/chain/bls/multithread/worker.d.ts.map +0 -1
  350. package/lib/chain/bls/singleThread.d.ts.map +0 -1
  351. package/lib/chain/bls/utils.d.ts.map +0 -1
  352. package/lib/chain/chain.d.ts.map +0 -1
  353. package/lib/chain/emitter.d.ts.map +0 -1
  354. package/lib/chain/errors/attestationError.d.ts.map +0 -1
  355. package/lib/chain/errors/attesterSlashingError.d.ts.map +0 -1
  356. package/lib/chain/errors/blobSidecarError.d.ts.map +0 -1
  357. package/lib/chain/errors/blockError.d.ts.map +0 -1
  358. package/lib/chain/errors/blsToExecutionChangeError.d.ts.map +0 -1
  359. package/lib/chain/errors/dataColumnSidecarError.d.ts.map +0 -1
  360. package/lib/chain/errors/gossipValidation.d.ts.map +0 -1
  361. package/lib/chain/errors/index.d.ts.map +0 -1
  362. package/lib/chain/errors/lightClientError.d.ts.map +0 -1
  363. package/lib/chain/errors/proposerSlashingError.d.ts.map +0 -1
  364. package/lib/chain/errors/syncCommitteeError.d.ts.map +0 -1
  365. package/lib/chain/errors/voluntaryExitError.d.ts.map +0 -1
  366. package/lib/chain/forkChoice/index.d.ts.map +0 -1
  367. package/lib/chain/genesis/genesis.d.ts.map +0 -1
  368. package/lib/chain/genesis/interface.d.ts.map +0 -1
  369. package/lib/chain/index.d.ts.map +0 -1
  370. package/lib/chain/initState.d.ts.map +0 -1
  371. package/lib/chain/interface.d.ts.map +0 -1
  372. package/lib/chain/lightClient/index.d.ts.map +0 -1
  373. package/lib/chain/lightClient/proofs.d.ts.map +0 -1
  374. package/lib/chain/lightClient/types.d.ts.map +0 -1
  375. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +0 -1
  376. package/lib/chain/opPools/attestationPool.d.ts.map +0 -1
  377. package/lib/chain/opPools/index.d.ts.map +0 -1
  378. package/lib/chain/opPools/opPool.d.ts.map +0 -1
  379. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +0 -1
  380. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +0 -1
  381. package/lib/chain/opPools/types.d.ts.map +0 -1
  382. package/lib/chain/opPools/utils.d.ts.map +0 -1
  383. package/lib/chain/options.d.ts.map +0 -1
  384. package/lib/chain/prepareNextSlot.d.ts.map +0 -1
  385. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +0 -1
  386. package/lib/chain/produceBlock/index.d.ts.map +0 -1
  387. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +0 -1
  388. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts.map +0 -1
  389. package/lib/chain/regen/errors.d.ts.map +0 -1
  390. package/lib/chain/regen/index.d.ts.map +0 -1
  391. package/lib/chain/regen/interface.d.ts.map +0 -1
  392. package/lib/chain/regen/queued.d.ts.map +0 -1
  393. package/lib/chain/regen/regen.d.ts.map +0 -1
  394. package/lib/chain/reprocess.d.ts.map +0 -1
  395. package/lib/chain/rewards/attestationsRewards.d.ts.map +0 -1
  396. package/lib/chain/rewards/blockRewards.d.ts.map +0 -1
  397. package/lib/chain/rewards/syncCommitteeRewards.d.ts.map +0 -1
  398. package/lib/chain/seenCache/index.d.ts.map +0 -1
  399. package/lib/chain/seenCache/seenAggregateAndProof.d.ts.map +0 -1
  400. package/lib/chain/seenCache/seenAttestationData.d.ts.map +0 -1
  401. package/lib/chain/seenCache/seenAttesters.d.ts.map +0 -1
  402. package/lib/chain/seenCache/seenBlockAttesters.d.ts.map +0 -1
  403. package/lib/chain/seenCache/seenBlockProposers.d.ts.map +0 -1
  404. package/lib/chain/seenCache/seenCommittee.d.ts.map +0 -1
  405. package/lib/chain/seenCache/seenCommitteeContribution.d.ts.map +0 -1
  406. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +0 -1
  407. package/lib/chain/serializeState.d.ts.map +0 -1
  408. package/lib/chain/shufflingCache.d.ts.map +0 -1
  409. package/lib/chain/stateCache/blockStateCacheImpl.d.ts.map +0 -1
  410. package/lib/chain/stateCache/datastore/db.d.ts.map +0 -1
  411. package/lib/chain/stateCache/datastore/file.d.ts.map +0 -1
  412. package/lib/chain/stateCache/datastore/index.d.ts.map +0 -1
  413. package/lib/chain/stateCache/datastore/types.d.ts.map +0 -1
  414. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +0 -1
  415. package/lib/chain/stateCache/inMemoryCheckpointsCache.d.ts.map +0 -1
  416. package/lib/chain/stateCache/index.d.ts.map +0 -1
  417. package/lib/chain/stateCache/mapMetrics.d.ts.map +0 -1
  418. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +0 -1
  419. package/lib/chain/stateCache/types.d.ts.map +0 -1
  420. package/lib/chain/validation/aggregateAndProof.d.ts.map +0 -1
  421. package/lib/chain/validation/attestation.d.ts.map +0 -1
  422. package/lib/chain/validation/attesterSlashing.d.ts.map +0 -1
  423. package/lib/chain/validation/blobSidecar.d.ts.map +0 -1
  424. package/lib/chain/validation/block.d.ts.map +0 -1
  425. package/lib/chain/validation/blsToExecutionChange.d.ts.map +0 -1
  426. package/lib/chain/validation/dataColumnSidecar.d.ts.map +0 -1
  427. package/lib/chain/validation/index.d.ts.map +0 -1
  428. package/lib/chain/validation/lightClientFinalityUpdate.d.ts.map +0 -1
  429. package/lib/chain/validation/lightClientOptimisticUpdate.d.ts.map +0 -1
  430. package/lib/chain/validation/proposerSlashing.d.ts.map +0 -1
  431. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts.map +0 -1
  432. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts.map +0 -1
  433. package/lib/chain/validation/signatureSets/index.d.ts.map +0 -1
  434. package/lib/chain/validation/signatureSets/selectionProof.d.ts.map +0 -1
  435. package/lib/chain/validation/signatureSets/syncCommittee.d.ts.map +0 -1
  436. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts.map +0 -1
  437. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts.map +0 -1
  438. package/lib/chain/validation/syncCommittee.d.ts.map +0 -1
  439. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +0 -1
  440. package/lib/chain/validation/voluntaryExit.d.ts.map +0 -1
  441. package/lib/chain/validatorMonitor.d.ts.map +0 -1
  442. package/lib/constants/constants.d.ts.map +0 -1
  443. package/lib/constants/index.d.ts.map +0 -1
  444. package/lib/constants/network.d.ts.map +0 -1
  445. package/lib/db/beacon.d.ts.map +0 -1
  446. package/lib/db/buckets.d.ts.map +0 -1
  447. package/lib/db/index.d.ts.map +0 -1
  448. package/lib/db/interface.d.ts.map +0 -1
  449. package/lib/db/options.d.ts.map +0 -1
  450. package/lib/db/repositories/attesterSlashing.d.ts.map +0 -1
  451. package/lib/db/repositories/backfilledRanges.d.ts.map +0 -1
  452. package/lib/db/repositories/blobSidecars.d.ts.map +0 -1
  453. package/lib/db/repositories/blobSidecarsArchive.d.ts.map +0 -1
  454. package/lib/db/repositories/block.d.ts.map +0 -1
  455. package/lib/db/repositories/blockArchive.d.ts.map +0 -1
  456. package/lib/db/repositories/blockArchiveIndex.d.ts.map +0 -1
  457. package/lib/db/repositories/blsToExecutionChange.d.ts.map +0 -1
  458. package/lib/db/repositories/checkpointState.d.ts.map +0 -1
  459. package/lib/db/repositories/dataColumnSidecar.d.ts.map +0 -1
  460. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +0 -1
  461. package/lib/db/repositories/depositDataRoot.d.ts.map +0 -1
  462. package/lib/db/repositories/depositEvent.d.ts.map +0 -1
  463. package/lib/db/repositories/eth1Data.d.ts.map +0 -1
  464. package/lib/db/repositories/index.d.ts.map +0 -1
  465. package/lib/db/repositories/lightclientBestUpdate.d.ts.map +0 -1
  466. package/lib/db/repositories/lightclientCheckpointHeader.d.ts.map +0 -1
  467. package/lib/db/repositories/lightclientSyncCommittee.d.ts.map +0 -1
  468. package/lib/db/repositories/lightclientSyncCommitteeWitness.d.ts.map +0 -1
  469. package/lib/db/repositories/proposerSlashing.d.ts.map +0 -1
  470. package/lib/db/repositories/stateArchive.d.ts.map +0 -1
  471. package/lib/db/repositories/stateArchiveIndex.d.ts.map +0 -1
  472. package/lib/db/repositories/voluntaryExit.d.ts.map +0 -1
  473. package/lib/db/single/index.d.ts.map +0 -1
  474. package/lib/db/single/preGenesisState.d.ts.map +0 -1
  475. package/lib/db/single/preGenesisStateLastProcessedBlock.d.ts.map +0 -1
  476. package/lib/eth1/errors.d.ts.map +0 -1
  477. package/lib/eth1/eth1DataCache.d.ts.map +0 -1
  478. package/lib/eth1/eth1DepositDataTracker.d.ts.map +0 -1
  479. package/lib/eth1/eth1DepositsCache.d.ts.map +0 -1
  480. package/lib/eth1/eth1MergeBlockTracker.d.ts.map +0 -1
  481. package/lib/eth1/index.d.ts.map +0 -1
  482. package/lib/eth1/interface.d.ts.map +0 -1
  483. package/lib/eth1/options.d.ts.map +0 -1
  484. package/lib/eth1/provider/eth1Provider.d.ts.map +0 -1
  485. package/lib/eth1/provider/jsonRpcHttpClient.d.ts.map +0 -1
  486. package/lib/eth1/provider/jwt.d.ts.map +0 -1
  487. package/lib/eth1/provider/utils.d.ts.map +0 -1
  488. package/lib/eth1/stream.d.ts.map +0 -1
  489. package/lib/eth1/utils/depositContract.d.ts.map +0 -1
  490. package/lib/eth1/utils/deposits.d.ts.map +0 -1
  491. package/lib/eth1/utils/eth1Data.d.ts.map +0 -1
  492. package/lib/eth1/utils/eth1DepositEvent.d.ts.map +0 -1
  493. package/lib/eth1/utils/eth1Vote.d.ts.map +0 -1
  494. package/lib/eth1/utils/groupDepositEventsByBlock.d.ts.map +0 -1
  495. package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.d.ts.map +0 -1
  496. package/lib/execution/builder/cache.d.ts.map +0 -1
  497. package/lib/execution/builder/http.d.ts.map +0 -1
  498. package/lib/execution/builder/index.d.ts.map +0 -1
  499. package/lib/execution/builder/interface.d.ts.map +0 -1
  500. package/lib/execution/builder/utils.d.ts.map +0 -1
  501. package/lib/execution/engine/disabled.d.ts.map +0 -1
  502. package/lib/execution/engine/http.d.ts.map +0 -1
  503. package/lib/execution/engine/index.d.ts.map +0 -1
  504. package/lib/execution/engine/interface.d.ts.map +0 -1
  505. package/lib/execution/engine/mock.d.ts.map +0 -1
  506. package/lib/execution/engine/payloadIdCache.d.ts.map +0 -1
  507. package/lib/execution/engine/types.d.ts.map +0 -1
  508. package/lib/execution/engine/utils.d.ts.map +0 -1
  509. package/lib/execution/index.d.ts.map +0 -1
  510. package/lib/index.d.ts.map +0 -1
  511. package/lib/metrics/index.d.ts.map +0 -1
  512. package/lib/metrics/metrics/beacon.d.ts.map +0 -1
  513. package/lib/metrics/metrics/lodestar.d.ts.map +0 -1
  514. package/lib/metrics/metrics.d.ts.map +0 -1
  515. package/lib/metrics/nodeJsMetrics.d.ts.map +0 -1
  516. package/lib/metrics/options.d.ts.map +0 -1
  517. package/lib/metrics/server/http.d.ts.map +0 -1
  518. package/lib/metrics/server/index.d.ts.map +0 -1
  519. package/lib/metrics/utils/avgMinMax.d.ts.map +0 -1
  520. package/lib/metrics/utils/gauge.d.ts.map +0 -1
  521. package/lib/metrics/utils/registryMetricCreator.d.ts.map +0 -1
  522. package/lib/monitoring/clientStats.d.ts.map +0 -1
  523. package/lib/monitoring/index.d.ts.map +0 -1
  524. package/lib/monitoring/options.d.ts.map +0 -1
  525. package/lib/monitoring/properties.d.ts.map +0 -1
  526. package/lib/monitoring/service.d.ts.map +0 -1
  527. package/lib/monitoring/system.d.ts.map +0 -1
  528. package/lib/monitoring/types.d.ts.map +0 -1
  529. package/lib/network/core/events.d.ts.map +0 -1
  530. package/lib/network/core/index.d.ts.map +0 -1
  531. package/lib/network/core/metrics.d.ts.map +0 -1
  532. package/lib/network/core/networkCore.d.ts.map +0 -1
  533. package/lib/network/core/networkCoreWorker.d.ts.map +0 -1
  534. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +0 -1
  535. package/lib/network/core/types.d.ts.map +0 -1
  536. package/lib/network/discv5/index.d.ts.map +0 -1
  537. package/lib/network/discv5/types.d.ts.map +0 -1
  538. package/lib/network/discv5/utils.d.ts.map +0 -1
  539. package/lib/network/discv5/worker.d.ts.map +0 -1
  540. package/lib/network/events.d.ts.map +0 -1
  541. package/lib/network/forks.d.ts.map +0 -1
  542. package/lib/network/gossip/constants.d.ts.map +0 -1
  543. package/lib/network/gossip/encoding.d.ts.map +0 -1
  544. package/lib/network/gossip/errors.d.ts.map +0 -1
  545. package/lib/network/gossip/gossipsub.d.ts.map +0 -1
  546. package/lib/network/gossip/index.d.ts.map +0 -1
  547. package/lib/network/gossip/interface.d.ts.map +0 -1
  548. package/lib/network/gossip/metrics.d.ts.map +0 -1
  549. package/lib/network/gossip/scoringParameters.d.ts.map +0 -1
  550. package/lib/network/gossip/topic.d.ts.map +0 -1
  551. package/lib/network/index.d.ts.map +0 -1
  552. package/lib/network/interface.d.ts.map +0 -1
  553. package/lib/network/libp2p/error.d.ts.map +0 -1
  554. package/lib/network/libp2p/index.d.ts.map +0 -1
  555. package/lib/network/metadata.d.ts.map +0 -1
  556. package/lib/network/network.d.ts.map +0 -1
  557. package/lib/network/networkConfig.d.ts.map +0 -1
  558. package/lib/network/options.d.ts.map +0 -1
  559. package/lib/network/peers/client.d.ts.map +0 -1
  560. package/lib/network/peers/datastore.d.ts.map +0 -1
  561. package/lib/network/peers/discover.d.ts.map +0 -1
  562. package/lib/network/peers/index.d.ts.map +0 -1
  563. package/lib/network/peers/peerManager.d.ts.map +0 -1
  564. package/lib/network/peers/peersData.d.ts.map +0 -1
  565. package/lib/network/peers/score/constants.d.ts.map +0 -1
  566. package/lib/network/peers/score/index.d.ts.map +0 -1
  567. package/lib/network/peers/score/interface.d.ts.map +0 -1
  568. package/lib/network/peers/score/score.d.ts.map +0 -1
  569. package/lib/network/peers/score/store.d.ts.map +0 -1
  570. package/lib/network/peers/score/utils.d.ts.map +0 -1
  571. package/lib/network/peers/utils/assertPeerRelevance.d.ts.map +0 -1
  572. package/lib/network/peers/utils/enrSubnetsDeserialize.d.ts.map +0 -1
  573. package/lib/network/peers/utils/getConnectedPeerIds.d.ts.map +0 -1
  574. package/lib/network/peers/utils/index.d.ts.map +0 -1
  575. package/lib/network/peers/utils/prioritizePeers.d.ts.map +0 -1
  576. package/lib/network/peers/utils/subnetMap.d.ts.map +0 -1
  577. package/lib/network/processor/aggregatorTracker.d.ts.map +0 -1
  578. package/lib/network/processor/extractSlotRootFns.d.ts.map +0 -1
  579. package/lib/network/processor/gossipHandlers.d.ts.map +0 -1
  580. package/lib/network/processor/gossipQueues/index.d.ts.map +0 -1
  581. package/lib/network/processor/gossipQueues/indexed.d.ts.map +0 -1
  582. package/lib/network/processor/gossipQueues/linear.d.ts.map +0 -1
  583. package/lib/network/processor/gossipQueues/types.d.ts.map +0 -1
  584. package/lib/network/processor/gossipValidatorFn.d.ts.map +0 -1
  585. package/lib/network/processor/index.d.ts.map +0 -1
  586. package/lib/network/processor/types.d.ts.map +0 -1
  587. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +0 -1
  588. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +0 -1
  589. package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts.map +0 -1
  590. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +0 -1
  591. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts.map +0 -1
  592. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +0 -1
  593. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts.map +0 -1
  594. package/lib/network/reqresp/handlers/index.d.ts.map +0 -1
  595. package/lib/network/reqresp/handlers/lightClientBootstrap.d.ts.map +0 -1
  596. package/lib/network/reqresp/handlers/lightClientFinalityUpdate.d.ts.map +0 -1
  597. package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.d.ts.map +0 -1
  598. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.d.ts.map +0 -1
  599. package/lib/network/reqresp/index.d.ts.map +0 -1
  600. package/lib/network/reqresp/interface.d.ts.map +0 -1
  601. package/lib/network/reqresp/protocols.d.ts.map +0 -1
  602. package/lib/network/reqresp/rateLimit.d.ts.map +0 -1
  603. package/lib/network/reqresp/score.d.ts.map +0 -1
  604. package/lib/network/reqresp/types.d.ts.map +0 -1
  605. package/lib/network/reqresp/utils/collect.d.ts.map +0 -1
  606. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.d.ts.map +0 -1
  607. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts.map +0 -1
  608. package/lib/network/statusCache.d.ts.map +0 -1
  609. package/lib/network/subnets/attnetsService.d.ts.map +0 -1
  610. package/lib/network/subnets/index.d.ts.map +0 -1
  611. package/lib/network/subnets/interface.d.ts.map +0 -1
  612. package/lib/network/subnets/syncnetsService.d.ts.map +0 -1
  613. package/lib/network/subnets/util.d.ts.map +0 -1
  614. package/lib/network/util.d.ts.map +0 -1
  615. package/lib/node/index.d.ts.map +0 -1
  616. package/lib/node/nodejs.d.ts.map +0 -1
  617. package/lib/node/notifier.d.ts.map +0 -1
  618. package/lib/node/options.d.ts.map +0 -1
  619. package/lib/node/utils/interop/deposits.d.ts.map +0 -1
  620. package/lib/node/utils/interop/state.d.ts.map +0 -1
  621. package/lib/node/utils/lightclient.d.ts.map +0 -1
  622. package/lib/node/utils/state.d.ts.map +0 -1
  623. package/lib/sync/backfill/backfill.d.ts.map +0 -1
  624. package/lib/sync/backfill/errors.d.ts.map +0 -1
  625. package/lib/sync/backfill/index.d.ts.map +0 -1
  626. package/lib/sync/backfill/verify.d.ts.map +0 -1
  627. package/lib/sync/constants.d.ts.map +0 -1
  628. package/lib/sync/index.d.ts.map +0 -1
  629. package/lib/sync/interface.d.ts.map +0 -1
  630. package/lib/sync/options.d.ts.map +0 -1
  631. package/lib/sync/range/batch.d.ts.map +0 -1
  632. package/lib/sync/range/chain.d.ts.map +0 -1
  633. package/lib/sync/range/range.d.ts.map +0 -1
  634. package/lib/sync/range/utils/batches.d.ts.map +0 -1
  635. package/lib/sync/range/utils/chainTarget.d.ts.map +0 -1
  636. package/lib/sync/range/utils/hashBlocks.d.ts.map +0 -1
  637. package/lib/sync/range/utils/index.d.ts.map +0 -1
  638. package/lib/sync/range/utils/peerBalancer.d.ts.map +0 -1
  639. package/lib/sync/range/utils/updateChains.d.ts.map +0 -1
  640. package/lib/sync/sync.d.ts.map +0 -1
  641. package/lib/sync/types.d.ts.map +0 -1
  642. package/lib/sync/unknownBlock.d.ts.map +0 -1
  643. package/lib/sync/utils/downloadByRange.d.ts.map +0 -1
  644. package/lib/sync/utils/downloadByRoot.d.ts.map +0 -1
  645. package/lib/sync/utils/pendingBlocksTree.d.ts.map +0 -1
  646. package/lib/sync/utils/remoteSyncType.d.ts.map +0 -1
  647. package/lib/util/address.d.ts.map +0 -1
  648. package/lib/util/array.d.ts.map +0 -1
  649. package/lib/util/asyncIterableToEvents.d.ts.map +0 -1
  650. package/lib/util/binarySearch.d.ts.map +0 -1
  651. package/lib/util/bitArray.d.ts.map +0 -1
  652. package/lib/util/blobs.d.ts.map +0 -1
  653. package/lib/util/bufferPool.d.ts.map +0 -1
  654. package/lib/util/bytes.d.ts.map +0 -1
  655. package/lib/util/chunkify.d.ts.map +0 -1
  656. package/lib/util/clock.d.ts.map +0 -1
  657. package/lib/util/dataColumns.d.ts.map +0 -1
  658. package/lib/util/dependentRoot.d.ts.map +0 -1
  659. package/lib/util/enum.d.ts.map +0 -1
  660. package/lib/util/error.d.ts.map +0 -1
  661. package/lib/util/eventLoop.d.ts.map +0 -1
  662. package/lib/util/execution.d.ts.map +0 -1
  663. package/lib/util/file.d.ts.map +0 -1
  664. package/lib/util/forkChoice.d.ts.map +0 -1
  665. package/lib/util/forkName.d.ts.map +0 -1
  666. package/lib/util/graffiti.d.ts.map +0 -1
  667. package/lib/util/hex.d.ts.map +0 -1
  668. package/lib/util/index.d.ts.map +0 -1
  669. package/lib/util/ip.d.ts.map +0 -1
  670. package/lib/util/itTrigger.d.ts.map +0 -1
  671. package/lib/util/kzg.d.ts.map +0 -1
  672. package/lib/util/map.d.ts.map +0 -1
  673. package/lib/util/metadata.d.ts.map +0 -1
  674. package/lib/util/multifork.d.ts.map +0 -1
  675. package/lib/util/numpy.d.ts.map +0 -1
  676. package/lib/util/peerId.d.ts.map +0 -1
  677. package/lib/util/profile.d.ts.map +0 -1
  678. package/lib/util/promises.d.ts.map +0 -1
  679. package/lib/util/queue/errors.d.ts.map +0 -1
  680. package/lib/util/queue/fnQueue.d.ts.map +0 -1
  681. package/lib/util/queue/index.d.ts.map +0 -1
  682. package/lib/util/queue/itemQueue.d.ts.map +0 -1
  683. package/lib/util/queue/options.d.ts.map +0 -1
  684. package/lib/util/serializedCache.d.ts.map +0 -1
  685. package/lib/util/set.d.ts.map +0 -1
  686. package/lib/util/shuffle.d.ts.map +0 -1
  687. package/lib/util/sortBy.d.ts.map +0 -1
  688. package/lib/util/sszBytes.d.ts.map +0 -1
  689. package/lib/util/strictEvents.d.ts.map +0 -1
  690. package/lib/util/time.d.ts.map +0 -1
  691. package/lib/util/timeSeries.d.ts.map +0 -1
  692. package/lib/util/types.d.ts.map +0 -1
  693. package/lib/util/workerEvents.d.ts.map +0 -1
  694. package/lib/util/wrapError.d.ts.map +0 -1
  695. package/src/api/impl/api.ts +0 -26
  696. package/src/api/impl/beacon/blocks/index.ts +0 -744
  697. package/src/api/impl/beacon/blocks/utils.ts +0 -75
  698. package/src/api/impl/beacon/index.ts +0 -35
  699. package/src/api/impl/beacon/pool/index.ts +0 -314
  700. package/src/api/impl/beacon/rewards/index.ts +0 -30
  701. package/src/api/impl/beacon/state/index.ts +0 -406
  702. package/src/api/impl/beacon/state/utils.ts +0 -189
  703. package/src/api/impl/config/constants.ts +0 -127
  704. package/src/api/impl/config/index.ts +0 -59
  705. package/src/api/impl/debug/index.ts +0 -131
  706. package/src/api/impl/errors.ts +0 -50
  707. package/src/api/impl/events/index.ts +0 -33
  708. package/src/api/impl/index.ts +0 -6
  709. package/src/api/impl/lightclient/index.ts +0 -64
  710. package/src/api/impl/lodestar/index.ts +0 -257
  711. package/src/api/impl/node/index.ts +0 -88
  712. package/src/api/impl/node/utils.ts +0 -51
  713. package/src/api/impl/proof/index.ts +0 -60
  714. package/src/api/impl/types.ts +0 -17
  715. package/src/api/impl/utils.ts +0 -25
  716. package/src/api/impl/validator/index.ts +0 -1540
  717. package/src/api/impl/validator/utils.ts +0 -85
  718. package/src/api/index.ts +0 -2
  719. package/src/api/options.ts +0 -16
  720. package/src/api/rest/activeSockets.ts +0 -109
  721. package/src/api/rest/base.ts +0 -216
  722. package/src/api/rest/index.ts +0 -63
  723. package/src/api/rest/swaggerUI.ts +0 -80
  724. package/src/bun-wrappers/prometheus-gc-stats.ts +0 -7
  725. package/src/chain/ColumnReconstructionTracker.ts +0 -90
  726. package/src/chain/GetBlobsTracker.ts +0 -115
  727. package/src/chain/archiveStore/archiveStore.ts +0 -222
  728. package/src/chain/archiveStore/constants.ts +0 -5
  729. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +0 -116
  730. package/src/chain/archiveStore/historicalState/historicalStateRegen.ts +0 -68
  731. package/src/chain/archiveStore/historicalState/metrics.ts +0 -214
  732. package/src/chain/archiveStore/historicalState/types.ts +0 -41
  733. package/src/chain/archiveStore/historicalState/worker.ts +0 -77
  734. package/src/chain/archiveStore/index.ts +0 -3
  735. package/src/chain/archiveStore/interface.ts +0 -75
  736. package/src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts +0 -138
  737. package/src/chain/archiveStore/utils/archiveBlocks.ts +0 -437
  738. package/src/chain/archiveStore/utils/pruneHistory.ts +0 -56
  739. package/src/chain/archiveStore/utils/updateBackfillRange.ts +0 -50
  740. package/src/chain/balancesCache.ts +0 -52
  741. package/src/chain/beaconProposerCache.ts +0 -43
  742. package/src/chain/blocks/blockInput/blockInput.ts +0 -852
  743. package/src/chain/blocks/blockInput/errors.ts +0 -48
  744. package/src/chain/blocks/blockInput/index.ts +0 -4
  745. package/src/chain/blocks/blockInput/types.ts +0 -145
  746. package/src/chain/blocks/blockInput/utils.ts +0 -21
  747. package/src/chain/blocks/importBlock.ts +0 -597
  748. package/src/chain/blocks/index.ts +0 -179
  749. package/src/chain/blocks/types.ts +0 -101
  750. package/src/chain/blocks/utils/blowfishBanner.ts +0 -28
  751. package/src/chain/blocks/utils/chainSegment.ts +0 -29
  752. package/src/chain/blocks/utils/checkpoint.ts +0 -25
  753. package/src/chain/blocks/utils/giraffeBanner.ts +0 -30
  754. package/src/chain/blocks/utils/ownBanner.ts +0 -20
  755. package/src/chain/blocks/utils/pandaMergeTransitionBanner.ts +0 -43
  756. package/src/chain/blocks/utils/zebraBanner.ts +0 -45
  757. package/src/chain/blocks/verifyBlock.ts +0 -242
  758. package/src/chain/blocks/verifyBlocksDataAvailability.ts +0 -42
  759. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +0 -438
  760. package/src/chain/blocks/verifyBlocksSanityChecks.ts +0 -129
  761. package/src/chain/blocks/verifyBlocksSignatures.ts +0 -105
  762. package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +0 -114
  763. package/src/chain/blocks/writeBlockInputToDb.ts +0 -120
  764. package/src/chain/bls/index.ts +0 -4
  765. package/src/chain/bls/interface.ts +0 -68
  766. package/src/chain/bls/maybeBatch.ts +0 -45
  767. package/src/chain/bls/multithread/index.ts +0 -582
  768. package/src/chain/bls/multithread/jobItem.ts +0 -119
  769. package/src/chain/bls/multithread/poolSize.ts +0 -16
  770. package/src/chain/bls/multithread/types.ts +0 -38
  771. package/src/chain/bls/multithread/utils.ts +0 -19
  772. package/src/chain/bls/multithread/worker.ts +0 -114
  773. package/src/chain/bls/singleThread.ts +0 -87
  774. package/src/chain/bls/utils.ts +0 -30
  775. package/src/chain/chain.ts +0 -1354
  776. package/src/chain/emitter.ts +0 -113
  777. package/src/chain/errors/attestationError.ts +0 -194
  778. package/src/chain/errors/attesterSlashingError.ts +0 -11
  779. package/src/chain/errors/blobSidecarError.ts +0 -60
  780. package/src/chain/errors/blockError.ts +0 -166
  781. package/src/chain/errors/blsToExecutionChangeError.ts +0 -13
  782. package/src/chain/errors/dataColumnSidecarError.ts +0 -80
  783. package/src/chain/errors/gossipValidation.ts +0 -20
  784. package/src/chain/errors/index.ts +0 -10
  785. package/src/chain/errors/lightClientError.ts +0 -30
  786. package/src/chain/errors/proposerSlashingError.ts +0 -11
  787. package/src/chain/errors/syncCommitteeError.ts +0 -36
  788. package/src/chain/errors/voluntaryExitError.ts +0 -13
  789. package/src/chain/forkChoice/index.ts +0 -112
  790. package/src/chain/genesis/genesis.ts +0 -190
  791. package/src/chain/genesis/interface.ts +0 -14
  792. package/src/chain/index.ts +0 -6
  793. package/src/chain/initState.ts +0 -221
  794. package/src/chain/interface.ts +0 -280
  795. package/src/chain/lightClient/index.ts +0 -764
  796. package/src/chain/lightClient/proofs.ts +0 -85
  797. package/src/chain/lightClient/types.ts +0 -33
  798. package/src/chain/opPools/aggregatedAttestationPool.ts +0 -1063
  799. package/src/chain/opPools/attestationPool.ts +0 -282
  800. package/src/chain/opPools/index.ts +0 -5
  801. package/src/chain/opPools/opPool.ts +0 -462
  802. package/src/chain/opPools/syncCommitteeMessagePool.ts +0 -169
  803. package/src/chain/opPools/syncContributionAndProofPool.ts +0 -240
  804. package/src/chain/opPools/types.ts +0 -35
  805. package/src/chain/opPools/utils.ts +0 -65
  806. package/src/chain/options.ts +0 -138
  807. package/src/chain/prepareNextSlot.ts +0 -277
  808. package/src/chain/produceBlock/computeNewStateRoot.ts +0 -55
  809. package/src/chain/produceBlock/index.ts +0 -2
  810. package/src/chain/produceBlock/produceBlockBody.ts +0 -797
  811. package/src/chain/produceBlock/validateBlobsAndKzgCommitments.ts +0 -54
  812. package/src/chain/regen/errors.ts +0 -30
  813. package/src/chain/regen/index.ts +0 -4
  814. package/src/chain/regen/interface.ts +0 -93
  815. package/src/chain/regen/queued.ts +0 -317
  816. package/src/chain/regen/regen.ts +0 -424
  817. package/src/chain/reprocess.ts +0 -161
  818. package/src/chain/rewards/attestationsRewards.ts +0 -196
  819. package/src/chain/rewards/blockRewards.ts +0 -150
  820. package/src/chain/rewards/syncCommitteeRewards.ts +0 -58
  821. package/src/chain/seenCache/index.ts +0 -5
  822. package/src/chain/seenCache/seenAggregateAndProof.ts +0 -120
  823. package/src/chain/seenCache/seenAttestationData.ts +0 -145
  824. package/src/chain/seenCache/seenAttesters.ts +0 -58
  825. package/src/chain/seenCache/seenBlockAttesters.ts +0 -18
  826. package/src/chain/seenCache/seenBlockProposers.ts +0 -48
  827. package/src/chain/seenCache/seenCommittee.ts +0 -43
  828. package/src/chain/seenCache/seenCommitteeContribution.ts +0 -104
  829. package/src/chain/seenCache/seenGossipBlockInput.ts +0 -373
  830. package/src/chain/serializeState.ts +0 -32
  831. package/src/chain/shufflingCache.ts +0 -238
  832. package/src/chain/stateCache/blockStateCacheImpl.ts +0 -150
  833. package/src/chain/stateCache/datastore/db.ts +0 -36
  834. package/src/chain/stateCache/datastore/file.ts +0 -53
  835. package/src/chain/stateCache/datastore/index.ts +0 -2
  836. package/src/chain/stateCache/datastore/types.ts +0 -13
  837. package/src/chain/stateCache/fifoBlockStateCache.ts +0 -208
  838. package/src/chain/stateCache/inMemoryCheckpointsCache.ts +0 -198
  839. package/src/chain/stateCache/index.ts +0 -3
  840. package/src/chain/stateCache/mapMetrics.ts +0 -52
  841. package/src/chain/stateCache/persistentCheckpointsCache.ts +0 -837
  842. package/src/chain/stateCache/types.ts +0 -86
  843. package/src/chain/validation/aggregateAndProof.ts +0 -258
  844. package/src/chain/validation/attestation.ts +0 -885
  845. package/src/chain/validation/attesterSlashing.ts +0 -61
  846. package/src/chain/validation/blobSidecar.ts +0 -301
  847. package/src/chain/validation/block.ts +0 -188
  848. package/src/chain/validation/blsToExecutionChange.ts +0 -61
  849. package/src/chain/validation/dataColumnSidecar.ts +0 -381
  850. package/src/chain/validation/index.ts +0 -9
  851. package/src/chain/validation/lightClientFinalityUpdate.ts +0 -46
  852. package/src/chain/validation/lightClientOptimisticUpdate.ts +0 -68
  853. package/src/chain/validation/proposerSlashing.ts +0 -54
  854. package/src/chain/validation/signatureSets/aggregateAndProof.ts +0 -38
  855. package/src/chain/validation/signatureSets/contributionAndProof.ts +0 -27
  856. package/src/chain/validation/signatureSets/index.ts +0 -6
  857. package/src/chain/validation/signatureSets/selectionProof.ts +0 -27
  858. package/src/chain/validation/signatureSets/syncCommittee.ts +0 -22
  859. package/src/chain/validation/signatureSets/syncCommitteeContribution.ts +0 -18
  860. package/src/chain/validation/signatureSets/syncCommitteeSelectionProof.ts +0 -27
  861. package/src/chain/validation/syncCommittee.ts +0 -165
  862. package/src/chain/validation/syncCommitteeContributionAndProof.ts +0 -122
  863. package/src/chain/validation/voluntaryExit.ts +0 -58
  864. package/src/chain/validatorMonitor.ts +0 -1309
  865. package/src/constants/constants.ts +0 -15
  866. package/src/constants/index.ts +0 -2
  867. package/src/constants/network.ts +0 -52
  868. package/src/db/beacon.ts +0 -113
  869. package/src/db/buckets.ts +0 -80
  870. package/src/db/index.ts +0 -2
  871. package/src/db/interface.ts +0 -76
  872. package/src/db/options.ts +0 -7
  873. package/src/db/repositories/attesterSlashing.ts +0 -38
  874. package/src/db/repositories/backfilledRanges.ts +0 -29
  875. package/src/db/repositories/blobSidecars.ts +0 -37
  876. package/src/db/repositories/blobSidecarsArchive.ts +0 -28
  877. package/src/db/repositories/block.ts +0 -33
  878. package/src/db/repositories/blockArchive.ts +0 -170
  879. package/src/db/repositories/blockArchiveIndex.ts +0 -45
  880. package/src/db/repositories/blsToExecutionChange.ts +0 -16
  881. package/src/db/repositories/checkpointState.ts +0 -31
  882. package/src/db/repositories/dataColumnSidecar.ts +0 -49
  883. package/src/db/repositories/dataColumnSidecarArchive.ts +0 -56
  884. package/src/db/repositories/depositDataRoot.ts +0 -80
  885. package/src/db/repositories/depositEvent.ts +0 -32
  886. package/src/db/repositories/eth1Data.ts +0 -33
  887. package/src/db/repositories/index.ts +0 -20
  888. package/src/db/repositories/lightclientBestUpdate.ts +0 -41
  889. package/src/db/repositories/lightclientCheckpointHeader.ts +0 -32
  890. package/src/db/repositories/lightclientSyncCommittee.ts +0 -16
  891. package/src/db/repositories/lightclientSyncCommitteeWitness.ts +0 -77
  892. package/src/db/repositories/proposerSlashing.ts +0 -15
  893. package/src/db/repositories/stateArchive.ts +0 -69
  894. package/src/db/repositories/stateArchiveIndex.ts +0 -18
  895. package/src/db/repositories/voluntaryExit.ts +0 -15
  896. package/src/db/single/index.ts +0 -2
  897. package/src/db/single/preGenesisState.ts +0 -37
  898. package/src/db/single/preGenesisStateLastProcessedBlock.ts +0 -34
  899. package/src/eth1/errors.ts +0 -40
  900. package/src/eth1/eth1DataCache.ts +0 -26
  901. package/src/eth1/eth1DepositDataTracker.ts +0 -410
  902. package/src/eth1/eth1DepositsCache.ts +0 -141
  903. package/src/eth1/eth1MergeBlockTracker.ts +0 -328
  904. package/src/eth1/index.ts +0 -157
  905. package/src/eth1/interface.ts +0 -131
  906. package/src/eth1/options.ts +0 -28
  907. package/src/eth1/provider/eth1Provider.ts +0 -229
  908. package/src/eth1/provider/jsonRpcHttpClient.ts +0 -390
  909. package/src/eth1/provider/jwt.ts +0 -36
  910. package/src/eth1/provider/utils.ts +0 -136
  911. package/src/eth1/stream.ts +0 -75
  912. package/src/eth1/utils/depositContract.ts +0 -37
  913. package/src/eth1/utils/deposits.ts +0 -70
  914. package/src/eth1/utils/eth1Data.ts +0 -100
  915. package/src/eth1/utils/eth1DepositEvent.ts +0 -12
  916. package/src/eth1/utils/eth1Vote.ts +0 -142
  917. package/src/eth1/utils/groupDepositEventsByBlock.ts +0 -19
  918. package/src/eth1/utils/optimizeNextBlockDiffForGenesis.ts +0 -18
  919. package/src/execution/builder/cache.ts +0 -39
  920. package/src/execution/builder/http.ts +0 -229
  921. package/src/execution/builder/index.ts +0 -27
  922. package/src/execution/builder/interface.ts +0 -49
  923. package/src/execution/builder/utils.ts +0 -19
  924. package/src/execution/engine/disabled.ts +0 -35
  925. package/src/execution/engine/http.ts +0 -644
  926. package/src/execution/engine/index.ts +0 -63
  927. package/src/execution/engine/interface.ts +0 -199
  928. package/src/execution/engine/mock.ts +0 -493
  929. package/src/execution/engine/payloadIdCache.ts +0 -54
  930. package/src/execution/engine/types.ts +0 -640
  931. package/src/execution/engine/utils.ts +0 -136
  932. package/src/execution/index.ts +0 -4
  933. package/src/index.ts +0 -20
  934. package/src/metrics/index.ts +0 -4
  935. package/src/metrics/metrics/beacon.ts +0 -390
  936. package/src/metrics/metrics/lodestar.ts +0 -1870
  937. package/src/metrics/metrics.ts +0 -43
  938. package/src/metrics/nodeJsMetrics.ts +0 -19
  939. package/src/metrics/options.ts +0 -22
  940. package/src/metrics/server/http.ts +0 -114
  941. package/src/metrics/server/index.ts +0 -1
  942. package/src/metrics/utils/avgMinMax.ts +0 -87
  943. package/src/metrics/utils/gauge.ts +0 -22
  944. package/src/metrics/utils/registryMetricCreator.ts +0 -41
  945. package/src/monitoring/clientStats.ts +0 -297
  946. package/src/monitoring/index.ts +0 -2
  947. package/src/monitoring/options.ts +0 -19
  948. package/src/monitoring/properties.ts +0 -152
  949. package/src/monitoring/service.ts +0 -235
  950. package/src/monitoring/system.ts +0 -146
  951. package/src/monitoring/types.ts +0 -21
  952. package/src/network/core/events.ts +0 -59
  953. package/src/network/core/index.ts +0 -3
  954. package/src/network/core/metrics.ts +0 -304
  955. package/src/network/core/networkCore.ts +0 -599
  956. package/src/network/core/networkCoreWorker.ts +0 -176
  957. package/src/network/core/networkCoreWorkerHandler.ts +0 -284
  958. package/src/network/core/types.ts +0 -119
  959. package/src/network/discv5/index.ts +0 -132
  960. package/src/network/discv5/types.ts +0 -74
  961. package/src/network/discv5/utils.ts +0 -50
  962. package/src/network/discv5/worker.ts +0 -137
  963. package/src/network/events.ts +0 -51
  964. package/src/network/forks.ts +0 -94
  965. package/src/network/gossip/constants.ts +0 -15
  966. package/src/network/gossip/encoding.ts +0 -111
  967. package/src/network/gossip/errors.ts +0 -7
  968. package/src/network/gossip/gossipsub.ts +0 -384
  969. package/src/network/gossip/index.ts +0 -4
  970. package/src/network/gossip/interface.ts +0 -215
  971. package/src/network/gossip/metrics.ts +0 -71
  972. package/src/network/gossip/scoringParameters.ts +0 -333
  973. package/src/network/gossip/topic.ts +0 -332
  974. package/src/network/index.ts +0 -8
  975. package/src/network/interface.ts +0 -134
  976. package/src/network/libp2p/error.ts +0 -55
  977. package/src/network/libp2p/index.ts +0 -153
  978. package/src/network/metadata.ts +0 -162
  979. package/src/network/network.ts +0 -767
  980. package/src/network/networkConfig.ts +0 -12
  981. package/src/network/options.ts +0 -70
  982. package/src/network/peers/client.ts +0 -29
  983. package/src/network/peers/datastore.ts +0 -188
  984. package/src/network/peers/discover.ts +0 -647
  985. package/src/network/peers/index.ts +0 -2
  986. package/src/network/peers/peerManager.ts +0 -899
  987. package/src/network/peers/peersData.ts +0 -65
  988. package/src/network/peers/score/constants.ts +0 -34
  989. package/src/network/peers/score/index.ts +0 -4
  990. package/src/network/peers/score/interface.ts +0 -74
  991. package/src/network/peers/score/score.ts +0 -200
  992. package/src/network/peers/score/store.ts +0 -95
  993. package/src/network/peers/score/utils.ts +0 -37
  994. package/src/network/peers/utils/assertPeerRelevance.ts +0 -99
  995. package/src/network/peers/utils/enrSubnetsDeserialize.ts +0 -27
  996. package/src/network/peers/utils/getConnectedPeerIds.ts +0 -33
  997. package/src/network/peers/utils/index.ts +0 -4
  998. package/src/network/peers/utils/prioritizePeers.ts +0 -627
  999. package/src/network/peers/utils/subnetMap.ts +0 -88
  1000. package/src/network/processor/aggregatorTracker.ts +0 -38
  1001. package/src/network/processor/extractSlotRootFns.ts +0 -64
  1002. package/src/network/processor/gossipHandlers.ts +0 -951
  1003. package/src/network/processor/gossipQueues/index.ts +0 -114
  1004. package/src/network/processor/gossipQueues/indexed.ts +0 -219
  1005. package/src/network/processor/gossipQueues/linear.ts +0 -162
  1006. package/src/network/processor/gossipQueues/types.ts +0 -57
  1007. package/src/network/processor/gossipValidatorFn.ts +0 -142
  1008. package/src/network/processor/index.ts +0 -496
  1009. package/src/network/processor/types.ts +0 -27
  1010. package/src/network/reqresp/ReqRespBeaconNode.ts +0 -373
  1011. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +0 -101
  1012. package/src/network/reqresp/handlers/beaconBlocksByRoot.ts +0 -49
  1013. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +0 -114
  1014. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +0 -62
  1015. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +0 -144
  1016. package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +0 -88
  1017. package/src/network/reqresp/handlers/index.ts +0 -78
  1018. package/src/network/reqresp/handlers/lightClientBootstrap.ts +0 -31
  1019. package/src/network/reqresp/handlers/lightClientFinalityUpdate.ts +0 -21
  1020. package/src/network/reqresp/handlers/lightClientOptimisticUpdate.ts +0 -21
  1021. package/src/network/reqresp/handlers/lightClientUpdatesByRange.ts +0 -39
  1022. package/src/network/reqresp/index.ts +0 -2
  1023. package/src/network/reqresp/interface.ts +0 -45
  1024. package/src/network/reqresp/protocols.ts +0 -146
  1025. package/src/network/reqresp/rateLimit.ts +0 -112
  1026. package/src/network/reqresp/score.ts +0 -70
  1027. package/src/network/reqresp/types.ts +0 -174
  1028. package/src/network/reqresp/utils/collect.ts +0 -84
  1029. package/src/network/reqresp/utils/collectSequentialBlocksInRange.ts +0 -57
  1030. package/src/network/reqresp/utils/dataColumnResponseValidation.ts +0 -99
  1031. package/src/network/statusCache.ts +0 -17
  1032. package/src/network/subnets/attnetsService.ts +0 -385
  1033. package/src/network/subnets/index.ts +0 -2
  1034. package/src/network/subnets/interface.ts +0 -66
  1035. package/src/network/subnets/syncnetsService.ts +0 -147
  1036. package/src/network/subnets/util.ts +0 -63
  1037. package/src/network/util.ts +0 -29
  1038. package/src/node/index.ts +0 -2
  1039. package/src/node/nodejs.ts +0 -349
  1040. package/src/node/notifier.ts +0 -206
  1041. package/src/node/options.ts +0 -51
  1042. package/src/node/utils/interop/deposits.ts +0 -53
  1043. package/src/node/utils/interop/state.ts +0 -59
  1044. package/src/node/utils/lightclient.ts +0 -7
  1045. package/src/node/utils/state.ts +0 -37
  1046. package/src/sync/backfill/backfill.ts +0 -893
  1047. package/src/sync/backfill/errors.ts +0 -23
  1048. package/src/sync/backfill/index.ts +0 -1
  1049. package/src/sync/backfill/verify.ts +0 -58
  1050. package/src/sync/constants.ts +0 -71
  1051. package/src/sync/index.ts +0 -2
  1052. package/src/sync/interface.ts +0 -55
  1053. package/src/sync/options.ts +0 -45
  1054. package/src/sync/range/batch.ts +0 -455
  1055. package/src/sync/range/chain.ts +0 -715
  1056. package/src/sync/range/range.ts +0 -354
  1057. package/src/sync/range/utils/batches.ts +0 -119
  1058. package/src/sync/range/utils/chainTarget.ts +0 -62
  1059. package/src/sync/range/utils/hashBlocks.ts +0 -27
  1060. package/src/sync/range/utils/index.ts +0 -5
  1061. package/src/sync/range/utils/peerBalancer.ts +0 -184
  1062. package/src/sync/range/utils/updateChains.ts +0 -66
  1063. package/src/sync/sync.ts +0 -290
  1064. package/src/sync/types.ts +0 -57
  1065. package/src/sync/unknownBlock.ts +0 -859
  1066. package/src/sync/utils/downloadByRange.ts +0 -808
  1067. package/src/sync/utils/downloadByRoot.ts +0 -560
  1068. package/src/sync/utils/pendingBlocksTree.ts +0 -97
  1069. package/src/sync/utils/remoteSyncType.ts +0 -144
  1070. package/src/util/address.ts +0 -3
  1071. package/src/util/array.ts +0 -311
  1072. package/src/util/asyncIterableToEvents.ts +0 -164
  1073. package/src/util/binarySearch.ts +0 -48
  1074. package/src/util/bitArray.ts +0 -84
  1075. package/src/util/blobs.ts +0 -210
  1076. package/src/util/bufferPool.ts +0 -95
  1077. package/src/util/bytes.ts +0 -11
  1078. package/src/util/chunkify.ts +0 -27
  1079. package/src/util/clock.ts +0 -212
  1080. package/src/util/dataColumns.ts +0 -415
  1081. package/src/util/dependentRoot.ts +0 -47
  1082. package/src/util/enum.ts +0 -17
  1083. package/src/util/error.ts +0 -56
  1084. package/src/util/eventLoop.ts +0 -22
  1085. package/src/util/execution.ts +0 -223
  1086. package/src/util/file.ts +0 -52
  1087. package/src/util/forkChoice.ts +0 -5
  1088. package/src/util/forkName.ts +0 -20
  1089. package/src/util/graffiti.ts +0 -39
  1090. package/src/util/hex.ts +0 -9
  1091. package/src/util/index.ts +0 -2
  1092. package/src/util/ip.ts +0 -6
  1093. package/src/util/itTrigger.ts +0 -49
  1094. package/src/util/kzg.ts +0 -3
  1095. package/src/util/map.ts +0 -77
  1096. package/src/util/metadata.ts +0 -22
  1097. package/src/util/multifork.ts +0 -69
  1098. package/src/util/numpy.ts +0 -8
  1099. package/src/util/peerId.ts +0 -16
  1100. package/src/util/profile.ts +0 -54
  1101. package/src/util/promises.ts +0 -14
  1102. package/src/util/queue/errors.ts +0 -14
  1103. package/src/util/queue/fnQueue.ts +0 -16
  1104. package/src/util/queue/index.ts +0 -4
  1105. package/src/util/queue/itemQueue.ts +0 -128
  1106. package/src/util/queue/options.ts +0 -37
  1107. package/src/util/serializedCache.ts +0 -20
  1108. package/src/util/set.ts +0 -62
  1109. package/src/util/shuffle.ts +0 -21
  1110. package/src/util/sortBy.ts +0 -19
  1111. package/src/util/sszBytes.ts +0 -481
  1112. package/src/util/strictEvents.ts +0 -8
  1113. package/src/util/time.ts +0 -13
  1114. package/src/util/timeSeries.ts +0 -118
  1115. package/src/util/types.ts +0 -31
  1116. package/src/util/workerEvents.ts +0 -142
  1117. package/src/util/wrapError.ts +0 -27
@@ -1,859 +0,0 @@
1
- import {ChainForkConfig} from "@lodestar/config";
2
- import {ForkSeq} from "@lodestar/params";
3
- import {RequestError, RequestErrorCode} from "@lodestar/reqresp";
4
- import {RootHex} from "@lodestar/types";
5
- import {Logger, prettyPrintIndices, pruneSetToMax, sleep} from "@lodestar/utils";
6
- import {isBlockInputBlobs, isBlockInputColumns} from "../chain/blocks/blockInput/blockInput.js";
7
- import {BlockInputSource, IBlockInput} from "../chain/blocks/blockInput/types.js";
8
- import {BlockError, BlockErrorCode} from "../chain/errors/index.js";
9
- import {ChainEvent, ChainEventData, IBeaconChain} from "../chain/index.js";
10
- import {Metrics} from "../metrics/index.js";
11
- import {INetwork, NetworkEvent, NetworkEventData, prettyPrintPeerIdStr} from "../network/index.js";
12
- import {PeerSyncMeta} from "../network/peers/peersData.js";
13
- import {PeerIdStr} from "../util/peerId.js";
14
- import {shuffle} from "../util/shuffle.js";
15
- import {sortBy} from "../util/sortBy.js";
16
- import {wrapError} from "../util/wrapError.js";
17
- import {MAX_CONCURRENT_REQUESTS} from "./constants.js";
18
- import {SyncOptions} from "./options.js";
19
- import {
20
- BlockInputSyncCacheItem,
21
- PendingBlockInput,
22
- PendingBlockInputStatus,
23
- PendingBlockType,
24
- getBlockInputSyncCacheItemRootHex,
25
- getBlockInputSyncCacheItemSlot,
26
- isPendingBlockInput,
27
- } from "./types.js";
28
- import {DownloadByRootError, downloadByRoot} from "./utils/downloadByRoot.js";
29
- import {getAllDescendantBlocks, getDescendantBlocks, getUnknownAndAncestorBlocks} from "./utils/pendingBlocksTree.js";
30
-
31
- const MAX_ATTEMPTS_PER_BLOCK = 5;
32
- const MAX_KNOWN_BAD_BLOCKS = 500;
33
- const MAX_PENDING_BLOCKS = 100;
34
-
35
- enum FetchResult {
36
- SuccessResolved = "success_resolved",
37
- SuccessMissingParent = "success_missing_parent",
38
- SuccessLate = "success_late",
39
- FailureTriedAllPeers = "failure_tried_all_peers",
40
- FailureMaxAttempts = "failure_max_attempts",
41
- }
42
-
43
- /**
44
- * BlockInputSync is a class that handles ReqResp to find blocks and data related to a specific blockRoot. The
45
- * blockRoot may have been found via object gossip, or the API. Gossip objects that can trigger a search are block,
46
- * blobs, columns, attestations, etc. In the case of blocks and data this is generally during the current slot but
47
- * can also be for items that are received late but are not fully verified and thus not in fork-choice (old blocks on
48
- * an unknown fork). It can also be triggered via an attestation (or sync committee message or any other item that
49
- * gets gossiped) that references a blockRoot that is not in fork-choice. In rare (and realistically should not happen)
50
- * situations it can get triggered via the API when the validator attempts to publish a block, attestation, aggregate
51
- * and proof or a sync committee contribution that has unknown information included (parentRoot for instance).
52
- *
53
- * The goal of the class is to make sure that all information that is necessary for import into fork-choice is pulled
54
- * from peers so that the block and data can be processed, and thus the object that triggered the search can be
55
- * referenced and validated.
56
- *
57
- * The most common case for this search is a set of block/data that comes across gossip for the current slot, during
58
- * normal chain operation, but not everything was received before the gossip cutoff window happens so it is necessary
59
- * to pull remaining data via req/resp so that fork-choice can be updated prior to making an attestation for the
60
- * current slot.
61
- *
62
- * Event sources for old UnknownBlock
63
- *
64
- * - publishBlock
65
- * - gossipHandlers
66
- * - searchUnknownSlotRoot
67
- * = produceSyncCommitteeContribution
68
- * = validateGossipFnRetryUnknownRoot
69
- * * submitPoolAttestationsV2
70
- * * publishAggregateAndProofsV2
71
- * = onPendingGossipsubMessage
72
- * * NetworkEvent.pendingGossipsubMessage
73
- * - onGossipsubMessage
74
- */
75
- export class BlockInputSync {
76
- /**
77
- * block RootHex -> PendingBlock. To avoid finding same root at the same time
78
- */
79
- private readonly pendingBlocks = new Map<RootHex, BlockInputSyncCacheItem>();
80
- private readonly knownBadBlocks = new Set<RootHex>();
81
- private readonly maxPendingBlocks;
82
- private subscribedToNetworkEvents = false;
83
- private peerBalancer: UnknownBlockPeerBalancer;
84
-
85
- constructor(
86
- private readonly config: ChainForkConfig,
87
- private readonly network: INetwork,
88
- private readonly chain: IBeaconChain,
89
- private readonly logger: Logger,
90
- private readonly metrics: Metrics | null,
91
- private readonly opts?: SyncOptions
92
- ) {
93
- this.maxPendingBlocks = opts?.maxPendingBlocks ?? MAX_PENDING_BLOCKS;
94
- this.peerBalancer = new UnknownBlockPeerBalancer();
95
-
96
- if (metrics) {
97
- metrics.blockInputSync.pendingBlocks.addCollect(() =>
98
- metrics.blockInputSync.pendingBlocks.set(this.pendingBlocks.size)
99
- );
100
- metrics.blockInputSync.knownBadBlocks.addCollect(() =>
101
- metrics.blockInputSync.knownBadBlocks.set(this.knownBadBlocks.size)
102
- );
103
- }
104
- }
105
-
106
- subscribeToNetwork(): void {
107
- if (this.opts?.disableBlockInputSync) {
108
- this.logger.verbose("BlockInputSync disabled by disableBlockInputSync option.");
109
- return;
110
- }
111
-
112
- // cannot chain to the above if or the log will be incorrect
113
- if (!this.subscribedToNetworkEvents) {
114
- this.logger.verbose("BlockInputSync enabled.");
115
- this.chain.emitter.on(ChainEvent.unknownBlockRoot, this.onUnknownBlockRoot);
116
- this.chain.emitter.on(ChainEvent.incompleteBlockInput, this.onIncompleteBlockInput);
117
- this.chain.emitter.on(ChainEvent.unknownParent, this.onUnknownParent);
118
- this.network.events.on(NetworkEvent.peerConnected, this.onPeerConnected);
119
- this.network.events.on(NetworkEvent.peerDisconnected, this.onPeerDisconnected);
120
- this.subscribedToNetworkEvents = true;
121
- }
122
- }
123
-
124
- unsubscribeFromNetwork(): void {
125
- this.logger.verbose("BlockInputSync disabled.");
126
- this.chain.emitter.off(ChainEvent.unknownBlockRoot, this.onUnknownBlockRoot);
127
- this.chain.emitter.off(ChainEvent.incompleteBlockInput, this.onIncompleteBlockInput);
128
- this.chain.emitter.off(ChainEvent.unknownParent, this.onUnknownParent);
129
- this.network.events.off(NetworkEvent.peerConnected, this.onPeerConnected);
130
- this.network.events.off(NetworkEvent.peerDisconnected, this.onPeerDisconnected);
131
- this.subscribedToNetworkEvents = false;
132
- }
133
-
134
- close(): void {
135
- this.unsubscribeFromNetwork();
136
- }
137
-
138
- isSubscribedToNetwork(): boolean {
139
- return this.subscribedToNetworkEvents;
140
- }
141
-
142
- /**
143
- * Process an unknownBlock event and register the block in `pendingBlocks` Map.
144
- */
145
- private onUnknownBlockRoot = (data: ChainEventData[ChainEvent.unknownBlockRoot]): void => {
146
- try {
147
- this.addByRootHex(data.rootHex, data.peer);
148
- this.triggerUnknownBlockSearch();
149
- this.metrics?.blockInputSync.requests.inc({type: PendingBlockType.UNKNOWN_BLOCK_ROOT});
150
- this.metrics?.blockInputSync.source.inc({source: data.source});
151
- } catch (e) {
152
- this.logger.debug("Error handling unknownBlockRoot event", {}, e as Error);
153
- }
154
- };
155
-
156
- /**
157
- * Process an unknownBlockInput event and register the block in `pendingBlocks` Map.
158
- */
159
- private onIncompleteBlockInput = (data: ChainEventData[ChainEvent.incompleteBlockInput]): void => {
160
- try {
161
- this.addByBlockInput(data.blockInput, data.peer);
162
- this.triggerUnknownBlockSearch();
163
- this.metrics?.blockInputSync.requests.inc({type: PendingBlockType.INCOMPLETE_BLOCK_INPUT});
164
- this.metrics?.blockInputSync.source.inc({source: data.source});
165
- } catch (e) {
166
- this.logger.debug("Error handling incompleteBlockInput event", {}, e as Error);
167
- }
168
- };
169
-
170
- /**
171
- * Process an unknownBlockParent event and register the block in `pendingBlocks` Map.
172
- */
173
- private onUnknownParent = (data: ChainEventData[ChainEvent.unknownParent]): void => {
174
- try {
175
- this.addByRootHex(data.blockInput.parentRootHex, data.peer);
176
- this.addByBlockInput(data.blockInput, data.peer);
177
- this.triggerUnknownBlockSearch();
178
- this.metrics?.blockInputSync.requests.inc({type: PendingBlockType.UNKNOWN_PARENT});
179
- this.metrics?.blockInputSync.source.inc({source: data.source});
180
- } catch (e) {
181
- this.logger.debug("Error handling unknownParent event", {}, e as Error);
182
- }
183
- };
184
-
185
- private addByRootHex = (rootHex: RootHex, peerIdStr?: PeerIdStr): void => {
186
- let pendingBlock = this.pendingBlocks.get(rootHex);
187
- if (!pendingBlock) {
188
- pendingBlock = {
189
- status: PendingBlockInputStatus.pending,
190
- rootHex: rootHex,
191
- peerIdStrings: new Set(),
192
- timeAddedSec: Date.now() / 1000,
193
- };
194
- this.pendingBlocks.set(rootHex, pendingBlock);
195
-
196
- this.logger.verbose("Added new rootHex to BlockInputSync.pendingBlocks", {
197
- root: pendingBlock.rootHex,
198
- peerIdStr: peerIdStr ?? "unknown peer",
199
- });
200
- }
201
-
202
- if (peerIdStr) {
203
- pendingBlock.peerIdStrings.add(peerIdStr);
204
- }
205
-
206
- // TODO: check this prune methodology
207
- // Limit pending blocks to prevent DOS attacks that cause OOM
208
- const prunedItemCount = pruneSetToMax(this.pendingBlocks, this.maxPendingBlocks);
209
- if (prunedItemCount > 0) {
210
- this.logger.verbose(`Pruned ${prunedItemCount} items from BlockInputSync.pendingBlocks`);
211
- }
212
- };
213
-
214
- private addByBlockInput = (blockInput: IBlockInput, peerIdStr?: string): void => {
215
- let pendingBlock = this.pendingBlocks.get(blockInput.blockRootHex);
216
- // if entry is missing or was added via rootHex and now we have more complete information overwrite
217
- // the existing information with the more complete cache entry
218
- if (!pendingBlock || !isPendingBlockInput(pendingBlock)) {
219
- pendingBlock = {
220
- // can be added via unknown parent and we may already have full block input. need to check and set correctly
221
- // so we pull the data if its missing or handle the block correctly in getIncompleteAndAncestorBlocks
222
- status: blockInput.hasBlockAndAllData() ? PendingBlockInputStatus.downloaded : PendingBlockInputStatus.pending,
223
- blockInput,
224
- peerIdStrings: new Set(),
225
- timeAddedSec: Date.now() / 1000,
226
- };
227
- this.pendingBlocks.set(blockInput.blockRootHex, pendingBlock);
228
-
229
- this.logger.verbose("Added blockInput to BlockInputSync.pendingBlocks", pendingBlock.blockInput.getLogMeta());
230
- }
231
-
232
- if (peerIdStr) {
233
- pendingBlock.peerIdStrings.add(peerIdStr);
234
- }
235
-
236
- // TODO: check this prune methodology
237
- // Limit pending blocks to prevent DOS attacks that cause OOM
238
- const prunedItemCount = pruneSetToMax(this.pendingBlocks, this.maxPendingBlocks);
239
- if (prunedItemCount > 0) {
240
- this.logger.verbose(`Pruned ${prunedItemCount} items from BlockInputSync.pendingBlocks`);
241
- }
242
- };
243
-
244
- private onPeerConnected = (data: NetworkEventData[NetworkEvent.peerConnected]): void => {
245
- try {
246
- const peerId = data.peer;
247
- const peerSyncMeta = this.network.getConnectedPeerSyncMeta(peerId);
248
- this.peerBalancer.onPeerConnected(data.peer, peerSyncMeta);
249
- this.triggerUnknownBlockSearch();
250
- } catch (e) {
251
- this.logger.debug("Error handling peerConnected event", {}, e as Error);
252
- }
253
- };
254
-
255
- private onPeerDisconnected = (data: NetworkEventData[NetworkEvent.peerDisconnected]): void => {
256
- const peerId = data.peer;
257
- this.peerBalancer.onPeerDisconnected(peerId);
258
- };
259
-
260
- /**
261
- * Gather tip parent blocks with unknown parent and do a search for all of them
262
- */
263
- private triggerUnknownBlockSearch = (): void => {
264
- // Cheap early stop to prevent calling the network.getConnectedPeers()
265
- if (this.pendingBlocks.size === 0) {
266
- return;
267
- }
268
-
269
- // If the node loses all peers with pending unknown blocks, the sync will stall
270
- const connectedPeers = this.network.getConnectedPeers();
271
- if (connectedPeers.length === 0) {
272
- this.logger.debug("No connected peers, skipping unknown block search.");
273
- return;
274
- }
275
-
276
- const {unknowns, ancestors} = getUnknownAndAncestorBlocks(this.pendingBlocks);
277
- // it's rare when there is no unknown block
278
- // see https://github.com/ChainSafe/lodestar/issues/5649#issuecomment-1594213550
279
- if (unknowns.length === 0) {
280
- let processedBlocks = 0;
281
-
282
- for (const block of ancestors) {
283
- // when this happens, it's likely the block and parent block are processed by head sync
284
- if (this.chain.forkChoice.hasBlockHex(block.blockInput.parentRootHex)) {
285
- processedBlocks++;
286
- this.processBlock(block).catch((e) => {
287
- this.logger.debug("Unexpected error - process old downloaded block", {}, e);
288
- });
289
- }
290
- }
291
-
292
- this.logger.verbose("No unknown block, process ancestor downloaded blocks", {
293
- pendingBlocks: this.pendingBlocks.size,
294
- ancestorBlocks: ancestors.length,
295
- processedBlocks,
296
- });
297
- return;
298
- }
299
-
300
- // most of the time there is exactly 1 unknown block
301
- for (const block of unknowns) {
302
- this.downloadBlock(block).catch((e) => {
303
- this.logger.debug("Unexpected error - downloadBlock", {root: getBlockInputSyncCacheItemRootHex(block)}, e);
304
- });
305
- }
306
- };
307
-
308
- private async downloadBlock(block: BlockInputSyncCacheItem): Promise<void> {
309
- if (block.status !== PendingBlockInputStatus.pending) {
310
- return;
311
- }
312
-
313
- const rootHex = getBlockInputSyncCacheItemRootHex(block);
314
- const logCtx = {
315
- slot: getBlockInputSyncCacheItemSlot(block),
316
- root: rootHex,
317
- pendingBlocks: this.pendingBlocks.size,
318
- };
319
-
320
- this.logger.verbose("BlockInputSync.downloadBlock()", logCtx);
321
-
322
- block.status = PendingBlockInputStatus.fetching;
323
-
324
- const res = await wrapError(this.fetchBlockInput(block));
325
-
326
- if (!res.err) {
327
- this.metrics?.blockInputSync.downloadedBlocksSuccess.inc();
328
- const pending = res.result;
329
- this.pendingBlocks.set(pending.blockInput.blockRootHex, pending);
330
- const blockSlot = pending.blockInput.slot;
331
- const finalizedSlot = this.chain.forkChoice.getFinalizedBlock().slot;
332
- const delaySec = Date.now() / 1000 - (this.chain.genesisTime + blockSlot * this.config.SECONDS_PER_SLOT);
333
- this.metrics?.blockInputSync.elapsedTimeTillReceived.observe(delaySec);
334
-
335
- const parentInForkChoice = this.chain.forkChoice.hasBlockHex(pending.blockInput.parentRootHex);
336
- const logCtx2 = {
337
- ...logCtx,
338
- slot: blockSlot,
339
- parentInForkChoice,
340
- };
341
- this.logger.verbose("Downloaded unknown block", logCtx2);
342
-
343
- if (parentInForkChoice) {
344
- // Bingo! Process block. Add to pending blocks anyway for recycle the cache that prevents duplicate processing
345
- this.processBlock(pending).catch((e) => {
346
- this.logger.debug("Unexpected error - process newly downloaded block", logCtx2, e);
347
- });
348
- } else if (blockSlot <= finalizedSlot) {
349
- // the common ancestor of the downloading chain and canonical chain should be at least the finalized slot and
350
- // we should found it through forkchoice. If not, we should penalize all peers sending us this block chain
351
- // 0 - 1 - ... - n - finalizedSlot
352
- // \
353
- // parent 1 - parent 2 - ... - unknownParent block
354
- this.logger.debug("Downloaded block is before finalized slot", {
355
- ...logCtx2,
356
- finalizedSlot,
357
- });
358
- this.removeAndDownScoreAllDescendants(block);
359
- } else {
360
- this.onUnknownBlockRoot({rootHex: pending.blockInput.parentRootHex, source: BlockInputSource.byRoot});
361
- }
362
- } else {
363
- this.metrics?.blockInputSync.downloadedBlocksError.inc();
364
- this.logger.debug("Ignoring unknown block root after many failed downloads", logCtx, res.err);
365
- this.removeAndDownScoreAllDescendants(block);
366
- }
367
- }
368
-
369
- /**
370
- * Send block to the processor awaiting completition. If processed successfully, send all children to the processor.
371
- * On error, remove and downscore all descendants.
372
- * This function could run recursively for all descendant blocks
373
- */
374
- private async processBlock(pendingBlock: PendingBlockInput): Promise<void> {
375
- // pending block status is `downloaded` right after `downloadBlock`
376
- // but could be `pending` if added by `onUnknownBlockParent` event and this function is called recursively
377
- if (pendingBlock.status !== PendingBlockInputStatus.downloaded) {
378
- if (pendingBlock.status === PendingBlockInputStatus.pending) {
379
- const connectedPeers = this.network.getConnectedPeers();
380
- if (connectedPeers.length === 0) {
381
- this.logger.debug("No connected peers, skipping download block", {
382
- slot: pendingBlock.blockInput.slot,
383
- blockRoot: pendingBlock.blockInput.blockRootHex,
384
- });
385
- return;
386
- }
387
- // if the download is a success we'll call `processBlock()` for this block
388
- await this.downloadBlock(pendingBlock);
389
- }
390
- return;
391
- }
392
-
393
- pendingBlock.status = PendingBlockInputStatus.processing;
394
- // this prevents unbundling attack
395
- // see https://lighthouse-blog.sigmaprime.io/mev-unbundling-rpc.html
396
- const {slot: blockSlot, proposerIndex} = pendingBlock.blockInput.getBlock().message;
397
- const fork = this.config.getForkName(blockSlot);
398
- const proposerBoostWindowMs = this.config.getAttestationDueMs(fork);
399
- if (
400
- this.chain.clock.msFromSlot(blockSlot) < proposerBoostWindowMs &&
401
- this.chain.seenBlockProposers.isKnown(blockSlot, proposerIndex)
402
- ) {
403
- // proposer is known by a gossip block already, wait a bit to make sure this block is not
404
- // eligible for proposer boost to prevent unbundling attack
405
- this.logger.verbose("Avoid proposer boost for this block of known proposer", {
406
- slot: blockSlot,
407
- root: pendingBlock.blockInput.blockRootHex,
408
- proposerIndex,
409
- });
410
- await sleep(proposerBoostWindowMs);
411
- }
412
- // At gossip time, it's critical to keep a good number of mesh peers.
413
- // To do that, the Gossip Job Wait Time should be consistently <3s to avoid the behavior penalties in gossip
414
- // Gossip Job Wait Time depends on the BLS Job Wait Time
415
- // so `blsVerifyOnMainThread = true`: we want to verify signatures immediately without affecting the bls thread pool.
416
- // otherwise we can't utilize bls thread pool capacity and Gossip Job Wait Time can't be kept low consistently.
417
- // See https://github.com/ChainSafe/lodestar/issues/3792
418
- const res = await wrapError(
419
- this.chain.processBlock(pendingBlock.blockInput, {
420
- ignoreIfKnown: true,
421
- // there could be finalized/head sync at the same time so we need to ignore if finalized
422
- // see https://github.com/ChainSafe/lodestar/issues/5650
423
- ignoreIfFinalized: true,
424
- blsVerifyOnMainThread: true,
425
- // block is validated with correct root, we want to process it as soon as possible
426
- eagerPersistBlock: true,
427
- })
428
- );
429
-
430
- if (res.err) this.metrics?.blockInputSync.processedBlocksError.inc();
431
- else this.metrics?.blockInputSync.processedBlocksSuccess.inc();
432
-
433
- if (!res.err) {
434
- // no need to update status to "processed", delete anyway
435
- this.pendingBlocks.delete(pendingBlock.blockInput.blockRootHex);
436
- this.chain.seenBlockInputCache.prune(pendingBlock.blockInput.blockRootHex);
437
-
438
- // Send child blocks to the processor
439
- for (const descendantBlock of getDescendantBlocks(pendingBlock.blockInput.blockRootHex, this.pendingBlocks)) {
440
- if (isPendingBlockInput(descendantBlock)) {
441
- this.processBlock(descendantBlock).catch((e) => {
442
- this.logger.debug("Unexpected error - process descendant block", {}, e);
443
- });
444
- }
445
- }
446
- } else {
447
- const errorData = {slot: pendingBlock.blockInput.slot, root: pendingBlock.blockInput.blockRootHex};
448
- if (res.err instanceof BlockError) {
449
- switch (res.err.type.code) {
450
- // This cases are already handled with `{ignoreIfKnown: true}`
451
- // case BlockErrorCode.ALREADY_KNOWN:
452
- // case BlockErrorCode.GENESIS_BLOCK:
453
-
454
- case BlockErrorCode.PARENT_UNKNOWN:
455
- case BlockErrorCode.PRESTATE_MISSING:
456
- // Should not happen, mark as downloaded to try again latter
457
- this.logger.debug("Attempted to process block but its parent was still unknown", errorData, res.err);
458
- pendingBlock.status = PendingBlockInputStatus.downloaded;
459
- break;
460
-
461
- case BlockErrorCode.EXECUTION_ENGINE_ERROR:
462
- // Removing the block(s) without penalizing the peers, hoping for EL to
463
- // recover on a latter download + verify attempt
464
- this.removeAllDescendants(pendingBlock);
465
- break;
466
-
467
- default:
468
- // Block is not correct with respect to our chain. Log error loudly
469
- this.logger.debug("Error processing block from unknown parent sync", errorData, res.err);
470
- this.removeAndDownScoreAllDescendants(pendingBlock);
471
- }
472
- }
473
-
474
- // Probably a queue error or something unwanted happened, mark as pending to try again latter
475
- else {
476
- this.logger.debug("Unknown error processing block from unknown block sync", errorData, res.err);
477
- pendingBlock.status = PendingBlockInputStatus.downloaded;
478
- }
479
- }
480
- }
481
-
482
- /**
483
- * From a set of shuffled peers:
484
- * - fetch the block
485
- * - from deneb, fetch all missing blobs
486
- * - from peerDAS, fetch sampled colmns
487
- * TODO: this means we only have block root, and nothing else. Consider to reflect this in the function name
488
- * prefulu, will attempt a max of `MAX_ATTEMPTS_PER_BLOCK` on different peers, postfulu we may attempt more as defined in `getMaxDownloadAttempts()` function
489
- * Also verifies the received block root + returns the peer that provided the block for future downscoring.
490
- */
491
- private async fetchBlockInput(cacheItem: BlockInputSyncCacheItem): Promise<PendingBlockInput> {
492
- const rootHex = getBlockInputSyncCacheItemRootHex(cacheItem);
493
- const excludedPeers = new Set<PeerIdStr>();
494
- const defaultPendingColumns =
495
- this.config.getForkSeq(this.chain.clock.currentSlot) >= ForkSeq.fulu
496
- ? new Set(this.network.custodyConfig.sampledColumns)
497
- : null;
498
-
499
- const fetchStartSec = Date.now() / 1000;
500
- let slot = isPendingBlockInput(cacheItem) ? cacheItem.blockInput.slot : undefined;
501
- if (slot !== undefined) {
502
- this.metrics?.blockInputSync.fetchBegin.observe(this.chain.clock.secFromSlot(slot, fetchStartSec));
503
- }
504
-
505
- let i = 0;
506
- while (i++ < this.getMaxDownloadAttempts()) {
507
- const pendingColumns =
508
- isPendingBlockInput(cacheItem) && isBlockInputColumns(cacheItem.blockInput)
509
- ? new Set(cacheItem.blockInput.getMissingSampledColumnMeta().missing)
510
- : defaultPendingColumns;
511
- // pendingDataColumns is null pre-fulu
512
- const peerMeta = this.peerBalancer.bestPeerForPendingColumns(pendingColumns, excludedPeers);
513
- if (peerMeta === null) {
514
- // no more peer with needed columns to try, throw error
515
- let message = `Error fetching UnknownBlockRoot slot=${slot} root=${rootHex} after ${i}: cannot find peer`;
516
- if (pendingColumns) {
517
- message += ` with needed columns=${prettyPrintIndices(Array.from(pendingColumns))}`;
518
- }
519
- this.metrics?.blockInputSync.fetchTimeSec.observe(
520
- {result: FetchResult.FailureTriedAllPeers},
521
- Date.now() / 1000 - fetchStartSec
522
- );
523
- this.metrics?.blockInputSync.fetchPeers.set({result: FetchResult.FailureTriedAllPeers}, i);
524
- throw Error(message);
525
- }
526
- const {peerId, client: peerClient} = peerMeta;
527
-
528
- cacheItem.peerIdStrings.add(peerId);
529
-
530
- try {
531
- const downloadResult = await downloadByRoot({
532
- config: this.config,
533
- network: this.network,
534
- seenCache: this.chain.seenBlockInputCache,
535
- emitter: this.chain.emitter,
536
- peerMeta,
537
- cacheItem,
538
- });
539
- cacheItem = downloadResult.result;
540
- if (slot === undefined) {
541
- slot = cacheItem.blockInput.slot;
542
- // we were not able to observe the time into slot when starting the fetch, do it now
543
- this.metrics?.blockInputSync.fetchBegin.observe(this.chain.clock.secFromSlot(slot, fetchStartSec));
544
- }
545
-
546
- const logCtx = {slot, rootHex, peerId, peerClient};
547
- this.logger.verbose("BlockInputSync.fetchBlockInput: successful download", logCtx);
548
- this.metrics?.blockInputSync.downloadByRoot.success.inc();
549
- const warnings = downloadResult.warnings;
550
- if (warnings) {
551
- for (const warning of warnings) {
552
- this.logger.debug("BlockInputSync.fetchBlockInput: downloaded with warning", logCtx, warning);
553
- this.metrics?.blockInputSync.downloadByRoot.warn.inc({code: warning.type.code, client: peerClient});
554
- }
555
- // TODO: penalize peer?
556
- }
557
- } catch (e) {
558
- this.logger.debug(
559
- "Error downloading in BlockInputSync.fetchBlockInput",
560
- {slot, rootHex, attempt: i, peer: peerId, peerClient},
561
- e as Error
562
- );
563
- const downloadByRootMetrics = this.metrics?.blockInputSync.downloadByRoot;
564
- // TODO: penalize peer?
565
- if (e instanceof DownloadByRootError) {
566
- const errorCode = e.type.code;
567
- downloadByRootMetrics?.error.inc({code: errorCode, client: peerClient});
568
- excludedPeers.add(peerId);
569
- } else if (e instanceof RequestError) {
570
- // should look into req_resp metrics in this case
571
- downloadByRootMetrics?.error.inc({code: "req_resp", client: peerClient});
572
- switch (e.type.code) {
573
- case RequestErrorCode.REQUEST_RATE_LIMITED:
574
- case RequestErrorCode.REQUEST_TIMEOUT:
575
- // do not exclude peer for these errors
576
- break;
577
- default:
578
- excludedPeers.add(peerId);
579
- break;
580
- }
581
- } else {
582
- // investigate if this happens
583
- downloadByRootMetrics?.error.inc({code: "unknown", client: peerClient});
584
- excludedPeers.add(peerId);
585
- }
586
- } finally {
587
- this.peerBalancer.onRequestCompleted(peerId);
588
- }
589
-
590
- this.pendingBlocks.set(getBlockInputSyncCacheItemRootHex(cacheItem), cacheItem);
591
-
592
- if (cacheItem.status === PendingBlockInputStatus.downloaded) {
593
- // download was successful, no need to go with another peer, return
594
- const result = this.chain.forkChoice.hasBlockHex(cacheItem.blockInput.blockRootHex)
595
- ? FetchResult.SuccessLate
596
- : this.chain.forkChoice.hasBlockHex(cacheItem.blockInput.parentRootHex)
597
- ? FetchResult.SuccessResolved
598
- : FetchResult.SuccessMissingParent;
599
- this.metrics?.blockInputSync.fetchTimeSec.observe({result}, Date.now() / 1000 - fetchStartSec);
600
- this.metrics?.blockInputSync.fetchPeers.set({result}, i);
601
- return cacheItem;
602
- }
603
- } // end while loop over peers
604
-
605
- const message = `Error fetching BlockInput with slot=${slot} root=${rootHex} after ${i - 1} attempts.`;
606
-
607
- if (!isPendingBlockInput(cacheItem)) {
608
- throw Error(`${message} No block and no data was found.`);
609
- }
610
-
611
- if (!cacheItem.blockInput.hasBlock()) {
612
- throw new Error(`${message} Block was not found.`);
613
- }
614
-
615
- if (isBlockInputBlobs(cacheItem.blockInput)) {
616
- const missing = cacheItem.blockInput.getMissingBlobMeta().map((b) => b.index);
617
- if (missing.length) {
618
- throw new Error(`${message} Missing blob indices=${prettyPrintIndices(missing)}.`);
619
- }
620
- }
621
-
622
- if (isBlockInputColumns(cacheItem.blockInput)) {
623
- const missing = cacheItem.blockInput.getMissingSampledColumnMeta().missing;
624
- if (missing.length) {
625
- throw new Error(`${message} Missing column indices=${prettyPrintIndices(missing)}.`);
626
- }
627
- }
628
-
629
- this.metrics?.blockInputSync.fetchTimeSec.observe(
630
- {result: FetchResult.FailureMaxAttempts},
631
- Date.now() / 1000 - fetchStartSec
632
- );
633
- this.metrics?.blockInputSync.fetchPeers.set({result: FetchResult.FailureMaxAttempts}, i - 1);
634
-
635
- throw Error(message);
636
- }
637
-
638
- /**
639
- * Gets all descendant blocks of `block` recursively from `pendingBlocks`.
640
- * Assumes that if a parent block does not exist or is not processable, all descendant blocks are bad too.
641
- * Downscore all peers that have referenced any of this bad blocks. May report peers multiple times if they have
642
- * referenced more than one bad block.
643
- */
644
- private removeAndDownScoreAllDescendants(block: BlockInputSyncCacheItem): void {
645
- // Get all blocks that are a descendant of this one
646
- const badPendingBlocks = this.removeAllDescendants(block);
647
- // just console log and do not penalize on pending/bad blocks for debugging
648
- // console.log("removeAndDownscoreAllDescendants", {block});
649
-
650
- for (const block of badPendingBlocks) {
651
- //
652
- // TODO(fulu): why is this commented out here?
653
- //
654
- // this.knownBadBlocks.add(block.blockRootHex);
655
- // for (const peerIdStr of block.peerIdStrs) {
656
- // // TODO: Refactor peerRpcScores to work with peerIdStr only
657
- // this.network.reportPeer(peerIdStr, PeerAction.LowToleranceError, "BadBlockByRoot");
658
- // }
659
- this.logger.debug("ignored Banning unknown block", {
660
- slot: getBlockInputSyncCacheItemSlot(block),
661
- root: getBlockInputSyncCacheItemRootHex(block),
662
- peerIdStrings: Array.from(block.peerIdStrings)
663
- .map((id) => prettyPrintPeerIdStr(id))
664
- .join(","),
665
- });
666
- }
667
-
668
- // Prune knownBadBlocks
669
- pruneSetToMax(this.knownBadBlocks, MAX_KNOWN_BAD_BLOCKS);
670
- }
671
-
672
- private removeAllDescendants(block: BlockInputSyncCacheItem): BlockInputSyncCacheItem[] {
673
- const rootHex = getBlockInputSyncCacheItemRootHex(block);
674
- const slot = getBlockInputSyncCacheItemSlot(block);
675
- // Get all blocks that are a descendant of this one
676
- const badPendingBlocks = [block, ...getAllDescendantBlocks(rootHex, this.pendingBlocks)];
677
-
678
- this.metrics?.blockInputSync.removedBlocks.inc(badPendingBlocks.length);
679
-
680
- for (const block of badPendingBlocks) {
681
- const rootHex = getBlockInputSyncCacheItemRootHex(block);
682
- this.pendingBlocks.delete(rootHex);
683
- this.chain.seenBlockInputCache.prune(rootHex);
684
- this.logger.debug("Removing bad/unknown/incomplete BlockInputSyncCacheItem", {
685
- slot,
686
- blockRoot: rootHex,
687
- });
688
- }
689
-
690
- return badPendingBlocks;
691
- }
692
-
693
- private getMaxDownloadAttempts(): number {
694
- if (this.config.getForkSeq(this.chain.clock.currentSlot) < ForkSeq.fulu) {
695
- return MAX_ATTEMPTS_PER_BLOCK;
696
- }
697
-
698
- // TODO: I consider max 20 downloads per block for a supernode is enough for devnets
699
- // review this computation for public testnets or mainnet
700
- return Math.min(
701
- 20,
702
- (MAX_ATTEMPTS_PER_BLOCK * this.network.custodyConfig.sampleGroups.length) / this.config.SAMPLES_PER_SLOT
703
- );
704
- }
705
- }
706
-
707
- /**
708
- * Class to track active byRoots requests and balance them across eligible peers.
709
- */
710
- export class UnknownBlockPeerBalancer {
711
- readonly peersMeta: Map<PeerIdStr, PeerSyncMeta>;
712
- readonly activeRequests: Map<PeerIdStr, number>;
713
-
714
- constructor() {
715
- this.peersMeta = new Map();
716
- this.activeRequests = new Map();
717
- }
718
-
719
- /** Trigger on each peer re-status */
720
- onPeerConnected(peerId: PeerIdStr, syncMeta: PeerSyncMeta): void {
721
- this.peersMeta.set(peerId, syncMeta);
722
-
723
- if (!this.activeRequests.has(peerId)) {
724
- this.activeRequests.set(peerId, 0);
725
- }
726
- }
727
-
728
- onPeerDisconnected(peerId: PeerIdStr): void {
729
- this.peersMeta.delete(peerId);
730
- this.activeRequests.delete(peerId);
731
- }
732
-
733
- /**
734
- * called from fetchUnknownBlockRoot() where we only have block root and nothing else
735
- * excludedPeers are the peers that we requested already so we don't want to try again
736
- * pendingColumns is empty for prefulu, or the 1st time we we download a block by root
737
- */
738
- bestPeerForPendingColumns(pendingColumns: Set<number> | null, excludedPeers: Set<PeerIdStr>): PeerSyncMeta | null {
739
- const eligiblePeers = this.filterPeers(pendingColumns, excludedPeers);
740
- if (eligiblePeers.length === 0) {
741
- return null;
742
- }
743
-
744
- const sortedEligiblePeers = sortBy(
745
- shuffle(eligiblePeers),
746
- // prefer peers with least active req
747
- (peerId) => this.activeRequests.get(peerId) ?? 0
748
- );
749
-
750
- const bestPeerId = sortedEligiblePeers[0];
751
- this.onRequest(bestPeerId);
752
- return this.peersMeta.get(bestPeerId) ?? null;
753
- }
754
-
755
- /**
756
- * called from fetchUnavailableBlockInput() where we have either BlockInput or NullBlockInput
757
- * excludedPeers are the peers that we requested already so we don't want to try again
758
- */
759
- bestPeerForBlockInput(blockInput: IBlockInput, excludedPeers: Set<PeerIdStr>): PeerSyncMeta | null {
760
- const eligiblePeers: PeerIdStr[] = [];
761
-
762
- if (isBlockInputColumns(blockInput)) {
763
- const pendingDataColumns: Set<number> = new Set(blockInput.getMissingSampledColumnMeta().missing);
764
- // there could be no pending column in case when block is still missing
765
- eligiblePeers.push(...this.filterPeers(pendingDataColumns, excludedPeers));
766
- } else {
767
- // prefulu
768
- eligiblePeers.push(...this.filterPeers(null, excludedPeers));
769
- }
770
-
771
- if (eligiblePeers.length === 0) {
772
- return null;
773
- }
774
-
775
- const sortedEligiblePeers = sortBy(
776
- shuffle(eligiblePeers),
777
- // prefer peers with least active req
778
- (peerId) => this.activeRequests.get(peerId) ?? 0
779
- );
780
-
781
- const bestPeerId = sortedEligiblePeers[0];
782
- this.onRequest(bestPeerId);
783
- return this.peersMeta.get(bestPeerId) ?? null;
784
- }
785
-
786
- /**
787
- * Consumers don't need to call this method directly, it is called internally by bestPeer*() methods
788
- * make this public for testing
789
- */
790
- onRequest(peerId: PeerIdStr): void {
791
- this.activeRequests.set(peerId, (this.activeRequests.get(peerId) ?? 0) + 1);
792
- }
793
-
794
- /**
795
- * Consumers should call this method when a request is completed for a peer.
796
- */
797
- onRequestCompleted(peerId: PeerIdStr): void {
798
- this.activeRequests.set(peerId, Math.max(0, (this.activeRequests.get(peerId) ?? 1) - 1));
799
- }
800
-
801
- getTotalActiveRequests(): number {
802
- let totalActiveRequests = 0;
803
- for (const count of this.activeRequests.values()) {
804
- totalActiveRequests += count;
805
- }
806
- return totalActiveRequests;
807
- }
808
-
809
- // pendingDataColumns could be null for prefulu
810
- private filterPeers(pendingDataColumns: Set<number> | null, excludedPeers: Set<PeerIdStr>): PeerIdStr[] {
811
- let maxColumnCount = 0;
812
- const considerPeers: {peerId: PeerIdStr; columnCount: number}[] = [];
813
- for (const [peerId, syncMeta] of this.peersMeta.entries()) {
814
- if (excludedPeers.has(peerId)) {
815
- // made request to this peer already
816
- continue;
817
- }
818
-
819
- const activeRequests = this.activeRequests.get(peerId) ?? 0;
820
- if (activeRequests >= MAX_CONCURRENT_REQUESTS) {
821
- // should return peer with no more than MAX_CONCURRENT_REQUESTS active requests
822
- continue;
823
- }
824
-
825
- if (pendingDataColumns === null || pendingDataColumns.size === 0) {
826
- // prefulu, no pending columns
827
- considerPeers.push({peerId, columnCount: 0});
828
- continue;
829
- }
830
-
831
- // postfulu, find peers that have custody columns that we need
832
- const {custodyColumns: peerColumns} = syncMeta;
833
- // check if the peer has all needed columns
834
- // get match
835
- const columns = peerColumns.reduce((acc, elem) => {
836
- if (pendingDataColumns.has(elem)) {
837
- acc.push(elem);
838
- }
839
- return acc;
840
- }, [] as number[]);
841
-
842
- if (columns.length > 0) {
843
- if (columns.length > maxColumnCount) {
844
- maxColumnCount = columns.length;
845
- }
846
- considerPeers.push({peerId, columnCount: columns.length});
847
- }
848
- } // end for
849
-
850
- const eligiblePeers: PeerIdStr[] = [];
851
- for (const {peerId, columnCount} of considerPeers) {
852
- if (columnCount === maxColumnCount) {
853
- eligiblePeers.push(peerId);
854
- }
855
- }
856
-
857
- return eligiblePeers;
858
- }
859
- }