@lodestar/beacon-node 1.35.0-dev.98d359db41 → 1.35.0-dev.b42a298a7c

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 (882) hide show
  1. package/lib/chain/emitter.d.ts +2 -2
  2. package/lib/db/buckets.d.ts +4 -4
  3. package/lib/db/buckets.js +4 -4
  4. package/lib/db/buckets.js.map +1 -1
  5. package/lib/db/repositories/blobSidecars.js +1 -1
  6. package/lib/db/repositories/blobSidecars.js.map +1 -1
  7. package/lib/db/repositories/blobSidecarsArchive.js +1 -1
  8. package/lib/db/repositories/blobSidecarsArchive.js.map +1 -1
  9. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  10. package/lib/db/repositories/dataColumnSidecar.js +1 -1
  11. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  12. package/lib/db/repositories/dataColumnSidecarArchive.js +1 -1
  13. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  14. package/lib/network/gossip/gossipsub.d.ts +0 -1
  15. package/lib/network/gossip/gossipsub.js +16 -35
  16. package/lib/network/gossip/gossipsub.js.map +1 -1
  17. package/lib/network/gossip/metrics.d.ts +7 -15
  18. package/lib/network/gossip/metrics.js +6 -16
  19. package/lib/network/gossip/metrics.js.map +1 -1
  20. package/lib/network/metadata.js +1 -2
  21. package/lib/network/metadata.js.map +1 -1
  22. package/lib/network/network.js +4 -2
  23. package/lib/network/network.js.map +1 -1
  24. package/lib/network/processor/index.d.ts +1 -1
  25. package/lib/network/processor/index.js +3 -2
  26. package/lib/network/processor/index.js.map +1 -1
  27. package/lib/sync/types.d.ts +1 -0
  28. package/lib/sync/types.js.map +1 -1
  29. package/lib/sync/unknownBlock.js +14 -12
  30. package/lib/sync/unknownBlock.js.map +1 -1
  31. package/lib/sync/utils/downloadByRoot.d.ts +1 -3
  32. package/lib/sync/utils/downloadByRoot.js +5 -32
  33. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  34. package/lib/util/blobs.js +3 -5
  35. package/lib/util/blobs.js.map +1 -1
  36. package/package.json +20 -18
  37. package/lib/api/impl/api.d.ts.map +0 -1
  38. package/lib/api/impl/beacon/blocks/index.d.ts.map +0 -1
  39. package/lib/api/impl/beacon/blocks/utils.d.ts.map +0 -1
  40. package/lib/api/impl/beacon/index.d.ts.map +0 -1
  41. package/lib/api/impl/beacon/pool/index.d.ts.map +0 -1
  42. package/lib/api/impl/beacon/rewards/index.d.ts.map +0 -1
  43. package/lib/api/impl/beacon/state/index.d.ts.map +0 -1
  44. package/lib/api/impl/beacon/state/utils.d.ts.map +0 -1
  45. package/lib/api/impl/config/constants.d.ts.map +0 -1
  46. package/lib/api/impl/config/index.d.ts.map +0 -1
  47. package/lib/api/impl/debug/index.d.ts.map +0 -1
  48. package/lib/api/impl/errors.d.ts.map +0 -1
  49. package/lib/api/impl/events/index.d.ts.map +0 -1
  50. package/lib/api/impl/index.d.ts.map +0 -1
  51. package/lib/api/impl/lightclient/index.d.ts.map +0 -1
  52. package/lib/api/impl/lodestar/index.d.ts.map +0 -1
  53. package/lib/api/impl/node/index.d.ts.map +0 -1
  54. package/lib/api/impl/node/utils.d.ts.map +0 -1
  55. package/lib/api/impl/proof/index.d.ts.map +0 -1
  56. package/lib/api/impl/types.d.ts.map +0 -1
  57. package/lib/api/impl/utils.d.ts.map +0 -1
  58. package/lib/api/impl/validator/index.d.ts.map +0 -1
  59. package/lib/api/impl/validator/utils.d.ts.map +0 -1
  60. package/lib/api/index.d.ts.map +0 -1
  61. package/lib/api/options.d.ts.map +0 -1
  62. package/lib/api/rest/activeSockets.d.ts.map +0 -1
  63. package/lib/api/rest/base.d.ts.map +0 -1
  64. package/lib/api/rest/index.d.ts.map +0 -1
  65. package/lib/api/rest/swaggerUI.d.ts.map +0 -1
  66. package/lib/bun-wrappers/prometheus-gc-stats.d.ts.map +0 -1
  67. package/lib/chain/ColumnReconstructionTracker.d.ts.map +0 -1
  68. package/lib/chain/GetBlobsTracker.d.ts.map +0 -1
  69. package/lib/chain/archiveStore/archiveStore.d.ts.map +0 -1
  70. package/lib/chain/archiveStore/constants.d.ts.map +0 -1
  71. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +0 -1
  72. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts.map +0 -1
  73. package/lib/chain/archiveStore/historicalState/metrics.d.ts.map +0 -1
  74. package/lib/chain/archiveStore/historicalState/types.d.ts.map +0 -1
  75. package/lib/chain/archiveStore/historicalState/worker.d.ts.map +0 -1
  76. package/lib/chain/archiveStore/index.d.ts.map +0 -1
  77. package/lib/chain/archiveStore/interface.d.ts.map +0 -1
  78. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +0 -1
  79. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +0 -1
  80. package/lib/chain/archiveStore/utils/pruneHistory.d.ts.map +0 -1
  81. package/lib/chain/archiveStore/utils/updateBackfillRange.d.ts.map +0 -1
  82. package/lib/chain/balancesCache.d.ts.map +0 -1
  83. package/lib/chain/beaconProposerCache.d.ts.map +0 -1
  84. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +0 -1
  85. package/lib/chain/blocks/blockInput/errors.d.ts.map +0 -1
  86. package/lib/chain/blocks/blockInput/index.d.ts.map +0 -1
  87. package/lib/chain/blocks/blockInput/types.d.ts.map +0 -1
  88. package/lib/chain/blocks/blockInput/utils.d.ts.map +0 -1
  89. package/lib/chain/blocks/importBlock.d.ts.map +0 -1
  90. package/lib/chain/blocks/index.d.ts.map +0 -1
  91. package/lib/chain/blocks/types.d.ts.map +0 -1
  92. package/lib/chain/blocks/utils/blowfishBanner.d.ts.map +0 -1
  93. package/lib/chain/blocks/utils/chainSegment.d.ts.map +0 -1
  94. package/lib/chain/blocks/utils/checkpoint.d.ts.map +0 -1
  95. package/lib/chain/blocks/utils/giraffeBanner.d.ts.map +0 -1
  96. package/lib/chain/blocks/utils/ownBanner.d.ts.map +0 -1
  97. package/lib/chain/blocks/utils/pandaMergeTransitionBanner.d.ts.map +0 -1
  98. package/lib/chain/blocks/utils/zebraBanner.d.ts.map +0 -1
  99. package/lib/chain/blocks/verifyBlock.d.ts.map +0 -1
  100. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +0 -1
  101. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +0 -1
  102. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +0 -1
  103. package/lib/chain/blocks/verifyBlocksSignatures.d.ts.map +0 -1
  104. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +0 -1
  105. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +0 -1
  106. package/lib/chain/bls/index.d.ts.map +0 -1
  107. package/lib/chain/bls/interface.d.ts.map +0 -1
  108. package/lib/chain/bls/maybeBatch.d.ts.map +0 -1
  109. package/lib/chain/bls/multithread/index.d.ts.map +0 -1
  110. package/lib/chain/bls/multithread/jobItem.d.ts.map +0 -1
  111. package/lib/chain/bls/multithread/poolSize.d.ts.map +0 -1
  112. package/lib/chain/bls/multithread/types.d.ts.map +0 -1
  113. package/lib/chain/bls/multithread/utils.d.ts.map +0 -1
  114. package/lib/chain/bls/multithread/worker.d.ts.map +0 -1
  115. package/lib/chain/bls/singleThread.d.ts.map +0 -1
  116. package/lib/chain/bls/utils.d.ts.map +0 -1
  117. package/lib/chain/chain.d.ts.map +0 -1
  118. package/lib/chain/emitter.d.ts.map +0 -1
  119. package/lib/chain/errors/attestationError.d.ts.map +0 -1
  120. package/lib/chain/errors/attesterSlashingError.d.ts.map +0 -1
  121. package/lib/chain/errors/blobSidecarError.d.ts.map +0 -1
  122. package/lib/chain/errors/blockError.d.ts.map +0 -1
  123. package/lib/chain/errors/blsToExecutionChangeError.d.ts.map +0 -1
  124. package/lib/chain/errors/dataColumnSidecarError.d.ts.map +0 -1
  125. package/lib/chain/errors/gossipValidation.d.ts.map +0 -1
  126. package/lib/chain/errors/index.d.ts.map +0 -1
  127. package/lib/chain/errors/lightClientError.d.ts.map +0 -1
  128. package/lib/chain/errors/proposerSlashingError.d.ts.map +0 -1
  129. package/lib/chain/errors/syncCommitteeError.d.ts.map +0 -1
  130. package/lib/chain/errors/voluntaryExitError.d.ts.map +0 -1
  131. package/lib/chain/forkChoice/index.d.ts.map +0 -1
  132. package/lib/chain/genesis/genesis.d.ts.map +0 -1
  133. package/lib/chain/genesis/interface.d.ts.map +0 -1
  134. package/lib/chain/index.d.ts.map +0 -1
  135. package/lib/chain/initState.d.ts.map +0 -1
  136. package/lib/chain/interface.d.ts.map +0 -1
  137. package/lib/chain/lightClient/index.d.ts.map +0 -1
  138. package/lib/chain/lightClient/proofs.d.ts.map +0 -1
  139. package/lib/chain/lightClient/types.d.ts.map +0 -1
  140. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +0 -1
  141. package/lib/chain/opPools/attestationPool.d.ts.map +0 -1
  142. package/lib/chain/opPools/index.d.ts.map +0 -1
  143. package/lib/chain/opPools/opPool.d.ts.map +0 -1
  144. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +0 -1
  145. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +0 -1
  146. package/lib/chain/opPools/types.d.ts.map +0 -1
  147. package/lib/chain/opPools/utils.d.ts.map +0 -1
  148. package/lib/chain/options.d.ts.map +0 -1
  149. package/lib/chain/prepareNextSlot.d.ts.map +0 -1
  150. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +0 -1
  151. package/lib/chain/produceBlock/index.d.ts.map +0 -1
  152. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +0 -1
  153. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.d.ts.map +0 -1
  154. package/lib/chain/regen/errors.d.ts.map +0 -1
  155. package/lib/chain/regen/index.d.ts.map +0 -1
  156. package/lib/chain/regen/interface.d.ts.map +0 -1
  157. package/lib/chain/regen/queued.d.ts.map +0 -1
  158. package/lib/chain/regen/regen.d.ts.map +0 -1
  159. package/lib/chain/reprocess.d.ts.map +0 -1
  160. package/lib/chain/rewards/attestationsRewards.d.ts.map +0 -1
  161. package/lib/chain/rewards/blockRewards.d.ts.map +0 -1
  162. package/lib/chain/rewards/syncCommitteeRewards.d.ts.map +0 -1
  163. package/lib/chain/seenCache/index.d.ts.map +0 -1
  164. package/lib/chain/seenCache/seenAggregateAndProof.d.ts.map +0 -1
  165. package/lib/chain/seenCache/seenAttestationData.d.ts.map +0 -1
  166. package/lib/chain/seenCache/seenAttesters.d.ts.map +0 -1
  167. package/lib/chain/seenCache/seenBlockAttesters.d.ts.map +0 -1
  168. package/lib/chain/seenCache/seenBlockProposers.d.ts.map +0 -1
  169. package/lib/chain/seenCache/seenCommittee.d.ts.map +0 -1
  170. package/lib/chain/seenCache/seenCommitteeContribution.d.ts.map +0 -1
  171. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +0 -1
  172. package/lib/chain/serializeState.d.ts.map +0 -1
  173. package/lib/chain/shufflingCache.d.ts.map +0 -1
  174. package/lib/chain/stateCache/blockStateCacheImpl.d.ts.map +0 -1
  175. package/lib/chain/stateCache/datastore/db.d.ts.map +0 -1
  176. package/lib/chain/stateCache/datastore/file.d.ts.map +0 -1
  177. package/lib/chain/stateCache/datastore/index.d.ts.map +0 -1
  178. package/lib/chain/stateCache/datastore/types.d.ts.map +0 -1
  179. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +0 -1
  180. package/lib/chain/stateCache/inMemoryCheckpointsCache.d.ts.map +0 -1
  181. package/lib/chain/stateCache/index.d.ts.map +0 -1
  182. package/lib/chain/stateCache/mapMetrics.d.ts.map +0 -1
  183. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +0 -1
  184. package/lib/chain/stateCache/types.d.ts.map +0 -1
  185. package/lib/chain/validation/aggregateAndProof.d.ts.map +0 -1
  186. package/lib/chain/validation/attestation.d.ts.map +0 -1
  187. package/lib/chain/validation/attesterSlashing.d.ts.map +0 -1
  188. package/lib/chain/validation/blobSidecar.d.ts.map +0 -1
  189. package/lib/chain/validation/block.d.ts.map +0 -1
  190. package/lib/chain/validation/blsToExecutionChange.d.ts.map +0 -1
  191. package/lib/chain/validation/dataColumnSidecar.d.ts.map +0 -1
  192. package/lib/chain/validation/index.d.ts.map +0 -1
  193. package/lib/chain/validation/lightClientFinalityUpdate.d.ts.map +0 -1
  194. package/lib/chain/validation/lightClientOptimisticUpdate.d.ts.map +0 -1
  195. package/lib/chain/validation/proposerSlashing.d.ts.map +0 -1
  196. package/lib/chain/validation/signatureSets/aggregateAndProof.d.ts.map +0 -1
  197. package/lib/chain/validation/signatureSets/contributionAndProof.d.ts.map +0 -1
  198. package/lib/chain/validation/signatureSets/index.d.ts.map +0 -1
  199. package/lib/chain/validation/signatureSets/selectionProof.d.ts.map +0 -1
  200. package/lib/chain/validation/signatureSets/syncCommittee.d.ts.map +0 -1
  201. package/lib/chain/validation/signatureSets/syncCommitteeContribution.d.ts.map +0 -1
  202. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.d.ts.map +0 -1
  203. package/lib/chain/validation/syncCommittee.d.ts.map +0 -1
  204. package/lib/chain/validation/syncCommitteeContributionAndProof.d.ts.map +0 -1
  205. package/lib/chain/validation/voluntaryExit.d.ts.map +0 -1
  206. package/lib/chain/validatorMonitor.d.ts.map +0 -1
  207. package/lib/constants/constants.d.ts.map +0 -1
  208. package/lib/constants/index.d.ts.map +0 -1
  209. package/lib/constants/network.d.ts.map +0 -1
  210. package/lib/db/beacon.d.ts.map +0 -1
  211. package/lib/db/buckets.d.ts.map +0 -1
  212. package/lib/db/index.d.ts.map +0 -1
  213. package/lib/db/interface.d.ts.map +0 -1
  214. package/lib/db/options.d.ts.map +0 -1
  215. package/lib/db/repositories/attesterSlashing.d.ts.map +0 -1
  216. package/lib/db/repositories/backfilledRanges.d.ts.map +0 -1
  217. package/lib/db/repositories/blobSidecars.d.ts.map +0 -1
  218. package/lib/db/repositories/blobSidecarsArchive.d.ts.map +0 -1
  219. package/lib/db/repositories/block.d.ts.map +0 -1
  220. package/lib/db/repositories/blockArchive.d.ts.map +0 -1
  221. package/lib/db/repositories/blockArchiveIndex.d.ts.map +0 -1
  222. package/lib/db/repositories/blsToExecutionChange.d.ts.map +0 -1
  223. package/lib/db/repositories/checkpointState.d.ts.map +0 -1
  224. package/lib/db/repositories/dataColumnSidecar.d.ts.map +0 -1
  225. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +0 -1
  226. package/lib/db/repositories/depositDataRoot.d.ts.map +0 -1
  227. package/lib/db/repositories/depositEvent.d.ts.map +0 -1
  228. package/lib/db/repositories/eth1Data.d.ts.map +0 -1
  229. package/lib/db/repositories/index.d.ts.map +0 -1
  230. package/lib/db/repositories/lightclientBestUpdate.d.ts.map +0 -1
  231. package/lib/db/repositories/lightclientCheckpointHeader.d.ts.map +0 -1
  232. package/lib/db/repositories/lightclientSyncCommittee.d.ts.map +0 -1
  233. package/lib/db/repositories/lightclientSyncCommitteeWitness.d.ts.map +0 -1
  234. package/lib/db/repositories/proposerSlashing.d.ts.map +0 -1
  235. package/lib/db/repositories/stateArchive.d.ts.map +0 -1
  236. package/lib/db/repositories/stateArchiveIndex.d.ts.map +0 -1
  237. package/lib/db/repositories/voluntaryExit.d.ts.map +0 -1
  238. package/lib/db/single/index.d.ts.map +0 -1
  239. package/lib/db/single/preGenesisState.d.ts.map +0 -1
  240. package/lib/db/single/preGenesisStateLastProcessedBlock.d.ts.map +0 -1
  241. package/lib/eth1/errors.d.ts.map +0 -1
  242. package/lib/eth1/eth1DataCache.d.ts.map +0 -1
  243. package/lib/eth1/eth1DepositDataTracker.d.ts.map +0 -1
  244. package/lib/eth1/eth1DepositsCache.d.ts.map +0 -1
  245. package/lib/eth1/eth1MergeBlockTracker.d.ts.map +0 -1
  246. package/lib/eth1/index.d.ts.map +0 -1
  247. package/lib/eth1/interface.d.ts.map +0 -1
  248. package/lib/eth1/options.d.ts.map +0 -1
  249. package/lib/eth1/provider/eth1Provider.d.ts.map +0 -1
  250. package/lib/eth1/provider/jsonRpcHttpClient.d.ts.map +0 -1
  251. package/lib/eth1/provider/jwt.d.ts.map +0 -1
  252. package/lib/eth1/provider/utils.d.ts.map +0 -1
  253. package/lib/eth1/stream.d.ts.map +0 -1
  254. package/lib/eth1/utils/depositContract.d.ts.map +0 -1
  255. package/lib/eth1/utils/deposits.d.ts.map +0 -1
  256. package/lib/eth1/utils/eth1Data.d.ts.map +0 -1
  257. package/lib/eth1/utils/eth1DepositEvent.d.ts.map +0 -1
  258. package/lib/eth1/utils/eth1Vote.d.ts.map +0 -1
  259. package/lib/eth1/utils/groupDepositEventsByBlock.d.ts.map +0 -1
  260. package/lib/eth1/utils/optimizeNextBlockDiffForGenesis.d.ts.map +0 -1
  261. package/lib/execution/builder/cache.d.ts.map +0 -1
  262. package/lib/execution/builder/http.d.ts.map +0 -1
  263. package/lib/execution/builder/index.d.ts.map +0 -1
  264. package/lib/execution/builder/interface.d.ts.map +0 -1
  265. package/lib/execution/builder/utils.d.ts.map +0 -1
  266. package/lib/execution/engine/disabled.d.ts.map +0 -1
  267. package/lib/execution/engine/http.d.ts.map +0 -1
  268. package/lib/execution/engine/index.d.ts.map +0 -1
  269. package/lib/execution/engine/interface.d.ts.map +0 -1
  270. package/lib/execution/engine/mock.d.ts.map +0 -1
  271. package/lib/execution/engine/payloadIdCache.d.ts.map +0 -1
  272. package/lib/execution/engine/types.d.ts.map +0 -1
  273. package/lib/execution/engine/utils.d.ts.map +0 -1
  274. package/lib/execution/index.d.ts.map +0 -1
  275. package/lib/index.d.ts.map +0 -1
  276. package/lib/metrics/index.d.ts.map +0 -1
  277. package/lib/metrics/metrics/beacon.d.ts.map +0 -1
  278. package/lib/metrics/metrics/lodestar.d.ts.map +0 -1
  279. package/lib/metrics/metrics.d.ts.map +0 -1
  280. package/lib/metrics/nodeJsMetrics.d.ts.map +0 -1
  281. package/lib/metrics/options.d.ts.map +0 -1
  282. package/lib/metrics/server/http.d.ts.map +0 -1
  283. package/lib/metrics/server/index.d.ts.map +0 -1
  284. package/lib/metrics/utils/avgMinMax.d.ts.map +0 -1
  285. package/lib/metrics/utils/gauge.d.ts.map +0 -1
  286. package/lib/metrics/utils/registryMetricCreator.d.ts.map +0 -1
  287. package/lib/monitoring/clientStats.d.ts.map +0 -1
  288. package/lib/monitoring/index.d.ts.map +0 -1
  289. package/lib/monitoring/options.d.ts.map +0 -1
  290. package/lib/monitoring/properties.d.ts.map +0 -1
  291. package/lib/monitoring/service.d.ts.map +0 -1
  292. package/lib/monitoring/system.d.ts.map +0 -1
  293. package/lib/monitoring/types.d.ts.map +0 -1
  294. package/lib/network/core/events.d.ts.map +0 -1
  295. package/lib/network/core/index.d.ts.map +0 -1
  296. package/lib/network/core/metrics.d.ts.map +0 -1
  297. package/lib/network/core/networkCore.d.ts.map +0 -1
  298. package/lib/network/core/networkCoreWorker.d.ts.map +0 -1
  299. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +0 -1
  300. package/lib/network/core/types.d.ts.map +0 -1
  301. package/lib/network/discv5/index.d.ts.map +0 -1
  302. package/lib/network/discv5/types.d.ts.map +0 -1
  303. package/lib/network/discv5/utils.d.ts.map +0 -1
  304. package/lib/network/discv5/worker.d.ts.map +0 -1
  305. package/lib/network/events.d.ts.map +0 -1
  306. package/lib/network/forks.d.ts.map +0 -1
  307. package/lib/network/gossip/constants.d.ts.map +0 -1
  308. package/lib/network/gossip/encoding.d.ts.map +0 -1
  309. package/lib/network/gossip/errors.d.ts.map +0 -1
  310. package/lib/network/gossip/gossipsub.d.ts.map +0 -1
  311. package/lib/network/gossip/index.d.ts.map +0 -1
  312. package/lib/network/gossip/interface.d.ts.map +0 -1
  313. package/lib/network/gossip/metrics.d.ts.map +0 -1
  314. package/lib/network/gossip/scoringParameters.d.ts.map +0 -1
  315. package/lib/network/gossip/topic.d.ts.map +0 -1
  316. package/lib/network/index.d.ts.map +0 -1
  317. package/lib/network/interface.d.ts.map +0 -1
  318. package/lib/network/libp2p/error.d.ts.map +0 -1
  319. package/lib/network/libp2p/index.d.ts.map +0 -1
  320. package/lib/network/metadata.d.ts.map +0 -1
  321. package/lib/network/network.d.ts.map +0 -1
  322. package/lib/network/networkConfig.d.ts.map +0 -1
  323. package/lib/network/options.d.ts.map +0 -1
  324. package/lib/network/peers/client.d.ts.map +0 -1
  325. package/lib/network/peers/datastore.d.ts.map +0 -1
  326. package/lib/network/peers/discover.d.ts.map +0 -1
  327. package/lib/network/peers/index.d.ts.map +0 -1
  328. package/lib/network/peers/peerManager.d.ts.map +0 -1
  329. package/lib/network/peers/peersData.d.ts.map +0 -1
  330. package/lib/network/peers/score/constants.d.ts.map +0 -1
  331. package/lib/network/peers/score/index.d.ts.map +0 -1
  332. package/lib/network/peers/score/interface.d.ts.map +0 -1
  333. package/lib/network/peers/score/score.d.ts.map +0 -1
  334. package/lib/network/peers/score/store.d.ts.map +0 -1
  335. package/lib/network/peers/score/utils.d.ts.map +0 -1
  336. package/lib/network/peers/utils/assertPeerRelevance.d.ts.map +0 -1
  337. package/lib/network/peers/utils/enrSubnetsDeserialize.d.ts.map +0 -1
  338. package/lib/network/peers/utils/getConnectedPeerIds.d.ts.map +0 -1
  339. package/lib/network/peers/utils/index.d.ts.map +0 -1
  340. package/lib/network/peers/utils/prioritizePeers.d.ts.map +0 -1
  341. package/lib/network/peers/utils/subnetMap.d.ts.map +0 -1
  342. package/lib/network/processor/aggregatorTracker.d.ts.map +0 -1
  343. package/lib/network/processor/extractSlotRootFns.d.ts.map +0 -1
  344. package/lib/network/processor/gossipHandlers.d.ts.map +0 -1
  345. package/lib/network/processor/gossipQueues/index.d.ts.map +0 -1
  346. package/lib/network/processor/gossipQueues/indexed.d.ts.map +0 -1
  347. package/lib/network/processor/gossipQueues/linear.d.ts.map +0 -1
  348. package/lib/network/processor/gossipQueues/types.d.ts.map +0 -1
  349. package/lib/network/processor/gossipValidatorFn.d.ts.map +0 -1
  350. package/lib/network/processor/index.d.ts.map +0 -1
  351. package/lib/network/processor/types.d.ts.map +0 -1
  352. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +0 -1
  353. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +0 -1
  354. package/lib/network/reqresp/handlers/beaconBlocksByRoot.d.ts.map +0 -1
  355. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +0 -1
  356. package/lib/network/reqresp/handlers/blobSidecarsByRoot.d.ts.map +0 -1
  357. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +0 -1
  358. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.d.ts.map +0 -1
  359. package/lib/network/reqresp/handlers/index.d.ts.map +0 -1
  360. package/lib/network/reqresp/handlers/lightClientBootstrap.d.ts.map +0 -1
  361. package/lib/network/reqresp/handlers/lightClientFinalityUpdate.d.ts.map +0 -1
  362. package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.d.ts.map +0 -1
  363. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.d.ts.map +0 -1
  364. package/lib/network/reqresp/index.d.ts.map +0 -1
  365. package/lib/network/reqresp/interface.d.ts.map +0 -1
  366. package/lib/network/reqresp/protocols.d.ts.map +0 -1
  367. package/lib/network/reqresp/rateLimit.d.ts.map +0 -1
  368. package/lib/network/reqresp/score.d.ts.map +0 -1
  369. package/lib/network/reqresp/types.d.ts.map +0 -1
  370. package/lib/network/reqresp/utils/collect.d.ts.map +0 -1
  371. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.d.ts.map +0 -1
  372. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts.map +0 -1
  373. package/lib/network/statusCache.d.ts.map +0 -1
  374. package/lib/network/subnets/attnetsService.d.ts.map +0 -1
  375. package/lib/network/subnets/index.d.ts.map +0 -1
  376. package/lib/network/subnets/interface.d.ts.map +0 -1
  377. package/lib/network/subnets/syncnetsService.d.ts.map +0 -1
  378. package/lib/network/subnets/util.d.ts.map +0 -1
  379. package/lib/network/util.d.ts.map +0 -1
  380. package/lib/node/index.d.ts.map +0 -1
  381. package/lib/node/nodejs.d.ts.map +0 -1
  382. package/lib/node/notifier.d.ts.map +0 -1
  383. package/lib/node/options.d.ts.map +0 -1
  384. package/lib/node/utils/interop/deposits.d.ts.map +0 -1
  385. package/lib/node/utils/interop/state.d.ts.map +0 -1
  386. package/lib/node/utils/lightclient.d.ts.map +0 -1
  387. package/lib/node/utils/state.d.ts.map +0 -1
  388. package/lib/sync/backfill/backfill.d.ts.map +0 -1
  389. package/lib/sync/backfill/errors.d.ts.map +0 -1
  390. package/lib/sync/backfill/index.d.ts.map +0 -1
  391. package/lib/sync/backfill/verify.d.ts.map +0 -1
  392. package/lib/sync/constants.d.ts.map +0 -1
  393. package/lib/sync/index.d.ts.map +0 -1
  394. package/lib/sync/interface.d.ts.map +0 -1
  395. package/lib/sync/options.d.ts.map +0 -1
  396. package/lib/sync/range/batch.d.ts.map +0 -1
  397. package/lib/sync/range/chain.d.ts.map +0 -1
  398. package/lib/sync/range/range.d.ts.map +0 -1
  399. package/lib/sync/range/utils/batches.d.ts.map +0 -1
  400. package/lib/sync/range/utils/chainTarget.d.ts.map +0 -1
  401. package/lib/sync/range/utils/hashBlocks.d.ts.map +0 -1
  402. package/lib/sync/range/utils/index.d.ts.map +0 -1
  403. package/lib/sync/range/utils/peerBalancer.d.ts.map +0 -1
  404. package/lib/sync/range/utils/updateChains.d.ts.map +0 -1
  405. package/lib/sync/sync.d.ts.map +0 -1
  406. package/lib/sync/types.d.ts.map +0 -1
  407. package/lib/sync/unknownBlock.d.ts.map +0 -1
  408. package/lib/sync/utils/downloadByRange.d.ts.map +0 -1
  409. package/lib/sync/utils/downloadByRoot.d.ts.map +0 -1
  410. package/lib/sync/utils/pendingBlocksTree.d.ts.map +0 -1
  411. package/lib/sync/utils/remoteSyncType.d.ts.map +0 -1
  412. package/lib/util/address.d.ts.map +0 -1
  413. package/lib/util/array.d.ts.map +0 -1
  414. package/lib/util/asyncIterableToEvents.d.ts.map +0 -1
  415. package/lib/util/binarySearch.d.ts.map +0 -1
  416. package/lib/util/bitArray.d.ts.map +0 -1
  417. package/lib/util/blobs.d.ts.map +0 -1
  418. package/lib/util/bufferPool.d.ts.map +0 -1
  419. package/lib/util/bytes.d.ts.map +0 -1
  420. package/lib/util/chunkify.d.ts.map +0 -1
  421. package/lib/util/clock.d.ts.map +0 -1
  422. package/lib/util/dataColumns.d.ts.map +0 -1
  423. package/lib/util/dependentRoot.d.ts.map +0 -1
  424. package/lib/util/enum.d.ts.map +0 -1
  425. package/lib/util/error.d.ts.map +0 -1
  426. package/lib/util/eventLoop.d.ts.map +0 -1
  427. package/lib/util/execution.d.ts.map +0 -1
  428. package/lib/util/file.d.ts.map +0 -1
  429. package/lib/util/forkChoice.d.ts.map +0 -1
  430. package/lib/util/forkName.d.ts.map +0 -1
  431. package/lib/util/graffiti.d.ts.map +0 -1
  432. package/lib/util/hex.d.ts.map +0 -1
  433. package/lib/util/index.d.ts.map +0 -1
  434. package/lib/util/ip.d.ts.map +0 -1
  435. package/lib/util/itTrigger.d.ts.map +0 -1
  436. package/lib/util/kzg.d.ts.map +0 -1
  437. package/lib/util/map.d.ts.map +0 -1
  438. package/lib/util/metadata.d.ts.map +0 -1
  439. package/lib/util/multifork.d.ts.map +0 -1
  440. package/lib/util/numpy.d.ts.map +0 -1
  441. package/lib/util/peerId.d.ts.map +0 -1
  442. package/lib/util/profile.d.ts.map +0 -1
  443. package/lib/util/promises.d.ts.map +0 -1
  444. package/lib/util/queue/errors.d.ts.map +0 -1
  445. package/lib/util/queue/fnQueue.d.ts.map +0 -1
  446. package/lib/util/queue/index.d.ts.map +0 -1
  447. package/lib/util/queue/itemQueue.d.ts.map +0 -1
  448. package/lib/util/queue/options.d.ts.map +0 -1
  449. package/lib/util/serializedCache.d.ts.map +0 -1
  450. package/lib/util/set.d.ts.map +0 -1
  451. package/lib/util/shuffle.d.ts.map +0 -1
  452. package/lib/util/sortBy.d.ts.map +0 -1
  453. package/lib/util/sszBytes.d.ts.map +0 -1
  454. package/lib/util/strictEvents.d.ts.map +0 -1
  455. package/lib/util/time.d.ts.map +0 -1
  456. package/lib/util/timeSeries.d.ts.map +0 -1
  457. package/lib/util/types.d.ts.map +0 -1
  458. package/lib/util/workerEvents.d.ts.map +0 -1
  459. package/lib/util/wrapError.d.ts.map +0 -1
  460. package/src/api/impl/api.ts +0 -26
  461. package/src/api/impl/beacon/blocks/index.ts +0 -744
  462. package/src/api/impl/beacon/blocks/utils.ts +0 -75
  463. package/src/api/impl/beacon/index.ts +0 -35
  464. package/src/api/impl/beacon/pool/index.ts +0 -314
  465. package/src/api/impl/beacon/rewards/index.ts +0 -30
  466. package/src/api/impl/beacon/state/index.ts +0 -406
  467. package/src/api/impl/beacon/state/utils.ts +0 -189
  468. package/src/api/impl/config/constants.ts +0 -127
  469. package/src/api/impl/config/index.ts +0 -59
  470. package/src/api/impl/debug/index.ts +0 -131
  471. package/src/api/impl/errors.ts +0 -50
  472. package/src/api/impl/events/index.ts +0 -33
  473. package/src/api/impl/index.ts +0 -6
  474. package/src/api/impl/lightclient/index.ts +0 -64
  475. package/src/api/impl/lodestar/index.ts +0 -257
  476. package/src/api/impl/node/index.ts +0 -88
  477. package/src/api/impl/node/utils.ts +0 -51
  478. package/src/api/impl/proof/index.ts +0 -60
  479. package/src/api/impl/types.ts +0 -17
  480. package/src/api/impl/utils.ts +0 -25
  481. package/src/api/impl/validator/index.ts +0 -1538
  482. package/src/api/impl/validator/utils.ts +0 -85
  483. package/src/api/index.ts +0 -2
  484. package/src/api/options.ts +0 -16
  485. package/src/api/rest/activeSockets.ts +0 -109
  486. package/src/api/rest/base.ts +0 -216
  487. package/src/api/rest/index.ts +0 -63
  488. package/src/api/rest/swaggerUI.ts +0 -80
  489. package/src/bun-wrappers/prometheus-gc-stats.ts +0 -7
  490. package/src/chain/ColumnReconstructionTracker.ts +0 -90
  491. package/src/chain/GetBlobsTracker.ts +0 -115
  492. package/src/chain/archiveStore/archiveStore.ts +0 -222
  493. package/src/chain/archiveStore/constants.ts +0 -5
  494. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +0 -116
  495. package/src/chain/archiveStore/historicalState/historicalStateRegen.ts +0 -68
  496. package/src/chain/archiveStore/historicalState/metrics.ts +0 -214
  497. package/src/chain/archiveStore/historicalState/types.ts +0 -41
  498. package/src/chain/archiveStore/historicalState/worker.ts +0 -77
  499. package/src/chain/archiveStore/index.ts +0 -3
  500. package/src/chain/archiveStore/interface.ts +0 -75
  501. package/src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts +0 -138
  502. package/src/chain/archiveStore/utils/archiveBlocks.ts +0 -437
  503. package/src/chain/archiveStore/utils/pruneHistory.ts +0 -56
  504. package/src/chain/archiveStore/utils/updateBackfillRange.ts +0 -50
  505. package/src/chain/balancesCache.ts +0 -52
  506. package/src/chain/beaconProposerCache.ts +0 -43
  507. package/src/chain/blocks/blockInput/blockInput.ts +0 -851
  508. package/src/chain/blocks/blockInput/errors.ts +0 -48
  509. package/src/chain/blocks/blockInput/index.ts +0 -4
  510. package/src/chain/blocks/blockInput/types.ts +0 -145
  511. package/src/chain/blocks/blockInput/utils.ts +0 -21
  512. package/src/chain/blocks/importBlock.ts +0 -603
  513. package/src/chain/blocks/index.ts +0 -179
  514. package/src/chain/blocks/types.ts +0 -101
  515. package/src/chain/blocks/utils/blowfishBanner.ts +0 -28
  516. package/src/chain/blocks/utils/chainSegment.ts +0 -29
  517. package/src/chain/blocks/utils/checkpoint.ts +0 -25
  518. package/src/chain/blocks/utils/giraffeBanner.ts +0 -30
  519. package/src/chain/blocks/utils/ownBanner.ts +0 -20
  520. package/src/chain/blocks/utils/pandaMergeTransitionBanner.ts +0 -43
  521. package/src/chain/blocks/utils/zebraBanner.ts +0 -45
  522. package/src/chain/blocks/verifyBlock.ts +0 -242
  523. package/src/chain/blocks/verifyBlocksDataAvailability.ts +0 -34
  524. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +0 -438
  525. package/src/chain/blocks/verifyBlocksSanityChecks.ts +0 -129
  526. package/src/chain/blocks/verifyBlocksSignatures.ts +0 -105
  527. package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +0 -114
  528. package/src/chain/blocks/writeBlockInputToDb.ts +0 -128
  529. package/src/chain/bls/index.ts +0 -4
  530. package/src/chain/bls/interface.ts +0 -68
  531. package/src/chain/bls/maybeBatch.ts +0 -45
  532. package/src/chain/bls/multithread/index.ts +0 -582
  533. package/src/chain/bls/multithread/jobItem.ts +0 -119
  534. package/src/chain/bls/multithread/poolSize.ts +0 -16
  535. package/src/chain/bls/multithread/types.ts +0 -38
  536. package/src/chain/bls/multithread/utils.ts +0 -19
  537. package/src/chain/bls/multithread/worker.ts +0 -114
  538. package/src/chain/bls/singleThread.ts +0 -87
  539. package/src/chain/bls/utils.ts +0 -30
  540. package/src/chain/chain.ts +0 -1365
  541. package/src/chain/emitter.ts +0 -113
  542. package/src/chain/errors/attestationError.ts +0 -194
  543. package/src/chain/errors/attesterSlashingError.ts +0 -11
  544. package/src/chain/errors/blobSidecarError.ts +0 -60
  545. package/src/chain/errors/blockError.ts +0 -166
  546. package/src/chain/errors/blsToExecutionChangeError.ts +0 -13
  547. package/src/chain/errors/dataColumnSidecarError.ts +0 -80
  548. package/src/chain/errors/gossipValidation.ts +0 -20
  549. package/src/chain/errors/index.ts +0 -10
  550. package/src/chain/errors/lightClientError.ts +0 -30
  551. package/src/chain/errors/proposerSlashingError.ts +0 -11
  552. package/src/chain/errors/syncCommitteeError.ts +0 -36
  553. package/src/chain/errors/voluntaryExitError.ts +0 -13
  554. package/src/chain/forkChoice/index.ts +0 -112
  555. package/src/chain/genesis/genesis.ts +0 -190
  556. package/src/chain/genesis/interface.ts +0 -14
  557. package/src/chain/index.ts +0 -6
  558. package/src/chain/initState.ts +0 -221
  559. package/src/chain/interface.ts +0 -280
  560. package/src/chain/lightClient/index.ts +0 -764
  561. package/src/chain/lightClient/proofs.ts +0 -85
  562. package/src/chain/lightClient/types.ts +0 -33
  563. package/src/chain/opPools/aggregatedAttestationPool.ts +0 -1063
  564. package/src/chain/opPools/attestationPool.ts +0 -283
  565. package/src/chain/opPools/index.ts +0 -5
  566. package/src/chain/opPools/opPool.ts +0 -462
  567. package/src/chain/opPools/syncCommitteeMessagePool.ts +0 -167
  568. package/src/chain/opPools/syncContributionAndProofPool.ts +0 -240
  569. package/src/chain/opPools/types.ts +0 -35
  570. package/src/chain/opPools/utils.ts +0 -65
  571. package/src/chain/options.ts +0 -138
  572. package/src/chain/prepareNextSlot.ts +0 -277
  573. package/src/chain/produceBlock/computeNewStateRoot.ts +0 -55
  574. package/src/chain/produceBlock/index.ts +0 -2
  575. package/src/chain/produceBlock/produceBlockBody.ts +0 -797
  576. package/src/chain/produceBlock/validateBlobsAndKzgCommitments.ts +0 -54
  577. package/src/chain/regen/errors.ts +0 -30
  578. package/src/chain/regen/index.ts +0 -4
  579. package/src/chain/regen/interface.ts +0 -93
  580. package/src/chain/regen/queued.ts +0 -317
  581. package/src/chain/regen/regen.ts +0 -424
  582. package/src/chain/reprocess.ts +0 -161
  583. package/src/chain/rewards/attestationsRewards.ts +0 -196
  584. package/src/chain/rewards/blockRewards.ts +0 -150
  585. package/src/chain/rewards/syncCommitteeRewards.ts +0 -58
  586. package/src/chain/seenCache/index.ts +0 -5
  587. package/src/chain/seenCache/seenAggregateAndProof.ts +0 -120
  588. package/src/chain/seenCache/seenAttestationData.ts +0 -145
  589. package/src/chain/seenCache/seenAttesters.ts +0 -58
  590. package/src/chain/seenCache/seenBlockAttesters.ts +0 -18
  591. package/src/chain/seenCache/seenBlockProposers.ts +0 -48
  592. package/src/chain/seenCache/seenCommittee.ts +0 -43
  593. package/src/chain/seenCache/seenCommitteeContribution.ts +0 -104
  594. package/src/chain/seenCache/seenGossipBlockInput.ts +0 -373
  595. package/src/chain/serializeState.ts +0 -32
  596. package/src/chain/shufflingCache.ts +0 -238
  597. package/src/chain/stateCache/blockStateCacheImpl.ts +0 -150
  598. package/src/chain/stateCache/datastore/db.ts +0 -36
  599. package/src/chain/stateCache/datastore/file.ts +0 -53
  600. package/src/chain/stateCache/datastore/index.ts +0 -2
  601. package/src/chain/stateCache/datastore/types.ts +0 -13
  602. package/src/chain/stateCache/fifoBlockStateCache.ts +0 -208
  603. package/src/chain/stateCache/inMemoryCheckpointsCache.ts +0 -198
  604. package/src/chain/stateCache/index.ts +0 -3
  605. package/src/chain/stateCache/mapMetrics.ts +0 -52
  606. package/src/chain/stateCache/persistentCheckpointsCache.ts +0 -835
  607. package/src/chain/stateCache/types.ts +0 -86
  608. package/src/chain/validation/aggregateAndProof.ts +0 -258
  609. package/src/chain/validation/attestation.ts +0 -885
  610. package/src/chain/validation/attesterSlashing.ts +0 -61
  611. package/src/chain/validation/blobSidecar.ts +0 -301
  612. package/src/chain/validation/block.ts +0 -188
  613. package/src/chain/validation/blsToExecutionChange.ts +0 -61
  614. package/src/chain/validation/dataColumnSidecar.ts +0 -381
  615. package/src/chain/validation/index.ts +0 -9
  616. package/src/chain/validation/lightClientFinalityUpdate.ts +0 -45
  617. package/src/chain/validation/lightClientOptimisticUpdate.ts +0 -67
  618. package/src/chain/validation/proposerSlashing.ts +0 -54
  619. package/src/chain/validation/signatureSets/aggregateAndProof.ts +0 -38
  620. package/src/chain/validation/signatureSets/contributionAndProof.ts +0 -27
  621. package/src/chain/validation/signatureSets/index.ts +0 -6
  622. package/src/chain/validation/signatureSets/selectionProof.ts +0 -27
  623. package/src/chain/validation/signatureSets/syncCommittee.ts +0 -22
  624. package/src/chain/validation/signatureSets/syncCommitteeContribution.ts +0 -18
  625. package/src/chain/validation/signatureSets/syncCommitteeSelectionProof.ts +0 -27
  626. package/src/chain/validation/syncCommittee.ts +0 -165
  627. package/src/chain/validation/syncCommitteeContributionAndProof.ts +0 -122
  628. package/src/chain/validation/voluntaryExit.ts +0 -58
  629. package/src/chain/validatorMonitor.ts +0 -1299
  630. package/src/constants/constants.ts +0 -15
  631. package/src/constants/index.ts +0 -2
  632. package/src/constants/network.ts +0 -52
  633. package/src/db/beacon.ts +0 -113
  634. package/src/db/buckets.ts +0 -80
  635. package/src/db/index.ts +0 -2
  636. package/src/db/interface.ts +0 -76
  637. package/src/db/options.ts +0 -7
  638. package/src/db/repositories/attesterSlashing.ts +0 -38
  639. package/src/db/repositories/backfilledRanges.ts +0 -29
  640. package/src/db/repositories/blobSidecars.ts +0 -37
  641. package/src/db/repositories/blobSidecarsArchive.ts +0 -28
  642. package/src/db/repositories/block.ts +0 -33
  643. package/src/db/repositories/blockArchive.ts +0 -170
  644. package/src/db/repositories/blockArchiveIndex.ts +0 -45
  645. package/src/db/repositories/blsToExecutionChange.ts +0 -16
  646. package/src/db/repositories/checkpointState.ts +0 -31
  647. package/src/db/repositories/dataColumnSidecar.ts +0 -49
  648. package/src/db/repositories/dataColumnSidecarArchive.ts +0 -56
  649. package/src/db/repositories/depositDataRoot.ts +0 -80
  650. package/src/db/repositories/depositEvent.ts +0 -32
  651. package/src/db/repositories/eth1Data.ts +0 -33
  652. package/src/db/repositories/index.ts +0 -20
  653. package/src/db/repositories/lightclientBestUpdate.ts +0 -41
  654. package/src/db/repositories/lightclientCheckpointHeader.ts +0 -32
  655. package/src/db/repositories/lightclientSyncCommittee.ts +0 -16
  656. package/src/db/repositories/lightclientSyncCommitteeWitness.ts +0 -77
  657. package/src/db/repositories/proposerSlashing.ts +0 -15
  658. package/src/db/repositories/stateArchive.ts +0 -69
  659. package/src/db/repositories/stateArchiveIndex.ts +0 -18
  660. package/src/db/repositories/voluntaryExit.ts +0 -15
  661. package/src/db/single/index.ts +0 -2
  662. package/src/db/single/preGenesisState.ts +0 -37
  663. package/src/db/single/preGenesisStateLastProcessedBlock.ts +0 -34
  664. package/src/eth1/errors.ts +0 -40
  665. package/src/eth1/eth1DataCache.ts +0 -26
  666. package/src/eth1/eth1DepositDataTracker.ts +0 -410
  667. package/src/eth1/eth1DepositsCache.ts +0 -141
  668. package/src/eth1/eth1MergeBlockTracker.ts +0 -328
  669. package/src/eth1/index.ts +0 -157
  670. package/src/eth1/interface.ts +0 -131
  671. package/src/eth1/options.ts +0 -28
  672. package/src/eth1/provider/eth1Provider.ts +0 -229
  673. package/src/eth1/provider/jsonRpcHttpClient.ts +0 -390
  674. package/src/eth1/provider/jwt.ts +0 -36
  675. package/src/eth1/provider/utils.ts +0 -136
  676. package/src/eth1/stream.ts +0 -75
  677. package/src/eth1/utils/depositContract.ts +0 -37
  678. package/src/eth1/utils/deposits.ts +0 -70
  679. package/src/eth1/utils/eth1Data.ts +0 -100
  680. package/src/eth1/utils/eth1DepositEvent.ts +0 -12
  681. package/src/eth1/utils/eth1Vote.ts +0 -142
  682. package/src/eth1/utils/groupDepositEventsByBlock.ts +0 -19
  683. package/src/eth1/utils/optimizeNextBlockDiffForGenesis.ts +0 -18
  684. package/src/execution/builder/cache.ts +0 -39
  685. package/src/execution/builder/http.ts +0 -229
  686. package/src/execution/builder/index.ts +0 -27
  687. package/src/execution/builder/interface.ts +0 -49
  688. package/src/execution/builder/utils.ts +0 -19
  689. package/src/execution/engine/disabled.ts +0 -35
  690. package/src/execution/engine/http.ts +0 -644
  691. package/src/execution/engine/index.ts +0 -63
  692. package/src/execution/engine/interface.ts +0 -199
  693. package/src/execution/engine/mock.ts +0 -493
  694. package/src/execution/engine/payloadIdCache.ts +0 -54
  695. package/src/execution/engine/types.ts +0 -640
  696. package/src/execution/engine/utils.ts +0 -136
  697. package/src/execution/index.ts +0 -4
  698. package/src/index.ts +0 -20
  699. package/src/metrics/index.ts +0 -4
  700. package/src/metrics/metrics/beacon.ts +0 -390
  701. package/src/metrics/metrics/lodestar.ts +0 -1870
  702. package/src/metrics/metrics.ts +0 -43
  703. package/src/metrics/nodeJsMetrics.ts +0 -19
  704. package/src/metrics/options.ts +0 -22
  705. package/src/metrics/server/http.ts +0 -114
  706. package/src/metrics/server/index.ts +0 -1
  707. package/src/metrics/utils/avgMinMax.ts +0 -87
  708. package/src/metrics/utils/gauge.ts +0 -22
  709. package/src/metrics/utils/registryMetricCreator.ts +0 -41
  710. package/src/monitoring/clientStats.ts +0 -297
  711. package/src/monitoring/index.ts +0 -2
  712. package/src/monitoring/options.ts +0 -19
  713. package/src/monitoring/properties.ts +0 -152
  714. package/src/monitoring/service.ts +0 -235
  715. package/src/monitoring/system.ts +0 -146
  716. package/src/monitoring/types.ts +0 -21
  717. package/src/network/core/events.ts +0 -59
  718. package/src/network/core/index.ts +0 -3
  719. package/src/network/core/metrics.ts +0 -304
  720. package/src/network/core/networkCore.ts +0 -599
  721. package/src/network/core/networkCoreWorker.ts +0 -176
  722. package/src/network/core/networkCoreWorkerHandler.ts +0 -284
  723. package/src/network/core/types.ts +0 -119
  724. package/src/network/discv5/index.ts +0 -132
  725. package/src/network/discv5/types.ts +0 -74
  726. package/src/network/discv5/utils.ts +0 -50
  727. package/src/network/discv5/worker.ts +0 -137
  728. package/src/network/events.ts +0 -51
  729. package/src/network/forks.ts +0 -94
  730. package/src/network/gossip/constants.ts +0 -15
  731. package/src/network/gossip/encoding.ts +0 -111
  732. package/src/network/gossip/errors.ts +0 -7
  733. package/src/network/gossip/gossipsub.ts +0 -384
  734. package/src/network/gossip/index.ts +0 -4
  735. package/src/network/gossip/interface.ts +0 -215
  736. package/src/network/gossip/metrics.ts +0 -71
  737. package/src/network/gossip/scoringParameters.ts +0 -333
  738. package/src/network/gossip/topic.ts +0 -332
  739. package/src/network/index.ts +0 -8
  740. package/src/network/interface.ts +0 -134
  741. package/src/network/libp2p/error.ts +0 -55
  742. package/src/network/libp2p/index.ts +0 -153
  743. package/src/network/metadata.ts +0 -162
  744. package/src/network/network.ts +0 -767
  745. package/src/network/networkConfig.ts +0 -12
  746. package/src/network/options.ts +0 -70
  747. package/src/network/peers/client.ts +0 -29
  748. package/src/network/peers/datastore.ts +0 -188
  749. package/src/network/peers/discover.ts +0 -647
  750. package/src/network/peers/index.ts +0 -2
  751. package/src/network/peers/peerManager.ts +0 -899
  752. package/src/network/peers/peersData.ts +0 -65
  753. package/src/network/peers/score/constants.ts +0 -34
  754. package/src/network/peers/score/index.ts +0 -4
  755. package/src/network/peers/score/interface.ts +0 -74
  756. package/src/network/peers/score/score.ts +0 -200
  757. package/src/network/peers/score/store.ts +0 -95
  758. package/src/network/peers/score/utils.ts +0 -37
  759. package/src/network/peers/utils/assertPeerRelevance.ts +0 -99
  760. package/src/network/peers/utils/enrSubnetsDeserialize.ts +0 -27
  761. package/src/network/peers/utils/getConnectedPeerIds.ts +0 -33
  762. package/src/network/peers/utils/index.ts +0 -4
  763. package/src/network/peers/utils/prioritizePeers.ts +0 -627
  764. package/src/network/peers/utils/subnetMap.ts +0 -88
  765. package/src/network/processor/aggregatorTracker.ts +0 -38
  766. package/src/network/processor/extractSlotRootFns.ts +0 -64
  767. package/src/network/processor/gossipHandlers.ts +0 -951
  768. package/src/network/processor/gossipQueues/index.ts +0 -114
  769. package/src/network/processor/gossipQueues/indexed.ts +0 -219
  770. package/src/network/processor/gossipQueues/linear.ts +0 -162
  771. package/src/network/processor/gossipQueues/types.ts +0 -57
  772. package/src/network/processor/gossipValidatorFn.ts +0 -142
  773. package/src/network/processor/index.ts +0 -496
  774. package/src/network/processor/types.ts +0 -27
  775. package/src/network/reqresp/ReqRespBeaconNode.ts +0 -373
  776. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +0 -101
  777. package/src/network/reqresp/handlers/beaconBlocksByRoot.ts +0 -49
  778. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +0 -114
  779. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +0 -62
  780. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +0 -144
  781. package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +0 -88
  782. package/src/network/reqresp/handlers/index.ts +0 -78
  783. package/src/network/reqresp/handlers/lightClientBootstrap.ts +0 -31
  784. package/src/network/reqresp/handlers/lightClientFinalityUpdate.ts +0 -21
  785. package/src/network/reqresp/handlers/lightClientOptimisticUpdate.ts +0 -21
  786. package/src/network/reqresp/handlers/lightClientUpdatesByRange.ts +0 -39
  787. package/src/network/reqresp/index.ts +0 -2
  788. package/src/network/reqresp/interface.ts +0 -45
  789. package/src/network/reqresp/protocols.ts +0 -146
  790. package/src/network/reqresp/rateLimit.ts +0 -112
  791. package/src/network/reqresp/score.ts +0 -70
  792. package/src/network/reqresp/types.ts +0 -174
  793. package/src/network/reqresp/utils/collect.ts +0 -84
  794. package/src/network/reqresp/utils/collectSequentialBlocksInRange.ts +0 -57
  795. package/src/network/reqresp/utils/dataColumnResponseValidation.ts +0 -99
  796. package/src/network/statusCache.ts +0 -17
  797. package/src/network/subnets/attnetsService.ts +0 -385
  798. package/src/network/subnets/index.ts +0 -2
  799. package/src/network/subnets/interface.ts +0 -66
  800. package/src/network/subnets/syncnetsService.ts +0 -147
  801. package/src/network/subnets/util.ts +0 -63
  802. package/src/network/util.ts +0 -29
  803. package/src/node/index.ts +0 -2
  804. package/src/node/nodejs.ts +0 -349
  805. package/src/node/notifier.ts +0 -206
  806. package/src/node/options.ts +0 -51
  807. package/src/node/utils/interop/deposits.ts +0 -53
  808. package/src/node/utils/interop/state.ts +0 -59
  809. package/src/node/utils/lightclient.ts +0 -7
  810. package/src/node/utils/state.ts +0 -37
  811. package/src/sync/backfill/backfill.ts +0 -893
  812. package/src/sync/backfill/errors.ts +0 -23
  813. package/src/sync/backfill/index.ts +0 -1
  814. package/src/sync/backfill/verify.ts +0 -58
  815. package/src/sync/constants.ts +0 -71
  816. package/src/sync/index.ts +0 -2
  817. package/src/sync/interface.ts +0 -55
  818. package/src/sync/options.ts +0 -45
  819. package/src/sync/range/batch.ts +0 -455
  820. package/src/sync/range/chain.ts +0 -715
  821. package/src/sync/range/range.ts +0 -354
  822. package/src/sync/range/utils/batches.ts +0 -119
  823. package/src/sync/range/utils/chainTarget.ts +0 -62
  824. package/src/sync/range/utils/hashBlocks.ts +0 -27
  825. package/src/sync/range/utils/index.ts +0 -5
  826. package/src/sync/range/utils/peerBalancer.ts +0 -184
  827. package/src/sync/range/utils/updateChains.ts +0 -66
  828. package/src/sync/sync.ts +0 -290
  829. package/src/sync/types.ts +0 -57
  830. package/src/sync/unknownBlock.ts +0 -859
  831. package/src/sync/utils/downloadByRange.ts +0 -808
  832. package/src/sync/utils/downloadByRoot.ts +0 -560
  833. package/src/sync/utils/pendingBlocksTree.ts +0 -97
  834. package/src/sync/utils/remoteSyncType.ts +0 -144
  835. package/src/util/address.ts +0 -3
  836. package/src/util/array.ts +0 -311
  837. package/src/util/asyncIterableToEvents.ts +0 -164
  838. package/src/util/binarySearch.ts +0 -48
  839. package/src/util/bitArray.ts +0 -84
  840. package/src/util/blobs.ts +0 -210
  841. package/src/util/bufferPool.ts +0 -95
  842. package/src/util/bytes.ts +0 -11
  843. package/src/util/chunkify.ts +0 -27
  844. package/src/util/clock.ts +0 -204
  845. package/src/util/dataColumns.ts +0 -415
  846. package/src/util/dependentRoot.ts +0 -47
  847. package/src/util/enum.ts +0 -17
  848. package/src/util/error.ts +0 -56
  849. package/src/util/eventLoop.ts +0 -22
  850. package/src/util/execution.ts +0 -223
  851. package/src/util/file.ts +0 -52
  852. package/src/util/forkChoice.ts +0 -5
  853. package/src/util/forkName.ts +0 -20
  854. package/src/util/graffiti.ts +0 -39
  855. package/src/util/hex.ts +0 -9
  856. package/src/util/index.ts +0 -2
  857. package/src/util/ip.ts +0 -6
  858. package/src/util/itTrigger.ts +0 -49
  859. package/src/util/kzg.ts +0 -3
  860. package/src/util/map.ts +0 -77
  861. package/src/util/metadata.ts +0 -22
  862. package/src/util/multifork.ts +0 -69
  863. package/src/util/numpy.ts +0 -8
  864. package/src/util/peerId.ts +0 -16
  865. package/src/util/profile.ts +0 -54
  866. package/src/util/promises.ts +0 -14
  867. package/src/util/queue/errors.ts +0 -14
  868. package/src/util/queue/fnQueue.ts +0 -16
  869. package/src/util/queue/index.ts +0 -4
  870. package/src/util/queue/itemQueue.ts +0 -128
  871. package/src/util/queue/options.ts +0 -37
  872. package/src/util/serializedCache.ts +0 -20
  873. package/src/util/set.ts +0 -62
  874. package/src/util/shuffle.ts +0 -21
  875. package/src/util/sortBy.ts +0 -19
  876. package/src/util/sszBytes.ts +0 -481
  877. package/src/util/strictEvents.ts +0 -8
  878. package/src/util/time.ts +0 -13
  879. package/src/util/timeSeries.ts +0 -118
  880. package/src/util/types.ts +0 -31
  881. package/src/util/workerEvents.ts +0 -142
  882. package/src/util/wrapError.ts +0 -27
