@lodestar/beacon-node 1.41.0-dev.f9a3a81538 → 1.41.0-rc.0

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 (686) 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.map +1 -1
  5. package/lib/api/impl/beacon/blocks/utils.js.map +1 -1
  6. package/lib/api/impl/beacon/index.js.map +1 -1
  7. package/lib/api/impl/beacon/pool/index.d.ts +1 -1
  8. package/lib/api/impl/beacon/pool/index.d.ts.map +1 -1
  9. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  10. package/lib/api/impl/beacon/rewards/index.d.ts +1 -1
  11. package/lib/api/impl/beacon/rewards/index.d.ts.map +1 -1
  12. package/lib/api/impl/beacon/rewards/index.js.map +1 -1
  13. package/lib/api/impl/beacon/state/index.d.ts +1 -1
  14. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  15. package/lib/api/impl/beacon/state/index.js.map +1 -1
  16. package/lib/api/impl/beacon/state/utils.js.map +1 -1
  17. package/lib/api/impl/config/constants.js.map +1 -1
  18. package/lib/api/impl/config/index.js.map +1 -1
  19. package/lib/api/impl/debug/index.d.ts +1 -1
  20. package/lib/api/impl/debug/index.d.ts.map +1 -1
  21. package/lib/api/impl/debug/index.js.map +1 -1
  22. package/lib/api/impl/errors.d.ts.map +1 -1
  23. package/lib/api/impl/errors.js.map +1 -1
  24. package/lib/api/impl/events/index.d.ts +1 -1
  25. package/lib/api/impl/events/index.d.ts.map +1 -1
  26. package/lib/api/impl/events/index.js.map +1 -1
  27. package/lib/api/impl/lightclient/index.d.ts +1 -1
  28. package/lib/api/impl/lightclient/index.d.ts.map +1 -1
  29. package/lib/api/impl/lightclient/index.js.map +1 -1
  30. package/lib/api/impl/lodestar/index.d.ts +1 -1
  31. package/lib/api/impl/lodestar/index.d.ts.map +1 -1
  32. package/lib/api/impl/lodestar/index.js.map +1 -1
  33. package/lib/api/impl/node/index.js.map +1 -1
  34. package/lib/api/impl/node/utils.js.map +1 -1
  35. package/lib/api/impl/proof/index.js.map +1 -1
  36. package/lib/api/impl/utils.js.map +1 -1
  37. package/lib/api/impl/validator/index.js +4 -2
  38. package/lib/api/impl/validator/index.js.map +1 -1
  39. package/lib/api/impl/validator/utils.d.ts +1 -1
  40. package/lib/api/impl/validator/utils.d.ts.map +1 -1
  41. package/lib/api/impl/validator/utils.js.map +1 -1
  42. package/lib/api/rest/activeSockets.d.ts.map +1 -1
  43. package/lib/api/rest/activeSockets.js.map +1 -1
  44. package/lib/api/rest/base.d.ts.map +1 -1
  45. package/lib/api/rest/base.js.map +1 -1
  46. package/lib/api/rest/index.d.ts.map +1 -1
  47. package/lib/api/rest/index.js.map +1 -1
  48. package/lib/api/rest/swaggerUI.js.map +1 -1
  49. package/lib/bun-wrappers/prometheus-gc-stats.js.map +1 -1
  50. package/lib/chain/ColumnReconstructionTracker.d.ts.map +1 -1
  51. package/lib/chain/ColumnReconstructionTracker.js.map +1 -1
  52. package/lib/chain/GetBlobsTracker.d.ts.map +1 -1
  53. package/lib/chain/GetBlobsTracker.js.map +1 -1
  54. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  55. package/lib/chain/archiveStore/archiveStore.js +2 -1
  56. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  57. package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
  58. package/lib/chain/archiveStore/historicalState/historicalStateRegen.d.ts.map +1 -1
  59. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  60. package/lib/chain/archiveStore/historicalState/metrics.js.map +1 -1
  61. package/lib/chain/archiveStore/historicalState/types.js +2 -1
  62. package/lib/chain/archiveStore/historicalState/types.js.map +1 -1
  63. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  64. package/lib/chain/archiveStore/interface.js +2 -1
  65. package/lib/chain/archiveStore/interface.js.map +1 -1
  66. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts +1 -1
  67. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +1 -1
  68. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +2 -1
  69. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
  70. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  71. package/lib/chain/archiveStore/utils/archivePayloads.js.map +1 -1
  72. package/lib/chain/archiveStore/utils/pruneHistory.js.map +1 -1
  73. package/lib/chain/archiveStore/utils/updateBackfillRange.js.map +1 -1
  74. package/lib/chain/balancesCache.d.ts.map +1 -1
  75. package/lib/chain/balancesCache.js.map +1 -1
  76. package/lib/chain/beaconProposerCache.d.ts.map +1 -1
  77. package/lib/chain/beaconProposerCache.js.map +1 -1
  78. package/lib/chain/blocks/blockInput/blockInput.d.ts +5 -0
  79. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  80. package/lib/chain/blocks/blockInput/blockInput.js +24 -0
  81. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  82. package/lib/chain/blocks/blockInput/errors.js +2 -1
  83. package/lib/chain/blocks/blockInput/errors.js.map +1 -1
  84. package/lib/chain/blocks/blockInput/types.d.ts +5 -0
  85. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  86. package/lib/chain/blocks/blockInput/types.js +4 -2
  87. package/lib/chain/blocks/blockInput/types.js.map +1 -1
  88. package/lib/chain/blocks/blockInput/utils.js.map +1 -1
  89. package/lib/chain/blocks/importBlock.js.map +1 -1
  90. package/lib/chain/blocks/index.d.ts.map +1 -1
  91. package/lib/chain/blocks/index.js.map +1 -1
  92. package/lib/chain/blocks/types.js +6 -3
  93. package/lib/chain/blocks/types.js.map +1 -1
  94. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  95. package/lib/chain/blocks/utils/checkpoint.js.map +1 -1
  96. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  97. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  98. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  99. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  100. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  101. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  102. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  103. package/lib/chain/blocks/writeBlockInputToDb.js +1 -12
  104. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  105. package/lib/chain/bls/maybeBatch.js.map +1 -1
  106. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  107. package/lib/chain/bls/multithread/index.js.map +1 -1
  108. package/lib/chain/bls/multithread/jobItem.js +2 -1
  109. package/lib/chain/bls/multithread/jobItem.js.map +1 -1
  110. package/lib/chain/bls/multithread/types.js +2 -1
  111. package/lib/chain/bls/multithread/types.js.map +1 -1
  112. package/lib/chain/bls/multithread/utils.js.map +1 -1
  113. package/lib/chain/bls/multithread/worker.js.map +1 -1
  114. package/lib/chain/bls/singleThread.d.ts.map +1 -1
  115. package/lib/chain/bls/singleThread.js.map +1 -1
  116. package/lib/chain/bls/utils.js.map +1 -1
  117. package/lib/chain/chain.d.ts +3 -3
  118. package/lib/chain/chain.d.ts.map +1 -1
  119. package/lib/chain/chain.js +2 -1
  120. package/lib/chain/chain.js.map +1 -1
  121. package/lib/chain/emitter.d.ts +1 -3
  122. package/lib/chain/emitter.d.ts.map +1 -1
  123. package/lib/chain/emitter.js +2 -1
  124. package/lib/chain/emitter.js.map +1 -1
  125. package/lib/chain/errors/attestationError.d.ts.map +1 -1
  126. package/lib/chain/errors/attestationError.js +2 -1
  127. package/lib/chain/errors/attestationError.js.map +1 -1
  128. package/lib/chain/errors/attesterSlashingError.js +2 -1
  129. package/lib/chain/errors/attesterSlashingError.js.map +1 -1
  130. package/lib/chain/errors/blobSidecarError.js +2 -1
  131. package/lib/chain/errors/blobSidecarError.js.map +1 -1
  132. package/lib/chain/errors/blockError.d.ts.map +1 -1
  133. package/lib/chain/errors/blockError.js +2 -1
  134. package/lib/chain/errors/blockError.js.map +1 -1
  135. package/lib/chain/errors/blsToExecutionChangeError.js +2 -1
  136. package/lib/chain/errors/blsToExecutionChangeError.js.map +1 -1
  137. package/lib/chain/errors/dataColumnSidecarError.js +2 -1
  138. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
  139. package/lib/chain/errors/executionPayloadBid.d.ts +1 -1
  140. package/lib/chain/errors/executionPayloadBid.js +2 -1
  141. package/lib/chain/errors/executionPayloadBid.js.map +1 -1
  142. package/lib/chain/errors/executionPayloadEnvelope.js +2 -1
  143. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  144. package/lib/chain/errors/gossipValidation.d.ts.map +1 -1
  145. package/lib/chain/errors/gossipValidation.js +4 -2
  146. package/lib/chain/errors/gossipValidation.js.map +1 -1
  147. package/lib/chain/errors/lightClientError.js +4 -2
  148. package/lib/chain/errors/lightClientError.js.map +1 -1
  149. package/lib/chain/errors/payloadAttestation.d.ts +1 -1
  150. package/lib/chain/errors/payloadAttestation.js +2 -1
  151. package/lib/chain/errors/payloadAttestation.js.map +1 -1
  152. package/lib/chain/errors/proposerSlashingError.js +2 -1
  153. package/lib/chain/errors/proposerSlashingError.js.map +1 -1
  154. package/lib/chain/errors/syncCommitteeError.js +2 -1
  155. package/lib/chain/errors/syncCommitteeError.js.map +1 -1
  156. package/lib/chain/errors/voluntaryExitError.js +2 -1
  157. package/lib/chain/errors/voluntaryExitError.js.map +1 -1
  158. package/lib/chain/forkChoice/index.js +2 -1
  159. package/lib/chain/forkChoice/index.js.map +1 -1
  160. package/lib/chain/initState.d.ts +1 -1
  161. package/lib/chain/initState.d.ts.map +1 -1
  162. package/lib/chain/initState.js.map +1 -1
  163. package/lib/chain/interface.js +2 -1
  164. package/lib/chain/interface.js.map +1 -1
  165. package/lib/chain/lightClient/index.d.ts +0 -29
  166. package/lib/chain/lightClient/index.d.ts.map +1 -1
  167. package/lib/chain/lightClient/index.js.map +1 -1
  168. package/lib/chain/lightClient/proofs.js.map +1 -1
  169. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  170. package/lib/chain/opPools/aggregatedAttestationPool.js +4 -2
  171. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  172. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  173. package/lib/chain/opPools/attestationPool.js.map +1 -1
  174. package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -1
  175. package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -1
  176. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  177. package/lib/chain/opPools/opPool.js.map +1 -1
  178. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -1
  179. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  180. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +1 -1
  181. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  182. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +1 -1
  183. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  184. package/lib/chain/opPools/types.js +4 -2
  185. package/lib/chain/opPools/types.js.map +1 -1
  186. package/lib/chain/opPools/utils.js.map +1 -1
  187. package/lib/chain/prepareNextSlot.d.ts +1 -2
  188. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  189. package/lib/chain/prepareNextSlot.js.map +1 -1
  190. package/lib/chain/produceBlock/computeNewStateRoot.d.ts +0 -1
  191. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  192. package/lib/chain/produceBlock/computeNewStateRoot.js +4 -3
  193. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  194. package/lib/chain/produceBlock/produceBlockBody.d.ts +1 -1
  195. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  196. package/lib/chain/produceBlock/produceBlockBody.js +6 -3
  197. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  198. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
  199. package/lib/chain/regen/errors.d.ts.map +1 -1
  200. package/lib/chain/regen/errors.js +2 -1
  201. package/lib/chain/regen/errors.js.map +1 -1
  202. package/lib/chain/regen/interface.js +4 -2
  203. package/lib/chain/regen/interface.js.map +1 -1
  204. package/lib/chain/regen/queued.d.ts.map +1 -1
  205. package/lib/chain/regen/queued.js.map +1 -1
  206. package/lib/chain/regen/regen.d.ts.map +1 -1
  207. package/lib/chain/regen/regen.js.map +1 -1
  208. package/lib/chain/reprocess.d.ts.map +1 -1
  209. package/lib/chain/reprocess.js +2 -1
  210. package/lib/chain/reprocess.js.map +1 -1
  211. package/lib/chain/seenCache/seenAggregateAndProof.d.ts.map +1 -1
  212. package/lib/chain/seenCache/seenAggregateAndProof.js.map +1 -1
  213. package/lib/chain/seenCache/seenAttestationData.d.ts.map +1 -1
  214. package/lib/chain/seenCache/seenAttestationData.js +2 -1
  215. package/lib/chain/seenCache/seenAttestationData.js.map +1 -1
  216. package/lib/chain/seenCache/seenAttesters.d.ts.map +1 -1
  217. package/lib/chain/seenCache/seenAttesters.js.map +1 -1
  218. package/lib/chain/seenCache/seenBlockAttesters.d.ts.map +1 -1
  219. package/lib/chain/seenCache/seenBlockAttesters.js.map +1 -1
  220. package/lib/chain/seenCache/seenBlockProposers.d.ts.map +1 -1
  221. package/lib/chain/seenCache/seenBlockProposers.js.map +1 -1
  222. package/lib/chain/seenCache/seenCommittee.d.ts.map +1 -1
  223. package/lib/chain/seenCache/seenCommittee.js.map +1 -1
  224. package/lib/chain/seenCache/seenCommitteeContribution.d.ts.map +1 -1
  225. package/lib/chain/seenCache/seenCommitteeContribution.js.map +1 -1
  226. package/lib/chain/seenCache/seenExecutionPayloadBids.d.ts.map +1 -1
  227. package/lib/chain/seenCache/seenExecutionPayloadBids.js.map +1 -1
  228. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.d.ts.map +1 -1
  229. package/lib/chain/seenCache/seenExecutionPayloadEnvelope.js.map +1 -1
  230. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +7 -3
  231. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  232. package/lib/chain/seenCache/seenGossipBlockInput.js +23 -9
  233. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  234. package/lib/chain/serializeState.js +1 -0
  235. package/lib/chain/serializeState.js.map +1 -1
  236. package/lib/chain/shufflingCache.d.ts.map +1 -1
  237. package/lib/chain/shufflingCache.js +2 -1
  238. package/lib/chain/shufflingCache.js.map +1 -1
  239. package/lib/chain/stateCache/datastore/db.d.ts.map +1 -1
  240. package/lib/chain/stateCache/datastore/db.js.map +1 -1
  241. package/lib/chain/stateCache/datastore/file.d.ts.map +1 -1
  242. package/lib/chain/stateCache/datastore/file.js.map +1 -1
  243. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
  244. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  245. package/lib/chain/stateCache/mapMetrics.d.ts.map +1 -1
  246. package/lib/chain/stateCache/mapMetrics.js.map +1 -1
  247. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +1 -41
  248. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  249. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  250. package/lib/chain/stateCache/types.js +2 -1
  251. package/lib/chain/stateCache/types.js.map +1 -1
  252. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  253. package/lib/chain/validation/attestation.d.ts.map +1 -1
  254. package/lib/chain/validation/attestation.js +7 -3
  255. package/lib/chain/validation/attestation.js.map +1 -1
  256. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  257. package/lib/chain/validation/blobSidecar.js.map +1 -1
  258. package/lib/chain/validation/block.js.map +1 -1
  259. package/lib/chain/validation/blsToExecutionChange.js.map +1 -1
  260. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  261. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  262. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  263. package/lib/chain/validation/lightClientFinalityUpdate.js.map +1 -1
  264. package/lib/chain/validation/lightClientOptimisticUpdate.js.map +1 -1
  265. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  266. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  267. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  268. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  269. package/lib/chain/validation/signatureSets/selectionProof.js.map +1 -1
  270. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  271. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  272. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  273. package/lib/chain/validation/syncCommittee.js.map +1 -1
  274. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  275. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  276. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  277. package/lib/chain/validatorMonitor.js +2 -1
  278. package/lib/chain/validatorMonitor.js.map +1 -1
  279. package/lib/constants/network.js +4 -2
  280. package/lib/constants/network.js.map +1 -1
  281. package/lib/db/beacon.d.ts.map +1 -1
  282. package/lib/db/beacon.js.map +1 -1
  283. package/lib/db/buckets.d.ts +23 -23
  284. package/lib/db/buckets.d.ts.map +1 -1
  285. package/lib/db/buckets.js +2 -1
  286. package/lib/db/buckets.js.map +1 -1
  287. package/lib/db/index.d.ts +1 -0
  288. package/lib/db/index.d.ts.map +1 -1
  289. package/lib/db/index.js +1 -0
  290. package/lib/db/index.js.map +1 -1
  291. package/lib/db/repositories/attesterSlashing.d.ts.map +1 -1
  292. package/lib/db/repositories/attesterSlashing.js.map +1 -1
  293. package/lib/db/repositories/backfilledRanges.d.ts.map +1 -1
  294. package/lib/db/repositories/backfilledRanges.js.map +1 -1
  295. package/lib/db/repositories/blobSidecars.d.ts.map +1 -1
  296. package/lib/db/repositories/blobSidecars.js.map +1 -1
  297. package/lib/db/repositories/blobSidecarsArchive.d.ts.map +1 -1
  298. package/lib/db/repositories/blobSidecarsArchive.js.map +1 -1
  299. package/lib/db/repositories/block.d.ts.map +1 -1
  300. package/lib/db/repositories/block.js.map +1 -1
  301. package/lib/db/repositories/blockArchive.d.ts.map +1 -1
  302. package/lib/db/repositories/blockArchive.js.map +1 -1
  303. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  304. package/lib/db/repositories/blockArchiveIndex.js.map +1 -1
  305. package/lib/db/repositories/blsToExecutionChange.d.ts.map +1 -1
  306. package/lib/db/repositories/blsToExecutionChange.js.map +1 -1
  307. package/lib/db/repositories/checkpointState.d.ts.map +1 -1
  308. package/lib/db/repositories/checkpointState.js.map +1 -1
  309. package/lib/db/repositories/dataColumnSidecar.d.ts.map +1 -1
  310. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  311. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  312. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  313. package/lib/db/repositories/executionPayloadEnvelope.d.ts.map +1 -1
  314. package/lib/db/repositories/executionPayloadEnvelope.js.map +1 -1
  315. package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts.map +1 -1
  316. package/lib/db/repositories/executionPayloadEnvelopeArchive.js.map +1 -1
  317. package/lib/db/repositories/lightclientBestUpdate.d.ts.map +1 -1
  318. package/lib/db/repositories/lightclientBestUpdate.js.map +1 -1
  319. package/lib/db/repositories/lightclientCheckpointHeader.d.ts.map +1 -1
  320. package/lib/db/repositories/lightclientCheckpointHeader.js.map +1 -1
  321. package/lib/db/repositories/lightclientSyncCommittee.d.ts.map +1 -1
  322. package/lib/db/repositories/lightclientSyncCommittee.js.map +1 -1
  323. package/lib/db/repositories/lightclientSyncCommitteeWitness.d.ts.map +1 -1
  324. package/lib/db/repositories/lightclientSyncCommitteeWitness.js.map +1 -1
  325. package/lib/db/repositories/proposerSlashing.d.ts.map +1 -1
  326. package/lib/db/repositories/proposerSlashing.js.map +1 -1
  327. package/lib/db/repositories/stateArchive.d.ts.map +1 -1
  328. package/lib/db/repositories/stateArchive.js.map +1 -1
  329. package/lib/db/repositories/stateArchiveIndex.js.map +1 -1
  330. package/lib/db/repositories/voluntaryExit.d.ts.map +1 -1
  331. package/lib/db/repositories/voluntaryExit.js.map +1 -1
  332. package/lib/execution/builder/cache.d.ts.map +1 -1
  333. package/lib/execution/builder/cache.js.map +1 -1
  334. package/lib/execution/builder/http.d.ts.map +1 -1
  335. package/lib/execution/builder/http.js +2 -1
  336. package/lib/execution/builder/http.js.map +1 -1
  337. package/lib/execution/builder/index.js.map +1 -1
  338. package/lib/execution/builder/utils.js.map +1 -1
  339. package/lib/execution/engine/disabled.d.ts.map +1 -1
  340. package/lib/execution/engine/disabled.js.map +1 -1
  341. package/lib/execution/engine/http.d.ts.map +1 -1
  342. package/lib/execution/engine/http.js.map +1 -1
  343. package/lib/execution/engine/index.js.map +1 -1
  344. package/lib/execution/engine/interface.js +4 -2
  345. package/lib/execution/engine/interface.js.map +1 -1
  346. package/lib/execution/engine/jsonRpcHttpClient.d.ts +10 -15
  347. package/lib/execution/engine/jsonRpcHttpClient.d.ts.map +1 -1
  348. package/lib/execution/engine/jsonRpcHttpClient.js +2 -1
  349. package/lib/execution/engine/jsonRpcHttpClient.js.map +1 -1
  350. package/lib/execution/engine/jwt.js.map +1 -1
  351. package/lib/execution/engine/mock.d.ts.map +1 -1
  352. package/lib/execution/engine/mock.js.map +1 -1
  353. package/lib/execution/engine/payloadIdCache.d.ts.map +1 -1
  354. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  355. package/lib/execution/engine/types.js.map +1 -1
  356. package/lib/execution/engine/utils.d.ts +1 -1
  357. package/lib/execution/engine/utils.d.ts.map +1 -1
  358. package/lib/execution/engine/utils.js.map +1 -1
  359. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  360. package/lib/metrics/metrics/beacon.js.map +1 -1
  361. package/lib/metrics/metrics/lodestar.d.ts +8 -6
  362. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  363. package/lib/metrics/metrics/lodestar.js +18 -10
  364. package/lib/metrics/metrics/lodestar.js.map +1 -1
  365. package/lib/metrics/metrics.js.map +1 -1
  366. package/lib/metrics/nodeJsMetrics.js.map +1 -1
  367. package/lib/metrics/server/http.d.ts +1 -1
  368. package/lib/metrics/server/http.d.ts.map +1 -1
  369. package/lib/metrics/server/http.js.map +1 -1
  370. package/lib/metrics/utils/avgMinMax.d.ts.map +1 -1
  371. package/lib/metrics/utils/avgMinMax.js.map +1 -1
  372. package/lib/metrics/utils/gauge.d.ts.map +1 -1
  373. package/lib/metrics/utils/gauge.js.map +1 -1
  374. package/lib/metrics/utils/registryMetricCreator.d.ts.map +1 -1
  375. package/lib/metrics/utils/registryMetricCreator.js.map +1 -1
  376. package/lib/monitoring/clientStats.js.map +1 -1
  377. package/lib/monitoring/properties.d.ts.map +1 -1
  378. package/lib/monitoring/properties.js.map +1 -1
  379. package/lib/monitoring/service.d.ts.map +1 -1
  380. package/lib/monitoring/service.js.map +1 -1
  381. package/lib/monitoring/system.d.ts.map +1 -1
  382. package/lib/monitoring/system.js.map +1 -1
  383. package/lib/monitoring/types.js +4 -2
  384. package/lib/monitoring/types.js.map +1 -1
  385. package/lib/network/core/events.d.ts +1 -3
  386. package/lib/network/core/events.d.ts.map +1 -1
  387. package/lib/network/core/events.js +4 -2
  388. package/lib/network/core/events.js.map +1 -1
  389. package/lib/network/core/metrics.d.ts +6 -7
  390. package/lib/network/core/metrics.d.ts.map +1 -1
  391. package/lib/network/core/metrics.js.map +1 -1
  392. package/lib/network/core/networkCore.d.ts +1 -1
  393. package/lib/network/core/networkCore.d.ts.map +1 -1
  394. package/lib/network/core/networkCore.js.map +1 -1
  395. package/lib/network/core/networkCoreWorker.js.map +1 -1
  396. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +1 -1
  397. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  398. package/lib/network/discv5/index.d.ts +1 -3
  399. package/lib/network/discv5/index.d.ts.map +1 -1
  400. package/lib/network/discv5/index.js.map +1 -1
  401. package/lib/network/discv5/utils.d.ts +1 -1
  402. package/lib/network/discv5/utils.d.ts.map +1 -1
  403. package/lib/network/discv5/utils.js +7 -5
  404. package/lib/network/discv5/utils.js.map +1 -1
  405. package/lib/network/discv5/worker.js.map +1 -1
  406. package/lib/network/events.d.ts +1 -3
  407. package/lib/network/events.d.ts.map +1 -1
  408. package/lib/network/events.js +4 -2
  409. package/lib/network/events.js.map +1 -1
  410. package/lib/network/forks.js.map +1 -1
  411. package/lib/network/gossip/encoding.d.ts.map +1 -1
  412. package/lib/network/gossip/encoding.js.map +1 -1
  413. package/lib/network/gossip/errors.d.ts.map +1 -1
  414. package/lib/network/gossip/errors.js.map +1 -1
  415. package/lib/network/gossip/gossipsub.d.ts.map +1 -1
  416. package/lib/network/gossip/gossipsub.js +9 -6
  417. package/lib/network/gossip/gossipsub.js.map +1 -1
  418. package/lib/network/gossip/interface.js +4 -2
  419. package/lib/network/gossip/interface.js.map +1 -1
  420. package/lib/network/gossip/metrics.d.ts +12 -14
  421. package/lib/network/gossip/metrics.d.ts.map +1 -1
  422. package/lib/network/gossip/metrics.js.map +1 -1
  423. package/lib/network/gossip/scoringParameters.d.ts +1 -1
  424. package/lib/network/gossip/scoringParameters.d.ts.map +1 -1
  425. package/lib/network/gossip/scoringParameters.js.map +1 -1
  426. package/lib/network/gossip/topic.d.ts +2867 -2920
  427. package/lib/network/gossip/topic.d.ts.map +1 -1
  428. package/lib/network/gossip/topic.js.map +1 -1
  429. package/lib/network/libp2p/error.js +2 -1
  430. package/lib/network/libp2p/error.js.map +1 -1
  431. package/lib/network/libp2p/index.d.ts +1 -1
  432. package/lib/network/libp2p/index.d.ts.map +1 -1
  433. package/lib/network/libp2p/index.js +35 -17
  434. package/lib/network/libp2p/index.js.map +1 -1
  435. package/lib/network/metadata.d.ts +1 -0
  436. package/lib/network/metadata.d.ts.map +1 -1
  437. package/lib/network/metadata.js +5 -2
  438. package/lib/network/metadata.js.map +1 -1
  439. package/lib/network/network.d.ts +1 -1
  440. package/lib/network/network.d.ts.map +1 -1
  441. package/lib/network/network.js +1 -1
  442. package/lib/network/network.js.map +1 -1
  443. package/lib/network/options.d.ts +2 -0
  444. package/lib/network/options.d.ts.map +1 -1
  445. package/lib/network/options.js +3 -0
  446. package/lib/network/options.js.map +1 -1
  447. package/lib/network/peers/client.js +2 -1
  448. package/lib/network/peers/client.js.map +1 -1
  449. package/lib/network/peers/datastore.d.ts +0 -3
  450. package/lib/network/peers/datastore.d.ts.map +1 -1
  451. package/lib/network/peers/datastore.js.map +1 -1
  452. package/lib/network/peers/discover.d.ts +2 -7
  453. package/lib/network/peers/discover.d.ts.map +1 -1
  454. package/lib/network/peers/discover.js +45 -12
  455. package/lib/network/peers/discover.js.map +1 -1
  456. package/lib/network/peers/peerManager.d.ts +0 -1
  457. package/lib/network/peers/peerManager.d.ts.map +1 -1
  458. package/lib/network/peers/peerManager.js.map +1 -1
  459. package/lib/network/peers/peersData.d.ts.map +1 -1
  460. package/lib/network/peers/peersData.js +2 -1
  461. package/lib/network/peers/peersData.js.map +1 -1
  462. package/lib/network/peers/score/interface.js +4 -2
  463. package/lib/network/peers/score/interface.js.map +1 -1
  464. package/lib/network/peers/score/score.d.ts.map +1 -1
  465. package/lib/network/peers/score/score.js.map +1 -1
  466. package/lib/network/peers/score/store.d.ts.map +1 -1
  467. package/lib/network/peers/score/store.js.map +1 -1
  468. package/lib/network/peers/score/utils.js.map +1 -1
  469. package/lib/network/peers/utils/assertPeerRelevance.js +2 -1
  470. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  471. package/lib/network/peers/utils/enrSubnetsDeserialize.js.map +1 -1
  472. package/lib/network/peers/utils/getConnectedPeerIds.js.map +1 -1
  473. package/lib/network/peers/utils/prioritizePeers.js +2 -1
  474. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  475. package/lib/network/peers/utils/subnetMap.d.ts.map +1 -1
  476. package/lib/network/peers/utils/subnetMap.js.map +1 -1
  477. package/lib/network/processor/aggregatorTracker.d.ts.map +1 -1
  478. package/lib/network/processor/aggregatorTracker.js.map +1 -1
  479. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  480. package/lib/network/processor/gossipHandlers.js.map +1 -1
  481. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  482. package/lib/network/processor/gossipQueues/indexed.d.ts.map +1 -1
  483. package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
  484. package/lib/network/processor/gossipQueues/linear.d.ts.map +1 -1
  485. package/lib/network/processor/gossipQueues/linear.js.map +1 -1
  486. package/lib/network/processor/gossipQueues/types.js +4 -2
  487. package/lib/network/processor/gossipQueues/types.js.map +1 -1
  488. package/lib/network/processor/gossipValidatorFn.js.map +1 -1
  489. package/lib/network/processor/index.d.ts.map +1 -1
  490. package/lib/network/processor/index.js +4 -2
  491. package/lib/network/processor/index.js.map +1 -1
  492. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  493. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  494. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  495. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
  496. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
  497. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
  498. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  499. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  500. package/lib/network/reqresp/handlers/index.js.map +1 -1
  501. package/lib/network/reqresp/handlers/lightClientBootstrap.js.map +1 -1
  502. package/lib/network/reqresp/handlers/lightClientFinalityUpdate.js.map +1 -1
  503. package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.js.map +1 -1
  504. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.js.map +1 -1
  505. package/lib/network/reqresp/interface.js +2 -1
  506. package/lib/network/reqresp/interface.js.map +1 -1
  507. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  508. package/lib/network/reqresp/protocols.js.map +1 -1
  509. package/lib/network/reqresp/rateLimit.js.map +1 -1
  510. package/lib/network/reqresp/score.js.map +1 -1
  511. package/lib/network/reqresp/types.js +4 -2
  512. package/lib/network/reqresp/types.js.map +1 -1
  513. package/lib/network/reqresp/utils/collect.d.ts +1 -1
  514. package/lib/network/reqresp/utils/collect.js.map +1 -1
  515. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.d.ts +1 -1
  516. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.js +2 -1
  517. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.js.map +1 -1
  518. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts +1 -1
  519. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts.map +1 -1
  520. package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -1
  521. package/lib/network/statusCache.d.ts.map +1 -1
  522. package/lib/network/statusCache.js.map +1 -1
  523. package/lib/network/subnets/attnetsService.d.ts.map +1 -1
  524. package/lib/network/subnets/attnetsService.js +2 -1
  525. package/lib/network/subnets/attnetsService.js.map +1 -1
  526. package/lib/network/subnets/interface.js.map +1 -1
  527. package/lib/network/subnets/syncnetsService.d.ts.map +1 -1
  528. package/lib/network/subnets/syncnetsService.js.map +1 -1
  529. package/lib/network/subnets/util.js.map +1 -1
  530. package/lib/network/util.js.map +1 -1
  531. package/lib/node/nodejs.d.ts +2 -2
  532. package/lib/node/nodejs.d.ts.map +1 -1
  533. package/lib/node/nodejs.js +2 -1
  534. package/lib/node/nodejs.js.map +1 -1
  535. package/lib/node/notifier.js.map +1 -1
  536. package/lib/node/utils/interop/deposits.js.map +1 -1
  537. package/lib/node/utils/interop/state.d.ts +1 -1
  538. package/lib/node/utils/interop/state.d.ts.map +1 -1
  539. package/lib/node/utils/interop/state.js.map +1 -1
  540. package/lib/node/utils/lightclient.js.map +1 -1
  541. package/lib/node/utils/state.js.map +1 -1
  542. package/lib/sync/backfill/backfill.d.ts +1 -10
  543. package/lib/sync/backfill/backfill.d.ts.map +1 -1
  544. package/lib/sync/backfill/backfill.js +6 -3
  545. package/lib/sync/backfill/backfill.js.map +1 -1
  546. package/lib/sync/backfill/errors.js +2 -1
  547. package/lib/sync/backfill/errors.js.map +1 -1
  548. package/lib/sync/backfill/verify.js.map +1 -1
  549. package/lib/sync/interface.js +2 -1
  550. package/lib/sync/interface.js.map +1 -1
  551. package/lib/sync/range/batch.d.ts.map +1 -1
  552. package/lib/sync/range/batch.js +4 -2
  553. package/lib/sync/range/batch.js.map +1 -1
  554. package/lib/sync/range/chain.d.ts +0 -10
  555. package/lib/sync/range/chain.d.ts.map +1 -1
  556. package/lib/sync/range/chain.js +2 -1
  557. package/lib/sync/range/chain.js.map +1 -1
  558. package/lib/sync/range/range.d.ts +1 -3
  559. package/lib/sync/range/range.d.ts.map +1 -1
  560. package/lib/sync/range/range.js +4 -2
  561. package/lib/sync/range/range.js.map +1 -1
  562. package/lib/sync/range/utils/batches.js.map +1 -1
  563. package/lib/sync/range/utils/chainTarget.js.map +1 -1
  564. package/lib/sync/range/utils/hashBlocks.js.map +1 -1
  565. package/lib/sync/range/utils/peerBalancer.d.ts.map +1 -1
  566. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  567. package/lib/sync/range/utils/updateChains.js.map +1 -1
  568. package/lib/sync/sync.d.ts.map +1 -1
  569. package/lib/sync/sync.js.map +1 -1
  570. package/lib/sync/types.js +4 -2
  571. package/lib/sync/types.js.map +1 -1
  572. package/lib/sync/unknownBlock.d.ts +0 -14
  573. package/lib/sync/unknownBlock.d.ts.map +1 -1
  574. package/lib/sync/unknownBlock.js.map +1 -1
  575. package/lib/sync/utils/downloadByRange.d.ts +4 -4
  576. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  577. package/lib/sync/utils/downloadByRange.js +2 -1
  578. package/lib/sync/utils/downloadByRange.js.map +1 -1
  579. package/lib/sync/utils/downloadByRoot.d.ts +8 -8
  580. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  581. package/lib/sync/utils/downloadByRoot.js +2 -1
  582. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  583. package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
  584. package/lib/sync/utils/remoteSyncType.d.ts +1 -1
  585. package/lib/sync/utils/remoteSyncType.d.ts.map +1 -1
  586. package/lib/sync/utils/remoteSyncType.js +4 -2
  587. package/lib/sync/utils/remoteSyncType.js.map +1 -1
  588. package/lib/util/address.js.map +1 -1
  589. package/lib/util/array.d.ts.map +1 -1
  590. package/lib/util/array.js.map +1 -1
  591. package/lib/util/asyncIterableToEvents.d.ts.map +1 -1
  592. package/lib/util/asyncIterableToEvents.js +2 -1
  593. package/lib/util/asyncIterableToEvents.js.map +1 -1
  594. package/lib/util/binarySearch.d.ts.map +1 -1
  595. package/lib/util/binarySearch.js.map +1 -1
  596. package/lib/util/bitArray.js +2 -1
  597. package/lib/util/bitArray.js.map +1 -1
  598. package/lib/util/blobs.js.map +1 -1
  599. package/lib/util/bufferPool.d.ts.map +1 -1
  600. package/lib/util/bufferPool.js +2 -1
  601. package/lib/util/bufferPool.js.map +1 -1
  602. package/lib/util/chunkify.js.map +1 -1
  603. package/lib/util/clock.d.ts.map +1 -1
  604. package/lib/util/clock.js +2 -1
  605. package/lib/util/clock.js.map +1 -1
  606. package/lib/util/dataColumns.d.ts.map +1 -1
  607. package/lib/util/dataColumns.js +4 -2
  608. package/lib/util/dataColumns.js.map +1 -1
  609. package/lib/util/dependentRoot.js.map +1 -1
  610. package/lib/util/enum.js.map +1 -1
  611. package/lib/util/error.js.map +1 -1
  612. package/lib/util/eventLoop.js.map +1 -1
  613. package/lib/util/execution.js +2 -1
  614. package/lib/util/execution.js.map +1 -1
  615. package/lib/util/file.js.map +1 -1
  616. package/lib/util/forkChoice.js.map +1 -1
  617. package/lib/util/forkName.js.map +1 -1
  618. package/lib/util/graffiti.js.map +1 -1
  619. package/lib/util/hex.js.map +1 -1
  620. package/lib/util/ip.js.map +1 -1
  621. package/lib/util/itTrigger.d.ts.map +1 -1
  622. package/lib/util/itTrigger.js.map +1 -1
  623. package/lib/util/map.d.ts.map +1 -1
  624. package/lib/util/map.js.map +1 -1
  625. package/lib/util/metadata.js.map +1 -1
  626. package/lib/util/multifork.js.map +1 -1
  627. package/lib/util/numpy.js.map +1 -1
  628. package/lib/util/peerId.js.map +1 -1
  629. package/lib/util/profile.js +2 -1
  630. package/lib/util/profile.js.map +1 -1
  631. package/lib/util/promises.js.map +1 -1
  632. package/lib/util/queue/errors.js +2 -1
  633. package/lib/util/queue/errors.js.map +1 -1
  634. package/lib/util/queue/fnQueue.d.ts.map +1 -1
  635. package/lib/util/queue/fnQueue.js.map +1 -1
  636. package/lib/util/queue/itemQueue.d.ts.map +1 -1
  637. package/lib/util/queue/itemQueue.js.map +1 -1
  638. package/lib/util/queue/options.js +2 -1
  639. package/lib/util/queue/options.js.map +1 -1
  640. package/lib/util/serializedCache.d.ts +4 -4
  641. package/lib/util/serializedCache.d.ts.map +1 -1
  642. package/lib/util/serializedCache.js +6 -4
  643. package/lib/util/serializedCache.js.map +1 -1
  644. package/lib/util/set.d.ts.map +1 -1
  645. package/lib/util/set.js.map +1 -1
  646. package/lib/util/shuffle.js.map +1 -1
  647. package/lib/util/sortBy.js.map +1 -1
  648. package/lib/util/sszBytes.js.map +1 -1
  649. package/lib/util/time.js.map +1 -1
  650. package/lib/util/timeSeries.d.ts.map +1 -1
  651. package/lib/util/timeSeries.js.map +1 -1
  652. package/lib/util/types.d.ts.map +1 -1
  653. package/lib/util/workerEvents.d.ts +1 -1
  654. package/lib/util/workerEvents.d.ts.map +1 -1
  655. package/lib/util/workerEvents.js.map +1 -1
  656. package/lib/util/wrapError.js.map +1 -1
  657. package/package.json +28 -27
  658. package/src/chain/blocks/blockInput/blockInput.ts +35 -0
  659. package/src/chain/blocks/blockInput/types.ts +5 -0
  660. package/src/chain/blocks/writeBlockInputToDb.ts +1 -18
  661. package/src/chain/chain.ts +6 -6
  662. package/src/chain/errors/executionPayloadBid.ts +1 -1
  663. package/src/chain/errors/payloadAttestation.ts +1 -1
  664. package/src/chain/produceBlock/computeNewStateRoot.ts +4 -3
  665. package/src/chain/seenCache/seenGossipBlockInput.ts +40 -11
  666. package/src/chain/validation/attestation.ts +7 -3
  667. package/src/db/index.ts +1 -0
  668. package/src/metrics/metrics/lodestar.ts +18 -10
  669. package/src/network/discv5/utils.ts +5 -4
  670. package/src/network/gossip/gossipsub.ts +12 -7
  671. package/src/network/libp2p/index.ts +40 -18
  672. package/src/network/metadata.ts +1 -0
  673. package/src/network/network.ts +2 -1
  674. package/src/network/options.ts +5 -1
  675. package/src/network/peers/discover.ts +46 -11
  676. package/src/network/processor/gossipHandlers.ts +1 -1
  677. package/src/network/processor/gossipValidatorFn.ts +1 -1
  678. package/src/network/reqresp/ReqRespBeaconNode.ts +1 -1
  679. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +1 -1
  680. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +1 -1
  681. package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +1 -1
  682. package/src/network/reqresp/utils/collect.ts +1 -1
  683. package/src/network/reqresp/utils/collectSequentialBlocksInRange.ts +1 -1
  684. package/src/sync/utils/downloadByRoot.ts +1 -1
  685. package/src/sync/utils/remoteSyncType.ts +1 -1
  686. package/src/util/serializedCache.ts +7 -5
