@lodestar/beacon-node 1.35.0-dev.39be8f0882 → 1.35.0-dev.3d8b04e1a0

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 (1105) 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.map +1 -1
  17. package/lib/chain/GetBlobsTracker.d.ts +2 -2
  18. package/lib/chain/GetBlobsTracker.js +3 -3
  19. package/lib/chain/GetBlobsTracker.js.map +1 -1
  20. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +0 -1
  21. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  22. package/lib/chain/archiveStore/historicalState/worker.js +1 -1
  23. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  24. package/lib/chain/archiveStore/index.d.ts +1 -1
  25. package/lib/chain/archiveStore/index.js +1 -1
  26. package/lib/chain/blocks/blockInput/index.d.ts +1 -1
  27. package/lib/chain/blocks/blockInput/index.js +1 -1
  28. package/lib/chain/blocks/importBlock.js +3 -4
  29. package/lib/chain/blocks/importBlock.js.map +1 -1
  30. package/lib/chain/blocks/index.d.ts +1 -1
  31. package/lib/chain/blocks/index.js.map +1 -1
  32. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +1 -1
  33. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  34. package/lib/chain/bls/multithread/index.js +0 -1
  35. package/lib/chain/bls/multithread/index.js.map +1 -1
  36. package/lib/chain/chain.d.ts +3 -3
  37. package/lib/chain/chain.js +5 -4
  38. package/lib/chain/chain.js.map +1 -1
  39. package/lib/chain/emitter.d.ts +2 -2
  40. package/lib/chain/emitter.js.map +1 -1
  41. package/lib/chain/errors/index.d.ts +2 -2
  42. package/lib/chain/errors/index.js +2 -2
  43. package/lib/chain/errors/index.js.map +1 -1
  44. package/lib/chain/forkChoice/index.js.map +1 -1
  45. package/lib/chain/index.d.ts +2 -2
  46. package/lib/chain/index.js +2 -2
  47. package/lib/chain/index.js.map +1 -1
  48. package/lib/chain/interface.d.ts +2 -2
  49. package/lib/chain/interface.js.map +1 -1
  50. package/lib/chain/lightClient/index.js.map +1 -1
  51. package/lib/chain/lightClient/proofs.js.map +1 -1
  52. package/lib/chain/opPools/aggregatedAttestationPool.js +1 -1
  53. package/lib/chain/opPools/attestationPool.d.ts +3 -2
  54. package/lib/chain/opPools/attestationPool.js +6 -4
  55. package/lib/chain/opPools/attestationPool.js.map +1 -1
  56. package/lib/chain/opPools/index.d.ts +1 -1
  57. package/lib/chain/opPools/index.js +1 -1
  58. package/lib/chain/opPools/index.js.map +1 -1
  59. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts +2 -3
  60. package/lib/chain/opPools/syncCommitteeMessagePool.js +5 -6
  61. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  62. package/lib/chain/opPools/types.d.ts +1 -1
  63. package/lib/chain/opPools/types.js +1 -1
  64. package/lib/chain/opPools/types.js.map +1 -1
  65. package/lib/chain/options.js +1 -1
  66. package/lib/chain/options.js.map +1 -1
  67. package/lib/chain/prepareNextSlot.d.ts +3 -3
  68. package/lib/chain/prepareNextSlot.js +8 -8
  69. package/lib/chain/prepareNextSlot.js.map +1 -1
  70. package/lib/chain/regen/index.d.ts +1 -1
  71. package/lib/chain/regen/index.js +1 -1
  72. package/lib/chain/regen/index.js.map +1 -1
  73. package/lib/chain/stateCache/datastore/index.d.ts +1 -1
  74. package/lib/chain/stateCache/datastore/index.js +1 -1
  75. package/lib/chain/stateCache/datastore/index.js.map +1 -1
  76. package/lib/chain/stateCache/index.d.ts +1 -1
  77. package/lib/chain/stateCache/index.js +1 -1
  78. package/lib/chain/stateCache/index.js.map +1 -1
  79. package/lib/chain/stateCache/persistentCheckpointsCache.js +10 -10
  80. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  81. package/lib/chain/validation/blobSidecar.js.map +1 -1
  82. package/lib/chain/validation/dataColumnSidecar.js +1 -1
  83. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  84. package/lib/chain/validation/index.d.ts +1 -1
  85. package/lib/chain/validation/index.js +1 -1
  86. package/lib/chain/validation/index.js.map +1 -1
  87. package/lib/chain/validation/lightClientFinalityUpdate.js +3 -4
  88. package/lib/chain/validation/lightClientFinalityUpdate.js.map +1 -1
  89. package/lib/chain/validation/lightClientOptimisticUpdate.d.ts +4 -6
  90. package/lib/chain/validation/lightClientOptimisticUpdate.js +11 -11
  91. package/lib/chain/validation/lightClientOptimisticUpdate.js.map +1 -1
  92. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts +2 -1
  93. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  94. package/lib/chain/validatorMonitor.d.ts +3 -1
  95. package/lib/chain/validatorMonitor.js +14 -20
  96. package/lib/chain/validatorMonitor.js.map +1 -1
  97. package/lib/db/buckets.d.ts +4 -4
  98. package/lib/db/buckets.js +4 -4
  99. package/lib/db/buckets.js.map +1 -1
  100. package/lib/db/index.d.ts +1 -1
  101. package/lib/db/index.js.map +1 -1
  102. package/lib/db/repositories/blobSidecars.js +1 -1
  103. package/lib/db/repositories/blobSidecars.js.map +1 -1
  104. package/lib/db/repositories/blobSidecarsArchive.js +1 -1
  105. package/lib/db/repositories/blobSidecarsArchive.js.map +1 -1
  106. package/lib/db/repositories/blockArchive.js +3 -2
  107. package/lib/db/repositories/blockArchive.js.map +1 -1
  108. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  109. package/lib/db/repositories/dataColumnSidecar.js +2 -2
  110. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  111. package/lib/db/repositories/dataColumnSidecarArchive.js +2 -2
  112. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  113. package/lib/db/repositories/index.d.ts +10 -10
  114. package/lib/db/repositories/index.js +9 -9
  115. package/lib/db/repositories/index.js.map +1 -1
  116. package/lib/eth1/eth1DepositDataTracker.js.map +1 -1
  117. package/lib/eth1/eth1DepositsCache.js.map +1 -1
  118. package/lib/eth1/provider/eth1Provider.d.ts +2 -1
  119. package/lib/eth1/provider/eth1Provider.js.map +1 -1
  120. package/lib/eth1/provider/jsonRpcHttpClient.d.ts +1 -1
  121. package/lib/eth1/provider/jsonRpcHttpClient.js.map +1 -1
  122. package/lib/eth1/provider/jwt.js.map +1 -1
  123. package/lib/eth1/utils/deposits.js.map +1 -1
  124. package/lib/execution/builder/index.js.map +1 -1
  125. package/lib/execution/engine/interface.js.map +1 -1
  126. package/lib/execution/engine/types.js.map +1 -1
  127. package/lib/execution/engine/utils.js +2 -1
  128. package/lib/execution/engine/utils.js.map +1 -1
  129. package/lib/execution/index.d.ts +2 -2
  130. package/lib/execution/index.js +2 -2
  131. package/lib/execution/index.js.map +1 -1
  132. package/lib/index.d.ts +6 -6
  133. package/lib/index.js +5 -5
  134. package/lib/index.js.map +1 -1
  135. package/lib/metrics/index.d.ts +1 -1
  136. package/lib/metrics/index.js +1 -1
  137. package/lib/metrics/index.js.map +1 -1
  138. package/lib/metrics/metrics/lodestar.d.ts +2 -2
  139. package/lib/metrics/metrics/lodestar.js +3 -3
  140. package/lib/metrics/metrics/lodestar.js.map +1 -1
  141. package/lib/metrics/metrics.d.ts +1 -1
  142. package/lib/metrics/metrics.js.map +1 -1
  143. package/lib/metrics/nodeJsMetrics.js +1 -1
  144. package/lib/metrics/nodeJsMetrics.js.map +1 -1
  145. package/lib/metrics/server/http.d.ts +1 -1
  146. package/lib/metrics/utils/avgMinMax.d.ts +1 -1
  147. package/lib/metrics/utils/gauge.d.ts +1 -1
  148. package/lib/metrics/utils/gauge.js.map +1 -1
  149. package/lib/metrics/utils/registryMetricCreator.d.ts +1 -1
  150. package/lib/metrics/utils/registryMetricCreator.js.map +1 -1
  151. package/lib/monitoring/service.js.map +1 -1
  152. package/lib/monitoring/system.js.map +1 -1
  153. package/lib/network/core/networkCore.d.ts +1 -1
  154. package/lib/network/core/networkCore.js +1 -1
  155. package/lib/network/core/networkCore.js.map +1 -1
  156. package/lib/network/core/networkCoreWorker.js +1 -1
  157. package/lib/network/core/networkCoreWorker.js.map +1 -1
  158. package/lib/network/core/networkCoreWorkerHandler.d.ts +1 -1
  159. package/lib/network/core/networkCoreWorkerHandler.js +4 -10
  160. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  161. package/lib/network/discv5/index.d.ts +2 -2
  162. package/lib/network/discv5/index.js +2 -5
  163. package/lib/network/discv5/index.js.map +1 -1
  164. package/lib/network/discv5/worker.js +3 -3
  165. package/lib/network/discv5/worker.js.map +1 -1
  166. package/lib/network/gossip/encoding.d.ts +1 -1
  167. package/lib/network/gossip/encoding.js +2 -2
  168. package/lib/network/gossip/encoding.js.map +1 -1
  169. package/lib/network/gossip/gossipsub.d.ts +1 -2
  170. package/lib/network/gossip/gossipsub.js +17 -36
  171. package/lib/network/gossip/gossipsub.js.map +1 -1
  172. package/lib/network/gossip/index.d.ts +2 -2
  173. package/lib/network/gossip/index.js +2 -2
  174. package/lib/network/gossip/index.js.map +1 -1
  175. package/lib/network/gossip/interface.d.ts +2 -2
  176. package/lib/network/gossip/metrics.d.ts +7 -15
  177. package/lib/network/gossip/metrics.js +6 -16
  178. package/lib/network/gossip/metrics.js.map +1 -1
  179. package/lib/network/gossip/topic.d.ts +60 -80
  180. package/lib/network/gossip/topic.js.map +1 -1
  181. package/lib/network/index.d.ts +3 -3
  182. package/lib/network/index.js +3 -3
  183. package/lib/network/index.js.map +1 -1
  184. package/lib/network/interface.d.ts +1 -1
  185. package/lib/network/libp2p/index.js +3 -11
  186. package/lib/network/libp2p/index.js.map +1 -1
  187. package/lib/network/metadata.js +1 -2
  188. package/lib/network/metadata.js.map +1 -1
  189. package/lib/network/network.d.ts +2 -2
  190. package/lib/network/network.js +13 -11
  191. package/lib/network/network.js.map +1 -1
  192. package/lib/network/peers/datastore.d.ts +2 -2
  193. package/lib/network/peers/datastore.js +2 -2
  194. package/lib/network/peers/datastore.js.map +1 -1
  195. package/lib/network/peers/discover.js +2 -1
  196. package/lib/network/peers/discover.js.map +1 -1
  197. package/lib/network/peers/peerManager.js.map +1 -1
  198. package/lib/network/peers/score/index.d.ts +1 -1
  199. package/lib/network/peers/score/index.js +1 -1
  200. package/lib/network/peers/score/index.js.map +1 -1
  201. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  202. package/lib/network/processor/gossipHandlers.js +1 -1
  203. package/lib/network/processor/index.d.ts +1 -1
  204. package/lib/network/processor/index.js +5 -3
  205. package/lib/network/processor/index.js.map +1 -1
  206. package/lib/network/reqresp/ReqRespBeaconNode.d.ts +1 -1
  207. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  208. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  209. package/lib/network/reqresp/index.d.ts +1 -1
  210. package/lib/network/reqresp/index.js +1 -1
  211. package/lib/network/reqresp/index.js.map +1 -1
  212. package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -1
  213. package/lib/network/subnets/interface.js +1 -1
  214. package/lib/network/subnets/interface.js.map +1 -1
  215. package/lib/network/subnets/util.js +2 -1
  216. package/lib/network/subnets/util.js.map +1 -1
  217. package/lib/node/nodejs.d.ts +1 -1
  218. package/lib/node/nodejs.js.map +1 -1
  219. package/lib/node/notifier.js +2 -1
  220. package/lib/node/notifier.js.map +1 -1
  221. package/lib/node/options.js.map +1 -1
  222. package/lib/node/utils/interop/state.js +2 -1
  223. package/lib/node/utils/interop/state.js.map +1 -1
  224. package/lib/sync/backfill/backfill.d.ts +1 -1
  225. package/lib/sync/backfill/backfill.js +1 -1
  226. package/lib/sync/backfill/backfill.js.map +1 -1
  227. package/lib/sync/range/batch.d.ts +2 -2
  228. package/lib/sync/range/batch.js +1 -1
  229. package/lib/sync/range/batch.js.map +1 -1
  230. package/lib/sync/range/chain.d.ts +1 -1
  231. package/lib/sync/range/chain.js.map +1 -1
  232. package/lib/sync/range/range.d.ts +1 -1
  233. package/lib/sync/range/range.js.map +1 -1
  234. package/lib/sync/sync.d.ts +2 -1
  235. package/lib/sync/sync.js.map +1 -1
  236. package/lib/sync/types.d.ts +1 -0
  237. package/lib/sync/types.js.map +1 -1
  238. package/lib/sync/unknownBlock.d.ts +1 -0
  239. package/lib/sync/unknownBlock.js +20 -18
  240. package/lib/sync/unknownBlock.js.map +1 -1
  241. package/lib/sync/utils/downloadByRange.d.ts +1 -1
  242. package/lib/sync/utils/downloadByRoot.d.ts +2 -4
  243. package/lib/sync/utils/downloadByRoot.js +9 -36
  244. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  245. package/lib/util/blobs.js +3 -5
  246. package/lib/util/blobs.js.map +1 -1
  247. package/lib/util/clock.d.ts +1 -6
  248. package/lib/util/clock.js +0 -3
  249. package/lib/util/clock.js.map +1 -1
  250. package/lib/util/dataColumns.d.ts +2 -2
  251. package/lib/util/dataColumns.js +4 -4
  252. package/lib/util/dataColumns.js.map +1 -1
  253. package/lib/util/execution.d.ts +2 -2
  254. package/lib/util/execution.js +8 -25
  255. package/lib/util/execution.js.map +1 -1
  256. package/lib/util/queue/index.d.ts +1 -1
  257. package/lib/util/queue/index.js +1 -1
  258. package/lib/util/queue/index.js.map +1 -1
  259. package/package.json +22 -32
  260. package/lib/api/impl/api.d.ts.map +0 -1
  261. package/lib/api/impl/beacon/blocks/index.d.ts.map +0 -1
  262. package/lib/api/impl/beacon/blocks/utils.d.ts.map +0 -1
  263. package/lib/api/impl/beacon/index.d.ts.map +0 -1
  264. package/lib/api/impl/beacon/pool/index.d.ts.map +0 -1
  265. package/lib/api/impl/beacon/rewards/index.d.ts.map +0 -1
  266. package/lib/api/impl/beacon/state/index.d.ts.map +0 -1
  267. package/lib/api/impl/beacon/state/utils.d.ts.map +0 -1
  268. package/lib/api/impl/config/constants.d.ts.map +0 -1
  269. package/lib/api/impl/config/index.d.ts.map +0 -1
  270. package/lib/api/impl/debug/index.d.ts.map +0 -1
  271. package/lib/api/impl/errors.d.ts.map +0 -1
  272. package/lib/api/impl/events/index.d.ts.map +0 -1
  273. package/lib/api/impl/index.d.ts.map +0 -1
  274. package/lib/api/impl/lightclient/index.d.ts.map +0 -1
  275. package/lib/api/impl/lodestar/index.d.ts.map +0 -1
  276. package/lib/api/impl/node/index.d.ts.map +0 -1
  277. package/lib/api/impl/node/utils.d.ts.map +0 -1
  278. package/lib/api/impl/proof/index.d.ts.map +0 -1
  279. package/lib/api/impl/types.d.ts.map +0 -1
  280. package/lib/api/impl/utils.d.ts.map +0 -1
  281. package/lib/api/impl/validator/index.d.ts.map +0 -1
  282. package/lib/api/impl/validator/utils.d.ts.map +0 -1
  283. package/lib/api/index.d.ts.map +0 -1
  284. package/lib/api/options.d.ts.map +0 -1
  285. package/lib/api/rest/activeSockets.d.ts.map +0 -1
  286. package/lib/api/rest/base.d.ts.map +0 -1
  287. package/lib/api/rest/index.d.ts.map +0 -1
  288. package/lib/api/rest/swaggerUI.d.ts.map +0 -1
  289. package/lib/bun-wrappers/prometheus-gc-stats.d.ts.map +0 -1
  290. package/lib/chain/ColumnReconstructionTracker.d.ts.map +0 -1
  291. package/lib/chain/GetBlobsTracker.d.ts.map +0 -1
  292. package/lib/chain/archiveStore/archiveStore.d.ts.map +0 -1
  293. package/lib/chain/archiveStore/constants.d.ts.map +0 -1
  294. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +0 -1
  295. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts.map +0 -1
  296. package/lib/chain/archiveStore/historicalState/metrics.d.ts.map +0 -1
  297. package/lib/chain/archiveStore/historicalState/types.d.ts.map +0 -1
  298. package/lib/chain/archiveStore/historicalState/worker.d.ts.map +0 -1
  299. package/lib/chain/archiveStore/index.d.ts.map +0 -1
  300. package/lib/chain/archiveStore/interface.d.ts.map +0 -1
  301. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +0 -1
  302. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +0 -1
  303. package/lib/chain/archiveStore/utils/pruneHistory.d.ts.map +0 -1
  304. package/lib/chain/archiveStore/utils/updateBackfillRange.d.ts.map +0 -1
  305. package/lib/chain/balancesCache.d.ts.map +0 -1
  306. package/lib/chain/beaconProposerCache.d.ts.map +0 -1
  307. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +0 -1
  308. package/lib/chain/blocks/blockInput/errors.d.ts.map +0 -1
  309. package/lib/chain/blocks/blockInput/index.d.ts.map +0 -1
  310. package/lib/chain/blocks/blockInput/types.d.ts.map +0 -1
  311. package/lib/chain/blocks/blockInput/utils.d.ts.map +0 -1
  312. package/lib/chain/blocks/importBlock.d.ts.map +0 -1
  313. package/lib/chain/blocks/index.d.ts.map +0 -1
  314. package/lib/chain/blocks/types.d.ts.map +0 -1
  315. package/lib/chain/blocks/utils/blowfishBanner.d.ts.map +0 -1
  316. package/lib/chain/blocks/utils/chainSegment.d.ts.map +0 -1
  317. package/lib/chain/blocks/utils/checkpoint.d.ts.map +0 -1
  318. package/lib/chain/blocks/utils/giraffeBanner.d.ts.map +0 -1
  319. package/lib/chain/blocks/utils/ownBanner.d.ts.map +0 -1
  320. package/lib/chain/blocks/utils/pandaMergeTransitionBanner.d.ts.map +0 -1
  321. package/lib/chain/blocks/utils/zebraBanner.d.ts.map +0 -1
  322. package/lib/chain/blocks/verifyBlock.d.ts.map +0 -1
  323. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +0 -1
  324. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +0 -1
  325. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +0 -1
  326. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +0 -1
  327. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +0 -1
  328. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +0 -1
  329. package/lib/chain/bls/index.d.ts.map +0 -1
  330. package/lib/chain/bls/interface.d.ts.map +0 -1
  331. package/lib/chain/bls/maybeBatch.d.ts.map +0 -1
  332. package/lib/chain/bls/multithread/index.d.ts.map +0 -1
  333. package/lib/chain/bls/multithread/jobItem.d.ts.map +0 -1
  334. package/lib/chain/bls/multithread/poolSize.d.ts.map +0 -1
  335. package/lib/chain/bls/multithread/types.d.ts.map +0 -1
  336. package/lib/chain/bls/multithread/utils.d.ts.map +0 -1
  337. package/lib/chain/bls/multithread/worker.d.ts.map +0 -1
  338. package/lib/chain/bls/singleThread.d.ts.map +0 -1
  339. package/lib/chain/bls/utils.d.ts.map +0 -1
  340. package/lib/chain/chain.d.ts.map +0 -1
  341. package/lib/chain/emitter.d.ts.map +0 -1
  342. package/lib/chain/errors/attestationError.d.ts.map +0 -1
  343. package/lib/chain/errors/attesterSlashingError.d.ts.map +0 -1
  344. package/lib/chain/errors/blobSidecarError.d.ts.map +0 -1
  345. package/lib/chain/errors/blockError.d.ts.map +0 -1
  346. package/lib/chain/errors/blsToExecutionChangeError.d.ts.map +0 -1
  347. package/lib/chain/errors/dataColumnSidecarError.d.ts.map +0 -1
  348. package/lib/chain/errors/gossipValidation.d.ts.map +0 -1
  349. package/lib/chain/errors/index.d.ts.map +0 -1
  350. package/lib/chain/errors/lightClientError.d.ts.map +0 -1
  351. package/lib/chain/errors/proposerSlashingError.d.ts.map +0 -1
  352. package/lib/chain/errors/syncCommitteeError.d.ts.map +0 -1
  353. package/lib/chain/errors/voluntaryExitError.d.ts.map +0 -1
  354. package/lib/chain/forkChoice/index.d.ts.map +0 -1
  355. package/lib/chain/genesis/genesis.d.ts.map +0 -1
  356. package/lib/chain/genesis/interface.d.ts.map +0 -1
  357. package/lib/chain/index.d.ts.map +0 -1
  358. package/lib/chain/initState.d.ts.map +0 -1
  359. package/lib/chain/interface.d.ts.map +0 -1
  360. package/lib/chain/lightClient/index.d.ts.map +0 -1
  361. package/lib/chain/lightClient/proofs.d.ts.map +0 -1
  362. package/lib/chain/lightClient/types.d.ts.map +0 -1
  363. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +0 -1
  364. package/lib/chain/opPools/attestationPool.d.ts.map +0 -1
  365. package/lib/chain/opPools/index.d.ts.map +0 -1
  366. package/lib/chain/opPools/opPool.d.ts.map +0 -1
  367. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +0 -1
  368. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +0 -1
  369. package/lib/chain/opPools/types.d.ts.map +0 -1
  370. package/lib/chain/opPools/utils.d.ts.map +0 -1
  371. package/lib/chain/options.d.ts.map +0 -1
  372. package/lib/chain/prepareNextSlot.d.ts.map +0 -1
  373. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +0 -1
  374. package/lib/chain/produceBlock/index.d.ts.map +0 -1
  375. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +0 -1
  376. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts.map +0 -1
  377. package/lib/chain/regen/errors.d.ts.map +0 -1
  378. package/lib/chain/regen/index.d.ts.map +0 -1
  379. package/lib/chain/regen/interface.d.ts.map +0 -1
  380. package/lib/chain/regen/queued.d.ts.map +0 -1
  381. package/lib/chain/regen/regen.d.ts.map +0 -1
  382. package/lib/chain/reprocess.d.ts.map +0 -1
  383. package/lib/chain/rewards/attestationsRewards.d.ts.map +0 -1
  384. package/lib/chain/rewards/blockRewards.d.ts.map +0 -1
  385. package/lib/chain/rewards/syncCommitteeRewards.d.ts.map +0 -1
  386. package/lib/chain/seenCache/index.d.ts.map +0 -1
  387. package/lib/chain/seenCache/seenAggregateAndProof.d.ts.map +0 -1
  388. package/lib/chain/seenCache/seenAttestationData.d.ts.map +0 -1
  389. package/lib/chain/seenCache/seenAttesters.d.ts.map +0 -1
  390. package/lib/chain/seenCache/seenBlockAttesters.d.ts.map +0 -1
  391. package/lib/chain/seenCache/seenBlockProposers.d.ts.map +0 -1
  392. package/lib/chain/seenCache/seenCommittee.d.ts.map +0 -1
  393. package/lib/chain/seenCache/seenCommitteeContribution.d.ts.map +0 -1
  394. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +0 -1
  395. package/lib/chain/serializeState.d.ts.map +0 -1
  396. package/lib/chain/shufflingCache.d.ts.map +0 -1
  397. package/lib/chain/stateCache/blockStateCacheImpl.d.ts.map +0 -1
  398. package/lib/chain/stateCache/datastore/db.d.ts.map +0 -1
  399. package/lib/chain/stateCache/datastore/file.d.ts.map +0 -1
  400. package/lib/chain/stateCache/datastore/index.d.ts.map +0 -1
  401. package/lib/chain/stateCache/datastore/types.d.ts.map +0 -1
  402. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +0 -1
  403. package/lib/chain/stateCache/inMemoryCheckpointsCache.d.ts.map +0 -1
  404. package/lib/chain/stateCache/index.d.ts.map +0 -1
  405. package/lib/chain/stateCache/mapMetrics.d.ts.map +0 -1
  406. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +0 -1
  407. package/lib/chain/stateCache/types.d.ts.map +0 -1
  408. package/lib/chain/validation/aggregateAndProof.d.ts.map +0 -1
  409. package/lib/chain/validation/attestation.d.ts.map +0 -1
  410. package/lib/chain/validation/attesterSlashing.d.ts.map +0 -1
  411. package/lib/chain/validation/blobSidecar.d.ts.map +0 -1
  412. package/lib/chain/validation/block.d.ts.map +0 -1
  413. package/lib/chain/validation/blsToExecutionChange.d.ts.map +0 -1
  414. package/lib/chain/validation/dataColumnSidecar.d.ts.map +0 -1
  415. package/lib/chain/validation/index.d.ts.map +0 -1
  416. package/lib/chain/validation/lightClientFinalityUpdate.d.ts.map +0 -1
  417. package/lib/chain/validation/lightClientOptimisticUpdate.d.ts.map +0 -1
  418. package/lib/chain/validation/proposerSlashing.d.ts.map +0 -1
  419. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts.map +0 -1
  420. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts.map +0 -1
  421. package/lib/chain/validation/signatureSets/index.d.ts.map +0 -1
  422. package/lib/chain/validation/signatureSets/selectionProof.d.ts.map +0 -1
  423. package/lib/chain/validation/signatureSets/syncCommittee.d.ts.map +0 -1
  424. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts.map +0 -1
  425. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts.map +0 -1
  426. package/lib/chain/validation/syncCommittee.d.ts.map +0 -1
  427. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +0 -1
  428. package/lib/chain/validation/voluntaryExit.d.ts.map +0 -1
  429. package/lib/chain/validatorMonitor.d.ts.map +0 -1
  430. package/lib/constants/constants.d.ts.map +0 -1
  431. package/lib/constants/index.d.ts.map +0 -1
  432. package/lib/constants/network.d.ts.map +0 -1
  433. package/lib/db/beacon.d.ts.map +0 -1
  434. package/lib/db/buckets.d.ts.map +0 -1
  435. package/lib/db/index.d.ts.map +0 -1
  436. package/lib/db/interface.d.ts.map +0 -1
  437. package/lib/db/options.d.ts.map +0 -1
  438. package/lib/db/repositories/attesterSlashing.d.ts.map +0 -1
  439. package/lib/db/repositories/backfilledRanges.d.ts.map +0 -1
  440. package/lib/db/repositories/blobSidecars.d.ts.map +0 -1
  441. package/lib/db/repositories/blobSidecarsArchive.d.ts.map +0 -1
  442. package/lib/db/repositories/block.d.ts.map +0 -1
  443. package/lib/db/repositories/blockArchive.d.ts.map +0 -1
  444. package/lib/db/repositories/blockArchiveIndex.d.ts.map +0 -1
  445. package/lib/db/repositories/blsToExecutionChange.d.ts.map +0 -1
  446. package/lib/db/repositories/checkpointState.d.ts.map +0 -1
  447. package/lib/db/repositories/dataColumnSidecar.d.ts.map +0 -1
  448. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +0 -1
  449. package/lib/db/repositories/depositDataRoot.d.ts.map +0 -1
  450. package/lib/db/repositories/depositEvent.d.ts.map +0 -1
  451. package/lib/db/repositories/eth1Data.d.ts.map +0 -1
  452. package/lib/db/repositories/index.d.ts.map +0 -1
  453. package/lib/db/repositories/lightclientBestUpdate.d.ts.map +0 -1
  454. package/lib/db/repositories/lightclientCheckpointHeader.d.ts.map +0 -1
  455. package/lib/db/repositories/lightclientSyncCommittee.d.ts.map +0 -1
  456. package/lib/db/repositories/lightclientSyncCommitteeWitness.d.ts.map +0 -1
  457. package/lib/db/repositories/proposerSlashing.d.ts.map +0 -1
  458. package/lib/db/repositories/stateArchive.d.ts.map +0 -1
  459. package/lib/db/repositories/stateArchiveIndex.d.ts.map +0 -1
  460. package/lib/db/repositories/voluntaryExit.d.ts.map +0 -1
  461. package/lib/db/single/index.d.ts.map +0 -1
  462. package/lib/db/single/preGenesisState.d.ts.map +0 -1
  463. package/lib/db/single/preGenesisStateLastProcessedBlock.d.ts.map +0 -1
  464. package/lib/eth1/errors.d.ts.map +0 -1
  465. package/lib/eth1/eth1DataCache.d.ts.map +0 -1
  466. package/lib/eth1/eth1DepositDataTracker.d.ts.map +0 -1
  467. package/lib/eth1/eth1DepositsCache.d.ts.map +0 -1
  468. package/lib/eth1/eth1MergeBlockTracker.d.ts.map +0 -1
  469. package/lib/eth1/index.d.ts.map +0 -1
  470. package/lib/eth1/interface.d.ts.map +0 -1
  471. package/lib/eth1/options.d.ts.map +0 -1
  472. package/lib/eth1/provider/eth1Provider.d.ts.map +0 -1
  473. package/lib/eth1/provider/jsonRpcHttpClient.d.ts.map +0 -1
  474. package/lib/eth1/provider/jwt.d.ts.map +0 -1
  475. package/lib/eth1/provider/utils.d.ts.map +0 -1
  476. package/lib/eth1/stream.d.ts.map +0 -1
  477. package/lib/eth1/utils/depositContract.d.ts.map +0 -1
  478. package/lib/eth1/utils/deposits.d.ts.map +0 -1
  479. package/lib/eth1/utils/eth1Data.d.ts.map +0 -1
  480. package/lib/eth1/utils/eth1DepositEvent.d.ts.map +0 -1
  481. package/lib/eth1/utils/eth1Vote.d.ts.map +0 -1
  482. package/lib/eth1/utils/groupDepositEventsByBlock.d.ts.map +0 -1
  483. package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.d.ts.map +0 -1
  484. package/lib/execution/builder/cache.d.ts.map +0 -1
  485. package/lib/execution/builder/http.d.ts.map +0 -1
  486. package/lib/execution/builder/index.d.ts.map +0 -1
  487. package/lib/execution/builder/interface.d.ts.map +0 -1
  488. package/lib/execution/builder/utils.d.ts.map +0 -1
  489. package/lib/execution/engine/disabled.d.ts.map +0 -1
  490. package/lib/execution/engine/http.d.ts.map +0 -1
  491. package/lib/execution/engine/index.d.ts.map +0 -1
  492. package/lib/execution/engine/interface.d.ts.map +0 -1
  493. package/lib/execution/engine/mock.d.ts.map +0 -1
  494. package/lib/execution/engine/payloadIdCache.d.ts.map +0 -1
  495. package/lib/execution/engine/types.d.ts.map +0 -1
  496. package/lib/execution/engine/utils.d.ts.map +0 -1
  497. package/lib/execution/index.d.ts.map +0 -1
  498. package/lib/index.d.ts.map +0 -1
  499. package/lib/metrics/index.d.ts.map +0 -1
  500. package/lib/metrics/metrics/beacon.d.ts.map +0 -1
  501. package/lib/metrics/metrics/lodestar.d.ts.map +0 -1
  502. package/lib/metrics/metrics.d.ts.map +0 -1
  503. package/lib/metrics/nodeJsMetrics.d.ts.map +0 -1
  504. package/lib/metrics/options.d.ts.map +0 -1
  505. package/lib/metrics/server/http.d.ts.map +0 -1
  506. package/lib/metrics/server/index.d.ts.map +0 -1
  507. package/lib/metrics/utils/avgMinMax.d.ts.map +0 -1
  508. package/lib/metrics/utils/gauge.d.ts.map +0 -1
  509. package/lib/metrics/utils/registryMetricCreator.d.ts.map +0 -1
  510. package/lib/monitoring/clientStats.d.ts.map +0 -1
  511. package/lib/monitoring/index.d.ts.map +0 -1
  512. package/lib/monitoring/options.d.ts.map +0 -1
  513. package/lib/monitoring/properties.d.ts.map +0 -1
  514. package/lib/monitoring/service.d.ts.map +0 -1
  515. package/lib/monitoring/system.d.ts.map +0 -1
  516. package/lib/monitoring/types.d.ts.map +0 -1
  517. package/lib/network/core/events.d.ts.map +0 -1
  518. package/lib/network/core/index.d.ts.map +0 -1
  519. package/lib/network/core/metrics.d.ts.map +0 -1
  520. package/lib/network/core/networkCore.d.ts.map +0 -1
  521. package/lib/network/core/networkCoreWorker.d.ts.map +0 -1
  522. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +0 -1
  523. package/lib/network/core/types.d.ts.map +0 -1
  524. package/lib/network/discv5/index.d.ts.map +0 -1
  525. package/lib/network/discv5/types.d.ts.map +0 -1
  526. package/lib/network/discv5/utils.d.ts.map +0 -1
  527. package/lib/network/discv5/worker.d.ts.map +0 -1
  528. package/lib/network/events.d.ts.map +0 -1
  529. package/lib/network/forks.d.ts.map +0 -1
  530. package/lib/network/gossip/constants.d.ts.map +0 -1
  531. package/lib/network/gossip/encoding.d.ts.map +0 -1
  532. package/lib/network/gossip/errors.d.ts.map +0 -1
  533. package/lib/network/gossip/gossipsub.d.ts.map +0 -1
  534. package/lib/network/gossip/index.d.ts.map +0 -1
  535. package/lib/network/gossip/interface.d.ts.map +0 -1
  536. package/lib/network/gossip/metrics.d.ts.map +0 -1
  537. package/lib/network/gossip/scoringParameters.d.ts.map +0 -1
  538. package/lib/network/gossip/topic.d.ts.map +0 -1
  539. package/lib/network/index.d.ts.map +0 -1
  540. package/lib/network/interface.d.ts.map +0 -1
  541. package/lib/network/libp2p/error.d.ts.map +0 -1
  542. package/lib/network/libp2p/index.d.ts.map +0 -1
  543. package/lib/network/metadata.d.ts.map +0 -1
  544. package/lib/network/network.d.ts.map +0 -1
  545. package/lib/network/networkConfig.d.ts.map +0 -1
  546. package/lib/network/options.d.ts.map +0 -1
  547. package/lib/network/peers/client.d.ts.map +0 -1
  548. package/lib/network/peers/datastore.d.ts.map +0 -1
  549. package/lib/network/peers/discover.d.ts.map +0 -1
  550. package/lib/network/peers/index.d.ts.map +0 -1
  551. package/lib/network/peers/peerManager.d.ts.map +0 -1
  552. package/lib/network/peers/peersData.d.ts.map +0 -1
  553. package/lib/network/peers/score/constants.d.ts.map +0 -1
  554. package/lib/network/peers/score/index.d.ts.map +0 -1
  555. package/lib/network/peers/score/interface.d.ts.map +0 -1
  556. package/lib/network/peers/score/score.d.ts.map +0 -1
  557. package/lib/network/peers/score/store.d.ts.map +0 -1
  558. package/lib/network/peers/score/utils.d.ts.map +0 -1
  559. package/lib/network/peers/utils/assertPeerRelevance.d.ts.map +0 -1
  560. package/lib/network/peers/utils/enrSubnetsDeserialize.d.ts.map +0 -1
  561. package/lib/network/peers/utils/getConnectedPeerIds.d.ts.map +0 -1
  562. package/lib/network/peers/utils/index.d.ts.map +0 -1
  563. package/lib/network/peers/utils/prioritizePeers.d.ts.map +0 -1
  564. package/lib/network/peers/utils/subnetMap.d.ts.map +0 -1
  565. package/lib/network/processor/aggregatorTracker.d.ts.map +0 -1
  566. package/lib/network/processor/extractSlotRootFns.d.ts.map +0 -1
  567. package/lib/network/processor/gossipHandlers.d.ts.map +0 -1
  568. package/lib/network/processor/gossipQueues/index.d.ts.map +0 -1
  569. package/lib/network/processor/gossipQueues/indexed.d.ts.map +0 -1
  570. package/lib/network/processor/gossipQueues/linear.d.ts.map +0 -1
  571. package/lib/network/processor/gossipQueues/types.d.ts.map +0 -1
  572. package/lib/network/processor/gossipValidatorFn.d.ts.map +0 -1
  573. package/lib/network/processor/index.d.ts.map +0 -1
  574. package/lib/network/processor/types.d.ts.map +0 -1
  575. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +0 -1
  576. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +0 -1
  577. package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts.map +0 -1
  578. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +0 -1
  579. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts.map +0 -1
  580. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +0 -1
  581. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts.map +0 -1
  582. package/lib/network/reqresp/handlers/index.d.ts.map +0 -1
  583. package/lib/network/reqresp/handlers/lightClientBootstrap.d.ts.map +0 -1
  584. package/lib/network/reqresp/handlers/lightClientFinalityUpdate.d.ts.map +0 -1
  585. package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.d.ts.map +0 -1
  586. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.d.ts.map +0 -1
  587. package/lib/network/reqresp/index.d.ts.map +0 -1
  588. package/lib/network/reqresp/interface.d.ts.map +0 -1
  589. package/lib/network/reqresp/protocols.d.ts.map +0 -1
  590. package/lib/network/reqresp/rateLimit.d.ts.map +0 -1
  591. package/lib/network/reqresp/score.d.ts.map +0 -1
  592. package/lib/network/reqresp/types.d.ts.map +0 -1
  593. package/lib/network/reqresp/utils/collect.d.ts.map +0 -1
  594. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.d.ts.map +0 -1
  595. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts.map +0 -1
  596. package/lib/network/statusCache.d.ts.map +0 -1
  597. package/lib/network/subnets/attnetsService.d.ts.map +0 -1
  598. package/lib/network/subnets/index.d.ts.map +0 -1
  599. package/lib/network/subnets/interface.d.ts.map +0 -1
  600. package/lib/network/subnets/syncnetsService.d.ts.map +0 -1
  601. package/lib/network/subnets/util.d.ts.map +0 -1
  602. package/lib/network/util.d.ts.map +0 -1
  603. package/lib/node/index.d.ts.map +0 -1
  604. package/lib/node/nodejs.d.ts.map +0 -1
  605. package/lib/node/notifier.d.ts.map +0 -1
  606. package/lib/node/options.d.ts.map +0 -1
  607. package/lib/node/utils/interop/deposits.d.ts.map +0 -1
  608. package/lib/node/utils/interop/state.d.ts.map +0 -1
  609. package/lib/node/utils/lightclient.d.ts.map +0 -1
  610. package/lib/node/utils/state.d.ts.map +0 -1
  611. package/lib/sync/backfill/backfill.d.ts.map +0 -1
  612. package/lib/sync/backfill/errors.d.ts.map +0 -1
  613. package/lib/sync/backfill/index.d.ts.map +0 -1
  614. package/lib/sync/backfill/verify.d.ts.map +0 -1
  615. package/lib/sync/constants.d.ts.map +0 -1
  616. package/lib/sync/index.d.ts.map +0 -1
  617. package/lib/sync/interface.d.ts.map +0 -1
  618. package/lib/sync/options.d.ts.map +0 -1
  619. package/lib/sync/range/batch.d.ts.map +0 -1
  620. package/lib/sync/range/chain.d.ts.map +0 -1
  621. package/lib/sync/range/range.d.ts.map +0 -1
  622. package/lib/sync/range/utils/batches.d.ts.map +0 -1
  623. package/lib/sync/range/utils/chainTarget.d.ts.map +0 -1
  624. package/lib/sync/range/utils/hashBlocks.d.ts.map +0 -1
  625. package/lib/sync/range/utils/index.d.ts.map +0 -1
  626. package/lib/sync/range/utils/peerBalancer.d.ts.map +0 -1
  627. package/lib/sync/range/utils/updateChains.d.ts.map +0 -1
  628. package/lib/sync/sync.d.ts.map +0 -1
  629. package/lib/sync/types.d.ts.map +0 -1
  630. package/lib/sync/unknownBlock.d.ts.map +0 -1
  631. package/lib/sync/utils/downloadByRange.d.ts.map +0 -1
  632. package/lib/sync/utils/downloadByRoot.d.ts.map +0 -1
  633. package/lib/sync/utils/pendingBlocksTree.d.ts.map +0 -1
  634. package/lib/sync/utils/remoteSyncType.d.ts.map +0 -1
  635. package/lib/util/address.d.ts.map +0 -1
  636. package/lib/util/array.d.ts.map +0 -1
  637. package/lib/util/asyncIterableToEvents.d.ts.map +0 -1
  638. package/lib/util/binarySearch.d.ts.map +0 -1
  639. package/lib/util/bitArray.d.ts.map +0 -1
  640. package/lib/util/blobs.d.ts.map +0 -1
  641. package/lib/util/bufferPool.d.ts.map +0 -1
  642. package/lib/util/bytes.d.ts.map +0 -1
  643. package/lib/util/chunkify.d.ts.map +0 -1
  644. package/lib/util/clock.d.ts.map +0 -1
  645. package/lib/util/dataColumns.d.ts.map +0 -1
  646. package/lib/util/dependentRoot.d.ts.map +0 -1
  647. package/lib/util/enum.d.ts.map +0 -1
  648. package/lib/util/error.d.ts.map +0 -1
  649. package/lib/util/eventLoop.d.ts.map +0 -1
  650. package/lib/util/execution.d.ts.map +0 -1
  651. package/lib/util/file.d.ts.map +0 -1
  652. package/lib/util/forkChoice.d.ts.map +0 -1
  653. package/lib/util/forkName.d.ts.map +0 -1
  654. package/lib/util/graffiti.d.ts.map +0 -1
  655. package/lib/util/hex.d.ts.map +0 -1
  656. package/lib/util/index.d.ts.map +0 -1
  657. package/lib/util/ip.d.ts.map +0 -1
  658. package/lib/util/itTrigger.d.ts.map +0 -1
  659. package/lib/util/kzg.d.ts.map +0 -1
  660. package/lib/util/map.d.ts.map +0 -1
  661. package/lib/util/metadata.d.ts.map +0 -1
  662. package/lib/util/multifork.d.ts.map +0 -1
  663. package/lib/util/numpy.d.ts.map +0 -1
  664. package/lib/util/peerId.d.ts.map +0 -1
  665. package/lib/util/profile.d.ts.map +0 -1
  666. package/lib/util/promises.d.ts.map +0 -1
  667. package/lib/util/queue/errors.d.ts.map +0 -1
  668. package/lib/util/queue/fnQueue.d.ts.map +0 -1
  669. package/lib/util/queue/index.d.ts.map +0 -1
  670. package/lib/util/queue/itemQueue.d.ts.map +0 -1
  671. package/lib/util/queue/options.d.ts.map +0 -1
  672. package/lib/util/serializedCache.d.ts.map +0 -1
  673. package/lib/util/set.d.ts.map +0 -1
  674. package/lib/util/shuffle.d.ts.map +0 -1
  675. package/lib/util/sortBy.d.ts.map +0 -1
  676. package/lib/util/sszBytes.d.ts.map +0 -1
  677. package/lib/util/strictEvents.d.ts.map +0 -1
  678. package/lib/util/time.d.ts.map +0 -1
  679. package/lib/util/timeSeries.d.ts.map +0 -1
  680. package/lib/util/types.d.ts.map +0 -1
  681. package/lib/util/workerEvents.d.ts.map +0 -1
  682. package/lib/util/wrapError.d.ts.map +0 -1
  683. package/src/api/impl/api.ts +0 -26
  684. package/src/api/impl/beacon/blocks/index.ts +0 -744
  685. package/src/api/impl/beacon/blocks/utils.ts +0 -75
  686. package/src/api/impl/beacon/index.ts +0 -35
  687. package/src/api/impl/beacon/pool/index.ts +0 -314
  688. package/src/api/impl/beacon/rewards/index.ts +0 -30
  689. package/src/api/impl/beacon/state/index.ts +0 -406
  690. package/src/api/impl/beacon/state/utils.ts +0 -189
  691. package/src/api/impl/config/constants.ts +0 -127
  692. package/src/api/impl/config/index.ts +0 -59
  693. package/src/api/impl/debug/index.ts +0 -131
  694. package/src/api/impl/errors.ts +0 -50
  695. package/src/api/impl/events/index.ts +0 -33
  696. package/src/api/impl/index.ts +0 -6
  697. package/src/api/impl/lightclient/index.ts +0 -64
  698. package/src/api/impl/lodestar/index.ts +0 -257
  699. package/src/api/impl/node/index.ts +0 -88
  700. package/src/api/impl/node/utils.ts +0 -51
  701. package/src/api/impl/proof/index.ts +0 -60
  702. package/src/api/impl/types.ts +0 -17
  703. package/src/api/impl/utils.ts +0 -25
  704. package/src/api/impl/validator/index.ts +0 -1540
  705. package/src/api/impl/validator/utils.ts +0 -85
  706. package/src/api/index.ts +0 -2
  707. package/src/api/options.ts +0 -16
  708. package/src/api/rest/activeSockets.ts +0 -109
  709. package/src/api/rest/base.ts +0 -216
  710. package/src/api/rest/index.ts +0 -63
  711. package/src/api/rest/swaggerUI.ts +0 -80
  712. package/src/bun-wrappers/prometheus-gc-stats.ts +0 -7
  713. package/src/chain/ColumnReconstructionTracker.ts +0 -90
  714. package/src/chain/GetBlobsTracker.ts +0 -115
  715. package/src/chain/archiveStore/archiveStore.ts +0 -222
  716. package/src/chain/archiveStore/constants.ts +0 -5
  717. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +0 -116
  718. package/src/chain/archiveStore/historicalState/historicalStateRegen.ts +0 -68
  719. package/src/chain/archiveStore/historicalState/metrics.ts +0 -214
  720. package/src/chain/archiveStore/historicalState/types.ts +0 -41
  721. package/src/chain/archiveStore/historicalState/worker.ts +0 -77
  722. package/src/chain/archiveStore/index.ts +0 -3
  723. package/src/chain/archiveStore/interface.ts +0 -75
  724. package/src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts +0 -138
  725. package/src/chain/archiveStore/utils/archiveBlocks.ts +0 -437
  726. package/src/chain/archiveStore/utils/pruneHistory.ts +0 -56
  727. package/src/chain/archiveStore/utils/updateBackfillRange.ts +0 -50
  728. package/src/chain/balancesCache.ts +0 -52
  729. package/src/chain/beaconProposerCache.ts +0 -43
  730. package/src/chain/blocks/blockInput/blockInput.ts +0 -851
  731. package/src/chain/blocks/blockInput/errors.ts +0 -48
  732. package/src/chain/blocks/blockInput/index.ts +0 -4
  733. package/src/chain/blocks/blockInput/types.ts +0 -145
  734. package/src/chain/blocks/blockInput/utils.ts +0 -21
  735. package/src/chain/blocks/importBlock.ts +0 -597
  736. package/src/chain/blocks/index.ts +0 -179
  737. package/src/chain/blocks/types.ts +0 -101
  738. package/src/chain/blocks/utils/blowfishBanner.ts +0 -28
  739. package/src/chain/blocks/utils/chainSegment.ts +0 -29
  740. package/src/chain/blocks/utils/checkpoint.ts +0 -25
  741. package/src/chain/blocks/utils/giraffeBanner.ts +0 -30
  742. package/src/chain/blocks/utils/ownBanner.ts +0 -20
  743. package/src/chain/blocks/utils/pandaMergeTransitionBanner.ts +0 -43
  744. package/src/chain/blocks/utils/zebraBanner.ts +0 -45
  745. package/src/chain/blocks/verifyBlock.ts +0 -242
  746. package/src/chain/blocks/verifyBlocksDataAvailability.ts +0 -34
  747. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +0 -438
  748. package/src/chain/blocks/verifyBlocksSanityChecks.ts +0 -129
  749. package/src/chain/blocks/verifyBlocksSignatures.ts +0 -105
  750. package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +0 -114
  751. package/src/chain/blocks/writeBlockInputToDb.ts +0 -128
  752. package/src/chain/bls/index.ts +0 -4
  753. package/src/chain/bls/interface.ts +0 -68
  754. package/src/chain/bls/maybeBatch.ts +0 -45
  755. package/src/chain/bls/multithread/index.ts +0 -582
  756. package/src/chain/bls/multithread/jobItem.ts +0 -119
  757. package/src/chain/bls/multithread/poolSize.ts +0 -16
  758. package/src/chain/bls/multithread/types.ts +0 -38
  759. package/src/chain/bls/multithread/utils.ts +0 -19
  760. package/src/chain/bls/multithread/worker.ts +0 -114
  761. package/src/chain/bls/singleThread.ts +0 -87
  762. package/src/chain/bls/utils.ts +0 -30
  763. package/src/chain/chain.ts +0 -1354
  764. package/src/chain/emitter.ts +0 -113
  765. package/src/chain/errors/attestationError.ts +0 -194
  766. package/src/chain/errors/attesterSlashingError.ts +0 -11
  767. package/src/chain/errors/blobSidecarError.ts +0 -60
  768. package/src/chain/errors/blockError.ts +0 -166
  769. package/src/chain/errors/blsToExecutionChangeError.ts +0 -13
  770. package/src/chain/errors/dataColumnSidecarError.ts +0 -80
  771. package/src/chain/errors/gossipValidation.ts +0 -20
  772. package/src/chain/errors/index.ts +0 -10
  773. package/src/chain/errors/lightClientError.ts +0 -30
  774. package/src/chain/errors/proposerSlashingError.ts +0 -11
  775. package/src/chain/errors/syncCommitteeError.ts +0 -36
  776. package/src/chain/errors/voluntaryExitError.ts +0 -13
  777. package/src/chain/forkChoice/index.ts +0 -112
  778. package/src/chain/genesis/genesis.ts +0 -190
  779. package/src/chain/genesis/interface.ts +0 -14
  780. package/src/chain/index.ts +0 -6
  781. package/src/chain/initState.ts +0 -221
  782. package/src/chain/interface.ts +0 -280
  783. package/src/chain/lightClient/index.ts +0 -764
  784. package/src/chain/lightClient/proofs.ts +0 -85
  785. package/src/chain/lightClient/types.ts +0 -33
  786. package/src/chain/opPools/aggregatedAttestationPool.ts +0 -1063
  787. package/src/chain/opPools/attestationPool.ts +0 -282
  788. package/src/chain/opPools/index.ts +0 -5
  789. package/src/chain/opPools/opPool.ts +0 -462
  790. package/src/chain/opPools/syncCommitteeMessagePool.ts +0 -169
  791. package/src/chain/opPools/syncContributionAndProofPool.ts +0 -240
  792. package/src/chain/opPools/types.ts +0 -35
  793. package/src/chain/opPools/utils.ts +0 -65
  794. package/src/chain/options.ts +0 -138
  795. package/src/chain/prepareNextSlot.ts +0 -277
  796. package/src/chain/produceBlock/computeNewStateRoot.ts +0 -55
  797. package/src/chain/produceBlock/index.ts +0 -2
  798. package/src/chain/produceBlock/produceBlockBody.ts +0 -797
  799. package/src/chain/produceBlock/validateBlobsAndKzgCommitments.ts +0 -54
  800. package/src/chain/regen/errors.ts +0 -30
  801. package/src/chain/regen/index.ts +0 -4
  802. package/src/chain/regen/interface.ts +0 -93
  803. package/src/chain/regen/queued.ts +0 -317
  804. package/src/chain/regen/regen.ts +0 -424
  805. package/src/chain/reprocess.ts +0 -161
  806. package/src/chain/rewards/attestationsRewards.ts +0 -196
  807. package/src/chain/rewards/blockRewards.ts +0 -150
  808. package/src/chain/rewards/syncCommitteeRewards.ts +0 -58
  809. package/src/chain/seenCache/index.ts +0 -5
  810. package/src/chain/seenCache/seenAggregateAndProof.ts +0 -120
  811. package/src/chain/seenCache/seenAttestationData.ts +0 -145
  812. package/src/chain/seenCache/seenAttesters.ts +0 -58
  813. package/src/chain/seenCache/seenBlockAttesters.ts +0 -18
  814. package/src/chain/seenCache/seenBlockProposers.ts +0 -48
  815. package/src/chain/seenCache/seenCommittee.ts +0 -43
  816. package/src/chain/seenCache/seenCommitteeContribution.ts +0 -104
  817. package/src/chain/seenCache/seenGossipBlockInput.ts +0 -373
  818. package/src/chain/serializeState.ts +0 -32
  819. package/src/chain/shufflingCache.ts +0 -238
  820. package/src/chain/stateCache/blockStateCacheImpl.ts +0 -150
  821. package/src/chain/stateCache/datastore/db.ts +0 -36
  822. package/src/chain/stateCache/datastore/file.ts +0 -53
  823. package/src/chain/stateCache/datastore/index.ts +0 -2
  824. package/src/chain/stateCache/datastore/types.ts +0 -13
  825. package/src/chain/stateCache/fifoBlockStateCache.ts +0 -208
  826. package/src/chain/stateCache/inMemoryCheckpointsCache.ts +0 -198
  827. package/src/chain/stateCache/index.ts +0 -3
  828. package/src/chain/stateCache/mapMetrics.ts +0 -52
  829. package/src/chain/stateCache/persistentCheckpointsCache.ts +0 -837
  830. package/src/chain/stateCache/types.ts +0 -86
  831. package/src/chain/validation/aggregateAndProof.ts +0 -258
  832. package/src/chain/validation/attestation.ts +0 -885
  833. package/src/chain/validation/attesterSlashing.ts +0 -61
  834. package/src/chain/validation/blobSidecar.ts +0 -301
  835. package/src/chain/validation/block.ts +0 -188
  836. package/src/chain/validation/blsToExecutionChange.ts +0 -61
  837. package/src/chain/validation/dataColumnSidecar.ts +0 -381
  838. package/src/chain/validation/index.ts +0 -9
  839. package/src/chain/validation/lightClientFinalityUpdate.ts +0 -46
  840. package/src/chain/validation/lightClientOptimisticUpdate.ts +0 -68
  841. package/src/chain/validation/proposerSlashing.ts +0 -54
  842. package/src/chain/validation/signatureSets/aggregateAndProof.ts +0 -38
  843. package/src/chain/validation/signatureSets/contributionAndProof.ts +0 -27
  844. package/src/chain/validation/signatureSets/index.ts +0 -6
  845. package/src/chain/validation/signatureSets/selectionProof.ts +0 -27
  846. package/src/chain/validation/signatureSets/syncCommittee.ts +0 -22
  847. package/src/chain/validation/signatureSets/syncCommitteeContribution.ts +0 -18
  848. package/src/chain/validation/signatureSets/syncCommitteeSelectionProof.ts +0 -27
  849. package/src/chain/validation/syncCommittee.ts +0 -165
  850. package/src/chain/validation/syncCommitteeContributionAndProof.ts +0 -122
  851. package/src/chain/validation/voluntaryExit.ts +0 -58
  852. package/src/chain/validatorMonitor.ts +0 -1309
  853. package/src/constants/constants.ts +0 -15
  854. package/src/constants/index.ts +0 -2
  855. package/src/constants/network.ts +0 -52
  856. package/src/db/beacon.ts +0 -113
  857. package/src/db/buckets.ts +0 -80
  858. package/src/db/index.ts +0 -2
  859. package/src/db/interface.ts +0 -76
  860. package/src/db/options.ts +0 -7
  861. package/src/db/repositories/attesterSlashing.ts +0 -38
  862. package/src/db/repositories/backfilledRanges.ts +0 -29
  863. package/src/db/repositories/blobSidecars.ts +0 -37
  864. package/src/db/repositories/blobSidecarsArchive.ts +0 -28
  865. package/src/db/repositories/block.ts +0 -33
  866. package/src/db/repositories/blockArchive.ts +0 -170
  867. package/src/db/repositories/blockArchiveIndex.ts +0 -45
  868. package/src/db/repositories/blsToExecutionChange.ts +0 -16
  869. package/src/db/repositories/checkpointState.ts +0 -31
  870. package/src/db/repositories/dataColumnSidecar.ts +0 -49
  871. package/src/db/repositories/dataColumnSidecarArchive.ts +0 -56
  872. package/src/db/repositories/depositDataRoot.ts +0 -80
  873. package/src/db/repositories/depositEvent.ts +0 -32
  874. package/src/db/repositories/eth1Data.ts +0 -33
  875. package/src/db/repositories/index.ts +0 -20
  876. package/src/db/repositories/lightclientBestUpdate.ts +0 -41
  877. package/src/db/repositories/lightclientCheckpointHeader.ts +0 -32
  878. package/src/db/repositories/lightclientSyncCommittee.ts +0 -16
  879. package/src/db/repositories/lightclientSyncCommitteeWitness.ts +0 -77
  880. package/src/db/repositories/proposerSlashing.ts +0 -15
  881. package/src/db/repositories/stateArchive.ts +0 -69
  882. package/src/db/repositories/stateArchiveIndex.ts +0 -18
  883. package/src/db/repositories/voluntaryExit.ts +0 -15
  884. package/src/db/single/index.ts +0 -2
  885. package/src/db/single/preGenesisState.ts +0 -37
  886. package/src/db/single/preGenesisStateLastProcessedBlock.ts +0 -34
  887. package/src/eth1/errors.ts +0 -40
  888. package/src/eth1/eth1DataCache.ts +0 -26
  889. package/src/eth1/eth1DepositDataTracker.ts +0 -410
  890. package/src/eth1/eth1DepositsCache.ts +0 -141
  891. package/src/eth1/eth1MergeBlockTracker.ts +0 -328
  892. package/src/eth1/index.ts +0 -157
  893. package/src/eth1/interface.ts +0 -131
  894. package/src/eth1/options.ts +0 -28
  895. package/src/eth1/provider/eth1Provider.ts +0 -229
  896. package/src/eth1/provider/jsonRpcHttpClient.ts +0 -390
  897. package/src/eth1/provider/jwt.ts +0 -36
  898. package/src/eth1/provider/utils.ts +0 -136
  899. package/src/eth1/stream.ts +0 -75
  900. package/src/eth1/utils/depositContract.ts +0 -37
  901. package/src/eth1/utils/deposits.ts +0 -70
  902. package/src/eth1/utils/eth1Data.ts +0 -100
  903. package/src/eth1/utils/eth1DepositEvent.ts +0 -12
  904. package/src/eth1/utils/eth1Vote.ts +0 -142
  905. package/src/eth1/utils/groupDepositEventsByBlock.ts +0 -19
  906. package/src/eth1/utils/optimizeNextBlockDiffForGenesis.ts +0 -18
  907. package/src/execution/builder/cache.ts +0 -39
  908. package/src/execution/builder/http.ts +0 -229
  909. package/src/execution/builder/index.ts +0 -27
  910. package/src/execution/builder/interface.ts +0 -49
  911. package/src/execution/builder/utils.ts +0 -19
  912. package/src/execution/engine/disabled.ts +0 -35
  913. package/src/execution/engine/http.ts +0 -644
  914. package/src/execution/engine/index.ts +0 -63
  915. package/src/execution/engine/interface.ts +0 -199
  916. package/src/execution/engine/mock.ts +0 -493
  917. package/src/execution/engine/payloadIdCache.ts +0 -54
  918. package/src/execution/engine/types.ts +0 -640
  919. package/src/execution/engine/utils.ts +0 -136
  920. package/src/execution/index.ts +0 -4
  921. package/src/index.ts +0 -20
  922. package/src/metrics/index.ts +0 -4
  923. package/src/metrics/metrics/beacon.ts +0 -390
  924. package/src/metrics/metrics/lodestar.ts +0 -1870
  925. package/src/metrics/metrics.ts +0 -43
  926. package/src/metrics/nodeJsMetrics.ts +0 -19
  927. package/src/metrics/options.ts +0 -22
  928. package/src/metrics/server/http.ts +0 -114
  929. package/src/metrics/server/index.ts +0 -1
  930. package/src/metrics/utils/avgMinMax.ts +0 -87
  931. package/src/metrics/utils/gauge.ts +0 -22
  932. package/src/metrics/utils/registryMetricCreator.ts +0 -41
  933. package/src/monitoring/clientStats.ts +0 -297
  934. package/src/monitoring/index.ts +0 -2
  935. package/src/monitoring/options.ts +0 -19
  936. package/src/monitoring/properties.ts +0 -152
  937. package/src/monitoring/service.ts +0 -235
  938. package/src/monitoring/system.ts +0 -146
  939. package/src/monitoring/types.ts +0 -21
  940. package/src/network/core/events.ts +0 -59
  941. package/src/network/core/index.ts +0 -3
  942. package/src/network/core/metrics.ts +0 -304
  943. package/src/network/core/networkCore.ts +0 -599
  944. package/src/network/core/networkCoreWorker.ts +0 -176
  945. package/src/network/core/networkCoreWorkerHandler.ts +0 -284
  946. package/src/network/core/types.ts +0 -119
  947. package/src/network/discv5/index.ts +0 -132
  948. package/src/network/discv5/types.ts +0 -74
  949. package/src/network/discv5/utils.ts +0 -50
  950. package/src/network/discv5/worker.ts +0 -137
  951. package/src/network/events.ts +0 -51
  952. package/src/network/forks.ts +0 -94
  953. package/src/network/gossip/constants.ts +0 -15
  954. package/src/network/gossip/encoding.ts +0 -111
  955. package/src/network/gossip/errors.ts +0 -7
  956. package/src/network/gossip/gossipsub.ts +0 -384
  957. package/src/network/gossip/index.ts +0 -4
  958. package/src/network/gossip/interface.ts +0 -215
  959. package/src/network/gossip/metrics.ts +0 -71
  960. package/src/network/gossip/scoringParameters.ts +0 -333
  961. package/src/network/gossip/topic.ts +0 -332
  962. package/src/network/index.ts +0 -8
  963. package/src/network/interface.ts +0 -134
  964. package/src/network/libp2p/error.ts +0 -55
  965. package/src/network/libp2p/index.ts +0 -153
  966. package/src/network/metadata.ts +0 -162
  967. package/src/network/network.ts +0 -767
  968. package/src/network/networkConfig.ts +0 -12
  969. package/src/network/options.ts +0 -70
  970. package/src/network/peers/client.ts +0 -29
  971. package/src/network/peers/datastore.ts +0 -188
  972. package/src/network/peers/discover.ts +0 -647
  973. package/src/network/peers/index.ts +0 -2
  974. package/src/network/peers/peerManager.ts +0 -899
  975. package/src/network/peers/peersData.ts +0 -65
  976. package/src/network/peers/score/constants.ts +0 -34
  977. package/src/network/peers/score/index.ts +0 -4
  978. package/src/network/peers/score/interface.ts +0 -74
  979. package/src/network/peers/score/score.ts +0 -200
  980. package/src/network/peers/score/store.ts +0 -95
  981. package/src/network/peers/score/utils.ts +0 -37
  982. package/src/network/peers/utils/assertPeerRelevance.ts +0 -99
  983. package/src/network/peers/utils/enrSubnetsDeserialize.ts +0 -27
  984. package/src/network/peers/utils/getConnectedPeerIds.ts +0 -33
  985. package/src/network/peers/utils/index.ts +0 -4
  986. package/src/network/peers/utils/prioritizePeers.ts +0 -627
  987. package/src/network/peers/utils/subnetMap.ts +0 -88
  988. package/src/network/processor/aggregatorTracker.ts +0 -38
  989. package/src/network/processor/extractSlotRootFns.ts +0 -64
  990. package/src/network/processor/gossipHandlers.ts +0 -951
  991. package/src/network/processor/gossipQueues/index.ts +0 -114
  992. package/src/network/processor/gossipQueues/indexed.ts +0 -219
  993. package/src/network/processor/gossipQueues/linear.ts +0 -162
  994. package/src/network/processor/gossipQueues/types.ts +0 -57
  995. package/src/network/processor/gossipValidatorFn.ts +0 -142
  996. package/src/network/processor/index.ts +0 -496
  997. package/src/network/processor/types.ts +0 -27
  998. package/src/network/reqresp/ReqRespBeaconNode.ts +0 -373
  999. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +0 -101
  1000. package/src/network/reqresp/handlers/beaconBlocksByRoot.ts +0 -49
  1001. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +0 -114
  1002. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +0 -62
  1003. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +0 -144
  1004. package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +0 -88
  1005. package/src/network/reqresp/handlers/index.ts +0 -78
  1006. package/src/network/reqresp/handlers/lightClientBootstrap.ts +0 -31
  1007. package/src/network/reqresp/handlers/lightClientFinalityUpdate.ts +0 -21
  1008. package/src/network/reqresp/handlers/lightClientOptimisticUpdate.ts +0 -21
  1009. package/src/network/reqresp/handlers/lightClientUpdatesByRange.ts +0 -39
  1010. package/src/network/reqresp/index.ts +0 -2
  1011. package/src/network/reqresp/interface.ts +0 -45
  1012. package/src/network/reqresp/protocols.ts +0 -146
  1013. package/src/network/reqresp/rateLimit.ts +0 -112
  1014. package/src/network/reqresp/score.ts +0 -70
  1015. package/src/network/reqresp/types.ts +0 -174
  1016. package/src/network/reqresp/utils/collect.ts +0 -84
  1017. package/src/network/reqresp/utils/collectSequentialBlocksInRange.ts +0 -57
  1018. package/src/network/reqresp/utils/dataColumnResponseValidation.ts +0 -99
  1019. package/src/network/statusCache.ts +0 -17
  1020. package/src/network/subnets/attnetsService.ts +0 -385
  1021. package/src/network/subnets/index.ts +0 -2
  1022. package/src/network/subnets/interface.ts +0 -66
  1023. package/src/network/subnets/syncnetsService.ts +0 -147
  1024. package/src/network/subnets/util.ts +0 -63
  1025. package/src/network/util.ts +0 -29
  1026. package/src/node/index.ts +0 -2
  1027. package/src/node/nodejs.ts +0 -349
  1028. package/src/node/notifier.ts +0 -206
  1029. package/src/node/options.ts +0 -51
  1030. package/src/node/utils/interop/deposits.ts +0 -53
  1031. package/src/node/utils/interop/state.ts +0 -59
  1032. package/src/node/utils/lightclient.ts +0 -7
  1033. package/src/node/utils/state.ts +0 -37
  1034. package/src/sync/backfill/backfill.ts +0 -893
  1035. package/src/sync/backfill/errors.ts +0 -23
  1036. package/src/sync/backfill/index.ts +0 -1
  1037. package/src/sync/backfill/verify.ts +0 -58
  1038. package/src/sync/constants.ts +0 -71
  1039. package/src/sync/index.ts +0 -2
  1040. package/src/sync/interface.ts +0 -55
  1041. package/src/sync/options.ts +0 -45
  1042. package/src/sync/range/batch.ts +0 -455
  1043. package/src/sync/range/chain.ts +0 -715
  1044. package/src/sync/range/range.ts +0 -354
  1045. package/src/sync/range/utils/batches.ts +0 -119
  1046. package/src/sync/range/utils/chainTarget.ts +0 -62
  1047. package/src/sync/range/utils/hashBlocks.ts +0 -27
  1048. package/src/sync/range/utils/index.ts +0 -5
  1049. package/src/sync/range/utils/peerBalancer.ts +0 -184
  1050. package/src/sync/range/utils/updateChains.ts +0 -66
  1051. package/src/sync/sync.ts +0 -290
  1052. package/src/sync/types.ts +0 -57
  1053. package/src/sync/unknownBlock.ts +0 -859
  1054. package/src/sync/utils/downloadByRange.ts +0 -808
  1055. package/src/sync/utils/downloadByRoot.ts +0 -560
  1056. package/src/sync/utils/pendingBlocksTree.ts +0 -97
  1057. package/src/sync/utils/remoteSyncType.ts +0 -144
  1058. package/src/util/address.ts +0 -3
  1059. package/src/util/array.ts +0 -311
  1060. package/src/util/asyncIterableToEvents.ts +0 -164
  1061. package/src/util/binarySearch.ts +0 -48
  1062. package/src/util/bitArray.ts +0 -84
  1063. package/src/util/blobs.ts +0 -210
  1064. package/src/util/bufferPool.ts +0 -95
  1065. package/src/util/bytes.ts +0 -11
  1066. package/src/util/chunkify.ts +0 -27
  1067. package/src/util/clock.ts +0 -212
  1068. package/src/util/dataColumns.ts +0 -415
  1069. package/src/util/dependentRoot.ts +0 -47
  1070. package/src/util/enum.ts +0 -17
  1071. package/src/util/error.ts +0 -56
  1072. package/src/util/eventLoop.ts +0 -22
  1073. package/src/util/execution.ts +0 -223
  1074. package/src/util/file.ts +0 -52
  1075. package/src/util/forkChoice.ts +0 -5
  1076. package/src/util/forkName.ts +0 -20
  1077. package/src/util/graffiti.ts +0 -39
  1078. package/src/util/hex.ts +0 -9
  1079. package/src/util/index.ts +0 -2
  1080. package/src/util/ip.ts +0 -6
  1081. package/src/util/itTrigger.ts +0 -49
  1082. package/src/util/kzg.ts +0 -3
  1083. package/src/util/map.ts +0 -77
  1084. package/src/util/metadata.ts +0 -22
  1085. package/src/util/multifork.ts +0 -69
  1086. package/src/util/numpy.ts +0 -8
  1087. package/src/util/peerId.ts +0 -16
  1088. package/src/util/profile.ts +0 -54
  1089. package/src/util/promises.ts +0 -14
  1090. package/src/util/queue/errors.ts +0 -14
  1091. package/src/util/queue/fnQueue.ts +0 -16
  1092. package/src/util/queue/index.ts +0 -4
  1093. package/src/util/queue/itemQueue.ts +0 -128
  1094. package/src/util/queue/options.ts +0 -37
  1095. package/src/util/serializedCache.ts +0 -20
  1096. package/src/util/set.ts +0 -62
  1097. package/src/util/shuffle.ts +0 -21
  1098. package/src/util/sortBy.ts +0 -19
  1099. package/src/util/sszBytes.ts +0 -481
  1100. package/src/util/strictEvents.ts +0 -8
  1101. package/src/util/time.ts +0 -13
  1102. package/src/util/timeSeries.ts +0 -118
  1103. package/src/util/types.ts +0 -31
  1104. package/src/util/workerEvents.ts +0 -142
  1105. 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
- }