@@ -1,627 +0,0 @@
1
- import {Direction, PeerId} from "@libp2p/interface";
2
- import {BitArray} from "@chainsafe/ssz";
3
- import {ChainConfig} from "@lodestar/config";
4
- import {ATTESTATION_SUBNET_COUNT, SYNC_COMMITTEE_SUBNET_COUNT} from "@lodestar/params";
5
- import {CustodyIndex, Status, SubnetID, altair, phase0} from "@lodestar/types";
6
- import {MapDef} from "@lodestar/utils";
7
- import {shuffle} from "../../../util/shuffle.js";
8
- import {sortBy} from "../../../util/sortBy.js";
9
- import {NetworkCoreMetrics} from "../../core/metrics.js";
10
- import {RequestedSubnet} from "./subnetMap.js";
11
-
12
- /** Target number of peers we'd like to have connected to a given long-lived subnet */
13
- const TARGET_SUBNET_PEERS = 6;
14
-
15
- /**
16
- * This is for non-sampling groups only. This is a very easy number to achieve given an average of 6.25 peers per column subnet on public networks.
17
- * This is needed to always maintain some minimum peers on all subnets so that when we publish a block, we're sure we pubish to all column subnets.
18
- */
19
- const TARGET_GROUP_PEERS_PER_SUBNET = 4;
20
-
21
- /**
22
- * This is used in the pruning logic. We avoid pruning peers on sync-committees if doing so would
23
- * lower our peer count below this number. Instead we favour a non-uniform distribution of subnet
24
- * peers.
25
- */
26
- const MIN_SYNC_COMMITTEE_PEERS = 2;
27
-
28
- /**
29
- * Lighthouse has this value as 0. However, as monitored in Lodestar mainnet node, the max score is 0
30
- * and average score is -0.5 to 0 so we want this value to be a little bit more relaxed
31
- */
32
- const LOW_SCORE_TO_PRUNE_IF_TOO_MANY_PEERS = -2;
33
-
34
- /**
35
- * Instead of attempting to connect the exact amount necessary this will overshoot a little since the success
36
- * rate of outgoing connections is low, <33%. If we try to connect exactly `targetPeers - connectedPeerCount` the
37
- * peer count will almost always be just below targetPeers triggering constant discoveries that are not necessary
38
- */
39
- const PEERS_TO_CONNECT_OVERSHOOT_FACTOR = 3;
40
-
41
- /**
42
- * Keep at least 10% of outbound peers. For rationale, see https://github.com/ChainSafe/lodestar/issues/2215
43
- */
44
- const OUTBOUND_PEERS_RATIO = 0.1;
45
-
46
- const attnetsZero = BitArray.fromBitLen(ATTESTATION_SUBNET_COUNT);
47
- const syncnetsZero = BitArray.fromBitLen(SYNC_COMMITTEE_SUBNET_COUNT);
48
-
49
- type SubnetDiscvQuery = {subnet: SubnetID; toSlot: number; maxPeersToDiscover: number};
50
-
51
- /**
52
- * A map of das custody group index to maxPeersToDiscover
53
- */
54
- export type CustodyGroupQueries = Map<CustodyIndex, number>;
55
-
56
- /**
57
- * Comparison of our status vs a peer's status.
58
- *
59
- * The main usage of this score is to feed into peer priorization during syncing, and especially when the node is having trouble finding data during syncing
60
- *
61
- * For network stability, we DON'T distinguish peers that are far behind us vs peers that are close to us.
62
- */
63
- enum StatusScore {
64
- /** The peer is close to our chain */
65
- CLOSE_TO_US = -1,
66
- /** The peer is far ahead of chain */
67
- FAR_AHEAD = 0,
68
- }
69
-
70
- /**
71
- * In practice, this score only tracks if the peer is far ahead of us or not during syncing.
72
- * When the node is synced, the peer is always CLOSE_TO_US.
73
- */
74
- function computeStatusScore(ours: Status, theirs: Status | null, opts: PrioritizePeersOpts): StatusScore {
75
- if (theirs === null) {
76
- return StatusScore.CLOSE_TO_US;
77
- }
78
-
79
- if (theirs.finalizedEpoch > ours.finalizedEpoch) {
80
- return StatusScore.FAR_AHEAD;
81
- }
82
-
83
- if (theirs.headSlot > ours.headSlot + opts.starvationThresholdSlots) {
84
- return StatusScore.FAR_AHEAD;
85
- }
86
-
87
- // It's dangerous to downscore peers that are far behind.
88
- // This means we'd be more likely to disconnect peers that are attempting to sync, which would affect network stability.
89
- // if (ours.headSlot > theirs.headSlot + opts.starvationThresholdSlots) {
90
- // return StatusScore.FAR_BEHIND;
91
- // }
92
-
93
- return StatusScore.CLOSE_TO_US;
94
- }
95
-
96
- type PeerInfo = {
97
- id: PeerId;
98
- direction: Direction | null;
99
- statusScore: StatusScore;
100
- attnets: phase0.AttestationSubnets;
101
- syncnets: altair.SyncSubnets;
102
- samplingGroups: CustodyIndex[];
103
- attnetsTrueBitIndices: number[];
104
- syncnetsTrueBitIndices: number[];
105
- score: number;
106
- };
107
-
108
- export type PrioritizePeersOpts = {
109
- targetPeers: number;
110
- maxPeers: number;
111
- targetGroupPeers: number;
112
- status: Status;
113
- starved: boolean;
114
- starvationPruneRatio: number;
115
- starvationThresholdSlots: number;
116
- outboundPeersRatio?: number;
117
- targetSubnetPeers?: number;
118
- };
119
-
120
- export enum ExcessPeerDisconnectReason {
121
- LOW_SCORE = "low_score",
122
- NO_LONG_LIVED_SUBNET = "no_long_lived_subnet",
123
- TOO_GROUPED_SUBNET = "too_grouped_subnet",
124
- FIND_BETTER_PEERS = "find_better_peers",
125
- }
126
-
127
- /**
128
- * Prioritize which peers to disconect and which to connect. Conditions:
129
- * - Reach `targetPeers`
130
- * - If we're starved for data, prune additional peers
131
- * - Don't exceed `maxPeers`
132
- * - Ensure there are enough peers per column subnets, attestation subnets and sync committee subnets
133
- * - Prioritize peers with good score
134
- *
135
- * pre-fulu samplingGroups is not used and this function returns empty custodyGroupQueries
136
- */
137
- export function prioritizePeers(
138
- connectedPeersInfo: {
139
- id: PeerId;
140
- direction: Direction | null;
141
- status: Status | null;
142
- attnets: phase0.AttestationSubnets | null;
143
- syncnets: altair.SyncSubnets | null;
144
- samplingGroups: CustodyIndex[] | null;
145
- score: number;
146
- }[],
147
- activeAttnets: RequestedSubnet[],
148
- activeSyncnets: RequestedSubnet[],
149
- samplingGroups: CustodyIndex[] | undefined,
150
- opts: PrioritizePeersOpts,
151
- config: ChainConfig,
152
- metrics: NetworkCoreMetrics | null
153
- ): {
154
- peersToConnect: number;
155
- peersToDisconnect: Map<ExcessPeerDisconnectReason, PeerId[]>;
156
- attnetQueries: SubnetDiscvQuery[];
157
- syncnetQueries: SubnetDiscvQuery[];
158
- custodyGroupQueries: CustodyGroupQueries;
159
- } {
160
- const {targetPeers, maxPeers} = opts;
161
-
162
- let peersToConnect = 0;
163
- const peersToDisconnect = new MapDef<ExcessPeerDisconnectReason, PeerId[]>(() => []);
164
-
165
- // Pre-compute trueBitIndexes for re-use below. Set null subnets Maps to default zero value
166
- const connectedPeers = connectedPeersInfo.map(
167
- (peer): PeerInfo => ({
168
- id: peer.id,
169
- direction: peer.direction,
170
- statusScore: computeStatusScore(opts.status, peer.status, opts),
171
- attnets: peer.attnets ?? attnetsZero,
172
- syncnets: peer.syncnets ?? syncnetsZero,
173
- samplingGroups: peer.samplingGroups ?? [],
174
- attnetsTrueBitIndices: peer.attnets?.getTrueBitIndexes() ?? [],
175
- syncnetsTrueBitIndices: peer.syncnets?.getTrueBitIndexes() ?? [],
176
- score: peer.score,
177
- })
178
- );
179
-
180
- const {attnetQueries, syncnetQueries, custodyGroupQueries, dutiesByPeer} = requestSubnetPeers(
181
- connectedPeers,
182
- activeAttnets,
183
- activeSyncnets,
184
- samplingGroups,
185
- opts,
186
- config,
187
- metrics
188
- );
189
-
190
- const connectedPeerCount = connectedPeers.length;
191
-
192
- if (connectedPeerCount < targetPeers) {
193
- // Need more peers.
194
- // Instead of attempting to connect the exact amount necessary this will overshoot a little since the success
195
- // rate of outgoing connections is low, <33%. If we try to connect exactly `targetPeers - connectedPeerCount` the
196
- // peer count will almost always be just below targetPeers triggering constant discoveries that are not necessary
197
- peersToConnect = Math.min(
198
- PEERS_TO_CONNECT_OVERSHOOT_FACTOR * (targetPeers - connectedPeerCount),
199
- // Never attempt to connect more peers than maxPeers even considering a low chance of dial success
200
- maxPeers - connectedPeerCount
201
- );
202
- } else if (connectedPeerCount > targetPeers) {
203
- pruneExcessPeers(connectedPeers, dutiesByPeer, activeAttnets, peersToDisconnect, opts);
204
- }
205
-
206
- return {
207
- peersToConnect,
208
- peersToDisconnect,
209
- attnetQueries,
210
- syncnetQueries,
211
- custodyGroupQueries,
212
- };
213
- }
214
-
215
- /**
216
- * If more peers are needed in attnets and syncnets and column subnets, create SubnetDiscvQuery for each subnet
217
- * pre-fulu samplingGroups is not used and this function returns empty custodyGroupQueries
218
- */
219
- function requestSubnetPeers(
220
- connectedPeers: PeerInfo[],
221
- activeAttnets: RequestedSubnet[],
222
- activeSyncnets: RequestedSubnet[],
223
- ourSamplingGroups: CustodyIndex[] | undefined,
224
- opts: PrioritizePeersOpts,
225
- config: ChainConfig,
226
- metrics: NetworkCoreMetrics | null
227
- ): {
228
- attnetQueries: SubnetDiscvQuery[];
229
- syncnetQueries: SubnetDiscvQuery[];
230
- custodyGroupQueries: CustodyGroupQueries;
231
- dutiesByPeer: Map<PeerInfo, number>;
232
- } {
233
- const {targetSubnetPeers = TARGET_SUBNET_PEERS} = opts;
234
- const attnetQueries: SubnetDiscvQuery[] = [];
235
- const syncnetQueries: SubnetDiscvQuery[] = [];
236
-
237
- // To filter out peers containing enough attnets of interest from possible disconnection
238
- const dutiesByPeer = new Map<PeerInfo, number>();
239
-
240
- // attnets, do we need queries for more peers
241
- if (activeAttnets.length > 0) {
242
- /** Map of peers per subnet, peer may be in multiple arrays */
243
- const peersPerSubnet = new Map<number, number>();
244
-
245
- for (const peer of connectedPeers) {
246
- const trueBitIndices = peer.attnetsTrueBitIndices;
247
- let dutyCount = 0;
248
- for (const {subnet} of activeAttnets) {
249
- if (trueBitIndices.includes(subnet)) {
250
- dutyCount += 1;
251
- peersPerSubnet.set(subnet, 1 + (peersPerSubnet.get(subnet) ?? 0));
252
- }
253
- }
254
- dutiesByPeer.set(peer, dutyCount);
255
- }
256
-
257
- for (const {subnet, toSlot} of activeAttnets) {
258
- const peersInSubnet = peersPerSubnet.get(subnet) ?? 0;
259
- if (peersInSubnet < targetSubnetPeers) {
260
- // We need more peers
261
- attnetQueries.push({subnet, toSlot, maxPeersToDiscover: targetSubnetPeers - peersInSubnet});
262
- }
263
- }
264
- }
265
-
266
- // syncnets, do we need queries for more peers
267
- if (activeSyncnets.length > 0) {
268
- /** Map of peers per subnet, peer may be in multiple arrays */
269
- const peersPerSubnet = new Map<number, number>();
270
-
271
- for (const peer of connectedPeers) {
272
- const trueBitIndices = peer.syncnetsTrueBitIndices;
273
- let dutyCount = dutiesByPeer.get(peer) ?? 0;
274
- for (const {subnet} of activeSyncnets) {
275
- if (trueBitIndices.includes(subnet)) {
276
- dutyCount += 1;
277
- peersPerSubnet.set(subnet, 1 + (peersPerSubnet.get(subnet) ?? 0));
278
- }
279
- }
280
- dutiesByPeer.set(peer, dutyCount);
281
- }
282
-
283
- for (const {subnet, toSlot} of activeSyncnets) {
284
- const peersInSubnet = peersPerSubnet.get(subnet) ?? 0;
285
- if (peersInSubnet < targetSubnetPeers) {
286
- // We need more peers
287
- syncnetQueries.push({subnet, toSlot, maxPeersToDiscover: targetSubnetPeers - peersInSubnet});
288
- }
289
- }
290
- }
291
-
292
- const custodyGroupQueries: CustodyGroupQueries = new Map();
293
- // pre-fulu
294
- if (ourSamplingGroups == null) {
295
- return {attnetQueries, syncnetQueries, custodyGroupQueries, dutiesByPeer};
296
- }
297
-
298
- // column subnets, do we need queries for more peers
299
- const targetGroupPeersPerSamplingGroup = opts.targetGroupPeers;
300
- const peersPerGroup = new Map<CustodyIndex, number>();
301
- for (const peer of connectedPeers) {
302
- const peerSamplingGroups = peer.samplingGroups;
303
- for (const group of peerSamplingGroups) {
304
- peersPerGroup.set(group, 1 + (peersPerGroup.get(group) ?? 0));
305
- }
306
- }
307
-
308
- const ourSamplingGroupSet = new Set(ourSamplingGroups);
309
- for (let groupIndex = 0; groupIndex < config.NUMBER_OF_CUSTODY_GROUPS; groupIndex++) {
310
- const peersInGroup = peersPerGroup.get(groupIndex) ?? 0;
311
- metrics?.peerCountPerSamplingGroup.set({groupIndex}, peersInGroup);
312
- const targetGroupPeers = ourSamplingGroupSet.has(groupIndex)
313
- ? targetGroupPeersPerSamplingGroup
314
- : TARGET_GROUP_PEERS_PER_SUBNET;
315
- if (peersInGroup < targetGroupPeers) {
316
- // We need more peers
317
- custodyGroupQueries.set(groupIndex, targetGroupPeers - peersInGroup);
318
- }
319
- }
320
-
321
- return {attnetQueries, syncnetQueries, custodyGroupQueries, dutiesByPeer};
322
- }
323
-
324
- /**
325
- * Remove excess peers back down to our target values.
326
- * 1. Remove peers that are not subscribed to a subnet (they have less value)
327
- * 2. Remove worst scoring peers
328
- * 3. Remove peers that we have many on any particular subnet
329
- * - Only consider removing peers on subnet that has > TARGET_SUBNET_PEERS to be safe
330
- * - If we have a choice, do not remove peer that would drop us below targetPeersPerAttnetSubnet
331
- * - If we have a choice, do not remove peer that would drop us below MIN_SYNC_COMMITTEE_PEERS
332
- *
333
- * Although the logic looks complicated, we'd prune 5 peers max per heartbeat based on the mainnet config.
334
- */
335
- function pruneExcessPeers(
336
- connectedPeers: PeerInfo[],
337
- dutiesByPeer: Map<PeerInfo, number>,
338
- activeAttnets: RequestedSubnet[],
339
- peersToDisconnect: MapDef<ExcessPeerDisconnectReason, PeerId[]>,
340
- opts: PrioritizePeersOpts
341
- ): void {
342
- const {targetPeers, targetSubnetPeers = TARGET_SUBNET_PEERS, outboundPeersRatio = OUTBOUND_PEERS_RATIO} = opts;
343
- const connectedPeerCount = connectedPeers.length;
344
- const outboundPeersTarget = Math.round(outboundPeersRatio * connectedPeerCount);
345
-
346
- // Count outbound peers
347
- let outboundPeers = 0;
348
- for (const peer of connectedPeers) {
349
- if (peer.direction === "outbound") {
350
- outboundPeers++;
351
- }
352
- }
353
-
354
- let outboundPeersEligibleForPruning = 0;
355
-
356
- const sortedPeers = sortPeersToPrune(connectedPeers, dutiesByPeer);
357
-
358
- const peersEligibleForPruning = sortedPeers
359
- // Then, iterate from highest score to lowest doing a manual filter for duties and outbound ratio
360
- .filter((peer) => {
361
- // Peers with duties are not eligible for pruning
362
- if ((dutiesByPeer.get(peer) ?? 0) > 0) {
363
- return false;
364
- }
365
-
366
- // Peers far ahead when we're starved for data are not eligible for pruning
367
- if (opts.starved && peer.statusScore === StatusScore.FAR_AHEAD) {
368
- return false;
369
- }
370
-
371
- // outbound peers up to OUTBOUND_PEER_RATIO sorted by highest score and not eligible for pruning
372
- if (peer.direction === "outbound") {
373
- if (outboundPeers - outboundPeersEligibleForPruning > outboundPeersTarget) {
374
- outboundPeersEligibleForPruning++;
375
- } else {
376
- return false;
377
- }
378
- }
379
-
380
- return true;
381
- });
382
-
383
- let peersToDisconnectCount = 0;
384
- const noLongLivedSubnetPeersToDisconnect: PeerId[] = [];
385
-
386
- const peersToDisconnectTarget =
387
- // if we're starved for data, prune additional peers
388
- connectedPeerCount - targetPeers + (opts.starved ? targetPeers * opts.starvationPruneRatio : 0);
389
-
390
- // 1. Lodestar prefers disconnecting peers that does not have long lived subnets
391
- // See https://github.com/ChainSafe/lodestar/issues/3940
392
- // peers with low score will be disconnected through heartbeat in the end
393
- for (const peer of peersEligibleForPruning) {
394
- const hasLongLivedSubnet = peer.attnetsTrueBitIndices.length > 0 || peer.syncnetsTrueBitIndices.length > 0;
395
- if (!hasLongLivedSubnet && peersToDisconnectCount < peersToDisconnectTarget) {
396
- noLongLivedSubnetPeersToDisconnect.push(peer.id);
397
- peersToDisconnectCount++;
398
- }
399
- }
400
- peersToDisconnect.set(ExcessPeerDisconnectReason.NO_LONG_LIVED_SUBNET, noLongLivedSubnetPeersToDisconnect);
401
-
402
- // 2. Disconnect peers that have score < LOW_SCORE_TO_PRUNE_IF_TOO_MANY_PEERS
403
- const badScorePeersToDisconnect: PeerId[] = [];
404
- for (const peer of peersEligibleForPruning) {
405
- if (
406
- peer.score < LOW_SCORE_TO_PRUNE_IF_TOO_MANY_PEERS &&
407
- peersToDisconnectCount < peersToDisconnectTarget &&
408
- !noLongLivedSubnetPeersToDisconnect.includes(peer.id)
409
- ) {
410
- badScorePeersToDisconnect.push(peer.id);
411
- peersToDisconnectCount++;
412
- }
413
- }
414
- peersToDisconnect.set(ExcessPeerDisconnectReason.LOW_SCORE, badScorePeersToDisconnect);
415
-
416
- // 3. Disconnect peers that are too grouped on any given subnet
417
- const tooGroupedPeersToDisconnect: PeerId[] = [];
418
- if (peersToDisconnectCount < peersToDisconnectTarget) {
419
- // PeerInfo array by attestation subnet
420
- const subnetToPeers = new MapDef<number, PeerInfo[]>(() => []);
421
- // number of peers per long lived sync committee
422
- const syncCommitteePeerCount = new MapDef<number, number>(() => 0);
423
-
424
- // populate the above variables
425
- for (const peer of connectedPeers) {
426
- if (noLongLivedSubnetPeersToDisconnect.includes(peer.id) || badScorePeersToDisconnect.includes(peer.id)) {
427
- continue;
428
- }
429
- for (const subnet of peer.attnetsTrueBitIndices) {
430
- subnetToPeers.getOrDefault(subnet).push(peer);
431
- }
432
- for (const subnet of peer.syncnetsTrueBitIndices) {
433
- syncCommitteePeerCount.set(subnet, 1 + syncCommitteePeerCount.getOrDefault(subnet));
434
- }
435
- }
436
-
437
- while (peersToDisconnectCount < peersToDisconnectTarget) {
438
- const maxPeersSubnet = findMaxPeersSubnet(subnetToPeers, targetSubnetPeers);
439
- // peers are NOT too grouped on any given subnet, finish this loop
440
- if (maxPeersSubnet === null) {
441
- break;
442
- }
443
-
444
- const peersOnMostGroupedSubnet = subnetToPeers.get(maxPeersSubnet);
445
- if (peersOnMostGroupedSubnet === undefined) {
446
- break;
447
- }
448
-
449
- // Find peers to remove from the current maxPeersSubnet
450
- const removedPeer = findPeerToRemove(
451
- subnetToPeers,
452
- syncCommitteePeerCount,
453
- peersOnMostGroupedSubnet,
454
- targetSubnetPeers,
455
- activeAttnets
456
- );
457
-
458
- // If we have successfully found a candidate peer to prune, prune it,
459
- // otherwise all peers on this subnet should not be removed.
460
- // In this case, we remove all peers from the pruning logic and try another subnet.
461
- if (removedPeer != null) {
462
- // recalculate variables
463
- removePeerFromSubnetToPeers(subnetToPeers, removedPeer);
464
- decreaseSynccommitteePeerCount(syncCommitteePeerCount, removedPeer.syncnetsTrueBitIndices);
465
-
466
- tooGroupedPeersToDisconnect.push(removedPeer.id);
467
- peersToDisconnectCount++;
468
- } else {
469
- // no peer to remove from the maxPeersSubnet
470
- // should continue with the 2nd biggest maxPeersSubnet
471
- subnetToPeers.delete(maxPeersSubnet);
472
- }
473
- }
474
-
475
- peersToDisconnect.set(ExcessPeerDisconnectReason.TOO_GROUPED_SUBNET, tooGroupedPeersToDisconnect);
476
-
477
- // 4. Ensure to always to prune to target peers
478
- // In rare case, all peers may have duties and good score but very low long lived subnet,
479
- // and not too grouped to any subnets, we need to always disconnect peers until it reaches targetPeers
480
- // because we want to keep improving peers (long lived subnets + score)
481
- // otherwise we'll not able to accept new peer connection to consider better peers
482
- // see https://github.com/ChainSafe/lodestar/issues/5198
483
- const remainingPeersToDisconnect: PeerId[] = [];
484
- for (const {id} of sortedPeers) {
485
- if (peersToDisconnectCount >= peersToDisconnectTarget) {
486
- break;
487
- }
488
- if (
489
- noLongLivedSubnetPeersToDisconnect.includes(id) ||
490
- badScorePeersToDisconnect.includes(id) ||
491
- tooGroupedPeersToDisconnect.includes(id)
492
- ) {
493
- continue;
494
- }
495
- remainingPeersToDisconnect.push(id);
496
- peersToDisconnectCount++;
497
- }
498
-
499
- peersToDisconnect.set(ExcessPeerDisconnectReason.FIND_BETTER_PEERS, remainingPeersToDisconnect);
500
- }
501
- }
502
-
503
- /**
504
- * Sort peers ascending, peer-0 has the most chance to prune, peer-n has the least.
505
- * Shuffling first to break ties.
506
- * prefer sorting by status score (applicable during syncing), then dutied subnets, then number of long lived subnets, then peer score
507
- * peer score is the last criteria since they are supposed to be in the same score range,
508
- * bad score peers are removed by peer manager anyway
509
- */
510
- export function sortPeersToPrune(connectedPeers: PeerInfo[], dutiesByPeer: Map<PeerInfo, number>): PeerInfo[] {
511
- return shuffle(connectedPeers).sort((p1, p2) => {
512
- const dutiedSubnet1 = dutiesByPeer.get(p1) ?? 0;
513
- const dutiedSubnet2 = dutiesByPeer.get(p2) ?? 0;
514
- if (dutiedSubnet1 === dutiedSubnet2) {
515
- const statusScore = p1.statusScore - p2.statusScore;
516
- if (statusScore !== 0) {
517
- return statusScore;
518
- }
519
- const [longLivedSubnets1, longLivedSubnets2] = [p1, p2].map(
520
- (p) => p.attnetsTrueBitIndices.length + p.syncnetsTrueBitIndices.length
521
- );
522
- if (longLivedSubnets1 === longLivedSubnets2) {
523
- return p1.score - p2.score;
524
- }
525
- return longLivedSubnets1 - longLivedSubnets2;
526
- }
527
- return dutiedSubnet1 - dutiedSubnet2;
528
- });
529
- }
530
-
531
- /**
532
- * Find subnet that has the most peers and > TARGET_SUBNET_PEERS, return null if peers are not grouped
533
- * to any subnets.
534
- */
535
- function findMaxPeersSubnet(subnetToPeers: Map<number, PeerInfo[]>, targetSubnetPeers: number): SubnetID | null {
536
- let maxPeersSubnet: SubnetID | null = null;
537
- let maxPeerCountPerSubnet = -1;
538
-
539
- for (const [subnet, peers] of subnetToPeers) {
540
- if (peers.length > targetSubnetPeers && peers.length > maxPeerCountPerSubnet) {
541
- maxPeersSubnet = subnet;
542
- maxPeerCountPerSubnet = peers.length;
543
- }
544
- }
545
-
546
- return maxPeersSubnet;
547
- }
548
-
549
- /**
550
- * Find peers to remove from the current maxPeersSubnet.
551
- * In the long term, this logic will help us gradually find peers with more long lived subnet.
552
- * Return null if we should not remove any peer on the most grouped subnet.
553
- */
554
- function findPeerToRemove(
555
- subnetToPeers: Map<number, PeerInfo[]>,
556
- syncCommitteePeerCount: Map<number, number>,
557
- peersOnMostGroupedSubnet: PeerInfo[],
558
- targetSubnetPeers: number,
559
- activeAttnets: RequestedSubnet[]
560
- ): PeerInfo | null {
561
- const peersOnSubnet = sortBy(peersOnMostGroupedSubnet, (peer) => peer.attnetsTrueBitIndices.length);
562
- let removedPeer: PeerInfo | null = null;
563
- for (const candidatePeer of peersOnSubnet) {
564
- // new logic of lodestar
565
- const attnetIndices = candidatePeer.attnetsTrueBitIndices;
566
- if (attnetIndices.length > 0) {
567
- const requestedSubnets = activeAttnets.map((activeAttnet) => activeAttnet.subnet);
568
- let minAttnetCount = ATTESTATION_SUBNET_COUNT;
569
- // intersection of requested subnets and subnets that peer subscribes to
570
- for (const subnet of requestedSubnets) {
571
- const numSubnetPeers = subnetToPeers.get(subnet)?.length;
572
- if (numSubnetPeers !== undefined && numSubnetPeers < minAttnetCount && attnetIndices.includes(subnet)) {
573
- minAttnetCount = numSubnetPeers;
574
- }
575
- }
576
- // shouldn't remove this peer because it drops us below targetSubnetPeers
577
- if (minAttnetCount <= targetSubnetPeers) {
578
- continue;
579
- }
580
- }
581
-
582
- // same logic to lighthouse
583
- const syncnetIndices = candidatePeer.syncnetsTrueBitIndices;
584
- // The peer is subscribed to some long-lived sync-committees
585
- if (syncnetIndices.length > 0) {
586
- const minSubnetCount = Math.min(...syncnetIndices.map((subnet) => syncCommitteePeerCount.get(subnet) ?? 0));
587
- // If the minimum count is our target or lower, we
588
- // shouldn't remove this peer, because it drops us lower
589
- // than our target
590
- if (minSubnetCount <= MIN_SYNC_COMMITTEE_PEERS) {
591
- continue;
592
- }
593
- }
594
-
595
- // ok, found a peer to remove
596
- removedPeer = candidatePeer;
597
- break;
598
- }
599
-
600
- return removedPeer;
601
- }
602
-
603
- /**
604
- * Remove a peer from subnetToPeers map.
605
- */
606
- function removePeerFromSubnetToPeers(subnetToPeers: Map<number, PeerInfo[]>, removedPeer: PeerInfo): void {
607
- for (const peers of subnetToPeers.values()) {
608
- const index = peers.findIndex((peer) => peer === removedPeer);
609
- if (index >= 0) {
610
- peers.splice(index, 1);
611
- }
612
- }
613
- }
614
-
615
- /**
616
- * Decrease the syncCommitteePeerCount from the specified committees set
617
- */
618
- function decreaseSynccommitteePeerCount(
619
- syncCommitteePeerCount: MapDef<number, number>,
620
- committees: number[] | undefined
621
- ): void {
622
- if (committees) {
623
- for (const syncCommittee of committees) {
624
- syncCommitteePeerCount.set(syncCommittee, Math.max(syncCommitteePeerCount.getOrDefault(syncCommittee) - 1, 0));
625
- }
626
- }
627
- }