@lodestar/beacon-node 1.35.0-dev.21ba2777a9 → 1.35.0-dev.36a31f3a2f

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 (1084) 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/rest/base.d.ts +1 -1
  10. package/lib/api/rest/base.js +2 -2
  11. package/lib/api/rest/base.js.map +1 -1
  12. package/lib/api/rest/index.js.map +1 -1
  13. package/lib/chain/ColumnReconstructionTracker.d.ts +2 -2
  14. package/lib/chain/ColumnReconstructionTracker.js +1 -5
  15. package/lib/chain/ColumnReconstructionTracker.js.map +1 -1
  16. package/lib/chain/GetBlobsTracker.d.ts +2 -2
  17. package/lib/chain/GetBlobsTracker.js +3 -3
  18. package/lib/chain/GetBlobsTracker.js.map +1 -1
  19. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +0 -1
  20. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  21. package/lib/chain/archiveStore/historicalState/worker.js +1 -1
  22. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  23. package/lib/chain/archiveStore/index.d.ts +1 -1
  24. package/lib/chain/archiveStore/index.js +1 -1
  25. package/lib/chain/blocks/blockInput/index.d.ts +1 -1
  26. package/lib/chain/blocks/blockInput/index.js +1 -1
  27. package/lib/chain/blocks/index.d.ts +1 -1
  28. package/lib/chain/blocks/index.js.map +1 -1
  29. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +1 -1
  30. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  31. package/lib/chain/bls/multithread/index.js +0 -1
  32. package/lib/chain/bls/multithread/index.js.map +1 -1
  33. package/lib/chain/chain.d.ts +3 -3
  34. package/lib/chain/chain.js +2 -2
  35. package/lib/chain/chain.js.map +1 -1
  36. package/lib/chain/emitter.d.ts +2 -2
  37. package/lib/chain/emitter.js.map +1 -1
  38. package/lib/chain/errors/index.d.ts +2 -2
  39. package/lib/chain/errors/index.js +2 -2
  40. package/lib/chain/errors/index.js.map +1 -1
  41. package/lib/chain/forkChoice/index.js.map +1 -1
  42. package/lib/chain/index.d.ts +2 -2
  43. package/lib/chain/index.js +2 -2
  44. package/lib/chain/index.js.map +1 -1
  45. package/lib/chain/interface.d.ts +2 -2
  46. package/lib/chain/interface.js.map +1 -1
  47. package/lib/chain/lightClient/index.js.map +1 -1
  48. package/lib/chain/lightClient/proofs.js.map +1 -1
  49. package/lib/chain/opPools/aggregatedAttestationPool.js +1 -1
  50. package/lib/chain/opPools/attestationPool.js +1 -1
  51. package/lib/chain/opPools/index.d.ts +1 -1
  52. package/lib/chain/opPools/index.js +1 -1
  53. package/lib/chain/opPools/index.js.map +1 -1
  54. package/lib/chain/options.js +1 -1
  55. package/lib/chain/options.js.map +1 -1
  56. package/lib/chain/regen/index.d.ts +1 -1
  57. package/lib/chain/regen/index.js +1 -1
  58. package/lib/chain/regen/index.js.map +1 -1
  59. package/lib/chain/stateCache/datastore/index.d.ts +1 -1
  60. package/lib/chain/stateCache/datastore/index.js +1 -1
  61. package/lib/chain/stateCache/datastore/index.js.map +1 -1
  62. package/lib/chain/stateCache/index.d.ts +1 -1
  63. package/lib/chain/stateCache/index.js +1 -1
  64. package/lib/chain/stateCache/index.js.map +1 -1
  65. package/lib/chain/stateCache/persistentCheckpointsCache.js +2 -1
  66. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  67. package/lib/chain/validation/blobSidecar.js.map +1 -1
  68. package/lib/chain/validation/dataColumnSidecar.js +1 -1
  69. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  70. package/lib/chain/validation/index.d.ts +1 -1
  71. package/lib/chain/validation/index.js +1 -1
  72. package/lib/chain/validation/index.js.map +1 -1
  73. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts +2 -1
  74. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  75. package/lib/chain/validatorMonitor.d.ts +3 -1
  76. package/lib/chain/validatorMonitor.js.map +1 -1
  77. package/lib/db/buckets.d.ts +4 -4
  78. package/lib/db/buckets.js +4 -4
  79. package/lib/db/buckets.js.map +1 -1
  80. package/lib/db/index.d.ts +1 -1
  81. package/lib/db/index.js.map +1 -1
  82. package/lib/db/repositories/blobSidecars.js +1 -1
  83. package/lib/db/repositories/blobSidecars.js.map +1 -1
  84. package/lib/db/repositories/blobSidecarsArchive.js +1 -1
  85. package/lib/db/repositories/blobSidecarsArchive.js.map +1 -1
  86. package/lib/db/repositories/blockArchive.js +3 -2
  87. package/lib/db/repositories/blockArchive.js.map +1 -1
  88. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  89. package/lib/db/repositories/dataColumnSidecar.js +2 -2
  90. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  91. package/lib/db/repositories/dataColumnSidecarArchive.js +2 -2
  92. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  93. package/lib/db/repositories/index.d.ts +10 -10
  94. package/lib/db/repositories/index.js +9 -9
  95. package/lib/db/repositories/index.js.map +1 -1
  96. package/lib/eth1/eth1DepositDataTracker.js.map +1 -1
  97. package/lib/eth1/eth1DepositsCache.js.map +1 -1
  98. package/lib/eth1/provider/eth1Provider.d.ts +2 -1
  99. package/lib/eth1/provider/eth1Provider.js.map +1 -1
  100. package/lib/eth1/provider/jsonRpcHttpClient.d.ts +1 -1
  101. package/lib/eth1/provider/jsonRpcHttpClient.js.map +1 -1
  102. package/lib/eth1/provider/jwt.js.map +1 -1
  103. package/lib/eth1/utils/deposits.js.map +1 -1
  104. package/lib/execution/builder/index.js.map +1 -1
  105. package/lib/execution/engine/interface.js.map +1 -1
  106. package/lib/execution/engine/types.js.map +1 -1
  107. package/lib/execution/engine/utils.js +2 -1
  108. package/lib/execution/engine/utils.js.map +1 -1
  109. package/lib/execution/index.d.ts +2 -2
  110. package/lib/execution/index.js +2 -2
  111. package/lib/execution/index.js.map +1 -1
  112. package/lib/index.d.ts +6 -6
  113. package/lib/index.js +5 -5
  114. package/lib/index.js.map +1 -1
  115. package/lib/metrics/index.d.ts +1 -1
  116. package/lib/metrics/index.js +1 -1
  117. package/lib/metrics/index.js.map +1 -1
  118. package/lib/metrics/metrics/lodestar.d.ts +1 -1
  119. package/lib/metrics/metrics.d.ts +1 -1
  120. package/lib/metrics/metrics.js.map +1 -1
  121. package/lib/metrics/nodeJsMetrics.js +1 -1
  122. package/lib/metrics/nodeJsMetrics.js.map +1 -1
  123. package/lib/metrics/server/http.d.ts +1 -1
  124. package/lib/metrics/utils/avgMinMax.d.ts +1 -1
  125. package/lib/metrics/utils/gauge.d.ts +1 -1
  126. package/lib/metrics/utils/gauge.js.map +1 -1
  127. package/lib/metrics/utils/registryMetricCreator.d.ts +1 -1
  128. package/lib/metrics/utils/registryMetricCreator.js.map +1 -1
  129. package/lib/monitoring/service.js.map +1 -1
  130. package/lib/monitoring/system.js.map +1 -1
  131. package/lib/network/core/networkCore.d.ts +1 -1
  132. package/lib/network/core/networkCore.js +1 -1
  133. package/lib/network/core/networkCore.js.map +1 -1
  134. package/lib/network/core/networkCoreWorker.js +1 -1
  135. package/lib/network/core/networkCoreWorker.js.map +1 -1
  136. package/lib/network/core/networkCoreWorkerHandler.d.ts +1 -1
  137. package/lib/network/core/networkCoreWorkerHandler.js +4 -10
  138. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  139. package/lib/network/discv5/index.d.ts +2 -2
  140. package/lib/network/discv5/index.js +2 -5
  141. package/lib/network/discv5/index.js.map +1 -1
  142. package/lib/network/discv5/worker.js +3 -3
  143. package/lib/network/discv5/worker.js.map +1 -1
  144. package/lib/network/gossip/encoding.d.ts +1 -1
  145. package/lib/network/gossip/encoding.js +2 -2
  146. package/lib/network/gossip/encoding.js.map +1 -1
  147. package/lib/network/gossip/gossipsub.d.ts +1 -2
  148. package/lib/network/gossip/gossipsub.js +17 -36
  149. package/lib/network/gossip/gossipsub.js.map +1 -1
  150. package/lib/network/gossip/index.d.ts +2 -2
  151. package/lib/network/gossip/index.js +2 -2
  152. package/lib/network/gossip/index.js.map +1 -1
  153. package/lib/network/gossip/interface.d.ts +2 -2
  154. package/lib/network/gossip/metrics.d.ts +7 -15
  155. package/lib/network/gossip/metrics.js +6 -16
  156. package/lib/network/gossip/metrics.js.map +1 -1
  157. package/lib/network/gossip/topic.d.ts +60 -80
  158. package/lib/network/gossip/topic.js.map +1 -1
  159. package/lib/network/index.d.ts +3 -3
  160. package/lib/network/index.js +3 -3
  161. package/lib/network/index.js.map +1 -1
  162. package/lib/network/interface.d.ts +1 -1
  163. package/lib/network/libp2p/index.js +3 -11
  164. package/lib/network/libp2p/index.js.map +1 -1
  165. package/lib/network/metadata.js +1 -2
  166. package/lib/network/metadata.js.map +1 -1
  167. package/lib/network/network.d.ts +1 -1
  168. package/lib/network/network.js +4 -2
  169. package/lib/network/network.js.map +1 -1
  170. package/lib/network/peers/datastore.d.ts +2 -2
  171. package/lib/network/peers/datastore.js +2 -2
  172. package/lib/network/peers/datastore.js.map +1 -1
  173. package/lib/network/peers/discover.js +2 -1
  174. package/lib/network/peers/discover.js.map +1 -1
  175. package/lib/network/peers/peerManager.js.map +1 -1
  176. package/lib/network/peers/score/index.d.ts +1 -1
  177. package/lib/network/peers/score/index.js +1 -1
  178. package/lib/network/peers/score/index.js.map +1 -1
  179. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  180. package/lib/network/processor/gossipHandlers.js +1 -1
  181. package/lib/network/processor/index.d.ts +1 -1
  182. package/lib/network/processor/index.js +5 -3
  183. package/lib/network/processor/index.js.map +1 -1
  184. package/lib/network/reqresp/ReqRespBeaconNode.d.ts +1 -1
  185. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  186. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  187. package/lib/network/reqresp/index.d.ts +1 -1
  188. package/lib/network/reqresp/index.js +1 -1
  189. package/lib/network/reqresp/index.js.map +1 -1
  190. package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -1
  191. package/lib/network/subnets/interface.js +1 -1
  192. package/lib/network/subnets/interface.js.map +1 -1
  193. package/lib/network/subnets/util.js +2 -1
  194. package/lib/network/subnets/util.js.map +1 -1
  195. package/lib/node/nodejs.d.ts +1 -1
  196. package/lib/node/nodejs.js.map +1 -1
  197. package/lib/node/notifier.js +2 -1
  198. package/lib/node/notifier.js.map +1 -1
  199. package/lib/node/options.js.map +1 -1
  200. package/lib/node/utils/interop/state.js +2 -1
  201. package/lib/node/utils/interop/state.js.map +1 -1
  202. package/lib/sync/backfill/backfill.d.ts +1 -1
  203. package/lib/sync/backfill/backfill.js +1 -1
  204. package/lib/sync/backfill/backfill.js.map +1 -1
  205. package/lib/sync/range/batch.d.ts +2 -2
  206. package/lib/sync/range/batch.js +1 -1
  207. package/lib/sync/range/batch.js.map +1 -1
  208. package/lib/sync/range/chain.d.ts +1 -1
  209. package/lib/sync/range/chain.js.map +1 -1
  210. package/lib/sync/range/range.d.ts +1 -1
  211. package/lib/sync/range/range.js.map +1 -1
  212. package/lib/sync/sync.d.ts +2 -1
  213. package/lib/sync/sync.js.map +1 -1
  214. package/lib/sync/types.d.ts +1 -0
  215. package/lib/sync/types.js.map +1 -1
  216. package/lib/sync/unknownBlock.js +15 -13
  217. package/lib/sync/unknownBlock.js.map +1 -1
  218. package/lib/sync/utils/downloadByRange.d.ts +1 -1
  219. package/lib/sync/utils/downloadByRoot.d.ts +2 -4
  220. package/lib/sync/utils/downloadByRoot.js +9 -36
  221. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  222. package/lib/util/blobs.js +3 -5
  223. package/lib/util/blobs.js.map +1 -1
  224. package/lib/util/clock.d.ts +1 -1
  225. package/lib/util/clock.js.map +1 -1
  226. package/lib/util/dataColumns.d.ts +2 -2
  227. package/lib/util/dataColumns.js +4 -4
  228. package/lib/util/dataColumns.js.map +1 -1
  229. package/lib/util/execution.d.ts +2 -2
  230. package/lib/util/execution.js +8 -25
  231. package/lib/util/execution.js.map +1 -1
  232. package/lib/util/queue/index.d.ts +1 -1
  233. package/lib/util/queue/index.js +1 -1
  234. package/lib/util/queue/index.js.map +1 -1
  235. package/package.json +21 -37
  236. package/lib/api/impl/api.d.ts.map +0 -1
  237. package/lib/api/impl/beacon/blocks/index.d.ts.map +0 -1
  238. package/lib/api/impl/beacon/blocks/utils.d.ts.map +0 -1
  239. package/lib/api/impl/beacon/index.d.ts.map +0 -1
  240. package/lib/api/impl/beacon/pool/index.d.ts.map +0 -1
  241. package/lib/api/impl/beacon/rewards/index.d.ts.map +0 -1
  242. package/lib/api/impl/beacon/state/index.d.ts.map +0 -1
  243. package/lib/api/impl/beacon/state/utils.d.ts.map +0 -1
  244. package/lib/api/impl/config/constants.d.ts.map +0 -1
  245. package/lib/api/impl/config/index.d.ts.map +0 -1
  246. package/lib/api/impl/debug/index.d.ts.map +0 -1
  247. package/lib/api/impl/errors.d.ts.map +0 -1
  248. package/lib/api/impl/events/index.d.ts.map +0 -1
  249. package/lib/api/impl/index.d.ts.map +0 -1
  250. package/lib/api/impl/lightclient/index.d.ts.map +0 -1
  251. package/lib/api/impl/lodestar/index.d.ts.map +0 -1
  252. package/lib/api/impl/node/index.d.ts.map +0 -1
  253. package/lib/api/impl/node/utils.d.ts.map +0 -1
  254. package/lib/api/impl/proof/index.d.ts.map +0 -1
  255. package/lib/api/impl/types.d.ts.map +0 -1
  256. package/lib/api/impl/utils.d.ts.map +0 -1
  257. package/lib/api/impl/validator/index.d.ts.map +0 -1
  258. package/lib/api/impl/validator/utils.d.ts.map +0 -1
  259. package/lib/api/index.d.ts.map +0 -1
  260. package/lib/api/options.d.ts.map +0 -1
  261. package/lib/api/rest/activeSockets.d.ts.map +0 -1
  262. package/lib/api/rest/base.d.ts.map +0 -1
  263. package/lib/api/rest/index.d.ts.map +0 -1
  264. package/lib/api/rest/swaggerUI.d.ts.map +0 -1
  265. package/lib/bun-wrappers/prometheus-gc-stats.d.ts +0 -2
  266. package/lib/bun-wrappers/prometheus-gc-stats.d.ts.map +0 -1
  267. package/lib/bun-wrappers/prometheus-gc-stats.js +0 -8
  268. package/lib/bun-wrappers/prometheus-gc-stats.js.map +0 -1
  269. package/lib/chain/ColumnReconstructionTracker.d.ts.map +0 -1
  270. package/lib/chain/GetBlobsTracker.d.ts.map +0 -1
  271. package/lib/chain/archiveStore/archiveStore.d.ts.map +0 -1
  272. package/lib/chain/archiveStore/constants.d.ts.map +0 -1
  273. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +0 -1
  274. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts.map +0 -1
  275. package/lib/chain/archiveStore/historicalState/metrics.d.ts.map +0 -1
  276. package/lib/chain/archiveStore/historicalState/types.d.ts.map +0 -1
  277. package/lib/chain/archiveStore/historicalState/worker.d.ts.map +0 -1
  278. package/lib/chain/archiveStore/index.d.ts.map +0 -1
  279. package/lib/chain/archiveStore/interface.d.ts.map +0 -1
  280. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +0 -1
  281. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +0 -1
  282. package/lib/chain/archiveStore/utils/pruneHistory.d.ts.map +0 -1
  283. package/lib/chain/archiveStore/utils/updateBackfillRange.d.ts.map +0 -1
  284. package/lib/chain/balancesCache.d.ts.map +0 -1
  285. package/lib/chain/beaconProposerCache.d.ts.map +0 -1
  286. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +0 -1
  287. package/lib/chain/blocks/blockInput/errors.d.ts.map +0 -1
  288. package/lib/chain/blocks/blockInput/index.d.ts.map +0 -1
  289. package/lib/chain/blocks/blockInput/types.d.ts.map +0 -1
  290. package/lib/chain/blocks/blockInput/utils.d.ts.map +0 -1
  291. package/lib/chain/blocks/importBlock.d.ts.map +0 -1
  292. package/lib/chain/blocks/index.d.ts.map +0 -1
  293. package/lib/chain/blocks/types.d.ts.map +0 -1
  294. package/lib/chain/blocks/utils/blowfishBanner.d.ts.map +0 -1
  295. package/lib/chain/blocks/utils/chainSegment.d.ts.map +0 -1
  296. package/lib/chain/blocks/utils/checkpoint.d.ts.map +0 -1
  297. package/lib/chain/blocks/utils/giraffeBanner.d.ts.map +0 -1
  298. package/lib/chain/blocks/utils/ownBanner.d.ts.map +0 -1
  299. package/lib/chain/blocks/utils/pandaMergeTransitionBanner.d.ts.map +0 -1
  300. package/lib/chain/blocks/utils/zebraBanner.d.ts.map +0 -1
  301. package/lib/chain/blocks/verifyBlock.d.ts.map +0 -1
  302. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +0 -1
  303. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +0 -1
  304. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +0 -1
  305. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +0 -1
  306. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +0 -1
  307. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +0 -1
  308. package/lib/chain/bls/index.d.ts.map +0 -1
  309. package/lib/chain/bls/interface.d.ts.map +0 -1
  310. package/lib/chain/bls/maybeBatch.d.ts.map +0 -1
  311. package/lib/chain/bls/multithread/index.d.ts.map +0 -1
  312. package/lib/chain/bls/multithread/jobItem.d.ts.map +0 -1
  313. package/lib/chain/bls/multithread/poolSize.d.ts.map +0 -1
  314. package/lib/chain/bls/multithread/types.d.ts.map +0 -1
  315. package/lib/chain/bls/multithread/utils.d.ts.map +0 -1
  316. package/lib/chain/bls/multithread/worker.d.ts.map +0 -1
  317. package/lib/chain/bls/singleThread.d.ts.map +0 -1
  318. package/lib/chain/bls/utils.d.ts.map +0 -1
  319. package/lib/chain/chain.d.ts.map +0 -1
  320. package/lib/chain/emitter.d.ts.map +0 -1
  321. package/lib/chain/errors/attestationError.d.ts.map +0 -1
  322. package/lib/chain/errors/attesterSlashingError.d.ts.map +0 -1
  323. package/lib/chain/errors/blobSidecarError.d.ts.map +0 -1
  324. package/lib/chain/errors/blockError.d.ts.map +0 -1
  325. package/lib/chain/errors/blsToExecutionChangeError.d.ts.map +0 -1
  326. package/lib/chain/errors/dataColumnSidecarError.d.ts.map +0 -1
  327. package/lib/chain/errors/gossipValidation.d.ts.map +0 -1
  328. package/lib/chain/errors/index.d.ts.map +0 -1
  329. package/lib/chain/errors/lightClientError.d.ts.map +0 -1
  330. package/lib/chain/errors/proposerSlashingError.d.ts.map +0 -1
  331. package/lib/chain/errors/syncCommitteeError.d.ts.map +0 -1
  332. package/lib/chain/errors/voluntaryExitError.d.ts.map +0 -1
  333. package/lib/chain/forkChoice/index.d.ts.map +0 -1
  334. package/lib/chain/genesis/genesis.d.ts.map +0 -1
  335. package/lib/chain/genesis/interface.d.ts.map +0 -1
  336. package/lib/chain/index.d.ts.map +0 -1
  337. package/lib/chain/initState.d.ts.map +0 -1
  338. package/lib/chain/interface.d.ts.map +0 -1
  339. package/lib/chain/lightClient/index.d.ts.map +0 -1
  340. package/lib/chain/lightClient/proofs.d.ts.map +0 -1
  341. package/lib/chain/lightClient/types.d.ts.map +0 -1
  342. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +0 -1
  343. package/lib/chain/opPools/attestationPool.d.ts.map +0 -1
  344. package/lib/chain/opPools/index.d.ts.map +0 -1
  345. package/lib/chain/opPools/opPool.d.ts.map +0 -1
  346. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +0 -1
  347. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +0 -1
  348. package/lib/chain/opPools/types.d.ts.map +0 -1
  349. package/lib/chain/opPools/utils.d.ts.map +0 -1
  350. package/lib/chain/options.d.ts.map +0 -1
  351. package/lib/chain/prepareNextSlot.d.ts.map +0 -1
  352. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +0 -1
  353. package/lib/chain/produceBlock/index.d.ts.map +0 -1
  354. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +0 -1
  355. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts.map +0 -1
  356. package/lib/chain/regen/errors.d.ts.map +0 -1
  357. package/lib/chain/regen/index.d.ts.map +0 -1
  358. package/lib/chain/regen/interface.d.ts.map +0 -1
  359. package/lib/chain/regen/queued.d.ts.map +0 -1
  360. package/lib/chain/regen/regen.d.ts.map +0 -1
  361. package/lib/chain/reprocess.d.ts.map +0 -1
  362. package/lib/chain/rewards/attestationsRewards.d.ts.map +0 -1
  363. package/lib/chain/rewards/blockRewards.d.ts.map +0 -1
  364. package/lib/chain/rewards/syncCommitteeRewards.d.ts.map +0 -1
  365. package/lib/chain/seenCache/index.d.ts.map +0 -1
  366. package/lib/chain/seenCache/seenAggregateAndProof.d.ts.map +0 -1
  367. package/lib/chain/seenCache/seenAttestationData.d.ts.map +0 -1
  368. package/lib/chain/seenCache/seenAttesters.d.ts.map +0 -1
  369. package/lib/chain/seenCache/seenBlockAttesters.d.ts.map +0 -1
  370. package/lib/chain/seenCache/seenBlockProposers.d.ts.map +0 -1
  371. package/lib/chain/seenCache/seenCommittee.d.ts.map +0 -1
  372. package/lib/chain/seenCache/seenCommitteeContribution.d.ts.map +0 -1
  373. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +0 -1
  374. package/lib/chain/serializeState.d.ts.map +0 -1
  375. package/lib/chain/shufflingCache.d.ts.map +0 -1
  376. package/lib/chain/stateCache/blockStateCacheImpl.d.ts.map +0 -1
  377. package/lib/chain/stateCache/datastore/db.d.ts.map +0 -1
  378. package/lib/chain/stateCache/datastore/file.d.ts.map +0 -1
  379. package/lib/chain/stateCache/datastore/index.d.ts.map +0 -1
  380. package/lib/chain/stateCache/datastore/types.d.ts.map +0 -1
  381. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +0 -1
  382. package/lib/chain/stateCache/inMemoryCheckpointsCache.d.ts.map +0 -1
  383. package/lib/chain/stateCache/index.d.ts.map +0 -1
  384. package/lib/chain/stateCache/mapMetrics.d.ts.map +0 -1
  385. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +0 -1
  386. package/lib/chain/stateCache/types.d.ts.map +0 -1
  387. package/lib/chain/validation/aggregateAndProof.d.ts.map +0 -1
  388. package/lib/chain/validation/attestation.d.ts.map +0 -1
  389. package/lib/chain/validation/attesterSlashing.d.ts.map +0 -1
  390. package/lib/chain/validation/blobSidecar.d.ts.map +0 -1
  391. package/lib/chain/validation/block.d.ts.map +0 -1
  392. package/lib/chain/validation/blsToExecutionChange.d.ts.map +0 -1
  393. package/lib/chain/validation/dataColumnSidecar.d.ts.map +0 -1
  394. package/lib/chain/validation/index.d.ts.map +0 -1
  395. package/lib/chain/validation/lightClientFinalityUpdate.d.ts.map +0 -1
  396. package/lib/chain/validation/lightClientOptimisticUpdate.d.ts.map +0 -1
  397. package/lib/chain/validation/proposerSlashing.d.ts.map +0 -1
  398. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts.map +0 -1
  399. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts.map +0 -1
  400. package/lib/chain/validation/signatureSets/index.d.ts.map +0 -1
  401. package/lib/chain/validation/signatureSets/selectionProof.d.ts.map +0 -1
  402. package/lib/chain/validation/signatureSets/syncCommittee.d.ts.map +0 -1
  403. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts.map +0 -1
  404. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts.map +0 -1
  405. package/lib/chain/validation/syncCommittee.d.ts.map +0 -1
  406. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +0 -1
  407. package/lib/chain/validation/voluntaryExit.d.ts.map +0 -1
  408. package/lib/chain/validatorMonitor.d.ts.map +0 -1
  409. package/lib/constants/constants.d.ts.map +0 -1
  410. package/lib/constants/index.d.ts.map +0 -1
  411. package/lib/constants/network.d.ts.map +0 -1
  412. package/lib/db/beacon.d.ts.map +0 -1
  413. package/lib/db/buckets.d.ts.map +0 -1
  414. package/lib/db/index.d.ts.map +0 -1
  415. package/lib/db/interface.d.ts.map +0 -1
  416. package/lib/db/options.d.ts.map +0 -1
  417. package/lib/db/repositories/attesterSlashing.d.ts.map +0 -1
  418. package/lib/db/repositories/backfilledRanges.d.ts.map +0 -1
  419. package/lib/db/repositories/blobSidecars.d.ts.map +0 -1
  420. package/lib/db/repositories/blobSidecarsArchive.d.ts.map +0 -1
  421. package/lib/db/repositories/block.d.ts.map +0 -1
  422. package/lib/db/repositories/blockArchive.d.ts.map +0 -1
  423. package/lib/db/repositories/blockArchiveIndex.d.ts.map +0 -1
  424. package/lib/db/repositories/blsToExecutionChange.d.ts.map +0 -1
  425. package/lib/db/repositories/checkpointState.d.ts.map +0 -1
  426. package/lib/db/repositories/dataColumnSidecar.d.ts.map +0 -1
  427. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +0 -1
  428. package/lib/db/repositories/depositDataRoot.d.ts.map +0 -1
  429. package/lib/db/repositories/depositEvent.d.ts.map +0 -1
  430. package/lib/db/repositories/eth1Data.d.ts.map +0 -1
  431. package/lib/db/repositories/index.d.ts.map +0 -1
  432. package/lib/db/repositories/lightclientBestUpdate.d.ts.map +0 -1
  433. package/lib/db/repositories/lightclientCheckpointHeader.d.ts.map +0 -1
  434. package/lib/db/repositories/lightclientSyncCommittee.d.ts.map +0 -1
  435. package/lib/db/repositories/lightclientSyncCommitteeWitness.d.ts.map +0 -1
  436. package/lib/db/repositories/proposerSlashing.d.ts.map +0 -1
  437. package/lib/db/repositories/stateArchive.d.ts.map +0 -1
  438. package/lib/db/repositories/stateArchiveIndex.d.ts.map +0 -1
  439. package/lib/db/repositories/voluntaryExit.d.ts.map +0 -1
  440. package/lib/db/single/index.d.ts.map +0 -1
  441. package/lib/db/single/preGenesisState.d.ts.map +0 -1
  442. package/lib/db/single/preGenesisStateLastProcessedBlock.d.ts.map +0 -1
  443. package/lib/eth1/errors.d.ts.map +0 -1
  444. package/lib/eth1/eth1DataCache.d.ts.map +0 -1
  445. package/lib/eth1/eth1DepositDataTracker.d.ts.map +0 -1
  446. package/lib/eth1/eth1DepositsCache.d.ts.map +0 -1
  447. package/lib/eth1/eth1MergeBlockTracker.d.ts.map +0 -1
  448. package/lib/eth1/index.d.ts.map +0 -1
  449. package/lib/eth1/interface.d.ts.map +0 -1
  450. package/lib/eth1/options.d.ts.map +0 -1
  451. package/lib/eth1/provider/eth1Provider.d.ts.map +0 -1
  452. package/lib/eth1/provider/jsonRpcHttpClient.d.ts.map +0 -1
  453. package/lib/eth1/provider/jwt.d.ts.map +0 -1
  454. package/lib/eth1/provider/utils.d.ts.map +0 -1
  455. package/lib/eth1/stream.d.ts.map +0 -1
  456. package/lib/eth1/utils/depositContract.d.ts.map +0 -1
  457. package/lib/eth1/utils/deposits.d.ts.map +0 -1
  458. package/lib/eth1/utils/eth1Data.d.ts.map +0 -1
  459. package/lib/eth1/utils/eth1DepositEvent.d.ts.map +0 -1
  460. package/lib/eth1/utils/eth1Vote.d.ts.map +0 -1
  461. package/lib/eth1/utils/groupDepositEventsByBlock.d.ts.map +0 -1
  462. package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.d.ts.map +0 -1
  463. package/lib/execution/builder/cache.d.ts.map +0 -1
  464. package/lib/execution/builder/http.d.ts.map +0 -1
  465. package/lib/execution/builder/index.d.ts.map +0 -1
  466. package/lib/execution/builder/interface.d.ts.map +0 -1
  467. package/lib/execution/builder/utils.d.ts.map +0 -1
  468. package/lib/execution/engine/disabled.d.ts.map +0 -1
  469. package/lib/execution/engine/http.d.ts.map +0 -1
  470. package/lib/execution/engine/index.d.ts.map +0 -1
  471. package/lib/execution/engine/interface.d.ts.map +0 -1
  472. package/lib/execution/engine/mock.d.ts.map +0 -1
  473. package/lib/execution/engine/payloadIdCache.d.ts.map +0 -1
  474. package/lib/execution/engine/types.d.ts.map +0 -1
  475. package/lib/execution/engine/utils.d.ts.map +0 -1
  476. package/lib/execution/index.d.ts.map +0 -1
  477. package/lib/index.d.ts.map +0 -1
  478. package/lib/metrics/index.d.ts.map +0 -1
  479. package/lib/metrics/metrics/beacon.d.ts.map +0 -1
  480. package/lib/metrics/metrics/lodestar.d.ts.map +0 -1
  481. package/lib/metrics/metrics.d.ts.map +0 -1
  482. package/lib/metrics/nodeJsMetrics.d.ts.map +0 -1
  483. package/lib/metrics/options.d.ts.map +0 -1
  484. package/lib/metrics/server/http.d.ts.map +0 -1
  485. package/lib/metrics/server/index.d.ts.map +0 -1
  486. package/lib/metrics/utils/avgMinMax.d.ts.map +0 -1
  487. package/lib/metrics/utils/gauge.d.ts.map +0 -1
  488. package/lib/metrics/utils/registryMetricCreator.d.ts.map +0 -1
  489. package/lib/monitoring/clientStats.d.ts.map +0 -1
  490. package/lib/monitoring/index.d.ts.map +0 -1
  491. package/lib/monitoring/options.d.ts.map +0 -1
  492. package/lib/monitoring/properties.d.ts.map +0 -1
  493. package/lib/monitoring/service.d.ts.map +0 -1
  494. package/lib/monitoring/system.d.ts.map +0 -1
  495. package/lib/monitoring/types.d.ts.map +0 -1
  496. package/lib/network/core/events.d.ts.map +0 -1
  497. package/lib/network/core/index.d.ts.map +0 -1
  498. package/lib/network/core/metrics.d.ts.map +0 -1
  499. package/lib/network/core/networkCore.d.ts.map +0 -1
  500. package/lib/network/core/networkCoreWorker.d.ts.map +0 -1
  501. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +0 -1
  502. package/lib/network/core/types.d.ts.map +0 -1
  503. package/lib/network/discv5/index.d.ts.map +0 -1
  504. package/lib/network/discv5/types.d.ts.map +0 -1
  505. package/lib/network/discv5/utils.d.ts.map +0 -1
  506. package/lib/network/discv5/worker.d.ts.map +0 -1
  507. package/lib/network/events.d.ts.map +0 -1
  508. package/lib/network/forks.d.ts.map +0 -1
  509. package/lib/network/gossip/constants.d.ts.map +0 -1
  510. package/lib/network/gossip/encoding.d.ts.map +0 -1
  511. package/lib/network/gossip/errors.d.ts.map +0 -1
  512. package/lib/network/gossip/gossipsub.d.ts.map +0 -1
  513. package/lib/network/gossip/index.d.ts.map +0 -1
  514. package/lib/network/gossip/interface.d.ts.map +0 -1
  515. package/lib/network/gossip/metrics.d.ts.map +0 -1
  516. package/lib/network/gossip/scoringParameters.d.ts.map +0 -1
  517. package/lib/network/gossip/topic.d.ts.map +0 -1
  518. package/lib/network/index.d.ts.map +0 -1
  519. package/lib/network/interface.d.ts.map +0 -1
  520. package/lib/network/libp2p/error.d.ts.map +0 -1
  521. package/lib/network/libp2p/index.d.ts.map +0 -1
  522. package/lib/network/metadata.d.ts.map +0 -1
  523. package/lib/network/network.d.ts.map +0 -1
  524. package/lib/network/networkConfig.d.ts.map +0 -1
  525. package/lib/network/options.d.ts.map +0 -1
  526. package/lib/network/peers/client.d.ts.map +0 -1
  527. package/lib/network/peers/datastore.d.ts.map +0 -1
  528. package/lib/network/peers/discover.d.ts.map +0 -1
  529. package/lib/network/peers/index.d.ts.map +0 -1
  530. package/lib/network/peers/peerManager.d.ts.map +0 -1
  531. package/lib/network/peers/peersData.d.ts.map +0 -1
  532. package/lib/network/peers/score/constants.d.ts.map +0 -1
  533. package/lib/network/peers/score/index.d.ts.map +0 -1
  534. package/lib/network/peers/score/interface.d.ts.map +0 -1
  535. package/lib/network/peers/score/score.d.ts.map +0 -1
  536. package/lib/network/peers/score/store.d.ts.map +0 -1
  537. package/lib/network/peers/score/utils.d.ts.map +0 -1
  538. package/lib/network/peers/utils/assertPeerRelevance.d.ts.map +0 -1
  539. package/lib/network/peers/utils/enrSubnetsDeserialize.d.ts.map +0 -1
  540. package/lib/network/peers/utils/getConnectedPeerIds.d.ts.map +0 -1
  541. package/lib/network/peers/utils/index.d.ts.map +0 -1
  542. package/lib/network/peers/utils/prioritizePeers.d.ts.map +0 -1
  543. package/lib/network/peers/utils/subnetMap.d.ts.map +0 -1
  544. package/lib/network/processor/aggregatorTracker.d.ts.map +0 -1
  545. package/lib/network/processor/extractSlotRootFns.d.ts.map +0 -1
  546. package/lib/network/processor/gossipHandlers.d.ts.map +0 -1
  547. package/lib/network/processor/gossipQueues/index.d.ts.map +0 -1
  548. package/lib/network/processor/gossipQueues/indexed.d.ts.map +0 -1
  549. package/lib/network/processor/gossipQueues/linear.d.ts.map +0 -1
  550. package/lib/network/processor/gossipQueues/types.d.ts.map +0 -1
  551. package/lib/network/processor/gossipValidatorFn.d.ts.map +0 -1
  552. package/lib/network/processor/index.d.ts.map +0 -1
  553. package/lib/network/processor/types.d.ts.map +0 -1
  554. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +0 -1
  555. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +0 -1
  556. package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts.map +0 -1
  557. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +0 -1
  558. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts.map +0 -1
  559. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +0 -1
  560. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts.map +0 -1
  561. package/lib/network/reqresp/handlers/index.d.ts.map +0 -1
  562. package/lib/network/reqresp/handlers/lightClientBootstrap.d.ts.map +0 -1
  563. package/lib/network/reqresp/handlers/lightClientFinalityUpdate.d.ts.map +0 -1
  564. package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.d.ts.map +0 -1
  565. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.d.ts.map +0 -1
  566. package/lib/network/reqresp/index.d.ts.map +0 -1
  567. package/lib/network/reqresp/interface.d.ts.map +0 -1
  568. package/lib/network/reqresp/protocols.d.ts.map +0 -1
  569. package/lib/network/reqresp/rateLimit.d.ts.map +0 -1
  570. package/lib/network/reqresp/score.d.ts.map +0 -1
  571. package/lib/network/reqresp/types.d.ts.map +0 -1
  572. package/lib/network/reqresp/utils/collect.d.ts.map +0 -1
  573. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.d.ts.map +0 -1
  574. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts.map +0 -1
  575. package/lib/network/statusCache.d.ts.map +0 -1
  576. package/lib/network/subnets/attnetsService.d.ts.map +0 -1
  577. package/lib/network/subnets/index.d.ts.map +0 -1
  578. package/lib/network/subnets/interface.d.ts.map +0 -1
  579. package/lib/network/subnets/syncnetsService.d.ts.map +0 -1
  580. package/lib/network/subnets/util.d.ts.map +0 -1
  581. package/lib/network/util.d.ts.map +0 -1
  582. package/lib/node/index.d.ts.map +0 -1
  583. package/lib/node/nodejs.d.ts.map +0 -1
  584. package/lib/node/notifier.d.ts.map +0 -1
  585. package/lib/node/options.d.ts.map +0 -1
  586. package/lib/node/utils/interop/deposits.d.ts.map +0 -1
  587. package/lib/node/utils/interop/state.d.ts.map +0 -1
  588. package/lib/node/utils/lightclient.d.ts.map +0 -1
  589. package/lib/node/utils/state.d.ts.map +0 -1
  590. package/lib/sync/backfill/backfill.d.ts.map +0 -1
  591. package/lib/sync/backfill/errors.d.ts.map +0 -1
  592. package/lib/sync/backfill/index.d.ts.map +0 -1
  593. package/lib/sync/backfill/verify.d.ts.map +0 -1
  594. package/lib/sync/constants.d.ts.map +0 -1
  595. package/lib/sync/index.d.ts.map +0 -1
  596. package/lib/sync/interface.d.ts.map +0 -1
  597. package/lib/sync/options.d.ts.map +0 -1
  598. package/lib/sync/range/batch.d.ts.map +0 -1
  599. package/lib/sync/range/chain.d.ts.map +0 -1
  600. package/lib/sync/range/range.d.ts.map +0 -1
  601. package/lib/sync/range/utils/batches.d.ts.map +0 -1
  602. package/lib/sync/range/utils/chainTarget.d.ts.map +0 -1
  603. package/lib/sync/range/utils/hashBlocks.d.ts.map +0 -1
  604. package/lib/sync/range/utils/index.d.ts.map +0 -1
  605. package/lib/sync/range/utils/peerBalancer.d.ts.map +0 -1
  606. package/lib/sync/range/utils/updateChains.d.ts.map +0 -1
  607. package/lib/sync/sync.d.ts.map +0 -1
  608. package/lib/sync/types.d.ts.map +0 -1
  609. package/lib/sync/unknownBlock.d.ts.map +0 -1
  610. package/lib/sync/utils/downloadByRange.d.ts.map +0 -1
  611. package/lib/sync/utils/downloadByRoot.d.ts.map +0 -1
  612. package/lib/sync/utils/pendingBlocksTree.d.ts.map +0 -1
  613. package/lib/sync/utils/remoteSyncType.d.ts.map +0 -1
  614. package/lib/util/address.d.ts.map +0 -1
  615. package/lib/util/array.d.ts.map +0 -1
  616. package/lib/util/asyncIterableToEvents.d.ts.map +0 -1
  617. package/lib/util/binarySearch.d.ts.map +0 -1
  618. package/lib/util/bitArray.d.ts.map +0 -1
  619. package/lib/util/blobs.d.ts.map +0 -1
  620. package/lib/util/bufferPool.d.ts.map +0 -1
  621. package/lib/util/bytes.d.ts.map +0 -1
  622. package/lib/util/chunkify.d.ts.map +0 -1
  623. package/lib/util/clock.d.ts.map +0 -1
  624. package/lib/util/dataColumns.d.ts.map +0 -1
  625. package/lib/util/dependentRoot.d.ts.map +0 -1
  626. package/lib/util/enum.d.ts.map +0 -1
  627. package/lib/util/error.d.ts.map +0 -1
  628. package/lib/util/eventLoop.d.ts.map +0 -1
  629. package/lib/util/execution.d.ts.map +0 -1
  630. package/lib/util/file.d.ts.map +0 -1
  631. package/lib/util/forkChoice.d.ts.map +0 -1
  632. package/lib/util/forkName.d.ts.map +0 -1
  633. package/lib/util/graffiti.d.ts.map +0 -1
  634. package/lib/util/hex.d.ts.map +0 -1
  635. package/lib/util/index.d.ts.map +0 -1
  636. package/lib/util/ip.d.ts.map +0 -1
  637. package/lib/util/itTrigger.d.ts.map +0 -1
  638. package/lib/util/kzg.d.ts.map +0 -1
  639. package/lib/util/map.d.ts.map +0 -1
  640. package/lib/util/metadata.d.ts.map +0 -1
  641. package/lib/util/multifork.d.ts.map +0 -1
  642. package/lib/util/numpy.d.ts.map +0 -1
  643. package/lib/util/peerId.d.ts.map +0 -1
  644. package/lib/util/profile.d.ts.map +0 -1
  645. package/lib/util/promises.d.ts.map +0 -1
  646. package/lib/util/queue/errors.d.ts.map +0 -1
  647. package/lib/util/queue/fnQueue.d.ts.map +0 -1
  648. package/lib/util/queue/index.d.ts.map +0 -1
  649. package/lib/util/queue/itemQueue.d.ts.map +0 -1
  650. package/lib/util/queue/options.d.ts.map +0 -1
  651. package/lib/util/serializedCache.d.ts.map +0 -1
  652. package/lib/util/set.d.ts.map +0 -1
  653. package/lib/util/shuffle.d.ts.map +0 -1
  654. package/lib/util/sortBy.d.ts.map +0 -1
  655. package/lib/util/sszBytes.d.ts.map +0 -1
  656. package/lib/util/strictEvents.d.ts.map +0 -1
  657. package/lib/util/time.d.ts.map +0 -1
  658. package/lib/util/timeSeries.d.ts.map +0 -1
  659. package/lib/util/types.d.ts.map +0 -1
  660. package/lib/util/workerEvents.d.ts.map +0 -1
  661. package/lib/util/wrapError.d.ts.map +0 -1
  662. package/src/api/impl/api.ts +0 -26
  663. package/src/api/impl/beacon/blocks/index.ts +0 -744
  664. package/src/api/impl/beacon/blocks/utils.ts +0 -75
  665. package/src/api/impl/beacon/index.ts +0 -35
  666. package/src/api/impl/beacon/pool/index.ts +0 -314
  667. package/src/api/impl/beacon/rewards/index.ts +0 -30
  668. package/src/api/impl/beacon/state/index.ts +0 -406
  669. package/src/api/impl/beacon/state/utils.ts +0 -189
  670. package/src/api/impl/config/constants.ts +0 -127
  671. package/src/api/impl/config/index.ts +0 -59
  672. package/src/api/impl/debug/index.ts +0 -131
  673. package/src/api/impl/errors.ts +0 -50
  674. package/src/api/impl/events/index.ts +0 -33
  675. package/src/api/impl/index.ts +0 -6
  676. package/src/api/impl/lightclient/index.ts +0 -64
  677. package/src/api/impl/lodestar/index.ts +0 -257
  678. package/src/api/impl/node/index.ts +0 -88
  679. package/src/api/impl/node/utils.ts +0 -51
  680. package/src/api/impl/proof/index.ts +0 -60
  681. package/src/api/impl/types.ts +0 -17
  682. package/src/api/impl/utils.ts +0 -25
  683. package/src/api/impl/validator/index.ts +0 -1538
  684. package/src/api/impl/validator/utils.ts +0 -85
  685. package/src/api/index.ts +0 -2
  686. package/src/api/options.ts +0 -16
  687. package/src/api/rest/activeSockets.ts +0 -109
  688. package/src/api/rest/base.ts +0 -216
  689. package/src/api/rest/index.ts +0 -63
  690. package/src/api/rest/swaggerUI.ts +0 -80
  691. package/src/bun-wrappers/prometheus-gc-stats.ts +0 -7
  692. package/src/chain/ColumnReconstructionTracker.ts +0 -90
  693. package/src/chain/GetBlobsTracker.ts +0 -115
  694. package/src/chain/archiveStore/archiveStore.ts +0 -222
  695. package/src/chain/archiveStore/constants.ts +0 -5
  696. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +0 -116
  697. package/src/chain/archiveStore/historicalState/historicalStateRegen.ts +0 -68
  698. package/src/chain/archiveStore/historicalState/metrics.ts +0 -214
  699. package/src/chain/archiveStore/historicalState/types.ts +0 -41
  700. package/src/chain/archiveStore/historicalState/worker.ts +0 -77
  701. package/src/chain/archiveStore/index.ts +0 -3
  702. package/src/chain/archiveStore/interface.ts +0 -75
  703. package/src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts +0 -138
  704. package/src/chain/archiveStore/utils/archiveBlocks.ts +0 -437
  705. package/src/chain/archiveStore/utils/pruneHistory.ts +0 -56
  706. package/src/chain/archiveStore/utils/updateBackfillRange.ts +0 -50
  707. package/src/chain/balancesCache.ts +0 -52
  708. package/src/chain/beaconProposerCache.ts +0 -43
  709. package/src/chain/blocks/blockInput/blockInput.ts +0 -851
  710. package/src/chain/blocks/blockInput/errors.ts +0 -48
  711. package/src/chain/blocks/blockInput/index.ts +0 -4
  712. package/src/chain/blocks/blockInput/types.ts +0 -145
  713. package/src/chain/blocks/blockInput/utils.ts +0 -21
  714. package/src/chain/blocks/importBlock.ts +0 -603
  715. package/src/chain/blocks/index.ts +0 -179
  716. package/src/chain/blocks/types.ts +0 -101
  717. package/src/chain/blocks/utils/blowfishBanner.ts +0 -28
  718. package/src/chain/blocks/utils/chainSegment.ts +0 -29
  719. package/src/chain/blocks/utils/checkpoint.ts +0 -25
  720. package/src/chain/blocks/utils/giraffeBanner.ts +0 -30
  721. package/src/chain/blocks/utils/ownBanner.ts +0 -20
  722. package/src/chain/blocks/utils/pandaMergeTransitionBanner.ts +0 -43
  723. package/src/chain/blocks/utils/zebraBanner.ts +0 -45
  724. package/src/chain/blocks/verifyBlock.ts +0 -242
  725. package/src/chain/blocks/verifyBlocksDataAvailability.ts +0 -34
  726. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +0 -438
  727. package/src/chain/blocks/verifyBlocksSanityChecks.ts +0 -129
  728. package/src/chain/blocks/verifyBlocksSignatures.ts +0 -105
  729. package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +0 -114
  730. package/src/chain/blocks/writeBlockInputToDb.ts +0 -128
  731. package/src/chain/bls/index.ts +0 -4
  732. package/src/chain/bls/interface.ts +0 -68
  733. package/src/chain/bls/maybeBatch.ts +0 -45
  734. package/src/chain/bls/multithread/index.ts +0 -582
  735. package/src/chain/bls/multithread/jobItem.ts +0 -119
  736. package/src/chain/bls/multithread/poolSize.ts +0 -16
  737. package/src/chain/bls/multithread/types.ts +0 -38
  738. package/src/chain/bls/multithread/utils.ts +0 -19
  739. package/src/chain/bls/multithread/worker.ts +0 -114
  740. package/src/chain/bls/singleThread.ts +0 -87
  741. package/src/chain/bls/utils.ts +0 -30
  742. package/src/chain/chain.ts +0 -1365
  743. package/src/chain/emitter.ts +0 -113
  744. package/src/chain/errors/attestationError.ts +0 -194
  745. package/src/chain/errors/attesterSlashingError.ts +0 -11
  746. package/src/chain/errors/blobSidecarError.ts +0 -60
  747. package/src/chain/errors/blockError.ts +0 -166
  748. package/src/chain/errors/blsToExecutionChangeError.ts +0 -13
  749. package/src/chain/errors/dataColumnSidecarError.ts +0 -80
  750. package/src/chain/errors/gossipValidation.ts +0 -20
  751. package/src/chain/errors/index.ts +0 -10
  752. package/src/chain/errors/lightClientError.ts +0 -30
  753. package/src/chain/errors/proposerSlashingError.ts +0 -11
  754. package/src/chain/errors/syncCommitteeError.ts +0 -36
  755. package/src/chain/errors/voluntaryExitError.ts +0 -13
  756. package/src/chain/forkChoice/index.ts +0 -112
  757. package/src/chain/genesis/genesis.ts +0 -190
  758. package/src/chain/genesis/interface.ts +0 -14
  759. package/src/chain/index.ts +0 -6
  760. package/src/chain/initState.ts +0 -221
  761. package/src/chain/interface.ts +0 -280
  762. package/src/chain/lightClient/index.ts +0 -764
  763. package/src/chain/lightClient/proofs.ts +0 -85
  764. package/src/chain/lightClient/types.ts +0 -33
  765. package/src/chain/opPools/aggregatedAttestationPool.ts +0 -1063
  766. package/src/chain/opPools/attestationPool.ts +0 -283
  767. package/src/chain/opPools/index.ts +0 -5
  768. package/src/chain/opPools/opPool.ts +0 -462
  769. package/src/chain/opPools/syncCommitteeMessagePool.ts +0 -167
  770. package/src/chain/opPools/syncContributionAndProofPool.ts +0 -240
  771. package/src/chain/opPools/types.ts +0 -35
  772. package/src/chain/opPools/utils.ts +0 -65
  773. package/src/chain/options.ts +0 -138
  774. package/src/chain/prepareNextSlot.ts +0 -277
  775. package/src/chain/produceBlock/computeNewStateRoot.ts +0 -55
  776. package/src/chain/produceBlock/index.ts +0 -2
  777. package/src/chain/produceBlock/produceBlockBody.ts +0 -797
  778. package/src/chain/produceBlock/validateBlobsAndKzgCommitments.ts +0 -54
  779. package/src/chain/regen/errors.ts +0 -30
  780. package/src/chain/regen/index.ts +0 -4
  781. package/src/chain/regen/interface.ts +0 -93
  782. package/src/chain/regen/queued.ts +0 -317
  783. package/src/chain/regen/regen.ts +0 -424
  784. package/src/chain/reprocess.ts +0 -161
  785. package/src/chain/rewards/attestationsRewards.ts +0 -196
  786. package/src/chain/rewards/blockRewards.ts +0 -150
  787. package/src/chain/rewards/syncCommitteeRewards.ts +0 -58
  788. package/src/chain/seenCache/index.ts +0 -5
  789. package/src/chain/seenCache/seenAggregateAndProof.ts +0 -120
  790. package/src/chain/seenCache/seenAttestationData.ts +0 -145
  791. package/src/chain/seenCache/seenAttesters.ts +0 -58
  792. package/src/chain/seenCache/seenBlockAttesters.ts +0 -18
  793. package/src/chain/seenCache/seenBlockProposers.ts +0 -48
  794. package/src/chain/seenCache/seenCommittee.ts +0 -43
  795. package/src/chain/seenCache/seenCommitteeContribution.ts +0 -104
  796. package/src/chain/seenCache/seenGossipBlockInput.ts +0 -373
  797. package/src/chain/serializeState.ts +0 -32
  798. package/src/chain/shufflingCache.ts +0 -238
  799. package/src/chain/stateCache/blockStateCacheImpl.ts +0 -150
  800. package/src/chain/stateCache/datastore/db.ts +0 -36
  801. package/src/chain/stateCache/datastore/file.ts +0 -53
  802. package/src/chain/stateCache/datastore/index.ts +0 -2
  803. package/src/chain/stateCache/datastore/types.ts +0 -13
  804. package/src/chain/stateCache/fifoBlockStateCache.ts +0 -208
  805. package/src/chain/stateCache/inMemoryCheckpointsCache.ts +0 -198
  806. package/src/chain/stateCache/index.ts +0 -3
  807. package/src/chain/stateCache/mapMetrics.ts +0 -52
  808. package/src/chain/stateCache/persistentCheckpointsCache.ts +0 -835
  809. package/src/chain/stateCache/types.ts +0 -86
  810. package/src/chain/validation/aggregateAndProof.ts +0 -258
  811. package/src/chain/validation/attestation.ts +0 -885
  812. package/src/chain/validation/attesterSlashing.ts +0 -61
  813. package/src/chain/validation/blobSidecar.ts +0 -301
  814. package/src/chain/validation/block.ts +0 -188
  815. package/src/chain/validation/blsToExecutionChange.ts +0 -61
  816. package/src/chain/validation/dataColumnSidecar.ts +0 -381
  817. package/src/chain/validation/index.ts +0 -9
  818. package/src/chain/validation/lightClientFinalityUpdate.ts +0 -45
  819. package/src/chain/validation/lightClientOptimisticUpdate.ts +0 -67
  820. package/src/chain/validation/proposerSlashing.ts +0 -54
  821. package/src/chain/validation/signatureSets/aggregateAndProof.ts +0 -38
  822. package/src/chain/validation/signatureSets/contributionAndProof.ts +0 -27
  823. package/src/chain/validation/signatureSets/index.ts +0 -6
  824. package/src/chain/validation/signatureSets/selectionProof.ts +0 -27
  825. package/src/chain/validation/signatureSets/syncCommittee.ts +0 -22
  826. package/src/chain/validation/signatureSets/syncCommitteeContribution.ts +0 -18
  827. package/src/chain/validation/signatureSets/syncCommitteeSelectionProof.ts +0 -27
  828. package/src/chain/validation/syncCommittee.ts +0 -165
  829. package/src/chain/validation/syncCommitteeContributionAndProof.ts +0 -122
  830. package/src/chain/validation/voluntaryExit.ts +0 -58
  831. package/src/chain/validatorMonitor.ts +0 -1299
  832. package/src/constants/constants.ts +0 -15
  833. package/src/constants/index.ts +0 -2
  834. package/src/constants/network.ts +0 -52
  835. package/src/db/beacon.ts +0 -113
  836. package/src/db/buckets.ts +0 -80
  837. package/src/db/index.ts +0 -2
  838. package/src/db/interface.ts +0 -76
  839. package/src/db/options.ts +0 -7
  840. package/src/db/repositories/attesterSlashing.ts +0 -38
  841. package/src/db/repositories/backfilledRanges.ts +0 -29
  842. package/src/db/repositories/blobSidecars.ts +0 -37
  843. package/src/db/repositories/blobSidecarsArchive.ts +0 -28
  844. package/src/db/repositories/block.ts +0 -33
  845. package/src/db/repositories/blockArchive.ts +0 -170
  846. package/src/db/repositories/blockArchiveIndex.ts +0 -45
  847. package/src/db/repositories/blsToExecutionChange.ts +0 -16
  848. package/src/db/repositories/checkpointState.ts +0 -31
  849. package/src/db/repositories/dataColumnSidecar.ts +0 -49
  850. package/src/db/repositories/dataColumnSidecarArchive.ts +0 -56
  851. package/src/db/repositories/depositDataRoot.ts +0 -80
  852. package/src/db/repositories/depositEvent.ts +0 -32
  853. package/src/db/repositories/eth1Data.ts +0 -33
  854. package/src/db/repositories/index.ts +0 -20
  855. package/src/db/repositories/lightclientBestUpdate.ts +0 -41
  856. package/src/db/repositories/lightclientCheckpointHeader.ts +0 -32
  857. package/src/db/repositories/lightclientSyncCommittee.ts +0 -16
  858. package/src/db/repositories/lightclientSyncCommitteeWitness.ts +0 -77
  859. package/src/db/repositories/proposerSlashing.ts +0 -15
  860. package/src/db/repositories/stateArchive.ts +0 -69
  861. package/src/db/repositories/stateArchiveIndex.ts +0 -18
  862. package/src/db/repositories/voluntaryExit.ts +0 -15
  863. package/src/db/single/index.ts +0 -2
  864. package/src/db/single/preGenesisState.ts +0 -37
  865. package/src/db/single/preGenesisStateLastProcessedBlock.ts +0 -34
  866. package/src/eth1/errors.ts +0 -40
  867. package/src/eth1/eth1DataCache.ts +0 -26
  868. package/src/eth1/eth1DepositDataTracker.ts +0 -410
  869. package/src/eth1/eth1DepositsCache.ts +0 -141
  870. package/src/eth1/eth1MergeBlockTracker.ts +0 -328
  871. package/src/eth1/index.ts +0 -157
  872. package/src/eth1/interface.ts +0 -131
  873. package/src/eth1/options.ts +0 -28
  874. package/src/eth1/provider/eth1Provider.ts +0 -229
  875. package/src/eth1/provider/jsonRpcHttpClient.ts +0 -390
  876. package/src/eth1/provider/jwt.ts +0 -36
  877. package/src/eth1/provider/utils.ts +0 -136
  878. package/src/eth1/stream.ts +0 -75
  879. package/src/eth1/utils/depositContract.ts +0 -37
  880. package/src/eth1/utils/deposits.ts +0 -70
  881. package/src/eth1/utils/eth1Data.ts +0 -100
  882. package/src/eth1/utils/eth1DepositEvent.ts +0 -12
  883. package/src/eth1/utils/eth1Vote.ts +0 -142
  884. package/src/eth1/utils/groupDepositEventsByBlock.ts +0 -19
  885. package/src/eth1/utils/optimizeNextBlockDiffForGenesis.ts +0 -18
  886. package/src/execution/builder/cache.ts +0 -39
  887. package/src/execution/builder/http.ts +0 -229
  888. package/src/execution/builder/index.ts +0 -27
  889. package/src/execution/builder/interface.ts +0 -49
  890. package/src/execution/builder/utils.ts +0 -19
  891. package/src/execution/engine/disabled.ts +0 -35
  892. package/src/execution/engine/http.ts +0 -644
  893. package/src/execution/engine/index.ts +0 -63
  894. package/src/execution/engine/interface.ts +0 -199
  895. package/src/execution/engine/mock.ts +0 -493
  896. package/src/execution/engine/payloadIdCache.ts +0 -54
  897. package/src/execution/engine/types.ts +0 -640
  898. package/src/execution/engine/utils.ts +0 -136
  899. package/src/execution/index.ts +0 -4
  900. package/src/index.ts +0 -20
  901. package/src/metrics/index.ts +0 -4
  902. package/src/metrics/metrics/beacon.ts +0 -390
  903. package/src/metrics/metrics/lodestar.ts +0 -1870
  904. package/src/metrics/metrics.ts +0 -43
  905. package/src/metrics/nodeJsMetrics.ts +0 -19
  906. package/src/metrics/options.ts +0 -22
  907. package/src/metrics/server/http.ts +0 -114
  908. package/src/metrics/server/index.ts +0 -1
  909. package/src/metrics/utils/avgMinMax.ts +0 -87
  910. package/src/metrics/utils/gauge.ts +0 -22
  911. package/src/metrics/utils/registryMetricCreator.ts +0 -41
  912. package/src/monitoring/clientStats.ts +0 -297
  913. package/src/monitoring/index.ts +0 -2
  914. package/src/monitoring/options.ts +0 -19
  915. package/src/monitoring/properties.ts +0 -152
  916. package/src/monitoring/service.ts +0 -235
  917. package/src/monitoring/system.ts +0 -146
  918. package/src/monitoring/types.ts +0 -21
  919. package/src/network/core/events.ts +0 -59
  920. package/src/network/core/index.ts +0 -3
  921. package/src/network/core/metrics.ts +0 -304
  922. package/src/network/core/networkCore.ts +0 -599
  923. package/src/network/core/networkCoreWorker.ts +0 -176
  924. package/src/network/core/networkCoreWorkerHandler.ts +0 -284
  925. package/src/network/core/types.ts +0 -119
  926. package/src/network/discv5/index.ts +0 -132
  927. package/src/network/discv5/types.ts +0 -74
  928. package/src/network/discv5/utils.ts +0 -50
  929. package/src/network/discv5/worker.ts +0 -137
  930. package/src/network/events.ts +0 -51
  931. package/src/network/forks.ts +0 -94
  932. package/src/network/gossip/constants.ts +0 -15
  933. package/src/network/gossip/encoding.ts +0 -111
  934. package/src/network/gossip/errors.ts +0 -7
  935. package/src/network/gossip/gossipsub.ts +0 -384
  936. package/src/network/gossip/index.ts +0 -4
  937. package/src/network/gossip/interface.ts +0 -215
  938. package/src/network/gossip/metrics.ts +0 -71
  939. package/src/network/gossip/scoringParameters.ts +0 -333
  940. package/src/network/gossip/topic.ts +0 -332
  941. package/src/network/index.ts +0 -8
  942. package/src/network/interface.ts +0 -134
  943. package/src/network/libp2p/error.ts +0 -55
  944. package/src/network/libp2p/index.ts +0 -153
  945. package/src/network/metadata.ts +0 -162
  946. package/src/network/network.ts +0 -767
  947. package/src/network/networkConfig.ts +0 -12
  948. package/src/network/options.ts +0 -70
  949. package/src/network/peers/client.ts +0 -29
  950. package/src/network/peers/datastore.ts +0 -188
  951. package/src/network/peers/discover.ts +0 -647
  952. package/src/network/peers/index.ts +0 -2
  953. package/src/network/peers/peerManager.ts +0 -899
  954. package/src/network/peers/peersData.ts +0 -65
  955. package/src/network/peers/score/constants.ts +0 -34
  956. package/src/network/peers/score/index.ts +0 -4
  957. package/src/network/peers/score/interface.ts +0 -74
  958. package/src/network/peers/score/score.ts +0 -200
  959. package/src/network/peers/score/store.ts +0 -95
  960. package/src/network/peers/score/utils.ts +0 -37
  961. package/src/network/peers/utils/assertPeerRelevance.ts +0 -99
  962. package/src/network/peers/utils/enrSubnetsDeserialize.ts +0 -27
  963. package/src/network/peers/utils/getConnectedPeerIds.ts +0 -33
  964. package/src/network/peers/utils/index.ts +0 -4
  965. package/src/network/peers/utils/prioritizePeers.ts +0 -627
  966. package/src/network/peers/utils/subnetMap.ts +0 -88
  967. package/src/network/processor/aggregatorTracker.ts +0 -38
  968. package/src/network/processor/extractSlotRootFns.ts +0 -64
  969. package/src/network/processor/gossipHandlers.ts +0 -951
  970. package/src/network/processor/gossipQueues/index.ts +0 -114
  971. package/src/network/processor/gossipQueues/indexed.ts +0 -219
  972. package/src/network/processor/gossipQueues/linear.ts +0 -162
  973. package/src/network/processor/gossipQueues/types.ts +0 -57
  974. package/src/network/processor/gossipValidatorFn.ts +0 -142
  975. package/src/network/processor/index.ts +0 -496
  976. package/src/network/processor/types.ts +0 -27
  977. package/src/network/reqresp/ReqRespBeaconNode.ts +0 -373
  978. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +0 -101
  979. package/src/network/reqresp/handlers/beaconBlocksByRoot.ts +0 -49
  980. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +0 -114
  981. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +0 -62
  982. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +0 -144
  983. package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +0 -88
  984. package/src/network/reqresp/handlers/index.ts +0 -78
  985. package/src/network/reqresp/handlers/lightClientBootstrap.ts +0 -31
  986. package/src/network/reqresp/handlers/lightClientFinalityUpdate.ts +0 -21
  987. package/src/network/reqresp/handlers/lightClientOptimisticUpdate.ts +0 -21
  988. package/src/network/reqresp/handlers/lightClientUpdatesByRange.ts +0 -39
  989. package/src/network/reqresp/index.ts +0 -2
  990. package/src/network/reqresp/interface.ts +0 -45
  991. package/src/network/reqresp/protocols.ts +0 -146
  992. package/src/network/reqresp/rateLimit.ts +0 -112
  993. package/src/network/reqresp/score.ts +0 -70
  994. package/src/network/reqresp/types.ts +0 -174
  995. package/src/network/reqresp/utils/collect.ts +0 -84
  996. package/src/network/reqresp/utils/collectSequentialBlocksInRange.ts +0 -57
  997. package/src/network/reqresp/utils/dataColumnResponseValidation.ts +0 -99
  998. package/src/network/statusCache.ts +0 -17
  999. package/src/network/subnets/attnetsService.ts +0 -385
  1000. package/src/network/subnets/index.ts +0 -2
  1001. package/src/network/subnets/interface.ts +0 -66
  1002. package/src/network/subnets/syncnetsService.ts +0 -147
  1003. package/src/network/subnets/util.ts +0 -63
  1004. package/src/network/util.ts +0 -29
  1005. package/src/node/index.ts +0 -2
  1006. package/src/node/nodejs.ts +0 -349
  1007. package/src/node/notifier.ts +0 -206
  1008. package/src/node/options.ts +0 -51
  1009. package/src/node/utils/interop/deposits.ts +0 -53
  1010. package/src/node/utils/interop/state.ts +0 -59
  1011. package/src/node/utils/lightclient.ts +0 -7
  1012. package/src/node/utils/state.ts +0 -37
  1013. package/src/sync/backfill/backfill.ts +0 -893
  1014. package/src/sync/backfill/errors.ts +0 -23
  1015. package/src/sync/backfill/index.ts +0 -1
  1016. package/src/sync/backfill/verify.ts +0 -58
  1017. package/src/sync/constants.ts +0 -71
  1018. package/src/sync/index.ts +0 -2
  1019. package/src/sync/interface.ts +0 -55
  1020. package/src/sync/options.ts +0 -45
  1021. package/src/sync/range/batch.ts +0 -455
  1022. package/src/sync/range/chain.ts +0 -715
  1023. package/src/sync/range/range.ts +0 -354
  1024. package/src/sync/range/utils/batches.ts +0 -119
  1025. package/src/sync/range/utils/chainTarget.ts +0 -62
  1026. package/src/sync/range/utils/hashBlocks.ts +0 -27
  1027. package/src/sync/range/utils/index.ts +0 -5
  1028. package/src/sync/range/utils/peerBalancer.ts +0 -184
  1029. package/src/sync/range/utils/updateChains.ts +0 -66
  1030. package/src/sync/sync.ts +0 -290
  1031. package/src/sync/types.ts +0 -57
  1032. package/src/sync/unknownBlock.ts +0 -859
  1033. package/src/sync/utils/downloadByRange.ts +0 -808
  1034. package/src/sync/utils/downloadByRoot.ts +0 -560
  1035. package/src/sync/utils/pendingBlocksTree.ts +0 -97
  1036. package/src/sync/utils/remoteSyncType.ts +0 -144
  1037. package/src/util/address.ts +0 -3
  1038. package/src/util/array.ts +0 -311
  1039. package/src/util/asyncIterableToEvents.ts +0 -164
  1040. package/src/util/binarySearch.ts +0 -48
  1041. package/src/util/bitArray.ts +0 -84
  1042. package/src/util/blobs.ts +0 -210
  1043. package/src/util/bufferPool.ts +0 -95
  1044. package/src/util/bytes.ts +0 -11
  1045. package/src/util/chunkify.ts +0 -27
  1046. package/src/util/clock.ts +0 -204
  1047. package/src/util/dataColumns.ts +0 -415
  1048. package/src/util/dependentRoot.ts +0 -47
  1049. package/src/util/enum.ts +0 -17
  1050. package/src/util/error.ts +0 -56
  1051. package/src/util/eventLoop.ts +0 -22
  1052. package/src/util/execution.ts +0 -223
  1053. package/src/util/file.ts +0 -52
  1054. package/src/util/forkChoice.ts +0 -5
  1055. package/src/util/forkName.ts +0 -20
  1056. package/src/util/graffiti.ts +0 -39
  1057. package/src/util/hex.ts +0 -9
  1058. package/src/util/index.ts +0 -2
  1059. package/src/util/ip.ts +0 -6
  1060. package/src/util/itTrigger.ts +0 -49
  1061. package/src/util/kzg.ts +0 -3
  1062. package/src/util/map.ts +0 -77
  1063. package/src/util/metadata.ts +0 -22
  1064. package/src/util/multifork.ts +0 -69
  1065. package/src/util/numpy.ts +0 -8
  1066. package/src/util/peerId.ts +0 -16
  1067. package/src/util/profile.ts +0 -54
  1068. package/src/util/promises.ts +0 -14
  1069. package/src/util/queue/errors.ts +0 -14
  1070. package/src/util/queue/fnQueue.ts +0 -16
  1071. package/src/util/queue/index.ts +0 -4
  1072. package/src/util/queue/itemQueue.ts +0 -128
  1073. package/src/util/queue/options.ts +0 -37
  1074. package/src/util/serializedCache.ts +0 -20
  1075. package/src/util/set.ts +0 -62
  1076. package/src/util/shuffle.ts +0 -21
  1077. package/src/util/sortBy.ts +0 -19
  1078. package/src/util/sszBytes.ts +0 -481
  1079. package/src/util/strictEvents.ts +0 -8
  1080. package/src/util/time.ts +0 -13
  1081. package/src/util/timeSeries.ts +0 -118
  1082. package/src/util/types.ts +0 -31
  1083. package/src/util/workerEvents.ts +0 -142
  1084. package/src/util/wrapError.ts +0 -27
