@lodestar/beacon-node 1.41.0-dev.253ed58dd1 → 1.41.0-dev.274a9918a8

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 (881) hide show
  1. package/lib/api/impl/api.js.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.d.ts +1 -1
  3. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  4. package/lib/api/impl/beacon/blocks/index.js +12 -2
  5. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  6. package/lib/api/impl/beacon/blocks/utils.js.map +1 -1
  7. package/lib/api/impl/beacon/index.js.map +1 -1
  8. package/lib/api/impl/beacon/pool/index.d.ts +1 -1
  9. package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
  10. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  11. package/lib/api/impl/beacon/rewards/index.d.ts +1 -1
  12. package/lib/api/impl/beacon/rewards/index.d.ts.map +1 -1
  13. package/lib/api/impl/beacon/rewards/index.js.map +1 -1
  14. package/lib/api/impl/beacon/state/index.d.ts +1 -1
  15. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  16. package/lib/api/impl/beacon/state/index.js +8 -8
  17. package/lib/api/impl/beacon/state/index.js.map +1 -1
  18. package/lib/api/impl/beacon/state/utils.d.ts +5 -6
  19. package/lib/api/impl/beacon/state/utils.d.ts.map +1 -1
  20. package/lib/api/impl/beacon/state/utils.js +5 -24
  21. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  22. package/lib/api/impl/config/constants.js.map +1 -1
  23. package/lib/api/impl/config/index.js.map +1 -1
  24. package/lib/api/impl/debug/index.d.ts +1 -1
  25. package/lib/api/impl/debug/index.d.ts.map +1 -1
  26. package/lib/api/impl/debug/index.js +1 -0
  27. package/lib/api/impl/debug/index.js.map +1 -1
  28. package/lib/api/impl/errors.d.ts.map +1 -1
  29. package/lib/api/impl/errors.js.map +1 -1
  30. package/lib/api/impl/events/index.d.ts +1 -1
  31. package/lib/api/impl/events/index.d.ts.map +1 -1
  32. package/lib/api/impl/events/index.js.map +1 -1
  33. package/lib/api/impl/lightclient/index.d.ts +1 -1
  34. package/lib/api/impl/lightclient/index.d.ts.map +1 -1
  35. package/lib/api/impl/lightclient/index.js.map +1 -1
  36. package/lib/api/impl/lodestar/index.d.ts +1 -1
  37. package/lib/api/impl/lodestar/index.d.ts.map +1 -1
  38. package/lib/api/impl/lodestar/index.js.map +1 -1
  39. package/lib/api/impl/node/index.js.map +1 -1
  40. package/lib/api/impl/node/utils.d.ts +1 -1
  41. package/lib/api/impl/node/utils.d.ts.map +1 -1
  42. package/lib/api/impl/node/utils.js.map +1 -1
  43. package/lib/api/impl/proof/index.js.map +1 -1
  44. package/lib/api/impl/utils.js.map +1 -1
  45. package/lib/api/impl/validator/index.d.ts.map +1 -1
  46. package/lib/api/impl/validator/index.js +38 -18
  47. package/lib/api/impl/validator/index.js.map +1 -1
  48. package/lib/api/impl/validator/utils.d.ts +1 -1
  49. package/lib/api/impl/validator/utils.d.ts.map +1 -1
  50. package/lib/api/impl/validator/utils.js.map +1 -1
  51. package/lib/api/rest/activeSockets.d.ts.map +1 -1
  52. package/lib/api/rest/activeSockets.js.map +1 -1
  53. package/lib/api/rest/base.d.ts.map +1 -1
  54. package/lib/api/rest/base.js.map +1 -1
  55. package/lib/api/rest/index.d.ts.map +1 -1
  56. package/lib/api/rest/index.js.map +1 -1
  57. package/lib/api/rest/swaggerUI.js.map +1 -1
  58. package/lib/bun-wrappers/prometheus-gc-stats.js.map +1 -1
  59. package/lib/chain/ColumnReconstructionTracker.d.ts.map +1 -1
  60. package/lib/chain/ColumnReconstructionTracker.js.map +1 -1
  61. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  62. package/lib/chain/GetBlobsTracker.js.map +1 -1
  63. package/lib/chain/archiveStore/archiveStore.d.ts +0 -1
  64. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  65. package/lib/chain/archiveStore/archiveStore.js +2 -10
  66. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  67. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts +5 -6
  68. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +1 -1
  69. package/lib/chain/archiveStore/historicalState/getHistoricalState.js +9 -10
  70. package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
  71. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts.map +1 -1
  72. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  73. package/lib/chain/archiveStore/historicalState/metrics.js.map +1 -1
  74. package/lib/chain/archiveStore/historicalState/types.js +2 -1
  75. package/lib/chain/archiveStore/historicalState/types.js.map +1 -1
  76. package/lib/chain/archiveStore/historicalState/worker.js +3 -3
  77. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  78. package/lib/chain/archiveStore/interface.d.ts +4 -4
  79. package/lib/chain/archiveStore/interface.d.ts.map +1 -1
  80. package/lib/chain/archiveStore/interface.js +2 -1
  81. package/lib/chain/archiveStore/interface.js.map +1 -1
  82. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts +5 -5
  83. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +1 -1
  84. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +6 -2
  85. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
  86. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +3 -8
  87. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  88. package/lib/chain/archiveStore/utils/archiveBlocks.js +39 -1
  89. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  90. package/lib/chain/archiveStore/utils/pruneHistory.js.map +1 -1
  91. package/lib/chain/archiveStore/utils/updateBackfillRange.js +1 -1
  92. package/lib/chain/archiveStore/utils/updateBackfillRange.js.map +1 -1
  93. package/lib/chain/balancesCache.d.ts.map +1 -1
  94. package/lib/chain/balancesCache.js.map +1 -1
  95. package/lib/chain/beaconProposerCache.d.ts.map +1 -1
  96. package/lib/chain/beaconProposerCache.js.map +1 -1
  97. package/lib/chain/blocks/blockInput/blockInput.d.ts +25 -2
  98. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  99. package/lib/chain/blocks/blockInput/blockInput.js +71 -0
  100. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  101. package/lib/chain/blocks/blockInput/errors.js +2 -1
  102. package/lib/chain/blocks/blockInput/errors.js.map +1 -1
  103. package/lib/chain/blocks/blockInput/types.d.ts +18 -1
  104. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  105. package/lib/chain/blocks/blockInput/types.js +5 -2
  106. package/lib/chain/blocks/blockInput/types.js.map +1 -1
  107. package/lib/chain/blocks/blockInput/utils.js.map +1 -1
  108. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  109. package/lib/chain/blocks/importBlock.js +39 -12
  110. package/lib/chain/blocks/importBlock.js.map +1 -1
  111. package/lib/chain/blocks/index.d.ts.map +1 -1
  112. package/lib/chain/blocks/index.js.map +1 -1
  113. package/lib/chain/blocks/types.js +6 -3
  114. package/lib/chain/blocks/types.js.map +1 -1
  115. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  116. package/lib/chain/blocks/utils/checkpoint.js.map +1 -1
  117. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  118. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +1 -1
  119. package/lib/chain/blocks/verifyBlocksDataAvailability.js +3 -0
  120. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  121. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +4 -0
  122. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  123. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +5 -1
  124. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  125. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +1 -1
  126. package/lib/chain/blocks/verifyBlocksSanityChecks.js +4 -1
  127. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  128. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  129. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  130. package/lib/chain/blocks/writeBlockInputToDb.d.ts +12 -3
  131. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  132. package/lib/chain/blocks/writeBlockInputToDb.js +92 -98
  133. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  134. package/lib/chain/bls/maybeBatch.js.map +1 -1
  135. package/lib/chain/bls/multithread/index.d.ts +3 -3
  136. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  137. package/lib/chain/bls/multithread/index.js +5 -5
  138. package/lib/chain/bls/multithread/index.js.map +1 -1
  139. package/lib/chain/bls/multithread/jobItem.d.ts +2 -2
  140. package/lib/chain/bls/multithread/jobItem.d.ts.map +1 -1
  141. package/lib/chain/bls/multithread/jobItem.js +4 -3
  142. package/lib/chain/bls/multithread/jobItem.js.map +1 -1
  143. package/lib/chain/bls/multithread/types.js +2 -1
  144. package/lib/chain/bls/multithread/types.js.map +1 -1
  145. package/lib/chain/bls/multithread/utils.js.map +1 -1
  146. package/lib/chain/bls/multithread/worker.js.map +1 -1
  147. package/lib/chain/bls/singleThread.d.ts +4 -4
  148. package/lib/chain/bls/singleThread.d.ts.map +1 -1
  149. package/lib/chain/bls/singleThread.js +4 -4
  150. package/lib/chain/bls/singleThread.js.map +1 -1
  151. package/lib/chain/bls/utils.d.ts +2 -2
  152. package/lib/chain/bls/utils.d.ts.map +1 -1
  153. package/lib/chain/bls/utils.js +7 -4
  154. package/lib/chain/bls/utils.js.map +1 -1
  155. package/lib/chain/chain.d.ts +10 -13
  156. package/lib/chain/chain.d.ts.map +1 -1
  157. package/lib/chain/chain.js +40 -30
  158. package/lib/chain/chain.js.map +1 -1
  159. package/lib/chain/emitter.d.ts +4 -6
  160. package/lib/chain/emitter.d.ts.map +1 -1
  161. package/lib/chain/emitter.js +2 -1
  162. package/lib/chain/emitter.js.map +1 -1
  163. package/lib/chain/errors/attestationError.d.ts.map +1 -1
  164. package/lib/chain/errors/attestationError.js +2 -1
  165. package/lib/chain/errors/attestationError.js.map +1 -1
  166. package/lib/chain/errors/attesterSlashingError.js +2 -1
  167. package/lib/chain/errors/attesterSlashingError.js.map +1 -1
  168. package/lib/chain/errors/blobSidecarError.js +2 -1
  169. package/lib/chain/errors/blobSidecarError.js.map +1 -1
  170. package/lib/chain/errors/blockError.d.ts.map +1 -1
  171. package/lib/chain/errors/blockError.js +2 -1
  172. package/lib/chain/errors/blockError.js.map +1 -1
  173. package/lib/chain/errors/blsToExecutionChangeError.js +2 -1
  174. package/lib/chain/errors/blsToExecutionChangeError.js.map +1 -1
  175. package/lib/chain/errors/dataColumnSidecarError.js +2 -1
  176. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
  177. package/lib/chain/errors/executionPayloadBid.d.ts +1 -1
  178. package/lib/chain/errors/executionPayloadBid.js +2 -1
  179. package/lib/chain/errors/executionPayloadBid.js.map +1 -1
  180. package/lib/chain/errors/executionPayloadEnvelope.d.ts +2 -2
  181. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  182. package/lib/chain/errors/executionPayloadEnvelope.js +2 -1
  183. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  184. package/lib/chain/errors/gossipValidation.d.ts.map +1 -1
  185. package/lib/chain/errors/gossipValidation.js +4 -2
  186. package/lib/chain/errors/gossipValidation.js.map +1 -1
  187. package/lib/chain/errors/lightClientError.js +4 -2
  188. package/lib/chain/errors/lightClientError.js.map +1 -1
  189. package/lib/chain/errors/payloadAttestation.d.ts +1 -1
  190. package/lib/chain/errors/payloadAttestation.js +2 -1
  191. package/lib/chain/errors/payloadAttestation.js.map +1 -1
  192. package/lib/chain/errors/proposerSlashingError.js +2 -1
  193. package/lib/chain/errors/proposerSlashingError.js.map +1 -1
  194. package/lib/chain/errors/syncCommitteeError.js +2 -1
  195. package/lib/chain/errors/syncCommitteeError.js.map +1 -1
  196. package/lib/chain/errors/voluntaryExitError.js +2 -1
  197. package/lib/chain/errors/voluntaryExitError.js.map +1 -1
  198. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  199. package/lib/chain/forkChoice/index.js +32 -25
  200. package/lib/chain/forkChoice/index.js.map +1 -1
  201. package/lib/chain/initState.d.ts +1 -1
  202. package/lib/chain/initState.d.ts.map +1 -1
  203. package/lib/chain/initState.js.map +1 -1
  204. package/lib/chain/interface.d.ts +4 -6
  205. package/lib/chain/interface.d.ts.map +1 -1
  206. package/lib/chain/interface.js +2 -1
  207. package/lib/chain/interface.js.map +1 -1
  208. package/lib/chain/lightClient/index.d.ts +0 -29
  209. package/lib/chain/lightClient/index.d.ts.map +1 -1
  210. package/lib/chain/lightClient/index.js.map +1 -1
  211. package/lib/chain/lightClient/proofs.js.map +1 -1
  212. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  213. package/lib/chain/opPools/aggregatedAttestationPool.js +5 -3
  214. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  215. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  216. package/lib/chain/opPools/attestationPool.js.map +1 -1
  217. package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -1
  218. package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -1
  219. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  220. package/lib/chain/opPools/opPool.js.map +1 -1
  221. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -1
  222. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  223. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +1 -1
  224. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  225. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +1 -1
  226. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  227. package/lib/chain/opPools/types.js +4 -2
  228. package/lib/chain/opPools/types.js.map +1 -1
  229. package/lib/chain/opPools/utils.js.map +1 -1
  230. package/lib/chain/prepareNextSlot.d.ts +1 -2
  231. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  232. package/lib/chain/prepareNextSlot.js +6 -2
  233. package/lib/chain/prepareNextSlot.js.map +1 -1
  234. package/lib/chain/produceBlock/computeNewStateRoot.d.ts +0 -1
  235. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  236. package/lib/chain/produceBlock/computeNewStateRoot.js +4 -3
  237. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  238. package/lib/chain/produceBlock/produceBlockBody.d.ts +1 -1
  239. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  240. package/lib/chain/produceBlock/produceBlockBody.js +24 -7
  241. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  242. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
  243. package/lib/chain/regen/errors.d.ts +11 -1
  244. package/lib/chain/regen/errors.d.ts.map +1 -1
  245. package/lib/chain/regen/errors.js +4 -1
  246. package/lib/chain/regen/errors.js.map +1 -1
  247. package/lib/chain/regen/interface.d.ts +12 -6
  248. package/lib/chain/regen/interface.d.ts.map +1 -1
  249. package/lib/chain/regen/interface.js +4 -2
  250. package/lib/chain/regen/interface.js.map +1 -1
  251. package/lib/chain/regen/queued.d.ts +11 -6
  252. package/lib/chain/regen/queued.d.ts.map +1 -1
  253. package/lib/chain/regen/queued.js +44 -9
  254. package/lib/chain/regen/queued.js.map +1 -1
  255. package/lib/chain/regen/regen.d.ts +5 -0
  256. package/lib/chain/regen/regen.d.ts.map +1 -1
  257. package/lib/chain/regen/regen.js +39 -8
  258. package/lib/chain/regen/regen.js.map +1 -1
  259. package/lib/chain/reprocess.d.ts.map +1 -1
  260. package/lib/chain/reprocess.js +2 -1
  261. package/lib/chain/reprocess.js.map +1 -1
  262. package/lib/chain/seenCache/seenAggregateAndProof.d.ts.map +1 -1
  263. package/lib/chain/seenCache/seenAggregateAndProof.js.map +1 -1
  264. package/lib/chain/seenCache/seenAttestationData.d.ts.map +1 -1
  265. package/lib/chain/seenCache/seenAttestationData.js +2 -1
  266. package/lib/chain/seenCache/seenAttestationData.js.map +1 -1
  267. package/lib/chain/seenCache/seenAttesters.d.ts.map +1 -1
  268. package/lib/chain/seenCache/seenAttesters.js.map +1 -1
  269. package/lib/chain/seenCache/seenBlockAttesters.d.ts.map +1 -1
  270. package/lib/chain/seenCache/seenBlockAttesters.js.map +1 -1
  271. package/lib/chain/seenCache/seenBlockProposers.d.ts.map +1 -1
  272. package/lib/chain/seenCache/seenBlockProposers.js.map +1 -1
  273. package/lib/chain/seenCache/seenCommittee.d.ts.map +1 -1
  274. package/lib/chain/seenCache/seenCommittee.js.map +1 -1
  275. package/lib/chain/seenCache/seenCommitteeContribution.d.ts.map +1 -1
  276. package/lib/chain/seenCache/seenCommitteeContribution.js.map +1 -1
  277. package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts.map +1 -1
  278. package/lib/chain/seenCache/seenExecutionPayloadBids.js.map +1 -1
  279. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts.map +1 -1
  280. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js.map +1 -1
  281. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +7 -3
  282. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  283. package/lib/chain/seenCache/seenGossipBlockInput.js +38 -16
  284. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  285. package/lib/chain/serializeState.js +1 -0
  286. package/lib/chain/serializeState.js.map +1 -1
  287. package/lib/chain/shufflingCache.d.ts.map +1 -1
  288. package/lib/chain/shufflingCache.js +2 -1
  289. package/lib/chain/shufflingCache.js.map +1 -1
  290. package/lib/chain/stateCache/datastore/db.d.ts +4 -5
  291. package/lib/chain/stateCache/datastore/db.d.ts.map +1 -1
  292. package/lib/chain/stateCache/datastore/db.js +32 -10
  293. package/lib/chain/stateCache/datastore/db.js.map +1 -1
  294. package/lib/chain/stateCache/datastore/file.d.ts +1 -1
  295. package/lib/chain/stateCache/datastore/file.d.ts.map +1 -1
  296. package/lib/chain/stateCache/datastore/file.js +5 -5
  297. package/lib/chain/stateCache/datastore/file.js.map +1 -1
  298. package/lib/chain/stateCache/datastore/types.d.ts +1 -1
  299. package/lib/chain/stateCache/datastore/types.d.ts.map +1 -1
  300. package/lib/chain/stateCache/fifoBlockStateCache.d.ts +7 -4
  301. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
  302. package/lib/chain/stateCache/fifoBlockStateCache.js +8 -3
  303. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  304. package/lib/chain/stateCache/mapMetrics.d.ts.map +1 -1
  305. package/lib/chain/stateCache/mapMetrics.js.map +1 -1
  306. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +34 -55
  307. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  308. package/lib/chain/stateCache/persistentCheckpointsCache.js +217 -119
  309. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  310. package/lib/chain/stateCache/types.d.ts +15 -8
  311. package/lib/chain/stateCache/types.d.ts.map +1 -1
  312. package/lib/chain/stateCache/types.js +2 -1
  313. package/lib/chain/stateCache/types.js.map +1 -1
  314. package/lib/chain/validation/aggregateAndProof.js +1 -1
  315. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  316. package/lib/chain/validation/attestation.d.ts.map +1 -1
  317. package/lib/chain/validation/attestation.js +14 -7
  318. package/lib/chain/validation/attestation.js.map +1 -1
  319. package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
  320. package/lib/chain/validation/attesterSlashing.js +9 -2
  321. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  322. package/lib/chain/validation/blobSidecar.js +2 -2
  323. package/lib/chain/validation/blobSidecar.js.map +1 -1
  324. package/lib/chain/validation/block.d.ts.map +1 -1
  325. package/lib/chain/validation/block.js +6 -3
  326. package/lib/chain/validation/block.js.map +1 -1
  327. package/lib/chain/validation/blsToExecutionChange.js.map +1 -1
  328. package/lib/chain/validation/dataColumnSidecar.d.ts +2 -1
  329. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  330. package/lib/chain/validation/dataColumnSidecar.js +125 -108
  331. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  332. package/lib/chain/validation/executionPayloadBid.js +1 -2
  333. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  334. package/lib/chain/validation/executionPayloadEnvelope.js +4 -4
  335. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  336. package/lib/chain/validation/lightClientFinalityUpdate.js.map +1 -1
  337. package/lib/chain/validation/lightClientOptimisticUpdate.js.map +1 -1
  338. package/lib/chain/validation/payloadAttestationMessage.js +9 -3
  339. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  340. package/lib/chain/validation/proposerSlashing.js +1 -1
  341. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  342. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  343. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  344. package/lib/chain/validation/signatureSets/selectionProof.js.map +1 -1
  345. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  346. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  347. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  348. package/lib/chain/validation/syncCommittee.js.map +1 -1
  349. package/lib/chain/validation/syncCommitteeContributionAndProof.js +1 -1
  350. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  351. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  352. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  353. package/lib/chain/validatorMonitor.js +2 -1
  354. package/lib/chain/validatorMonitor.js.map +1 -1
  355. package/lib/constants/network.js +4 -2
  356. package/lib/constants/network.js.map +1 -1
  357. package/lib/db/beacon.d.ts.map +1 -1
  358. package/lib/db/beacon.js.map +1 -1
  359. package/lib/db/buckets.d.ts +23 -23
  360. package/lib/db/buckets.d.ts.map +1 -1
  361. package/lib/db/buckets.js +2 -1
  362. package/lib/db/buckets.js.map +1 -1
  363. package/lib/db/index.d.ts +1 -0
  364. package/lib/db/index.d.ts.map +1 -1
  365. package/lib/db/index.js +1 -0
  366. package/lib/db/index.js.map +1 -1
  367. package/lib/db/repositories/attesterSlashing.d.ts.map +1 -1
  368. package/lib/db/repositories/attesterSlashing.js.map +1 -1
  369. package/lib/db/repositories/backfilledRanges.d.ts.map +1 -1
  370. package/lib/db/repositories/backfilledRanges.js.map +1 -1
  371. package/lib/db/repositories/blobSidecars.d.ts.map +1 -1
  372. package/lib/db/repositories/blobSidecars.js.map +1 -1
  373. package/lib/db/repositories/blobSidecarsArchive.d.ts.map +1 -1
  374. package/lib/db/repositories/blobSidecarsArchive.js.map +1 -1
  375. package/lib/db/repositories/block.d.ts.map +1 -1
  376. package/lib/db/repositories/block.js.map +1 -1
  377. package/lib/db/repositories/blockArchive.d.ts.map +1 -1
  378. package/lib/db/repositories/blockArchive.js +1 -2
  379. package/lib/db/repositories/blockArchive.js.map +1 -1
  380. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  381. package/lib/db/repositories/blockArchiveIndex.js.map +1 -1
  382. package/lib/db/repositories/blsToExecutionChange.d.ts.map +1 -1
  383. package/lib/db/repositories/blsToExecutionChange.js.map +1 -1
  384. package/lib/db/repositories/checkpointState.d.ts.map +1 -1
  385. package/lib/db/repositories/checkpointState.js.map +1 -1
  386. package/lib/db/repositories/dataColumnSidecar.d.ts.map +1 -1
  387. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  388. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  389. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  390. package/lib/db/repositories/executionPayloadEnvelope.d.ts.map +1 -1
  391. package/lib/db/repositories/executionPayloadEnvelope.js.map +1 -1
  392. package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts.map +1 -1
  393. package/lib/db/repositories/executionPayloadEnvelopeArchive.js.map +1 -1
  394. package/lib/db/repositories/lightclientBestUpdate.d.ts.map +1 -1
  395. package/lib/db/repositories/lightclientBestUpdate.js.map +1 -1
  396. package/lib/db/repositories/lightclientCheckpointHeader.d.ts.map +1 -1
  397. package/lib/db/repositories/lightclientCheckpointHeader.js.map +1 -1
  398. package/lib/db/repositories/lightclientSyncCommittee.d.ts.map +1 -1
  399. package/lib/db/repositories/lightclientSyncCommittee.js.map +1 -1
  400. package/lib/db/repositories/lightclientSyncCommitteeWitness.d.ts.map +1 -1
  401. package/lib/db/repositories/lightclientSyncCommitteeWitness.js.map +1 -1
  402. package/lib/db/repositories/proposerSlashing.d.ts.map +1 -1
  403. package/lib/db/repositories/proposerSlashing.js.map +1 -1
  404. package/lib/db/repositories/stateArchive.d.ts.map +1 -1
  405. package/lib/db/repositories/stateArchive.js.map +1 -1
  406. package/lib/db/repositories/stateArchiveIndex.js.map +1 -1
  407. package/lib/db/repositories/voluntaryExit.d.ts.map +1 -1
  408. package/lib/db/repositories/voluntaryExit.js.map +1 -1
  409. package/lib/execution/builder/cache.d.ts.map +1 -1
  410. package/lib/execution/builder/cache.js.map +1 -1
  411. package/lib/execution/builder/http.d.ts.map +1 -1
  412. package/lib/execution/builder/http.js +2 -1
  413. package/lib/execution/builder/http.js.map +1 -1
  414. package/lib/execution/builder/index.js.map +1 -1
  415. package/lib/execution/builder/utils.js.map +1 -1
  416. package/lib/execution/engine/disabled.d.ts.map +1 -1
  417. package/lib/execution/engine/disabled.js.map +1 -1
  418. package/lib/execution/engine/http.d.ts +1 -0
  419. package/lib/execution/engine/http.d.ts.map +1 -1
  420. package/lib/execution/engine/http.js +3 -0
  421. package/lib/execution/engine/http.js.map +1 -1
  422. package/lib/execution/engine/index.js.map +1 -1
  423. package/lib/execution/engine/interface.js +4 -2
  424. package/lib/execution/engine/interface.js.map +1 -1
  425. package/lib/execution/engine/jsonRpcHttpClient.d.ts +10 -15
  426. package/lib/execution/engine/jsonRpcHttpClient.d.ts.map +1 -1
  427. package/lib/execution/engine/jsonRpcHttpClient.js +2 -1
  428. package/lib/execution/engine/jsonRpcHttpClient.js.map +1 -1
  429. package/lib/execution/engine/jwt.js.map +1 -1
  430. package/lib/execution/engine/mock.d.ts.map +1 -1
  431. package/lib/execution/engine/mock.js.map +1 -1
  432. package/lib/execution/engine/payloadIdCache.d.ts.map +1 -1
  433. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  434. package/lib/execution/engine/types.js.map +1 -1
  435. package/lib/execution/engine/utils.d.ts +1 -1
  436. package/lib/execution/engine/utils.d.ts.map +1 -1
  437. package/lib/execution/engine/utils.js.map +1 -1
  438. package/lib/metrics/metrics/beacon.d.ts +2 -1
  439. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  440. package/lib/metrics/metrics/beacon.js +9 -3
  441. package/lib/metrics/metrics/beacon.js.map +1 -1
  442. package/lib/metrics/metrics/lodestar.d.ts +16 -11
  443. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  444. package/lib/metrics/metrics/lodestar.js +39 -24
  445. package/lib/metrics/metrics/lodestar.js.map +1 -1
  446. package/lib/metrics/metrics.js.map +1 -1
  447. package/lib/metrics/nodeJsMetrics.js.map +1 -1
  448. package/lib/metrics/server/http.d.ts +1 -1
  449. package/lib/metrics/server/http.d.ts.map +1 -1
  450. package/lib/metrics/server/http.js.map +1 -1
  451. package/lib/metrics/utils/avgMinMax.d.ts.map +1 -1
  452. package/lib/metrics/utils/avgMinMax.js.map +1 -1
  453. package/lib/metrics/utils/gauge.d.ts.map +1 -1
  454. package/lib/metrics/utils/gauge.js.map +1 -1
  455. package/lib/metrics/utils/registryMetricCreator.d.ts.map +1 -1
  456. package/lib/metrics/utils/registryMetricCreator.js.map +1 -1
  457. package/lib/monitoring/clientStats.js.map +1 -1
  458. package/lib/monitoring/properties.d.ts.map +1 -1
  459. package/lib/monitoring/properties.js.map +1 -1
  460. package/lib/monitoring/service.d.ts +2 -2
  461. package/lib/monitoring/service.d.ts.map +1 -1
  462. package/lib/monitoring/service.js +3 -2
  463. package/lib/monitoring/service.js.map +1 -1
  464. package/lib/monitoring/system.d.ts.map +1 -1
  465. package/lib/monitoring/system.js.map +1 -1
  466. package/lib/monitoring/types.js +4 -2
  467. package/lib/monitoring/types.js.map +1 -1
  468. package/lib/network/core/events.d.ts +1 -3
  469. package/lib/network/core/events.d.ts.map +1 -1
  470. package/lib/network/core/events.js +4 -2
  471. package/lib/network/core/events.js.map +1 -1
  472. package/lib/network/core/metrics.d.ts +6 -7
  473. package/lib/network/core/metrics.d.ts.map +1 -1
  474. package/lib/network/core/metrics.js.map +1 -1
  475. package/lib/network/core/networkCore.d.ts +4 -4
  476. package/lib/network/core/networkCore.d.ts.map +1 -1
  477. package/lib/network/core/networkCore.js.map +1 -1
  478. package/lib/network/core/networkCoreWorker.js.map +1 -1
  479. package/lib/network/core/networkCoreWorkerHandler.d.ts +3 -3
  480. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +1 -1
  481. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  482. package/lib/network/core/types.d.ts +2 -2
  483. package/lib/network/core/types.d.ts.map +1 -1
  484. package/lib/network/discv5/index.d.ts +1 -3
  485. package/lib/network/discv5/index.d.ts.map +1 -1
  486. package/lib/network/discv5/index.js.map +1 -1
  487. package/lib/network/discv5/utils.d.ts +1 -1
  488. package/lib/network/discv5/utils.d.ts.map +1 -1
  489. package/lib/network/discv5/utils.js +7 -5
  490. package/lib/network/discv5/utils.js.map +1 -1
  491. package/lib/network/discv5/worker.js.map +1 -1
  492. package/lib/network/events.d.ts +3 -4
  493. package/lib/network/events.d.ts.map +1 -1
  494. package/lib/network/events.js +4 -2
  495. package/lib/network/events.js.map +1 -1
  496. package/lib/network/forks.js.map +1 -1
  497. package/lib/network/gossip/encoding.d.ts +3 -3
  498. package/lib/network/gossip/encoding.d.ts.map +1 -1
  499. package/lib/network/gossip/encoding.js.map +1 -1
  500. package/lib/network/gossip/errors.d.ts.map +1 -1
  501. package/lib/network/gossip/errors.js.map +1 -1
  502. package/lib/network/gossip/gossipsub.d.ts +13 -4
  503. package/lib/network/gossip/gossipsub.d.ts.map +1 -1
  504. package/lib/network/gossip/gossipsub.js +56 -26
  505. package/lib/network/gossip/gossipsub.js.map +1 -1
  506. package/lib/network/gossip/interface.d.ts +3 -3
  507. package/lib/network/gossip/interface.d.ts.map +1 -1
  508. package/lib/network/gossip/interface.js +4 -2
  509. package/lib/network/gossip/interface.js.map +1 -1
  510. package/lib/network/gossip/metrics.d.ts +12 -14
  511. package/lib/network/gossip/metrics.d.ts.map +1 -1
  512. package/lib/network/gossip/metrics.js.map +1 -1
  513. package/lib/network/gossip/scoringParameters.d.ts +2 -2
  514. package/lib/network/gossip/scoringParameters.d.ts.map +1 -1
  515. package/lib/network/gossip/scoringParameters.js +1 -1
  516. package/lib/network/gossip/scoringParameters.js.map +1 -1
  517. package/lib/network/gossip/topic.d.ts +2867 -2920
  518. package/lib/network/gossip/topic.d.ts.map +1 -1
  519. package/lib/network/gossip/topic.js.map +1 -1
  520. package/lib/network/interface.d.ts +3 -3
  521. package/lib/network/interface.d.ts.map +1 -1
  522. package/lib/network/libp2p/error.js +2 -1
  523. package/lib/network/libp2p/error.js.map +1 -1
  524. package/lib/network/libp2p/index.d.ts +2 -2
  525. package/lib/network/libp2p/index.d.ts.map +1 -1
  526. package/lib/network/libp2p/index.js +42 -19
  527. package/lib/network/libp2p/index.js.map +1 -1
  528. package/lib/network/metadata.d.ts +1 -0
  529. package/lib/network/metadata.d.ts.map +1 -1
  530. package/lib/network/metadata.js +5 -2
  531. package/lib/network/metadata.js.map +1 -1
  532. package/lib/network/network.d.ts +3 -3
  533. package/lib/network/network.d.ts.map +1 -1
  534. package/lib/network/network.js +1 -1
  535. package/lib/network/network.js.map +1 -1
  536. package/lib/network/options.d.ts +2 -0
  537. package/lib/network/options.d.ts.map +1 -1
  538. package/lib/network/options.js +6 -0
  539. package/lib/network/options.js.map +1 -1
  540. package/lib/network/peers/client.js +2 -1
  541. package/lib/network/peers/client.js.map +1 -1
  542. package/lib/network/peers/datastore.d.ts +7 -8
  543. package/lib/network/peers/datastore.d.ts.map +1 -1
  544. package/lib/network/peers/datastore.js +10 -10
  545. package/lib/network/peers/datastore.js.map +1 -1
  546. package/lib/network/peers/discover.d.ts +2 -7
  547. package/lib/network/peers/discover.d.ts.map +1 -1
  548. package/lib/network/peers/discover.js +45 -12
  549. package/lib/network/peers/discover.js.map +1 -1
  550. package/lib/network/peers/peerManager.d.ts +3 -1
  551. package/lib/network/peers/peerManager.d.ts.map +1 -1
  552. package/lib/network/peers/peerManager.js +103 -53
  553. package/lib/network/peers/peerManager.js.map +1 -1
  554. package/lib/network/peers/peersData.d.ts.map +1 -1
  555. package/lib/network/peers/peersData.js +2 -1
  556. package/lib/network/peers/peersData.js.map +1 -1
  557. package/lib/network/peers/score/interface.js +4 -2
  558. package/lib/network/peers/score/interface.js.map +1 -1
  559. package/lib/network/peers/score/score.d.ts.map +1 -1
  560. package/lib/network/peers/score/score.js.map +1 -1
  561. package/lib/network/peers/score/store.d.ts.map +1 -1
  562. package/lib/network/peers/score/store.js.map +1 -1
  563. package/lib/network/peers/score/utils.js.map +1 -1
  564. package/lib/network/peers/utils/assertPeerRelevance.js +2 -1
  565. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  566. package/lib/network/peers/utils/enrSubnetsDeserialize.js.map +1 -1
  567. package/lib/network/peers/utils/getConnectedPeerIds.js.map +1 -1
  568. package/lib/network/peers/utils/prioritizePeers.d.ts +3 -3
  569. package/lib/network/peers/utils/prioritizePeers.d.ts.map +1 -1
  570. package/lib/network/peers/utils/prioritizePeers.js +2 -1
  571. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  572. package/lib/network/peers/utils/subnetMap.d.ts.map +1 -1
  573. package/lib/network/peers/utils/subnetMap.js.map +1 -1
  574. package/lib/network/processor/aggregatorTracker.d.ts.map +1 -1
  575. package/lib/network/processor/aggregatorTracker.js.map +1 -1
  576. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  577. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  578. package/lib/network/processor/gossipHandlers.js +4 -1
  579. package/lib/network/processor/gossipHandlers.js.map +1 -1
  580. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  581. package/lib/network/processor/gossipQueues/indexed.d.ts.map +1 -1
  582. package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
  583. package/lib/network/processor/gossipQueues/linear.d.ts.map +1 -1
  584. package/lib/network/processor/gossipQueues/linear.js.map +1 -1
  585. package/lib/network/processor/gossipQueues/types.js +4 -2
  586. package/lib/network/processor/gossipQueues/types.js.map +1 -1
  587. package/lib/network/processor/gossipValidatorFn.js +1 -1
  588. package/lib/network/processor/gossipValidatorFn.js.map +1 -1
  589. package/lib/network/processor/index.d.ts.map +1 -1
  590. package/lib/network/processor/index.js +4 -2
  591. package/lib/network/processor/index.js.map +1 -1
  592. package/lib/network/processor/types.d.ts +1 -1
  593. package/lib/network/processor/types.d.ts.map +1 -1
  594. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  595. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  596. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  597. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +3 -2
  598. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  599. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
  600. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +1 -1
  601. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +3 -2
  602. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
  603. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +1 -1
  604. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
  605. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
  606. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +3 -2
  607. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  608. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +1 -1
  609. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  610. package/lib/network/reqresp/handlers/index.js.map +1 -1
  611. package/lib/network/reqresp/handlers/lightClientBootstrap.js.map +1 -1
  612. package/lib/network/reqresp/handlers/lightClientFinalityUpdate.js.map +1 -1
  613. package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.js.map +1 -1
  614. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.js.map +1 -1
  615. package/lib/network/reqresp/interface.js +2 -1
  616. package/lib/network/reqresp/interface.js.map +1 -1
  617. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  618. package/lib/network/reqresp/protocols.js.map +1 -1
  619. package/lib/network/reqresp/rateLimit.js.map +1 -1
  620. package/lib/network/reqresp/score.d.ts.map +1 -1
  621. package/lib/network/reqresp/score.js +0 -1
  622. package/lib/network/reqresp/score.js.map +1 -1
  623. package/lib/network/reqresp/types.js +4 -2
  624. package/lib/network/reqresp/types.js.map +1 -1
  625. package/lib/network/reqresp/utils/collect.d.ts +1 -1
  626. package/lib/network/reqresp/utils/collect.js.map +1 -1
  627. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.d.ts +1 -1
  628. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.js +2 -1
  629. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.js.map +1 -1
  630. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts +1 -1
  631. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts.map +1 -1
  632. package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -1
  633. package/lib/network/statusCache.d.ts.map +1 -1
  634. package/lib/network/statusCache.js.map +1 -1
  635. package/lib/network/subnets/attnetsService.d.ts.map +1 -1
  636. package/lib/network/subnets/attnetsService.js +2 -1
  637. package/lib/network/subnets/attnetsService.js.map +1 -1
  638. package/lib/network/subnets/interface.js.map +1 -1
  639. package/lib/network/subnets/syncnetsService.d.ts.map +1 -1
  640. package/lib/network/subnets/syncnetsService.js.map +1 -1
  641. package/lib/network/subnets/util.js.map +1 -1
  642. package/lib/network/util.js +2 -2
  643. package/lib/network/util.js.map +1 -1
  644. package/lib/node/nodejs.d.ts +4 -6
  645. package/lib/node/nodejs.d.ts.map +1 -1
  646. package/lib/node/nodejs.js +8 -5
  647. package/lib/node/nodejs.js.map +1 -1
  648. package/lib/node/notifier.js.map +1 -1
  649. package/lib/node/utils/interop/deposits.js.map +1 -1
  650. package/lib/node/utils/interop/state.d.ts +1 -1
  651. package/lib/node/utils/interop/state.d.ts.map +1 -1
  652. package/lib/node/utils/interop/state.js.map +1 -1
  653. package/lib/node/utils/lightclient.js.map +1 -1
  654. package/lib/node/utils/state.js.map +1 -1
  655. package/lib/sync/backfill/backfill.d.ts +1 -10
  656. package/lib/sync/backfill/backfill.d.ts.map +1 -1
  657. package/lib/sync/backfill/backfill.js +6 -3
  658. package/lib/sync/backfill/backfill.js.map +1 -1
  659. package/lib/sync/backfill/errors.js +2 -1
  660. package/lib/sync/backfill/errors.js.map +1 -1
  661. package/lib/sync/backfill/verify.js.map +1 -1
  662. package/lib/sync/interface.js +2 -1
  663. package/lib/sync/interface.js.map +1 -1
  664. package/lib/sync/range/batch.d.ts.map +1 -1
  665. package/lib/sync/range/batch.js +4 -2
  666. package/lib/sync/range/batch.js.map +1 -1
  667. package/lib/sync/range/chain.d.ts +0 -10
  668. package/lib/sync/range/chain.d.ts.map +1 -1
  669. package/lib/sync/range/chain.js +2 -1
  670. package/lib/sync/range/chain.js.map +1 -1
  671. package/lib/sync/range/range.d.ts +1 -3
  672. package/lib/sync/range/range.d.ts.map +1 -1
  673. package/lib/sync/range/range.js +5 -2
  674. package/lib/sync/range/range.js.map +1 -1
  675. package/lib/sync/range/utils/batches.js.map +1 -1
  676. package/lib/sync/range/utils/chainTarget.js.map +1 -1
  677. package/lib/sync/range/utils/hashBlocks.js.map +1 -1
  678. package/lib/sync/range/utils/peerBalancer.d.ts.map +1 -1
  679. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  680. package/lib/sync/range/utils/updateChains.js.map +1 -1
  681. package/lib/sync/sync.d.ts.map +1 -1
  682. package/lib/sync/sync.js.map +1 -1
  683. package/lib/sync/types.js +4 -2
  684. package/lib/sync/types.js.map +1 -1
  685. package/lib/sync/unknownBlock.d.ts +0 -14
  686. package/lib/sync/unknownBlock.d.ts.map +1 -1
  687. package/lib/sync/unknownBlock.js.map +1 -1
  688. package/lib/sync/utils/downloadByRange.d.ts +8 -5
  689. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  690. package/lib/sync/utils/downloadByRange.js +8 -6
  691. package/lib/sync/utils/downloadByRange.js.map +1 -1
  692. package/lib/sync/utils/downloadByRoot.d.ts +8 -8
  693. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  694. package/lib/sync/utils/downloadByRoot.js +3 -2
  695. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  696. package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
  697. package/lib/sync/utils/remoteSyncType.d.ts +1 -1
  698. package/lib/sync/utils/remoteSyncType.d.ts.map +1 -1
  699. package/lib/sync/utils/remoteSyncType.js +4 -2
  700. package/lib/sync/utils/remoteSyncType.js.map +1 -1
  701. package/lib/util/address.js.map +1 -1
  702. package/lib/util/array.d.ts.map +1 -1
  703. package/lib/util/array.js.map +1 -1
  704. package/lib/util/asyncIterableToEvents.d.ts.map +1 -1
  705. package/lib/util/asyncIterableToEvents.js +2 -1
  706. package/lib/util/asyncIterableToEvents.js.map +1 -1
  707. package/lib/util/binarySearch.d.ts.map +1 -1
  708. package/lib/util/binarySearch.js.map +1 -1
  709. package/lib/util/bitArray.js +2 -1
  710. package/lib/util/bitArray.js.map +1 -1
  711. package/lib/util/blobs.js.map +1 -1
  712. package/lib/util/bufferPool.d.ts.map +1 -1
  713. package/lib/util/bufferPool.js +2 -1
  714. package/lib/util/bufferPool.js.map +1 -1
  715. package/lib/util/chunkify.js.map +1 -1
  716. package/lib/util/clock.d.ts +6 -0
  717. package/lib/util/clock.d.ts.map +1 -1
  718. package/lib/util/clock.js +11 -4
  719. package/lib/util/clock.js.map +1 -1
  720. package/lib/util/dataColumns.d.ts.map +1 -1
  721. package/lib/util/dataColumns.js +9 -3
  722. package/lib/util/dataColumns.js.map +1 -1
  723. package/lib/util/dependentRoot.js.map +1 -1
  724. package/lib/util/enum.js.map +1 -1
  725. package/lib/util/error.js.map +1 -1
  726. package/lib/util/eventLoop.js.map +1 -1
  727. package/lib/util/execution.d.ts.map +1 -1
  728. package/lib/util/execution.js +19 -9
  729. package/lib/util/execution.js.map +1 -1
  730. package/lib/util/file.js.map +1 -1
  731. package/lib/util/forkChoice.js.map +1 -1
  732. package/lib/util/forkName.js.map +1 -1
  733. package/lib/util/graffiti.js.map +1 -1
  734. package/lib/util/hex.js.map +1 -1
  735. package/lib/util/ip.js.map +1 -1
  736. package/lib/util/itTrigger.d.ts.map +1 -1
  737. package/lib/util/itTrigger.js.map +1 -1
  738. package/lib/util/map.d.ts.map +1 -1
  739. package/lib/util/map.js.map +1 -1
  740. package/lib/util/metadata.js.map +1 -1
  741. package/lib/util/multifork.js.map +1 -1
  742. package/lib/util/numpy.js.map +1 -1
  743. package/lib/util/peerId.js.map +1 -1
  744. package/lib/util/profile.js +2 -1
  745. package/lib/util/profile.js.map +1 -1
  746. package/lib/util/promises.js.map +1 -1
  747. package/lib/util/queue/errors.js +2 -1
  748. package/lib/util/queue/errors.js.map +1 -1
  749. package/lib/util/queue/fnQueue.d.ts.map +1 -1
  750. package/lib/util/queue/fnQueue.js.map +1 -1
  751. package/lib/util/queue/itemQueue.d.ts.map +1 -1
  752. package/lib/util/queue/itemQueue.js.map +1 -1
  753. package/lib/util/queue/options.js +2 -1
  754. package/lib/util/queue/options.js.map +1 -1
  755. package/lib/util/serializedCache.d.ts +4 -4
  756. package/lib/util/serializedCache.d.ts.map +1 -1
  757. package/lib/util/serializedCache.js +6 -4
  758. package/lib/util/serializedCache.js.map +1 -1
  759. package/lib/util/set.d.ts.map +1 -1
  760. package/lib/util/set.js.map +1 -1
  761. package/lib/util/shuffle.js.map +1 -1
  762. package/lib/util/sortBy.js.map +1 -1
  763. package/lib/util/sszBytes.js.map +1 -1
  764. package/lib/util/time.js.map +1 -1
  765. package/lib/util/timeSeries.d.ts.map +1 -1
  766. package/lib/util/timeSeries.js.map +1 -1
  767. package/lib/util/types.d.ts.map +1 -1
  768. package/lib/util/workerEvents.d.ts +1 -1
  769. package/lib/util/workerEvents.d.ts.map +1 -1
  770. package/lib/util/workerEvents.js.map +1 -1
  771. package/lib/util/wrapError.js.map +1 -1
  772. package/package.json +42 -44
  773. package/src/api/impl/beacon/blocks/index.ts +14 -2
  774. package/src/api/impl/beacon/state/index.ts +8 -8
  775. package/src/api/impl/beacon/state/utils.ts +17 -31
  776. package/src/api/impl/debug/index.ts +1 -0
  777. package/src/api/impl/node/utils.ts +3 -3
  778. package/src/api/impl/validator/index.ts +36 -19
  779. package/src/chain/archiveStore/archiveStore.ts +5 -15
  780. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +10 -11
  781. package/src/chain/archiveStore/historicalState/worker.ts +3 -3
  782. package/src/chain/archiveStore/interface.ts +4 -4
  783. package/src/chain/archiveStore/strategies/frequencyStateArchiveStrategy.ts +8 -5
  784. package/src/chain/archiveStore/utils/archiveBlocks.ts +62 -5
  785. package/src/chain/archiveStore/utils/updateBackfillRange.ts +1 -1
  786. package/src/chain/blocks/blockInput/blockInput.ts +103 -3
  787. package/src/chain/blocks/blockInput/types.ts +18 -0
  788. package/src/chain/blocks/importBlock.ts +47 -11
  789. package/src/chain/blocks/verifyBlocksDataAvailability.ts +3 -0
  790. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +9 -2
  791. package/src/chain/blocks/verifyBlocksSanityChecks.ts +7 -2
  792. package/src/chain/blocks/writeBlockInputToDb.ts +105 -104
  793. package/src/chain/bls/multithread/index.ts +7 -7
  794. package/src/chain/bls/multithread/jobItem.ts +3 -3
  795. package/src/chain/bls/singleThread.ts +5 -5
  796. package/src/chain/bls/utils.ts +8 -5
  797. package/src/chain/chain.ts +67 -47
  798. package/src/chain/emitter.ts +3 -3
  799. package/src/chain/errors/executionPayloadBid.ts +1 -1
  800. package/src/chain/errors/executionPayloadEnvelope.ts +6 -2
  801. package/src/chain/errors/payloadAttestation.ts +1 -1
  802. package/src/chain/forkChoice/index.ts +39 -21
  803. package/src/chain/interface.ts +4 -11
  804. package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
  805. package/src/chain/prepareNextSlot.ts +6 -2
  806. package/src/chain/produceBlock/computeNewStateRoot.ts +4 -3
  807. package/src/chain/produceBlock/produceBlockBody.ts +18 -5
  808. package/src/chain/regen/errors.ts +6 -1
  809. package/src/chain/regen/interface.ts +12 -6
  810. package/src/chain/regen/queued.ts +55 -14
  811. package/src/chain/regen/regen.ts +46 -10
  812. package/src/chain/seenCache/seenGossipBlockInput.ts +56 -18
  813. package/src/chain/stateCache/datastore/db.ts +33 -10
  814. package/src/chain/stateCache/datastore/file.ts +6 -5
  815. package/src/chain/stateCache/datastore/types.ts +3 -2
  816. package/src/chain/stateCache/fifoBlockStateCache.ts +10 -4
  817. package/src/chain/stateCache/persistentCheckpointsCache.ts +248 -139
  818. package/src/chain/stateCache/types.ts +18 -8
  819. package/src/chain/validation/aggregateAndProof.ts +1 -1
  820. package/src/chain/validation/attestation.ts +14 -7
  821. package/src/chain/validation/attesterSlashing.ts +10 -1
  822. package/src/chain/validation/blobSidecar.ts +2 -2
  823. package/src/chain/validation/block.ts +9 -4
  824. package/src/chain/validation/dataColumnSidecar.ts +147 -127
  825. package/src/chain/validation/executionPayloadBid.ts +1 -2
  826. package/src/chain/validation/executionPayloadEnvelope.ts +4 -4
  827. package/src/chain/validation/payloadAttestationMessage.ts +10 -3
  828. package/src/chain/validation/proposerSlashing.ts +1 -1
  829. package/src/chain/validation/syncCommitteeContributionAndProof.ts +1 -1
  830. package/src/db/index.ts +1 -0
  831. package/src/db/repositories/blockArchive.ts +1 -2
  832. package/src/execution/engine/http.ts +3 -0
  833. package/src/metrics/metrics/beacon.ts +9 -3
  834. package/src/metrics/metrics/lodestar.ts +39 -24
  835. package/src/monitoring/service.ts +3 -2
  836. package/src/network/core/networkCore.ts +3 -3
  837. package/src/network/core/networkCoreWorkerHandler.ts +3 -3
  838. package/src/network/core/types.ts +2 -2
  839. package/src/network/discv5/utils.ts +5 -4
  840. package/src/network/events.ts +2 -1
  841. package/src/network/gossip/encoding.ts +3 -3
  842. package/src/network/gossip/gossipsub.ts +98 -32
  843. package/src/network/gossip/interface.ts +3 -3
  844. package/src/network/gossip/scoringParameters.ts +4 -4
  845. package/src/network/interface.ts +3 -3
  846. package/src/network/libp2p/index.ts +48 -21
  847. package/src/network/metadata.ts +1 -0
  848. package/src/network/network.ts +5 -4
  849. package/src/network/options.ts +8 -1
  850. package/src/network/peers/datastore.ts +13 -10
  851. package/src/network/peers/discover.ts +46 -11
  852. package/src/network/peers/peerManager.ts +118 -54
  853. package/src/network/peers/utils/prioritizePeers.ts +3 -3
  854. package/src/network/processor/gossipHandlers.ts +12 -3
  855. package/src/network/processor/gossipValidatorFn.ts +2 -2
  856. package/src/network/processor/types.ts +1 -1
  857. package/src/network/reqresp/ReqRespBeaconNode.ts +1 -1
  858. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +4 -3
  859. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +3 -2
  860. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +1 -1
  861. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +4 -3
  862. package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +2 -2
  863. package/src/network/reqresp/score.ts +0 -1
  864. package/src/network/reqresp/utils/collect.ts +1 -1
  865. package/src/network/reqresp/utils/collectSequentialBlocksInRange.ts +1 -1
  866. package/src/network/util.ts +2 -2
  867. package/src/node/nodejs.ts +8 -9
  868. package/src/sync/range/range.ts +1 -0
  869. package/src/sync/utils/downloadByRange.ts +12 -3
  870. package/src/sync/utils/downloadByRoot.ts +2 -2
  871. package/src/sync/utils/remoteSyncType.ts +1 -1
  872. package/src/util/clock.ts +9 -4
  873. package/src/util/dataColumns.ts +6 -2
  874. package/src/util/execution.ts +23 -12
  875. package/src/util/serializedCache.ts +7 -5
  876. package/src/util/workerEvents.ts +1 -1
  877. package/lib/chain/archiveStore/utils/archivePayloads.d.ts +0 -7
  878. package/lib/chain/archiveStore/utils/archivePayloads.d.ts.map +0 -1
  879. package/lib/chain/archiveStore/utils/archivePayloads.js +0 -10
  880. package/lib/chain/archiveStore/utils/archivePayloads.js.map +0 -1
  881. package/src/chain/archiveStore/utils/archivePayloads.ts +0 -15