@@ -5,11 +5,12 @@ import {mdns} from "@libp2p/mdns";
5
5
  import {mplex} from "@libp2p/mplex";
6
6
  import {prometheusMetrics} from "@libp2p/prometheus-metrics";
7
7
  import {tcp} from "@libp2p/tcp";
8
- import {createLibp2p} from "libp2p";
8
+ import {Libp2pInit, createLibp2p} from "libp2p";
9
9
  import {Registry} from "prom-client";
10
10
  import {ENR} from "@chainsafe/enr";
11
11
  import {noise} from "@chainsafe/libp2p-noise";
12
12
  import {asCrypto, defaultCrypto} from "@chainsafe/libp2p-noise/crypto";
13
+ import {quic} from "@chainsafe/libp2p-quic";
13
14
  import {Libp2p, LodestarComponents} from "../interface.js";
14
15
  import {NetworkOptions, defaultNetworkOptions} from "../options.js";
15
16
  import {Eth2PeerDataStore} from "../peers/datastore.js";
@@ -21,11 +22,14 @@ export type NodeJsLibp2pOpts = {
21
22
  metricsRegistry?: Registry;
22
23
  };
23
24
 
24
- export async function getDiscv5Multiaddrs(bootEnrs: string[]): Promise<string[]> {
25
+ export async function getDiscv5Multiaddrs(bootEnrs: string[], quicEnabled?: boolean): Promise<string[]> {
25
26
  const bootMultiaddrs = [];
26
27
  for (const enrStr of bootEnrs) {
27
28
  const enr = ENR.decodeTxt(enrStr);
28
- const multiaddrWithPeerId = (await enr.getFullMultiaddr("tcp"))?.toString();
29
+ // Prefer QUIC over TCP when available
30
+ const quicMultiaddr = quicEnabled ? (await enr.getFullMultiaddr("quic"))?.toString() : undefined;
31
+ const tcpMultiaddr = (await enr.getFullMultiaddr("tcp"))?.toString();
32
+ const multiaddrWithPeerId = quicMultiaddr ?? tcpMultiaddr;
29
33
  if (multiaddrWithPeerId) {
30
34
  bootMultiaddrs.push(multiaddrWithPeerId);
31
35
  }
@@ -53,7 +57,9 @@ export async function createNodeJsLibp2p(
53
57
  const bootMultiaddrs = [
54
58
  ...(networkOpts.bootMultiaddrs ?? defaultNetworkOptions.bootMultiaddrs ?? []),
55
59
  // Append discv5.bootEnrs to bootMultiaddrs if requested
56
- ...(networkOpts.connectToDiscv5Bootnodes ? await getDiscv5Multiaddrs(networkOpts.discv5?.bootEnrs ?? []) : []),
60
+ ...(networkOpts.connectToDiscv5Bootnodes
61
+ ? await getDiscv5Multiaddrs(networkOpts.discv5?.bootEnrs ?? [], networkOpts.quic)
62
+ : []),
57
63
  ];
58
64
 
59
65
  if ((bootMultiaddrs.length ?? 0) > 0) {
@@ -64,6 +70,35 @@ export async function createNodeJsLibp2p(
64
70
  peerDiscovery.push(mdns());
65
71
  }
66
72
  }
73
+ const transports: Libp2pInit["transports"] = [];
74
+ if (networkOpts.tcp ?? true) {
75
+ transports.unshift(
76
+ tcp({
77
+ // Reject connections when the server's connection count gets high
78
+ maxConnections: networkOpts.maxPeers,
79
+ // socket option: the maximum length of the queue of pending connections
80
+ // https://nodejs.org/dist/latest-v18.x/docs/api/net.html#serverlisten
81
+ // it's not safe if we increase this number
82
+ backlog: 5,
83
+ closeServerOnMaxConnections: {
84
+ closeAbove: networkOpts.maxPeers ?? Infinity,
85
+ listenBelow: networkOpts.maxPeers ?? Infinity,
86
+ },
87
+ })
88
+ );
89
+ }
90
+ if (networkOpts.quic) {
91
+ transports.unshift(
92
+ quic({
93
+ handshakeTimeout: 5_000,
94
+ maxIdleTimeout: 10_000,
95
+ keepAliveInterval: 5_000,
96
+ maxConcurrentStreamLimit: 256,
97
+ maxStreamData: 10_000_000,
98
+ maxConnectionData: 15_000_000,
99
+ })
100
+ );
101
+ }
67
102
 
68
103
  const noiseCrypto = {
69
104
  ...defaultCrypto,
@@ -85,20 +120,7 @@ export async function createNodeJsLibp2p(
85
120
  announce: [],
86
121
  },
87
122
  connectionEncrypters: [noise({crypto: noiseCrypto})],
88
- // Reject connections when the server's connection count gets high
89
- transports: [
90
- tcp({
91
- maxConnections: networkOpts.maxPeers,
92
- // socket option: the maximum length of the queue of pending connections
93
- // https://nodejs.org/dist/latest-v18.x/docs/api/net.html#serverlisten
94
- // it's not safe if we increase this number
95
- backlog: 5,
96
- closeServerOnMaxConnections: {
97
- closeAbove: networkOpts.maxPeers ?? Infinity,
98
- listenBelow: networkOpts.maxPeers ?? Infinity,
99
- },
100
- }),
101
- ],
123
+ transports,
102
124
  streamMuxers: [mplex({disconnectThreshold})],
103
125
  peerDiscovery,
104
126
  metrics: nodeJsLibp2pOpts.metrics
@@ -11,6 +11,7 @@ import {NetworkConfig} from "./networkConfig.js";
11
11
 
12
12
  export enum ENRKey {
13
13
  tcp = "tcp",
14
+ quic = "quic",
14
15
  eth2 = "eth2",
15
16
  attnets = "attnets",
16
17
  syncnets = "syncnets",
@@ -539,7 +539,8 @@ export class Network implements INetwork {
539
539
  this.config.getForkSeq(this.clock.currentSlot) >= ForkSeq.altair ? [Version.V2] : [Version.V2, Version.V1],
540
540
  request
541
541
  ),
542
- request
542
+ request,
543
+ this.chain.serializedCache
543
544
  );
544
545
  }
545
546
 
@@ -29,7 +29,6 @@ export interface NetworkOptions
29
29
  useWorker?: boolean;
30
30
  maxYoungGenerationSizeMb?: number;
31
31
  disableLightClientServer?: boolean;
32
-
33
32
  /**
34
33
  * During E2E tests observe a lot of following `missing stream`:
35
34
  *
@@ -48,11 +47,14 @@ export interface NetworkOptions
48
47
  * We need to increase this only for the testing purpose
49
48
  */
50
49
  disconnectThreshold?: number;
50
+ quic?: boolean;
51
+ tcp?: boolean;
51
52
  }
52
53
 
53
54
  export const defaultNetworkOptions: NetworkOptions = {
54
55
  maxPeers: 210, // Allow some room above targetPeers for new inbound peers
55
56
  targetPeers: 200,
57
+ // In CLI usage this is typically overridden; when unset it serves as a fallback default (e.g. programmatic usage/tests)
56
58
  localMultiaddrs: ["/ip4/0.0.0.0/tcp/9000", "/ip6/::/tcp/9000"],
57
59
  bootMultiaddrs: [],
58
60
  /** disabled by default */
@@ -67,6 +69,8 @@ export const defaultNetworkOptions: NetworkOptions = {
67
69
  slotsToSubscribeBeforeAggregatorDuty: 2,
68
70
  // This will enable the light client server by default
69
71
  disableLightClientServer: false,
72
+ quic: false,
73
+ tcp: true,
70
74
  // specific option for fulu
71
75
  // - this is the same to TARGET_SUBNET_PEERS
72
76
  // - for fusaka-devnets, we have 25-30 peers per subnet
@@ -59,6 +59,7 @@ export enum DiscoveredPeerStatus {
59
59
  cached = "cached",
60
60
  dropped = "dropped",
61
61
  no_multiaddrs = "no_multiaddrs",
62
+ transport_incompatible = "transport_incompatible",
62
63
  peer_cooling_down = "peer_cooling_down",
63
64
  }
64
65
 
@@ -88,7 +89,8 @@ export type SubnetDiscvQueryMs = {
88
89
 
89
90
  type CachedENR = {
90
91
  peerId: PeerId;
91
- multiaddrTCP: Multiaddr;
92
+ multiaddrTCP?: Multiaddr;
93
+ multiaddrQUIC?: Multiaddr;
92
94
  subnets: Record<SubnetType, boolean[]>;
93
95
  addedUnixMs: number;
94
96
  // custodyGroups is null for pre-fulu
@@ -114,6 +116,7 @@ export class PeerDiscovery {
114
116
  attnets: new Map(),
115
117
  syncnets: new Map(),
116
118
  };
119
+ private transports: string[];
117
120
 
118
121
  private custodyGroupQueries: CustodyGroupQueries;
119
122
 
@@ -180,6 +183,17 @@ export class PeerDiscovery {
180
183
  }
181
184
  });
182
185
  }
186
+
187
+ // Transport tags vary by library: @libp2p/tcp uses '@libp2p/tcp', @chainsafe/libp2p-quic uses 'quic'
188
+ // Normalize to simple 'tcp' / 'quic' strings for matching
189
+ this.transports = libp2p.services.components.transportManager
190
+ .getTransports()
191
+ .map((t) => t[Symbol.toStringTag])
192
+ .map((tag) => {
193
+ if (tag?.includes("tcp")) return "tcp";
194
+ if (tag?.includes("quic")) return "quic";
195
+ return tag;
196
+ });
183
197
  }
184
198
 
185
199
  static async init(modules: PeerDiscoveryModules, opts: PeerDiscoveryOpts): Promise<PeerDiscovery> {
@@ -372,10 +386,15 @@ export class PeerDiscovery {
372
386
  return;
373
387
  }
374
388
 
389
+ // Select multiaddrs by protocol rather than index — libp2p discovery events
390
+ // don't guarantee ordering or number of addresses
391
+ const multiaddrTCP = multiaddrs.find((ma) => ma.toString().includes("/tcp/"));
392
+ const multiaddrQUIC = multiaddrs.find((ma) => ma.toString().includes("/quic-v1"));
393
+
375
394
  const attnets = zeroAttnets;
376
395
  const syncnets = zeroSyncnets;
377
396
 
378
- const status = this.handleDiscoveredPeer(id, multiaddrs[0], attnets, syncnets, undefined);
397
+ const status = this.handleDiscoveredPeer(id, multiaddrTCP, multiaddrQUIC, attnets, syncnets, undefined);
379
398
  this.logger.debug("Discovered peer via libp2p", {peer: prettyPrintPeerId(id), status});
380
399
  this.metrics?.discovery.discoveredStatus.inc({status});
381
400
  };
@@ -388,13 +407,15 @@ export class PeerDiscovery {
388
407
  this.randomNodeQuery.count++;
389
408
  }
390
409
  const peerId = enr.peerId;
391
- // tcp multiaddr is known to be be present, checked inside the worker
410
+ // At least one transport is known to be present, checked inside the worker
392
411
  const multiaddrTCP = enr.getLocationMultiaddr(ENRKey.tcp);
393
- if (!multiaddrTCP) {
394
- this.logger.warn("Discv5 worker sent enr without tcp multiaddr", {enr: enr.encodeTxt()});
412
+ const multiaddrQUIC = enr.getLocationMultiaddr(ENRKey.quic);
413
+ if (!multiaddrTCP && !multiaddrQUIC) {
414
+ this.logger.warn("Discv5 worker sent enr without any transport multiaddr", {enr: enr.encodeTxt()});
395
415
  this.metrics?.discovery.discoveredStatus.inc({status: DiscoveredPeerStatus.no_multiaddrs});
396
416
  return;
397
417
  }
418
+
398
419
  // Are this fields mandatory?
399
420
  const attnetsBytes = enr.kvs.get(ENRKey.attnets); // 64 bits
400
421
  const syncnetsBytes = enr.kvs.get(ENRKey.syncnets); // 4 bits
@@ -414,7 +435,7 @@ export class PeerDiscovery {
414
435
  const syncnets = syncnetsBytes ? deserializeEnrSubnets(syncnetsBytes, SYNC_COMMITTEE_SUBNET_COUNT) : zeroSyncnets;
415
436
  const custodyGroupCount = custodyGroupCountBytes ? bytesToInt(custodyGroupCountBytes, "be") : undefined;
416
437
 
417
- const status = this.handleDiscoveredPeer(peerId, multiaddrTCP, attnets, syncnets, custodyGroupCount);
438
+ const status = this.handleDiscoveredPeer(peerId, multiaddrTCP, multiaddrQUIC, attnets, syncnets, custodyGroupCount);
418
439
  this.logger.debug("Discovered peer via discv5", {
419
440
  peer: prettyPrintPeerId(peerId),
420
441
  status,
@@ -428,7 +449,8 @@ export class PeerDiscovery {
428
449
  */
429
450
  private handleDiscoveredPeer(
430
451
  peerId: PeerId,
431
- multiaddrTCP: Multiaddr,
452
+ multiaddrTCP: Multiaddr | undefined,
453
+ multiaddrQUIC: Multiaddr | undefined,
432
454
  attnets: boolean[],
433
455
  syncnets: boolean[],
434
456
  custodySubnetCount?: number
@@ -454,6 +476,13 @@ export class PeerDiscovery {
454
476
  return DiscoveredPeerStatus.already_connected;
455
477
  }
456
478
 
479
+ // ignore peers if they don't share any transport with us
480
+ const hasTcpMatch = this.transports.includes("tcp") && multiaddrTCP;
481
+ const hasQuicMatch = this.transports.includes("quic") && multiaddrQUIC;
482
+ if (!hasTcpMatch && !hasQuicMatch) {
483
+ return DiscoveredPeerStatus.transport_incompatible;
484
+ }
485
+
457
486
  // Ignore dialing peers
458
487
  if (
459
488
  this.libp2p.services.components.connectionManager
@@ -469,6 +498,7 @@ export class PeerDiscovery {
469
498
  const cachedPeer: CachedENR = {
470
499
  peerId,
471
500
  multiaddrTCP,
501
+ multiaddrQUIC,
472
502
  subnets: {attnets, syncnets},
473
503
  addedUnixMs: Date.now(),
474
504
  // for pre-fulu, custodyGroups is null
@@ -566,19 +596,24 @@ export class PeerDiscovery {
566
596
  // are not successful.
567
597
  this.peersToConnect = Math.max(this.peersToConnect - 1, 0);
568
598
 
569
- const {peerId, multiaddrTCP} = cachedPeer;
599
+ const {peerId, multiaddrTCP, multiaddrQUIC} = cachedPeer;
570
600
 
571
601
  // Must add the multiaddrs array to the address book before dialing
572
602
  // https://github.com/libp2p/js-libp2p/blob/aec8e3d3bb1b245051b60c2a890550d262d5b062/src/index.js#L638
573
- const peer = await this.libp2p.peerStore.merge(peerId, {multiaddrs: [multiaddrTCP]});
603
+ const peer = await this.libp2p.peerStore.merge(peerId, {
604
+ multiaddrs: [multiaddrQUIC, multiaddrTCP].filter(Boolean) as Multiaddr[],
605
+ });
574
606
  if (peer.addresses.length === 0) {
575
607
  this.metrics?.discovery.notDialReason.inc({reason: NotDialReason.no_multiaddrs});
576
608
  return;
577
609
  }
578
610
 
579
- // Note: PeerDiscovery adds the multiaddrTCP beforehand
611
+ // Note: PeerDiscovery adds the multiaddrs beforehand
580
612
  const peerIdShort = prettyPrintPeerId(peerId);
581
- this.logger.debug("Dialing discovered peer", {peer: peerIdShort});
613
+ this.logger.debug("Dialing discovered peer", {
614
+ peer: peerIdShort,
615
+ addresses: peer.addresses.map((a) => a.multiaddr.toString()).join(", "),
616
+ });
582
617
 
583
618
  this.metrics?.discovery.dialAttempts.inc();
584
619
  const timer = this.metrics?.discovery.dialTime.startTimer();
@@ -71,7 +71,7 @@ import {validateGossipPayloadAttestationMessage} from "../../chain/validation/pa
71
71
  import {OpSource} from "../../chain/validatorMonitor.js";
72
72
  import {Metrics} from "../../metrics/index.js";
73
73
  import {kzgCommitmentToVersionedHash} from "../../util/blobs.js";
74
- import {getBlobKzgCommitments} from "../../util/dataColumns.ts";
74
+ import {getBlobKzgCommitments} from "../../util/dataColumns.js";
75
75
  import {INetworkCore} from "../core/index.js";
76
76
  import {NetworkEventBus} from "../events.js";
77
77
  import {
@@ -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;
@@ -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
 
@@ -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,
@@ -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,
@@ -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
 
@@ -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";
@@ -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 */
@@ -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
  }