@@ -1,438 +0,0 @@
1
- import {ChainForkConfig} from "@lodestar/config";
2
- import {
3
- ExecutionStatus,
4
- IForkChoice,
5
- LVHInvalidResponse,
6
- LVHValidResponse,
7
- MaybeValidExecutionStatus,
8
- ProtoBlock,
9
- assertValidTerminalPowBlock,
10
- } from "@lodestar/fork-choice";
11
- import {ForkSeq, SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY} from "@lodestar/params";
12
- import {
13
- CachedBeaconStateAllForks,
14
- isExecutionBlockBodyType,
15
- isExecutionEnabled,
16
- isExecutionStateType,
17
- isMergeTransitionBlock as isMergeTransitionBlockFn,
18
- } from "@lodestar/state-transition";
19
- import {Slot, bellatrix, electra} from "@lodestar/types";
20
- import {ErrorAborted, Logger, toRootHex} from "@lodestar/utils";
21
- import {IEth1ForBlockProduction} from "../../eth1/index.js";
22
- import {ExecutionPayloadStatus, IExecutionEngine} from "../../execution/engine/interface.js";
23
- import {Metrics} from "../../metrics/metrics.js";
24
- import {IClock} from "../../util/clock.js";
25
- import {BlockError, BlockErrorCode} from "../errors/index.js";
26
- import {BlockProcessOpts} from "../options.js";
27
- import {isBlockInputBlobs, isBlockInputColumns} from "./blockInput/blockInput.js";
28
- import {IBlockInput} from "./blockInput/types.js";
29
- import {ImportBlockOpts} from "./types.js";
30
-
31
- export type VerifyBlockExecutionPayloadModules = {
32
- eth1: IEth1ForBlockProduction;
33
- executionEngine: IExecutionEngine;
34
- clock: IClock;
35
- logger: Logger;
36
- metrics: Metrics | null;
37
- forkChoice: IForkChoice;
38
- config: ChainForkConfig;
39
- };
40
-
41
- type ExecAbortType = {blockIndex: number; execError: BlockError};
42
- export type SegmentExecStatus =
43
- | {
44
- execAborted: null;
45
- executionStatuses: MaybeValidExecutionStatus[];
46
- executionTime: number;
47
- mergeBlockFound: bellatrix.BeaconBlock | null;
48
- }
49
- | {execAborted: ExecAbortType; invalidSegmentLVH?: LVHInvalidResponse; mergeBlockFound: null};
50
-
51
- type VerifyExecutionErrorResponse =
52
- | {executionStatus: ExecutionStatus.Invalid; lvhResponse: LVHInvalidResponse; execError: BlockError}
53
- | {executionStatus: null; lvhResponse: undefined; execError: BlockError};
54
-
55
- type VerifyBlockExecutionResponse =
56
- | VerifyExecutionErrorResponse
57
- | {executionStatus: ExecutionStatus.Valid; lvhResponse: LVHValidResponse; execError: null}
58
- | {executionStatus: ExecutionStatus.Syncing; lvhResponse?: LVHValidResponse; execError: null}
59
- | {executionStatus: ExecutionStatus.PreMerge; lvhResponse: undefined; execError: null};
60
-
61
- /**
62
- * Verifies 1 or more execution payloads from a linear sequence of blocks.
63
- *
64
- * Since the EL client must be aware of each parent, all payloads must be submitted in sequence.
65
- */
66
- export async function verifyBlocksExecutionPayload(
67
- chain: VerifyBlockExecutionPayloadModules,
68
- parentBlock: ProtoBlock,
69
- blockInputs: IBlockInput[],
70
- preState0: CachedBeaconStateAllForks,
71
- signal: AbortSignal,
72
- opts: BlockProcessOpts & ImportBlockOpts
73
- ): Promise<SegmentExecStatus> {
74
- const executionStatuses: MaybeValidExecutionStatus[] = [];
75
- let mergeBlockFound: bellatrix.BeaconBlock | null = null;
76
- const recvToValLatency = Date.now() / 1000 - (opts.seenTimestampSec ?? Date.now() / 1000);
77
- const lastBlock = blockInputs.at(-1);
78
-
79
- // Error in the same way as verifyBlocksSanityChecks if empty blocks
80
- if (!lastBlock) {
81
- throw Error("Empty partiallyVerifiedBlocks");
82
- }
83
-
84
- // For a block with SYNCING status (called optimistic block), it's okay to import with
85
- // SYNCING status as EL could switch into syncing
86
- //
87
- // 1. On initial startup/restart
88
- // 2. When some reorg might have occurred and EL doesn't has a parent root
89
- // (observed on devnets)
90
- // 3. Because of some unavailable (and potentially invalid) root but there is no way
91
- // of knowing if this is invalid/unavailable. For unavailable block, some proposer
92
- // will (sooner or later) build on the available parent head which will
93
- // eventually win in fork-choice as other validators vote on VALID blocks.
94
- //
95
- // Once EL catches up again and respond VALID, the fork choice will be updated which
96
- // will either validate or prune invalid blocks
97
- //
98
- // We need to track and keep updating if its safe to optimistically import these blocks.
99
- // The following is how we determine for a block if its safe:
100
- //
101
- // (but we need to modify this check for this segment of blocks because it checks if the
102
- // parent of any block imported in forkchoice is post-merge and currently we could only
103
- // have blocks[0]'s parent imported in the chain as this is no longer one by one verify +
104
- // import.)
105
- //
106
- //
107
- // When to import such blocks:
108
- // From: https://github.com/ethereum/consensus-specs/pull/2844
109
- // A block MUST NOT be optimistically imported, unless either of the following
110
- // conditions are met:
111
- //
112
- // 1. Parent of the block has execution
113
- //
114
- // Since with the sync optimizations, the previous block might not have been in the
115
- // forkChoice yet, so the below check could fail for safeSlotsToImportOptimistically
116
- //
117
- // Luckily, we can depend on the preState0 to see if we are already post merge w.r.t
118
- // the blocks we are importing.
119
- //
120
- // Or in other words if
121
- // - block status is syncing
122
- // - and we are not in a post merge world and is parent is not optimistically safe
123
- // - and we are syncing close to the chain head i.e. clock slot
124
- // - and parent is optimistically safe
125
- //
126
- // then throw error
127
- //
128
- //
129
- // - if we haven't yet imported a post merge ancestor in forkchoice i.e.
130
- // - and we are syncing close to the clockSlot, i.e. merge Transition could be underway
131
- //
132
- //
133
- // 2. The current slot (as per the system clock) is at least
134
- // SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY ahead of the slot of the block being
135
- // imported.
136
- // This means that the merge transition could be underway and we can't afford to import
137
- // a block which is not fully validated as it could affect liveliness of the network.
138
- //
139
- //
140
- // For this segment of blocks:
141
- // We are optimistically safe with respect to this entire block segment if:
142
- // - all the blocks are way behind the current slot
143
- // - or we have already imported a post-merge parent of first block of this chain in forkchoice
144
- const currentSlot = chain.clock.currentSlot;
145
- const safeSlotsToImportOptimistically = opts.safeSlotsToImportOptimistically ?? SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY;
146
- let isOptimisticallySafe =
147
- parentBlock.executionStatus !== ExecutionStatus.PreMerge ||
148
- lastBlock.slot + safeSlotsToImportOptimistically < currentSlot;
149
-
150
- for (let blockIndex = 0; blockIndex < blockInputs.length; blockIndex++) {
151
- const blockInput = blockInputs[blockIndex];
152
- // If blocks are invalid in consensus the main promise could resolve before this loop ends.
153
- // In that case stop sending blocks to execution engine
154
- if (signal.aborted) {
155
- throw new ErrorAborted("verifyBlockExecutionPayloads");
156
- }
157
- const verifyResponse = await verifyBlockExecutionPayload(
158
- chain,
159
- blockInput,
160
- preState0,
161
- opts,
162
- isOptimisticallySafe,
163
- currentSlot
164
- );
165
-
166
- // If execError has happened, then we need to extract the segmentExecStatus and return
167
- if (verifyResponse.execError !== null) {
168
- return getSegmentErrorResponse({verifyResponse, blockIndex}, parentBlock, blockInputs);
169
- }
170
-
171
- // If we are here then its because executionStatus is one of MaybeValidExecutionStatus
172
- const {executionStatus} = verifyResponse;
173
- // It becomes optimistically safe for following blocks if a post-merge block is deemed fit
174
- // for import. If it would not have been safe verifyBlockExecutionPayload would have
175
- // returned execError and loop would have been aborted
176
- if (executionStatus !== ExecutionStatus.PreMerge) {
177
- isOptimisticallySafe = true;
178
- }
179
- executionStatuses.push(executionStatus);
180
-
181
- const blockBody = blockInput.getBlock().message.body;
182
- const isMergeTransitionBlock =
183
- // If the merge block is found, stop the search as the isMergeTransitionBlockFn condition
184
- // will still evaluate to true for the following blocks leading to errors (while syncing)
185
- // as the preState0 still belongs to the pre state of the first block on segment
186
- mergeBlockFound === null &&
187
- isExecutionStateType(preState0) &&
188
- isExecutionBlockBodyType(blockBody) &&
189
- isMergeTransitionBlockFn(preState0, blockBody);
190
-
191
- // If this is a merge transition block, check to ensure if it references
192
- // a valid terminal PoW block.
193
- //
194
- // However specs define this check to be run inside forkChoice's onBlock
195
- // (https://github.com/ethereum/consensus-specs/blob/dev/specs/bellatrix/fork-choice.md#on_block)
196
- // but we perform the check here (as inspired from the lighthouse impl)
197
- //
198
- // Reasons:
199
- // 1. If the block is not valid, we should fail early and not wait till
200
- // forkChoice import.
201
- // 2. It makes logical sense to pair it with the block validations and
202
- // deal it with the external services like eth1 tracker here than
203
- // in import block
204
- if (isMergeTransitionBlock) {
205
- const mergeBlock = blockInput.getBlock().message as bellatrix.BeaconBlock;
206
- const mergeBlockHash = toRootHex(chain.config.getForkTypes(mergeBlock.slot).BeaconBlock.hashTreeRoot(mergeBlock));
207
- const powBlockRootHex = toRootHex(mergeBlock.body.executionPayload.parentHash);
208
- const powBlock = await chain.eth1.getPowBlock(powBlockRootHex).catch((error) => {
209
- // Lets just warn the user here, errors if any will be reported on
210
- // `assertValidTerminalPowBlock` checks
211
- chain.logger.warn(
212
- "Error fetching terminal PoW block referred in the merge transition block",
213
- {powBlockHash: powBlockRootHex, mergeBlockHash},
214
- error
215
- );
216
- return null;
217
- });
218
-
219
- const powBlockParent =
220
- powBlock &&
221
- (await chain.eth1.getPowBlock(powBlock.parentHash).catch((error) => {
222
- // Lets just warn the user here, errors if any will be reported on
223
- // `assertValidTerminalPowBlock` checks
224
- chain.logger.warn(
225
- "Error fetching parent of the terminal PoW block referred in the merge transition block",
226
- {powBlockParentHash: powBlock.parentHash, powBlock: powBlockRootHex, mergeBlockHash},
227
- error
228
- );
229
- return null;
230
- }));
231
-
232
- // executionStatus will never == ExecutionStatus.PreMerge if it's the mergeBlock. But gotta make TS happy =D
233
- if (executionStatus === ExecutionStatus.PreMerge) {
234
- throw Error("Merge block must not have executionStatus == PreMerge");
235
- }
236
-
237
- assertValidTerminalPowBlock(chain.config, mergeBlock, {executionStatus, powBlock, powBlockParent});
238
- // Valid execution payload, but may not be in a valid beacon chain block. Delay printing the POS ACTIVATED banner
239
- // to the end of the verify block routine, which confirms that this block is fully valid.
240
- mergeBlockFound = mergeBlock;
241
- }
242
- }
243
-
244
- const executionTime = Date.now();
245
- if (
246
- blockInputs.length === 1 &&
247
- opts.seenTimestampSec !== undefined &&
248
- executionStatuses[0] === ExecutionStatus.Valid
249
- ) {
250
- const recvToValidation = executionTime / 1000 - opts.seenTimestampSec;
251
- const validationTime = recvToValidation - recvToValLatency;
252
-
253
- chain.metrics?.gossipBlock.executionPayload.recvToValidation.observe(recvToValidation);
254
- chain.metrics?.gossipBlock.executionPayload.validationTime.observe(validationTime);
255
-
256
- chain.logger.debug("Verified execution payload", {
257
- slot: blockInputs[0].slot,
258
- recvToValLatency,
259
- recvToValidation,
260
- validationTime,
261
- });
262
- }
263
-
264
- return {
265
- execAborted: null,
266
- executionStatuses,
267
- executionTime,
268
- mergeBlockFound,
269
- };
270
- }
271
-
272
- /**
273
- * Verifies a single block execution payload by sending it to the EL client (via HTTP).
274
- */
275
- export async function verifyBlockExecutionPayload(
276
- chain: VerifyBlockExecutionPayloadModules,
277
- blockInput: IBlockInput,
278
- preState0: CachedBeaconStateAllForks,
279
- opts: BlockProcessOpts,
280
- isOptimisticallySafe: boolean,
281
- currentSlot: Slot
282
- ): Promise<VerifyBlockExecutionResponse> {
283
- const block = blockInput.getBlock();
284
- /** Not null if execution is enabled */
285
- const executionPayloadEnabled =
286
- isExecutionStateType(preState0) &&
287
- isExecutionBlockBodyType(block.message.body) &&
288
- // Safe to use with a state previous to block's preState. isMergeComplete can only transition from false to true.
289
- // - If preState0 is after merge block: condition is true, and will always be true
290
- // - If preState0 is before merge block: the block could lie but then state transition function will throw above
291
- // It is kinda safe to send non-trusted payloads to the execution client because at most it can trigger sync.
292
- // TODO: If this becomes a problem, do some basic verification beforehand, like checking the proposer signature.
293
- isExecutionEnabled(preState0, block.message)
294
- ? block.message.body.executionPayload
295
- : null;
296
-
297
- if (!executionPayloadEnabled) {
298
- // isExecutionEnabled() -> false
299
- return {executionStatus: ExecutionStatus.PreMerge, execError: null} as VerifyBlockExecutionResponse;
300
- }
301
-
302
- // TODO: Handle better notifyNewPayload() returning error is syncing
303
- const fork = blockInput.forkName;
304
- const versionedHashes =
305
- isBlockInputBlobs(blockInput) || isBlockInputColumns(blockInput) ? blockInput.getVersionedHashes() : undefined;
306
- const parentBlockRoot = ForkSeq[fork] >= ForkSeq.deneb ? block.message.parentRoot : undefined;
307
- const executionRequests =
308
- ForkSeq[fork] >= ForkSeq.electra ? (block.message.body as electra.BeaconBlockBody).executionRequests : undefined;
309
-
310
- const logCtx = {slot: blockInput.slot, executionBlock: executionPayloadEnabled.blockNumber};
311
- chain.logger.debug("Call engine api newPayload", logCtx);
312
- const execResult = await chain.executionEngine.notifyNewPayload(
313
- fork,
314
- executionPayloadEnabled,
315
- versionedHashes,
316
- parentBlockRoot,
317
- executionRequests
318
- );
319
- chain.logger.debug("Receive engine api newPayload result", {...logCtx, status: execResult.status});
320
-
321
- chain.metrics?.engineNotifyNewPayloadResult.inc({result: execResult.status});
322
-
323
- switch (execResult.status) {
324
- case ExecutionPayloadStatus.VALID: {
325
- const executionStatus: ExecutionStatus.Valid = ExecutionStatus.Valid;
326
- const lvhResponse = {executionStatus, latestValidExecHash: execResult.latestValidHash};
327
- return {executionStatus, lvhResponse, execError: null};
328
- }
329
-
330
- case ExecutionPayloadStatus.INVALID: {
331
- const executionStatus: ExecutionStatus.Invalid = ExecutionStatus.Invalid;
332
- const lvhResponse = {
333
- executionStatus,
334
- latestValidExecHash: execResult.latestValidHash,
335
- invalidateFromParentBlockRoot: blockInput.parentRootHex,
336
- };
337
- const execError = new BlockError(block, {
338
- code: BlockErrorCode.EXECUTION_ENGINE_ERROR,
339
- execStatus: execResult.status,
340
- errorMessage: execResult.validationError ?? "",
341
- });
342
- return {executionStatus, lvhResponse, execError};
343
- }
344
-
345
- // Accepted and Syncing have the same treatment, as final validation of block is pending
346
- case ExecutionPayloadStatus.ACCEPTED:
347
- case ExecutionPayloadStatus.SYNCING: {
348
- // Check if the entire segment was deemed safe or, this block specifically itself if not in
349
- // the safeSlotsToImportOptimistically window of current slot, then we can import else
350
- // we need to throw and not import his block
351
- const safeSlotsToImportOptimistically =
352
- opts.safeSlotsToImportOptimistically ?? SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY;
353
- if (!isOptimisticallySafe && blockInput.slot + safeSlotsToImportOptimistically >= currentSlot) {
354
- const execError = new BlockError(block, {
355
- code: BlockErrorCode.EXECUTION_ENGINE_ERROR,
356
- execStatus: ExecutionPayloadStatus.UNSAFE_OPTIMISTIC_STATUS,
357
- errorMessage: `not safe to import ${execResult.status} payload within ${opts.safeSlotsToImportOptimistically} of currentSlot`,
358
- });
359
- return {executionStatus: null, execError} as VerifyBlockExecutionResponse;
360
- }
361
-
362
- return {executionStatus: ExecutionStatus.Syncing, execError: null};
363
- }
364
-
365
- // If the block has is not valid, or it referenced an invalid terminal block then the
366
- // block is invalid, however it has no bearing on any forkChoice cleanup
367
- //
368
- // There can be other reasons for which EL failed some of the observed ones are
369
- // 1. Connection refused / can't connect to EL port
370
- // 2. EL Internal Error
371
- // 3. Geth sometimes gives invalid merkle root error which means invalid
372
- // but expects it to be handled in CL as of now. But we should log as warning
373
- // and give it as optimistic treatment and expect any other non-geth CL<>EL
374
- // combination to reject the invalid block and propose a block.
375
- // On kintsugi devnet, this has been observed to cause contiguous proposal failures
376
- // as the network is geth dominated, till a non geth node proposes and moves network
377
- // forward
378
- // For network/unreachable errors, an optimization can be added to replay these blocks
379
- // back. But for now, lets assume other mechanisms like unknown parent block of a future
380
- // child block will cause it to replay
381
-
382
- case ExecutionPayloadStatus.INVALID_BLOCK_HASH:
383
- case ExecutionPayloadStatus.ELERROR:
384
- case ExecutionPayloadStatus.UNAVAILABLE: {
385
- const execError = new BlockError(block, {
386
- code: BlockErrorCode.EXECUTION_ENGINE_ERROR,
387
- execStatus: execResult.status,
388
- errorMessage: execResult.validationError,
389
- });
390
- return {executionStatus: null, execError} as VerifyBlockExecutionResponse;
391
- }
392
- }
393
- }
394
-
395
- function getSegmentErrorResponse(
396
- {verifyResponse, blockIndex}: {verifyResponse: VerifyExecutionErrorResponse; blockIndex: number},
397
- parentBlock: ProtoBlock,
398
- blocks: IBlockInput[]
399
- ): SegmentExecStatus {
400
- const {executionStatus, lvhResponse, execError} = verifyResponse;
401
- let invalidSegmentLVH: LVHInvalidResponse | undefined = undefined;
402
-
403
- if (
404
- executionStatus === ExecutionStatus.Invalid &&
405
- lvhResponse !== undefined &&
406
- lvhResponse.latestValidExecHash !== null
407
- ) {
408
- let lvhFound = false;
409
- for (let mayBeLVHIndex = blockIndex - 1; mayBeLVHIndex >= 0; mayBeLVHIndex--) {
410
- const block = blocks[mayBeLVHIndex].getBlock();
411
- if (
412
- toRootHex((block.message.body as bellatrix.BeaconBlockBody).executionPayload.blockHash) ===
413
- lvhResponse.latestValidExecHash
414
- ) {
415
- lvhFound = true;
416
- break;
417
- }
418
- }
419
-
420
- // If there is no valid in the segment then we have to propagate invalid response
421
- // in forkchoice as well if
422
- // - if the parentBlock is also not the lvh
423
- // - and parentBlock is not pre merge
424
- if (
425
- !lvhFound &&
426
- parentBlock.executionStatus !== ExecutionStatus.PreMerge &&
427
- parentBlock.executionPayloadBlockHash !== lvhResponse.latestValidExecHash
428
- ) {
429
- invalidSegmentLVH = {
430
- executionStatus: ExecutionStatus.Invalid,
431
- latestValidExecHash: lvhResponse.latestValidExecHash,
432
- invalidateFromParentBlockRoot: parentBlock.blockRoot,
433
- };
434
- }
435
- }
436
- const execAborted = {blockIndex, execError};
437
- return {execAborted, invalidSegmentLVH} as SegmentExecStatus;
438
- }
@@ -1,129 +0,0 @@
1
- import {ChainForkConfig} from "@lodestar/config";
2
- import {IForkChoice, ProtoBlock} from "@lodestar/fork-choice";
3
- import {computeStartSlotAtEpoch} from "@lodestar/state-transition";
4
- import {RootHex, Slot} from "@lodestar/types";
5
- import {toRootHex} from "@lodestar/utils";
6
- import {IClock} from "../../util/clock.js";
7
- import {BlockError, BlockErrorCode} from "../errors/index.js";
8
- import {IChainOptions} from "../options.js";
9
- import {IBlockInput} from "./blockInput/types.js";
10
- import {ImportBlockOpts} from "./types.js";
11
-
12
- /**
13
- * Verifies some early cheap sanity checks on the block before running the full state transition.
14
- *
15
- * - Parent is known to the fork-choice
16
- * - Check skipped slots limit
17
- * - check_block_relevancy()
18
- * - Block not in the future
19
- * - Not genesis block
20
- * - Block's slot is < Infinity
21
- * - Not finalized slot
22
- * - Not already known
23
- */
24
- export function verifyBlocksSanityChecks(
25
- chain: {
26
- forkChoice: IForkChoice;
27
- clock: IClock;
28
- config: ChainForkConfig;
29
- opts: IChainOptions;
30
- blacklistedBlocks: Map<RootHex, Slot | null>;
31
- },
32
- blocks: IBlockInput[],
33
- opts: ImportBlockOpts
34
- ): {
35
- relevantBlocks: IBlockInput[];
36
- parentSlots: Slot[];
37
- parentBlock: ProtoBlock | null;
38
- } {
39
- if (blocks.length === 0) {
40
- throw Error("Empty partiallyVerifiedBlocks");
41
- }
42
-
43
- const relevantBlocks: IBlockInput[] = [];
44
- const parentSlots: Slot[] = [];
45
- let parentBlock: ProtoBlock | null = null;
46
-
47
- for (const blockInput of blocks) {
48
- const block = blockInput.getBlock();
49
- const blockSlot = block.message.slot;
50
- const blockHash = toRootHex(chain.config.getForkTypes(block.message.slot).BeaconBlock.hashTreeRoot(block.message));
51
-
52
- if (chain.blacklistedBlocks.has(blockHash)) {
53
- // Blacklisting blocks via CLI flag only requires to set the block hash
54
- if (chain.blacklistedBlocks.get(blockHash) === null) {
55
- // Set actual slot observed when processing the block
56
- chain.blacklistedBlocks.set(blockHash, blockSlot);
57
- }
58
- throw new BlockError(block, {code: BlockErrorCode.BLACKLISTED_BLOCK});
59
- }
60
-
61
- if (chain.blacklistedBlocks.has(toRootHex(block.message.parentRoot))) {
62
- chain.blacklistedBlocks.set(blockHash, blockSlot);
63
- throw new BlockError(block, {code: BlockErrorCode.BLACKLISTED_BLOCK});
64
- }
65
-
66
- // Not genesis block
67
- // IGNORE if `partiallyVerifiedBlock.ignoreIfKnown`
68
- if (blockSlot === 0) {
69
- if (opts.ignoreIfKnown) {
70
- continue;
71
- }
72
- throw new BlockError(block, {code: BlockErrorCode.GENESIS_BLOCK});
73
- }
74
-
75
- // Not finalized slot
76
- // IGNORE if `partiallyVerifiedBlock.ignoreIfFinalized`
77
- const finalizedSlot = computeStartSlotAtEpoch(chain.forkChoice.getFinalizedCheckpoint().epoch);
78
- if (blockSlot <= finalizedSlot) {
79
- if (opts.ignoreIfFinalized) {
80
- continue;
81
- }
82
- throw new BlockError(block, {code: BlockErrorCode.WOULD_REVERT_FINALIZED_SLOT, blockSlot, finalizedSlot});
83
- }
84
-
85
- const relevantLastBlock = relevantBlocks.at(-1);
86
- let parentBlockSlot: Slot;
87
-
88
- if (relevantLastBlock) {
89
- parentBlockSlot = relevantLastBlock.getBlock().message.slot;
90
- } else {
91
- // When importing a block segment, only the first NON-IGNORED block must be known to the fork-choice.
92
- const parentRoot = toRootHex(block.message.parentRoot);
93
- parentBlock = chain.forkChoice.getBlockHex(parentRoot);
94
- if (!parentBlock) {
95
- throw new BlockError(block, {code: BlockErrorCode.PARENT_UNKNOWN, parentRoot});
96
- }
97
- // Parent is known to the fork-choice
98
- parentBlockSlot = parentBlock.slot;
99
- }
100
-
101
- // Block not in the future, also checks for infinity
102
- const currentSlot = chain.clock.currentSlot;
103
- if (blockSlot > currentSlot) {
104
- throw new BlockError(block, {code: BlockErrorCode.FUTURE_SLOT, blockSlot, currentSlot});
105
- }
106
-
107
- // Not already known
108
- // IGNORE if `partiallyVerifiedBlock.ignoreIfKnown`
109
- if (chain.forkChoice.hasBlockHex(blockHash)) {
110
- if (opts.ignoreIfKnown) {
111
- continue;
112
- }
113
-
114
- throw new BlockError(block, {code: BlockErrorCode.ALREADY_KNOWN, root: blockHash});
115
- }
116
-
117
- // Block is relevant
118
- relevantBlocks.push(blockInput);
119
- parentSlots.push(parentBlockSlot);
120
- }
121
-
122
- // Just assert to be over cautious and for purposes to be more explicit for someone
123
- // going through the code segment
124
- if (parentBlock === null && relevantBlocks.length > 0) {
125
- throw Error(`Internal error, parentBlock should not be null for relevantBlocks=${relevantBlocks.length}`);
126
- }
127
-
128
- return {relevantBlocks, parentSlots, parentBlock};
129
- }
@@ -1,105 +0,0 @@
1
- import {CachedBeaconStateAllForks, getBlockSignatureSets} from "@lodestar/state-transition";
2
- import {SignedBeaconBlock} from "@lodestar/types";
3
- import {Logger} from "@lodestar/utils";
4
- import {Metrics} from "../../metrics/metrics.js";
5
- import {nextEventLoop} from "../../util/eventLoop.js";
6
- import {IBlsVerifier} from "../bls/index.js";
7
- import {BlockError, BlockErrorCode} from "../errors/blockError.js";
8
- import {ImportBlockOpts} from "./types.js";
9
-
10
- /**
11
- * Verifies 1 or more block's signatures from a group of blocks in the same epoch.
12
- * getBlockSignatureSets() guarantees to return the correct signingRoots as long as all blocks belong in the same
13
- * epoch as `preState0`. Otherwise the shufflings won't be correct.
14
- *
15
- * Since all data is known in advance all signatures are verified at once in parallel.
16
- */
17
- export async function verifyBlocksSignatures(
18
- bls: IBlsVerifier,
19
- logger: Logger,
20
- metrics: Metrics | null,
21
- preState0: CachedBeaconStateAllForks,
22
- blocks: SignedBeaconBlock[],
23
- opts: ImportBlockOpts
24
- ): Promise<{verifySignaturesTime: number}> {
25
- const isValidPromises: Promise<boolean>[] = [];
26
- const recvToValLatency = Date.now() / 1000 - (opts.seenTimestampSec ?? Date.now() / 1000);
27
-
28
- // Verifies signatures after running state transition, so all SyncCommittee signed roots are known at this point.
29
- // We must ensure block.slot <= state.slot before running getAllBlockSignatureSets().
30
- // NOTE: If in the future multiple blocks signatures are verified at once, all blocks must be in the same epoch
31
- // so the attester and proposer shufflings are correct.
32
- for (const [i, block] of blocks.entries()) {
33
- // Use [i] to make clear that the index has to be correct to blame the right block below on BlockError()
34
- isValidPromises[i] = opts.validSignatures
35
- ? // Skip all signature verification
36
- Promise.resolve(true)
37
- : //
38
- // Verify signatures per block to track which block is invalid
39
- bls.verifySignatureSets(
40
- getBlockSignatureSets(preState0, block, {
41
- skipProposerSignature: opts.validProposerSignature,
42
- })
43
- );
44
-
45
- // getBlockSignatureSets() takes 45ms in benchmarks for 2022Q2 mainnet blocks (100 sigs). When syncing a 32 blocks
46
- // segments it will block the event loop for 1400 ms, which is too much. This call will allow the event loop to
47
- // yield, which will cause one block's state transition to run. However, the tradeoff is okay and doesn't slow sync
48
- if ((i + 1) % 8 === 0) {
49
- await nextEventLoop();
50
- }
51
- }
52
-
53
- // `rejectFirstInvalidResolveAllValid()` returns on isValid result with its index
54
- const res = await rejectFirstInvalidResolveAllValid(isValidPromises);
55
- if (!res.allValid) {
56
- throw new BlockError(blocks[res.index], {code: BlockErrorCode.INVALID_SIGNATURE, state: preState0});
57
- }
58
-
59
- const verifySignaturesTime = Date.now();
60
- if (blocks.length === 1 && opts.seenTimestampSec !== undefined) {
61
- const recvToValidation = verifySignaturesTime / 1000 - opts.seenTimestampSec;
62
- const validationTime = recvToValidation - recvToValLatency;
63
-
64
- metrics?.gossipBlock.signatureVerification.recvToValidation.observe(recvToValidation);
65
- metrics?.gossipBlock.signatureVerification.validationTime.observe(validationTime);
66
-
67
- logger.debug("Verified block signatures", {
68
- slot: blocks[0].message.slot,
69
- recvToValLatency,
70
- recvToValidation,
71
- validationTime,
72
- });
73
- }
74
-
75
- return {verifySignaturesTime};
76
- }
77
-
78
- type AllValidRes = {allValid: true} | {allValid: false; index: number};
79
-
80
- /**
81
- * From an array of promises that resolve a boolean isValid
82
- * - if all valid, await all and return
83
- * - if one invalid, abort immediately and return index of invalid
84
- */
85
- export function rejectFirstInvalidResolveAllValid(isValidPromises: Promise<boolean>[]): Promise<AllValidRes> {
86
- return new Promise<AllValidRes>((resolve, reject) => {
87
- let validCount = 0;
88
-
89
- for (let i = 0; i < isValidPromises.length; i++) {
90
- isValidPromises[i]
91
- .then((isValid) => {
92
- if (isValid) {
93
- if (++validCount >= isValidPromises.length) {
94
- resolve({allValid: true});
95
- }
96
- } else {
97
- resolve({allValid: false, index: i});
98
- }
99
- })
100
- .catch((e) => {
101
- reject(e);
102
- });
103
- }
104
- });
105
- }