@@ -1,4 +1,4 @@
1
- import {Direction, PeerId} from "@libp2p/interface";
1
+ import type {MessageStreamDirection, PeerId} from "@libp2p/interface";
2
2
  import {BitArray} from "@chainsafe/ssz";
3
3
  import {ChainConfig} from "@lodestar/config";
4
4
  import {ATTESTATION_SUBNET_COUNT, SYNC_COMMITTEE_SUBNET_COUNT} from "@lodestar/params";
@@ -95,7 +95,7 @@ function computeStatusScore(ours: Status, theirs: Status | null, opts: Prioritiz
95
95
 
96
96
  type PeerInfo = {
97
97
  id: PeerId;
98
- direction: Direction | null;
98
+ direction: MessageStreamDirection | null;
99
99
  statusScore: StatusScore;
100
100
  attnets: phase0.AttestationSubnets;
101
101
  syncnets: altair.SyncSubnets;
@@ -137,7 +137,7 @@ export enum ExcessPeerDisconnectReason {
137
137
  export function prioritizePeers(
138
138
  connectedPeersInfo: {
139
139
  id: PeerId;
140
- direction: Direction | null;
140
+ direction: MessageStreamDirection | null;
141
141
  status: Status | null;
142
142
  attnets: phase0.AttestationSubnets | null;
143
143
  syncnets: altair.SyncSubnets | null;
@@ -2,6 +2,7 @@ import {routes} from "@lodestar/api";
2
2
  import {BeaconConfig, ChainForkConfig} from "@lodestar/config";
3
3
  import {
4
4
  ForkName,
5
+ ForkPostDeneb,
5
6
  ForkPostElectra,
6
7
  ForkPreElectra,
7
8
  ForkSeq,
@@ -70,6 +71,7 @@ import {validateGossipPayloadAttestationMessage} from "../../chain/validation/pa
70
71
  import {OpSource} from "../../chain/validatorMonitor.js";
71
72
  import {Metrics} from "../../metrics/index.js";
72
73
  import {kzgCommitmentToVersionedHash} from "../../util/blobs.js";
74
+ import {getBlobKzgCommitments} from "../../util/dataColumns.js";
73
75
  import {INetworkCore} from "../core/index.js";
74
76
  import {NetworkEventBus} from "../events.js";
75
77
  import {
@@ -417,9 +419,11 @@ function getSequentialHandlers(modules: ValidatorFnsModules, options: GossipHand
417
419
  chain.getBlobsTracker.triggerGetBlobs(blockInput);
418
420
  } else {
419
421
  metrics?.blockInputFetchStats.totalDataAvailableBlockInputs.inc();
420
- metrics?.blockInputFetchStats.totalDataAvailableBlockInputBlobs.inc(
421
- (signedBlock.message as deneb.BeaconBlock).body.blobKzgCommitments.length
422
- );
422
+ const blobCount = getBlobKzgCommitments(
423
+ blockInput.forkName,
424
+ signedBlock as SignedBeaconBlock<ForkPostDeneb>
425
+ ).length;
426
+ metrics?.blockInputFetchStats.totalDataAvailableBlockInputBlobs.inc(blobCount);
423
427
  }
424
428
 
425
429
  chain
@@ -852,6 +856,11 @@ function getSequentialHandlers(modules: ValidatorFnsModules, options: GossipHand
852
856
  } catch (e) {
853
857
  logger.error("Error adding to payloadAttestation pool", {}, e as Error);
854
858
  }
859
+ chain.forkChoice.notifyPtcMessages(
860
+ toRootHex(payloadAttestationMessage.data.beaconBlockRoot),
861
+ [validationResult.validatorCommitteeIndex],
862
+ payloadAttestationMessage.data.payloadPresent
863
+ );
855
864
  },
856
865
  [GossipType.execution_payload_bid]: async ({
857
866
  gossipData,
@@ -1,4 +1,4 @@
1
- import {TopicValidatorResult} from "@libp2p/interface";
1
+ import {TopicValidatorResult} from "@libp2p/gossipsub";
2
2
  import {ChainForkConfig} from "@lodestar/config";
3
3
  import {Logger} from "@lodestar/utils";
4
4
  import {AttestationError, GossipAction, GossipActionError} from "../../chain/errors/index.js";
@@ -11,7 +11,7 @@ import {
11
11
  GossipValidatorBatchFn,
12
12
  GossipValidatorFn,
13
13
  } from "../gossip/interface.js";
14
- import {prettyPrintPeerIdStr} from "../util.ts";
14
+ import {prettyPrintPeerIdStr} from "../util.js";
15
15
 
16
16
  export type ValidatorFnModules = {
17
17
  config: ChainForkConfig;
@@ -1,4 +1,4 @@
1
- import {Message} from "@libp2p/interface";
1
+ import type {Message} from "@libp2p/gossipsub";
2
2
  import {ForkName} from "@lodestar/params";
3
3
  import {Slot, SlotOptionalRoot} from "@lodestar/types";
4
4
  import {PeerIdStr} from "../../util/peerId.js";
@@ -19,7 +19,7 @@ import {callInNextEventLoop} from "../../util/eventLoop.js";
19
19
  import {NetworkCoreMetrics} from "../core/metrics.js";
20
20
  import {INetworkEventBus, NetworkEvent} from "../events.js";
21
21
  import {MetadataController} from "../metadata.js";
22
- import {ClientKind} from "../peers/client.ts";
22
+ import {ClientKind} from "../peers/client.js";
23
23
  import {PeersData} from "../peers/peersData.js";
24
24
  import {IPeerRpcScoreStore, PeerAction} from "../peers/score/index.js";
25
25
  import {StatusCache} from "../statusCache.js";
@@ -6,7 +6,7 @@ import {computeEpochAtSlot} from "@lodestar/state-transition";
6
6
  import {deneb, phase0} from "@lodestar/types";
7
7
  import {IBeaconChain} from "../../../chain/index.js";
8
8
  import {IBeaconDb} from "../../../db/index.js";
9
- import {prettyPrintPeerId} from "../../util.ts";
9
+ import {prettyPrintPeerId} from "../../util.js";
10
10
 
11
11
  // TODO: Unit test
12
12
 
@@ -47,9 +47,10 @@ export async function* onBeaconBlocksByRange(
47
47
 
48
48
  // Non-finalized range of blocks
49
49
  if (endSlot > finalizedSlot) {
50
- const headRoot = chain.forkChoice.getHeadRoot();
50
+ const headBlock = chain.forkChoice.getHead();
51
+ const headRoot = headBlock.blockRoot;
51
52
  // TODO DENEB: forkChoice should mantain an array of canonical blocks, and change only on reorg
52
- const headChain = chain.forkChoice.getAllAncestorBlocks(headRoot);
53
+ const headChain = chain.forkChoice.getAllAncestorBlocks(headRoot, headBlock.payloadStatus);
53
54
  // getAllAncestorBlocks response includes the head node, so it's the full chain.
54
55
 
55
56
  // Iterate head chain with ascending block numbers
@@ -34,9 +34,10 @@ export async function* onBlobSidecarsByRange(
34
34
 
35
35
  // Non-finalized range of blobs
36
36
  if (endSlot > finalizedSlot) {
37
- const headRoot = chain.forkChoice.getHeadRoot();
37
+ const headBlock = chain.forkChoice.getHead();
38
+ const headRoot = headBlock.blockRoot;
38
39
  // TODO DENEB: forkChoice should mantain an array of canonical blocks, and change only on reorg
39
- const headChain = chain.forkChoice.getAllAncestorBlocks(headRoot);
40
+ const headChain = chain.forkChoice.getAllAncestorBlocks(headRoot, headBlock.payloadStatus);
40
41
 
41
42
  // Iterate head chain with ascending block numbers
42
43
  for (let i = headChain.length - 1; i >= 0; i--) {
@@ -20,7 +20,7 @@ export async function* onBlobSidecarsByRoot(
20
20
  for (const blobIdentifier of requestBody) {
21
21
  const {blockRoot, index} = blobIdentifier;
22
22
  const blockRootHex = toRootHex(blockRoot);
23
- const block = chain.forkChoice.getBlockHex(blockRootHex);
23
+ const block = chain.forkChoice.getBlockHexDefaultStatus(blockRootHex);
24
24
 
25
25
  // NOTE: Only support non-finalized blocks.
26
26
  // SPEC: Clients MUST support requesting blocks and sidecars since the latest finalized epoch.
@@ -7,7 +7,7 @@ import {ColumnIndex, fulu} from "@lodestar/types";
7
7
  import {fromHex} from "@lodestar/utils";
8
8
  import {IBeaconChain} from "../../../chain/index.js";
9
9
  import {IBeaconDb} from "../../../db/index.js";
10
- import {prettyPrintPeerId} from "../../util.ts";
10
+ import {prettyPrintPeerId} from "../../util.js";
11
11
  import {
12
12
  handleColumnSidecarUnavailability,
13
13
  validateRequestedDataColumns,
@@ -78,8 +78,9 @@ export async function* onDataColumnSidecarsByRange(
78
78
 
79
79
  // Non-finalized range of columns
80
80
  if (endSlot > finalizedSlot) {
81
- const headRoot = chain.forkChoice.getHeadRoot();
82
- const headChain = chain.forkChoice.getAllAncestorBlocks(headRoot);
81
+ const headBlock = chain.forkChoice.getHead();
82
+ const headRoot = headBlock.blockRoot;
83
+ const headChain = chain.forkChoice.getAllAncestorBlocks(headRoot, headBlock.payloadStatus);
83
84
 
84
85
  // Iterate head chain with ascending block numbers
85
86
  for (let i = headChain.length - 1; i >= 0; i--) {
@@ -6,7 +6,7 @@ import {toRootHex} from "@lodestar/utils";
6
6
  import {IBeaconChain} from "../../../chain/index.js";
7
7
  import {IBeaconDb} from "../../../db/index.js";
8
8
  import {DataColumnSidecarsByRootRequest} from "../../../util/types.js";
9
- import {prettyPrintPeerId} from "../../util.ts";
9
+ import {prettyPrintPeerId} from "../../util.js";
10
10
  import {
11
11
  handleColumnSidecarUnavailability,
12
12
  validateRequestedDataColumns,
@@ -34,7 +34,7 @@ export async function* onDataColumnSidecarsByRoot(
34
34
  }
35
35
 
36
36
  const blockRootHex = toRootHex(blockRoot);
37
- const block = chain.forkChoice.getBlockHex(blockRootHex);
37
+ const block = chain.forkChoice.getBlockHexDefaultStatus(blockRootHex);
38
38
  // If the block is not in fork choice, it may be finalized. Attempt to find its slot in block archive
39
39
  const slot = block ? block.slot : await db.blockArchive.getSlotByRoot(blockRoot);
40
40
 
@@ -38,7 +38,6 @@ export function onOutgoingReqRespError(e: RequestError, method: ReqRespMethod):
38
38
  : PeerAction.LowToleranceError;
39
39
  // TODO: Detect SSZDecodeError and return PeerAction.Fatal
40
40
 
41
- case RequestErrorCode.TTFB_TIMEOUT:
42
41
  case RequestErrorCode.RESP_TIMEOUT:
43
42
  switch (method) {
44
43
  case ReqRespMethod.Ping:
@@ -1,6 +1,6 @@
1
1
  import {Type} from "@chainsafe/ssz";
2
2
  import {RequestError, RequestErrorCode, ResponseIncoming} from "@lodestar/reqresp";
3
- import {SerializedCache} from "../../../util/serializedCache.ts";
3
+ import {SerializedCache} from "../../../util/serializedCache.js";
4
4
  import {ResponseTypeGetter} from "../types.js";
5
5
 
6
6
  /**
@@ -1,7 +1,7 @@
1
1
  import {ResponseIncoming} from "@lodestar/reqresp";
2
2
  import {SignedBeaconBlock, phase0} from "@lodestar/types";
3
3
  import {LodestarError} from "@lodestar/utils";
4
- import {SerializedCache} from "../../../util/serializedCache.ts";
4
+ import {SerializedCache} from "../../../util/serializedCache.js";
5
5
  import {ReqRespMethod, responseSszTypeByMethod} from "../types.js";
6
6
  import {sszDeserializeResponse} from "./collect.js";
7
7
 
@@ -23,7 +23,7 @@ export function getConnection(libp2p: Libp2p, peerIdStr: string): Connection | u
23
23
  return getConnectionsMap(libp2p).get(peerIdStr)?.value[0] ?? undefined;
24
24
  }
25
25
 
26
- // https://github.com/ChainSafe/js-libp2p-gossipsub/blob/3475242ed254f7647798ab7f36b21909f6cb61da/src/index.ts#L2009
26
+ // https://github.com/libp2p/js-libp2p/blob/f87cba928991736d9646b3e054c367f55cab315c/packages/gossipsub/src/gossipsub.ts#L2076
27
27
  export function isPublishToZeroPeersError(e: Error): boolean {
28
- return e.message.includes("PublishError.InsufficientPeers");
28
+ return e.message.includes("PublishError.NoPeersSubscribedToTopic");
29
29
  }
@@ -2,12 +2,11 @@ import {setMaxListeners} from "node:events";
2
2
  import {PrivateKey} from "@libp2p/interface";
3
3
  import {Registry} from "prom-client";
4
4
  import {hasher} from "@chainsafe/persistent-merkle-tree";
5
- import {PubkeyIndexMap} from "@chainsafe/pubkey-index-map";
6
5
  import {BeaconApiMethods} from "@lodestar/api/beacon/server";
7
6
  import {BeaconConfig} from "@lodestar/config";
8
7
  import type {LoggerNode} from "@lodestar/logger/node";
9
8
  import {ZERO_HASH_HEX} from "@lodestar/params";
10
- import {CachedBeaconStateAllForks, Index2PubkeyCache, isExecutionCachedStateType} from "@lodestar/state-transition";
9
+ import {CachedBeaconStateAllForks, PubkeyCache, isExecutionCachedStateType} from "@lodestar/state-transition";
11
10
  import {phase0} from "@lodestar/types";
12
11
  import {sleep, toRootHex} from "@lodestar/utils";
13
12
  import {ProcessShutdownCallback} from "@lodestar/validator";
@@ -47,8 +46,7 @@ export type BeaconNodeModules = {
47
46
  export type BeaconNodeInitModules = {
48
47
  opts: IBeaconNodeOptions;
49
48
  config: BeaconConfig;
50
- pubkey2index: PubkeyIndexMap;
51
- index2pubkey: Index2PubkeyCache;
49
+ pubkeyCache: PubkeyCache;
52
50
  db: IBeaconDb;
53
51
  logger: LoggerNode;
54
52
  processShutdownCallback: ProcessShutdownCallback;
@@ -150,8 +148,7 @@ export class BeaconNode {
150
148
  static async init<T extends BeaconNode = BeaconNode>({
151
149
  opts,
152
150
  config,
153
- pubkey2index,
154
- index2pubkey,
151
+ pubkeyCache,
155
152
  db,
156
153
  logger,
157
154
  processShutdownCallback,
@@ -240,8 +237,7 @@ export class BeaconNode {
240
237
  privateKey,
241
238
  config,
242
239
  clock,
243
- pubkey2index,
244
- index2pubkey,
240
+ pubkeyCache,
245
241
  dataDir,
246
242
  db,
247
243
  dbName: opts.db.name,
@@ -364,9 +360,12 @@ export class BeaconNode {
364
360
  if (this.restApi) await this.restApi.close();
365
361
  await this.network.close();
366
362
  if (this.metricsServer) await this.metricsServer.close();
367
- if (this.monitoring) this.monitoring.close();
363
+ if (this.monitoring) await this.monitoring.close();
368
364
  await this.chain.persistToDisk();
369
365
  await this.chain.close();
366
+ // Abort signal last: close() calls above clear intervals/timeouts so no new
367
+ // operations get scheduled. If we aborted first, a still-pending interval could
368
+ // fire and schedule a new operation after abort, leaving it stuck and delaying shutdown.
370
369
  if (this.controller) this.controller.abort();
371
370
  await sleep(DELAY_BEFORE_CLOSING_DB_MS);
372
371
  await this.db.close();
@@ -206,6 +206,7 @@ export class RangeSync extends (EventEmitter as {new (): RangeSyncEmitter}) {
206
206
  logger: this.logger,
207
207
  peerIdStr: peer.peerId,
208
208
  batchBlocks,
209
+ peerDasMetrics: this.chain.metrics?.peerDas,
209
210
  ...batch.getRequestsForPeer(peer),
210
211
  });
211
212
  const cached = cacheByRangeResponses({
@@ -12,6 +12,7 @@ import {
12
12
  import {SeenBlockInput} from "../../chain/seenCache/seenGossipBlockInput.js";
13
13
  import {validateBlockBlobSidecars} from "../../chain/validation/blobSidecar.js";
14
14
  import {validateBlockDataColumnSidecars} from "../../chain/validation/dataColumnSidecar.js";
15
+ import {BeaconMetrics} from "../../metrics/metrics/beacon.js";
15
16
  import {INetwork} from "../../network/index.js";
16
17
  import {getBlobKzgCommitments} from "../../util/dataColumns.js";
17
18
  import {PeerIdStr} from "../../util/peerId.js";
@@ -35,6 +36,7 @@ export type DownloadAndCacheByRangeProps = DownloadByRangeRequests & {
35
36
  logger: Logger;
36
37
  peerIdStr: string;
37
38
  batchBlocks?: IBlockInput[];
39
+ peerDasMetrics?: BeaconMetrics["peerDas"] | null;
38
40
  };
39
41
 
40
42
  export type CacheByRangeResponsesProps = {
@@ -196,6 +198,7 @@ export async function downloadByRange({
196
198
  blocksRequest,
197
199
  blobsRequest,
198
200
  columnsRequest,
201
+ peerDasMetrics,
199
202
  }: DownloadAndCacheByRangeProps): Promise<WarnResult<ValidatedResponses, DownloadByRangeError>> {
200
203
  let response: DownloadByRangeResponses;
201
204
  try {
@@ -220,6 +223,7 @@ export async function downloadByRange({
220
223
  blocksRequest,
221
224
  blobsRequest,
222
225
  columnsRequest,
226
+ peerDasMetrics,
223
227
  ...response,
224
228
  });
225
229
 
@@ -290,10 +294,12 @@ export async function validateResponses({
290
294
  blocks,
291
295
  blobSidecars,
292
296
  columnSidecars,
297
+ peerDasMetrics,
293
298
  }: DownloadByRangeRequests &
294
299
  DownloadByRangeResponses & {
295
300
  config: ChainForkConfig;
296
301
  batchBlocks?: IBlockInput[];
302
+ peerDasMetrics?: BeaconMetrics["peerDas"] | null;
297
303
  }): Promise<WarnResult<ValidatedResponses, DownloadByRangeError>> {
298
304
  // Blocks are always required for blob/column validation
299
305
  // If a blocksRequest is provided, blocks have just been downloaded
@@ -372,7 +378,8 @@ export async function validateResponses({
372
378
  config,
373
379
  columnsRequest,
374
380
  blocksForDataValidation,
375
- columnSidecars
381
+ columnSidecars,
382
+ peerDasMetrics
376
383
  );
377
384
  validatedResponses.validatedColumnSidecars = validatedColumnSidecarsResult.result;
378
385
  warnings = validatedColumnSidecarsResult.warnings;
@@ -608,7 +615,8 @@ export async function validateColumnsByRangeResponse(
608
615
  config: ChainForkConfig,
609
616
  request: fulu.DataColumnSidecarsByRangeRequest,
610
617
  blocks: ValidatedBlock[],
611
- columnSidecars: fulu.DataColumnSidecars
618
+ columnSidecars: fulu.DataColumnSidecars,
619
+ peerDasMetrics?: BeaconMetrics["peerDas"] | null
612
620
  ): Promise<WarnResult<ValidatedColumnSidecars[], DownloadByRangeError>> {
613
621
  const warnings: DownloadByRangeError[] = [];
614
622
 
@@ -764,7 +772,8 @@ export async function validateColumnsByRangeResponse(
764
772
  slot,
765
773
  blockRoot,
766
774
  blobCount,
767
- columnSidecars
775
+ columnSidecars,
776
+ peerDasMetrics
768
777
  ).then(() => ({
769
778
  blockRoot,
770
779
  columnSidecars,
@@ -6,7 +6,7 @@ import {LodestarError, byteArrayEquals, fromHex, prettyPrintIndices, toHex, toRo
6
6
  import {isBlockInputBlobs, isBlockInputColumns} from "../../chain/blocks/blockInput/blockInput.js";
7
7
  import {BlockInputSource, IBlockInput} from "../../chain/blocks/blockInput/types.js";
8
8
  import {ChainEventEmitter} from "../../chain/emitter.js";
9
- import {IBeaconChain} from "../../chain/interface.ts";
9
+ import {IBeaconChain} from "../../chain/interface.js";
10
10
  import {validateBlockBlobSidecars} from "../../chain/validation/blobSidecar.js";
11
11
  import {validateBlockDataColumnSidecars} from "../../chain/validation/dataColumnSidecar.js";
12
12
  import {INetwork} from "../../network/interface.js";
@@ -440,7 +440,7 @@ export async function fetchAndValidateColumns({
440
440
  );
441
441
  }
442
442
 
443
- await validateBlockDataColumnSidecars(chain, slot, blockRoot, blobCount, columnSidecars);
443
+ await validateBlockDataColumnSidecars(chain, slot, blockRoot, blobCount, columnSidecars, chain?.metrics?.peerDas);
444
444
 
445
445
  return {result: columnSidecars, warnings: warnings.length > 0 ? warnings : null};
446
446
  }
@@ -1,7 +1,7 @@
1
1
  import {IForkChoice} from "@lodestar/fork-choice";
2
2
  import {computeEpochAtSlot, computeStartSlotAtEpoch} from "@lodestar/state-transition";
3
3
  import {Slot, Status} from "@lodestar/types";
4
- import {IBeaconChain} from "../../chain/interface.ts";
4
+ import {IBeaconChain} from "../../chain/interface.js";
5
5
  import {ChainTarget} from "../range/utils/index.js";
6
6
 
7
7
  /** The type of peer relative to our current state */
package/src/util/clock.ts CHANGED
@@ -92,15 +92,17 @@ export class Clock extends EventEmitter implements IClock {
92
92
  }
93
93
  return slot;
94
94
  }
95
-
96
95
  /**
97
96
  * If it's too close to next slot given MAXIMUM_GOSSIP_CLOCK_DISPARITY, return currentSlot + 1.
98
97
  * Otherwise return currentSlot
98
+ *
99
+ * Spec: phase0/p2p-interface.md - gossip validation uses `current_time + MAXIMUM_GOSSIP_CLOCK_DISPARITY < message_time`
100
+ * to reject future messages (strict `<`), so the boundary (exactly equal) is accepted, hence `<=` here.
99
101
  */
100
102
  get currentSlotWithGossipDisparity(): Slot {
101
103
  const currentSlot = this.currentSlot;
102
104
  const nextSlotTime = computeTimeAtSlot(this.config, currentSlot + 1, this.genesisTime) * 1000;
103
- return nextSlotTime - Date.now() < this.config.MAXIMUM_GOSSIP_CLOCK_DISPARITY ? currentSlot + 1 : currentSlot;
105
+ return nextSlotTime - Date.now() <= this.config.MAXIMUM_GOSSIP_CLOCK_DISPARITY ? currentSlot + 1 : currentSlot;
104
106
  }
105
107
 
106
108
  get currentEpoch(): Epoch {
@@ -121,6 +123,9 @@ export class Clock extends EventEmitter implements IClock {
121
123
 
122
124
  /**
123
125
  * Check if a slot is current slot given MAXIMUM_GOSSIP_CLOCK_DISPARITY.
126
+ *
127
+ * Uses `<=` for disparity checks because the spec rejects with strict `<`
128
+ * (phase0/p2p-interface.md), meaning the boundary (exactly equal) is accepted.
124
129
  */
125
130
  isCurrentSlotGivenGossipDisparity(slot: Slot): boolean {
126
131
  const currentSlot = this.currentSlot;
@@ -129,12 +134,12 @@ export class Clock extends EventEmitter implements IClock {
129
134
  }
130
135
  const nextSlotTime = computeTimeAtSlot(this.config, currentSlot + 1, this.genesisTime) * 1000;
131
136
  // we're too close to next slot, accept next slot
132
- if (nextSlotTime - Date.now() < this.config.MAXIMUM_GOSSIP_CLOCK_DISPARITY) {
137
+ if (nextSlotTime - Date.now() <= this.config.MAXIMUM_GOSSIP_CLOCK_DISPARITY) {
133
138
  return slot === currentSlot + 1;
134
139
  }
135
140
  const currentSlotTime = computeTimeAtSlot(this.config, currentSlot, this.genesisTime) * 1000;
136
141
  // we've just passed the current slot, accept previous slot
137
- if (Date.now() - currentSlotTime < this.config.MAXIMUM_GOSSIP_CLOCK_DISPARITY) {
142
+ if (Date.now() - currentSlotTime <= this.config.MAXIMUM_GOSSIP_CLOCK_DISPARITY) {
138
143
  return slot === currentSlot - 1;
139
144
  }
140
145
  return false;
@@ -425,7 +425,8 @@ export async function recoverDataColumnSidecars(
425
425
  partialSidecars.set(columnSidecar.index, columnSidecar);
426
426
  }
427
427
 
428
- const timer = metrics?.recoverDataColumnSidecars.recoverTime.startTimer();
428
+ const timer = metrics?.peerDas.dataColumnsReconstructionTime.startTimer();
429
+
429
430
  // if this function throws, we catch at the consumer side
430
431
  const fullSidecars = await dataColumnMatrixRecovery(partialSidecars).catch(() => null);
431
432
  timer?.();
@@ -435,6 +436,7 @@ export async function recoverDataColumnSidecars(
435
436
 
436
437
  if (blockInput.getAllColumns().length === NUMBER_OF_COLUMNS) {
437
438
  // either gossip or getBlobsV2 resolved availability while we were recovering
439
+ metrics?.dataColumns.alreadyAdded.inc(fullSidecars.length);
438
440
  return DataColumnReconstructionCode.SuccessLate;
439
441
  }
440
442
 
@@ -458,8 +460,10 @@ export async function recoverDataColumnSidecars(
458
460
  sidecarsToPublish.push(columnSidecar);
459
461
  }
460
462
  }
463
+ metrics?.peerDas.reconstructedColumns.inc(sidecarsToPublish.length);
464
+ metrics?.dataColumns.bySource.inc({source: BlockInputSource.recovery}, sidecarsToPublish.length);
461
465
  emitter.emit(ChainEvent.publishDataColumns, sidecarsToPublish);
462
-
466
+ // TODO: Can we record dataColumns.sentPeersPerSubnet metric somehow
463
467
  return DataColumnReconstructionCode.SuccessResolved;
464
468
  }
465
469
 
@@ -173,16 +173,21 @@ export async function getDataColumnSidecarsFromExecution(
173
173
  }
174
174
 
175
175
  let dataColumnSidecars: fulu.DataColumnSidecars;
176
- const cellsAndProofs = await getCellsAndProofs(blobs);
177
- if (blockInput.hasBlock()) {
178
- dataColumnSidecars = getDataColumnSidecarsFromBlock(
179
- config,
180
- blockInput.getBlock() as fulu.SignedBeaconBlock,
181
- cellsAndProofs
182
- );
183
- } else {
184
- const firstSidecar = blockInput.getAllColumns()[0];
185
- dataColumnSidecars = getDataColumnSidecarsFromColumnSidecar(firstSidecar, cellsAndProofs);
176
+ const compTimer = metrics?.peerDas.dataColumnSidecarComputationTime.startTimer();
177
+ try {
178
+ const cellsAndProofs = await getCellsAndProofs(blobs);
179
+ if (blockInput.hasBlock()) {
180
+ dataColumnSidecars = getDataColumnSidecarsFromBlock(
181
+ config,
182
+ blockInput.getBlock() as fulu.SignedBeaconBlock,
183
+ cellsAndProofs
184
+ );
185
+ } else {
186
+ const firstSidecar = blockInput.getAllColumns()[0];
187
+ dataColumnSidecars = getDataColumnSidecarsFromColumnSidecar(firstSidecar, cellsAndProofs);
188
+ }
189
+ } finally {
190
+ compTimer?.();
186
191
  }
187
192
 
188
193
  // Publish columns if and only if subscribed to them
@@ -191,13 +196,15 @@ export async function getDataColumnSidecarsFromExecution(
191
196
 
192
197
  // for columns that we already seen, it will be ignored through `ignoreDuplicatePublishError` gossip option
193
198
  emitter.emit(ChainEvent.publishDataColumns, sampledColumns);
199
+ // TODO: Can we record dataColumns.sentPeersPerSubnet metric here somehow
194
200
 
195
201
  // add all sampled columns to the block input, even if we didn't sample them
196
202
  const seenTimestampSec = Date.now() / 1000;
203
+ let alreadyAddedColumnsCount = 0;
197
204
  for (const columnSidecar of sampledColumns) {
198
205
  if (blockInput.hasColumn(columnSidecar.index)) {
199
206
  // columns may have been added while waiting
200
- // TODO(fulu): add metrics for this condition
207
+ alreadyAddedColumnsCount++;
201
208
  continue;
202
209
  }
203
210
 
@@ -217,7 +224,11 @@ export async function getDataColumnSidecarsFromExecution(
217
224
  });
218
225
  }
219
226
  }
227
+ metrics?.dataColumns.alreadyAdded.inc(alreadyAddedColumnsCount);
220
228
 
221
- metrics?.dataColumns.bySource.inc({source: BlockInputSource.engine}, previouslyMissingColumns.length);
229
+ metrics?.dataColumns.bySource.inc(
230
+ {source: BlockInputSource.engine},
231
+ previouslyMissingColumns.length - alreadyAddedColumnsCount
232
+ );
222
233
  return DataColumnEngineResult.SuccessResolved;
223
234
  }
@@ -4,7 +4,7 @@
4
4
  * This is a thin wrapper around WeakMap
5
5
  */
6
6
  export class SerializedCache {
7
- map: WeakMap<object, Uint8Array> = new WeakMap();
7
+ private map: WeakMap<object, Uint8Array> = new WeakMap();
8
8
 
9
9
  get(obj: object): Uint8Array | undefined {
10
10
  return this.map.get(obj);
@@ -15,11 +15,13 @@ export class SerializedCache {
15
15
  }
16
16
 
17
17
  /**
18
- * Replace the internal WeakMap to force GC of all cached entries.
19
- * Must only be called after all DB writes that may read from this cache have completed,
18
+ * Delete cached serialized entries for the provided object references.
19
+ * Must only be called after all DB writes that read from this cache for these objects have completed,
20
20
  * otherwise cached serialized bytes will be unavailable and data will be re-serialized unnecessarily.
21
21
  */
22
- clear(): void {
23
- this.map = new WeakMap();
22
+ delete(objs: object[]): void {
23
+ for (const obj of objs) {
24
+ this.map.delete(obj);
25
+ }
24
26
  }
25
27
  }
@@ -1,5 +1,5 @@
1
1
  import {MessagePort, Worker} from "node:worker_threads";
2
- import {Message} from "@libp2p/interface";
2
+ import type {Message} from "@libp2p/gossipsub";
3
3
  import {Thread} from "@chainsafe/threads";
4
4
  import {Logger} from "@lodestar/logger";
5
5
  import {sleep} from "@lodestar/utils";
@@ -1,7 +0,0 @@
1
- import { CheckpointWithHex } from "@lodestar/fork-choice";
2
- import { IBeaconChain } from "../../interface.js";
3
- /**
4
- * Archives execution payload envelopes from hot DB to archive DB after finalization.
5
- */
6
- export declare function archiveExecutionPayloadEnvelopes(chain: IBeaconChain, _finalized: CheckpointWithHex): Promise<void>;
7
- //# sourceMappingURL=archivePayloads.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"archivePayloads.d.ts","sourceRoot":"","sources":["../../../../src/chain/archiveStore/utils/archivePayloads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAEhD;;GAEG;AACH,wBAAsB,gCAAgC,CACpD,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,iBAAiB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAKf"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Archives execution payload envelopes from hot DB to archive DB after finalization.
3
- */
4
- export async function archiveExecutionPayloadEnvelopes(chain, _finalized) {
5
- const finalizedBlock = chain.forkChoice.getFinalizedBlock();
6
- if (!finalizedBlock)
7
- return;
8
- // TODO GLOAS: Implement payload envelope archival after epbs fork choice changes are merged
9
- }
10
- //# sourceMappingURL=archivePayloads.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"archivePayloads.js","sourceRoot":"","sources":["../../../../src/chain/archiveStore/utils/archivePayloads.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,KAAmB,EACnB,UAA6B;IAE7B,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;IAC5D,IAAI,CAAC,cAAc;QAAE,OAAO;IAE5B,4FAA4F;AAC9F,CAAC"}
@@ -1,15 +0,0 @@
1
- import {CheckpointWithHex} from "@lodestar/fork-choice";
2
- import {IBeaconChain} from "../../interface.js";
3
-
4
- /**
5
- * Archives execution payload envelopes from hot DB to archive DB after finalization.
6
- */
7
- export async function archiveExecutionPayloadEnvelopes(
8
- chain: IBeaconChain,
9
- _finalized: CheckpointWithHex
10
- ): Promise<void> {
11
- const finalizedBlock = chain.forkChoice.getFinalizedBlock();
12
- if (!finalizedBlock) return;
13
-
14
- // TODO GLOAS: Implement payload envelope archival after epbs fork choice changes are merged
15
- }