@lodestar/beacon-node 1.41.0-dev.c8abf8f187 → 1.41.0-dev.cfc5790a15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (882) hide show
  1. package/lib/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 +123 -4
  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 +3 -4
  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 +6 -2
  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 +134 -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 +1 -0
  64. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  65. package/lib/chain/archiveStore/archiveStore.js +11 -1
  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.js +2 -1
  79. package/lib/chain/archiveStore/interface.js.map +1 -1
  80. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts +1 -1
  81. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.d.ts.map +1 -1
  82. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js +2 -1
  83. package/lib/chain/archiveStore/strategies/frequencyStateArchiveStrategy.js.map +1 -1
  84. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts +3 -8
  85. package/lib/chain/archiveStore/utils/archiveBlocks.d.ts.map +1 -1
  86. package/lib/chain/archiveStore/utils/archiveBlocks.js +1 -1
  87. package/lib/chain/archiveStore/utils/archiveBlocks.js.map +1 -1
  88. package/lib/chain/archiveStore/utils/archivePayloads.d.ts +7 -0
  89. package/lib/chain/archiveStore/utils/archivePayloads.d.ts.map +1 -0
  90. package/lib/chain/archiveStore/utils/archivePayloads.js +10 -0
  91. package/lib/chain/archiveStore/utils/archivePayloads.js.map +1 -0
  92. package/lib/chain/archiveStore/utils/pruneHistory.js.map +1 -1
  93. package/lib/chain/archiveStore/utils/updateBackfillRange.js +1 -1
  94. package/lib/chain/archiveStore/utils/updateBackfillRange.js.map +1 -1
  95. package/lib/chain/balancesCache.d.ts.map +1 -1
  96. package/lib/chain/balancesCache.js.map +1 -1
  97. package/lib/chain/beaconProposerCache.d.ts.map +1 -1
  98. package/lib/chain/beaconProposerCache.js.map +1 -1
  99. package/lib/chain/blocks/blockInput/blockInput.d.ts +25 -2
  100. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  101. package/lib/chain/blocks/blockInput/blockInput.js +71 -0
  102. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  103. package/lib/chain/blocks/blockInput/errors.js +2 -1
  104. package/lib/chain/blocks/blockInput/errors.js.map +1 -1
  105. package/lib/chain/blocks/blockInput/types.d.ts +18 -1
  106. package/lib/chain/blocks/blockInput/types.d.ts.map +1 -1
  107. package/lib/chain/blocks/blockInput/types.js +5 -2
  108. package/lib/chain/blocks/blockInput/types.js.map +1 -1
  109. package/lib/chain/blocks/blockInput/utils.js.map +1 -1
  110. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  111. package/lib/chain/blocks/importBlock.js +27 -4
  112. package/lib/chain/blocks/importBlock.js.map +1 -1
  113. package/lib/chain/blocks/index.d.ts.map +1 -1
  114. package/lib/chain/blocks/index.js +2 -1
  115. package/lib/chain/blocks/index.js.map +1 -1
  116. package/lib/chain/blocks/types.js +6 -3
  117. package/lib/chain/blocks/types.js.map +1 -1
  118. package/lib/chain/blocks/utils/chainSegment.js.map +1 -1
  119. package/lib/chain/blocks/utils/checkpoint.js.map +1 -1
  120. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  121. package/lib/chain/blocks/verifyBlocksDataAvailability.d.ts.map +1 -1
  122. package/lib/chain/blocks/verifyBlocksDataAvailability.js +3 -0
  123. package/lib/chain/blocks/verifyBlocksDataAvailability.js.map +1 -1
  124. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts +4 -0
  125. package/lib/chain/blocks/verifyBlocksExecutionPayloads.d.ts.map +1 -1
  126. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js +5 -1
  127. package/lib/chain/blocks/verifyBlocksExecutionPayloads.js.map +1 -1
  128. package/lib/chain/blocks/verifyBlocksSanityChecks.d.ts.map +1 -1
  129. package/lib/chain/blocks/verifyBlocksSanityChecks.js +4 -1
  130. package/lib/chain/blocks/verifyBlocksSanityChecks.js.map +1 -1
  131. package/lib/chain/blocks/verifyBlocksSignatures.js.map +1 -1
  132. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  133. package/lib/chain/blocks/writeBlockInputToDb.d.ts +12 -3
  134. package/lib/chain/blocks/writeBlockInputToDb.d.ts.map +1 -1
  135. package/lib/chain/blocks/writeBlockInputToDb.js +92 -98
  136. package/lib/chain/blocks/writeBlockInputToDb.js.map +1 -1
  137. package/lib/chain/bls/maybeBatch.js.map +1 -1
  138. package/lib/chain/bls/multithread/index.d.ts +3 -3
  139. package/lib/chain/bls/multithread/index.d.ts.map +1 -1
  140. package/lib/chain/bls/multithread/index.js +5 -5
  141. package/lib/chain/bls/multithread/index.js.map +1 -1
  142. package/lib/chain/bls/multithread/jobItem.d.ts +2 -2
  143. package/lib/chain/bls/multithread/jobItem.d.ts.map +1 -1
  144. package/lib/chain/bls/multithread/jobItem.js +4 -3
  145. package/lib/chain/bls/multithread/jobItem.js.map +1 -1
  146. package/lib/chain/bls/multithread/types.js +2 -1
  147. package/lib/chain/bls/multithread/types.js.map +1 -1
  148. package/lib/chain/bls/multithread/utils.js.map +1 -1
  149. package/lib/chain/bls/multithread/worker.js.map +1 -1
  150. package/lib/chain/bls/singleThread.d.ts +4 -4
  151. package/lib/chain/bls/singleThread.d.ts.map +1 -1
  152. package/lib/chain/bls/singleThread.js +4 -4
  153. package/lib/chain/bls/singleThread.js.map +1 -1
  154. package/lib/chain/bls/utils.d.ts +2 -2
  155. package/lib/chain/bls/utils.d.ts.map +1 -1
  156. package/lib/chain/bls/utils.js +7 -4
  157. package/lib/chain/bls/utils.js.map +1 -1
  158. package/lib/chain/chain.d.ts +9 -12
  159. package/lib/chain/chain.d.ts.map +1 -1
  160. package/lib/chain/chain.js +45 -28
  161. package/lib/chain/chain.js.map +1 -1
  162. package/lib/chain/emitter.d.ts +6 -8
  163. package/lib/chain/emitter.d.ts.map +1 -1
  164. package/lib/chain/emitter.js +2 -1
  165. package/lib/chain/emitter.js.map +1 -1
  166. package/lib/chain/errors/attestationError.d.ts.map +1 -1
  167. package/lib/chain/errors/attestationError.js +2 -1
  168. package/lib/chain/errors/attestationError.js.map +1 -1
  169. package/lib/chain/errors/attesterSlashingError.js +2 -1
  170. package/lib/chain/errors/attesterSlashingError.js.map +1 -1
  171. package/lib/chain/errors/blobSidecarError.js +2 -1
  172. package/lib/chain/errors/blobSidecarError.js.map +1 -1
  173. package/lib/chain/errors/blockError.d.ts.map +1 -1
  174. package/lib/chain/errors/blockError.js +2 -1
  175. package/lib/chain/errors/blockError.js.map +1 -1
  176. package/lib/chain/errors/blsToExecutionChangeError.js +2 -1
  177. package/lib/chain/errors/blsToExecutionChangeError.js.map +1 -1
  178. package/lib/chain/errors/dataColumnSidecarError.js +2 -1
  179. package/lib/chain/errors/dataColumnSidecarError.js.map +1 -1
  180. package/lib/chain/errors/executionPayloadBid.d.ts +1 -1
  181. package/lib/chain/errors/executionPayloadBid.js +2 -1
  182. package/lib/chain/errors/executionPayloadBid.js.map +1 -1
  183. package/lib/chain/errors/executionPayloadEnvelope.d.ts +2 -2
  184. package/lib/chain/errors/executionPayloadEnvelope.d.ts.map +1 -1
  185. package/lib/chain/errors/executionPayloadEnvelope.js +2 -1
  186. package/lib/chain/errors/executionPayloadEnvelope.js.map +1 -1
  187. package/lib/chain/errors/gossipValidation.d.ts.map +1 -1
  188. package/lib/chain/errors/gossipValidation.js +4 -2
  189. package/lib/chain/errors/gossipValidation.js.map +1 -1
  190. package/lib/chain/errors/lightClientError.js +4 -2
  191. package/lib/chain/errors/lightClientError.js.map +1 -1
  192. package/lib/chain/errors/payloadAttestation.d.ts +1 -1
  193. package/lib/chain/errors/payloadAttestation.js +2 -1
  194. package/lib/chain/errors/payloadAttestation.js.map +1 -1
  195. package/lib/chain/errors/proposerSlashingError.js +2 -1
  196. package/lib/chain/errors/proposerSlashingError.js.map +1 -1
  197. package/lib/chain/errors/syncCommitteeError.js +2 -1
  198. package/lib/chain/errors/syncCommitteeError.js.map +1 -1
  199. package/lib/chain/errors/voluntaryExitError.js +2 -1
  200. package/lib/chain/errors/voluntaryExitError.js.map +1 -1
  201. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  202. package/lib/chain/forkChoice/index.js +32 -25
  203. package/lib/chain/forkChoice/index.js.map +1 -1
  204. package/lib/chain/initState.d.ts +1 -1
  205. package/lib/chain/initState.d.ts.map +1 -1
  206. package/lib/chain/initState.js.map +1 -1
  207. package/lib/chain/interface.d.ts +4 -6
  208. package/lib/chain/interface.d.ts.map +1 -1
  209. package/lib/chain/interface.js +2 -1
  210. package/lib/chain/interface.js.map +1 -1
  211. package/lib/chain/lightClient/index.d.ts +0 -29
  212. package/lib/chain/lightClient/index.d.ts.map +1 -1
  213. package/lib/chain/lightClient/index.js.map +1 -1
  214. package/lib/chain/lightClient/proofs.js.map +1 -1
  215. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  216. package/lib/chain/opPools/aggregatedAttestationPool.js +5 -3
  217. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  218. package/lib/chain/opPools/attestationPool.d.ts.map +1 -1
  219. package/lib/chain/opPools/attestationPool.js.map +1 -1
  220. package/lib/chain/opPools/executionPayloadBidPool.d.ts.map +1 -1
  221. package/lib/chain/opPools/executionPayloadBidPool.js.map +1 -1
  222. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  223. package/lib/chain/opPools/opPool.js.map +1 -1
  224. package/lib/chain/opPools/payloadAttestationPool.d.ts.map +1 -1
  225. package/lib/chain/opPools/payloadAttestationPool.js.map +1 -1
  226. package/lib/chain/opPools/syncCommitteeMessagePool.d.ts.map +1 -1
  227. package/lib/chain/opPools/syncCommitteeMessagePool.js.map +1 -1
  228. package/lib/chain/opPools/syncContributionAndProofPool.d.ts.map +1 -1
  229. package/lib/chain/opPools/syncContributionAndProofPool.js.map +1 -1
  230. package/lib/chain/opPools/types.js +4 -2
  231. package/lib/chain/opPools/types.js.map +1 -1
  232. package/lib/chain/opPools/utils.js.map +1 -1
  233. package/lib/chain/options.d.ts.map +1 -1
  234. package/lib/chain/options.js.map +1 -1
  235. package/lib/chain/prepareNextSlot.d.ts +1 -2
  236. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  237. package/lib/chain/prepareNextSlot.js +3 -3
  238. package/lib/chain/prepareNextSlot.js.map +1 -1
  239. package/lib/chain/produceBlock/computeNewStateRoot.d.ts +9 -2
  240. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  241. package/lib/chain/produceBlock/computeNewStateRoot.js +25 -2
  242. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  243. package/lib/chain/produceBlock/produceBlockBody.d.ts +23 -8
  244. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  245. package/lib/chain/produceBlock/produceBlockBody.js +115 -13
  246. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  247. package/lib/chain/produceBlock/validateBlobsAndKzgCommitments.js.map +1 -1
  248. package/lib/chain/regen/errors.d.ts.map +1 -1
  249. package/lib/chain/regen/errors.js +2 -1
  250. package/lib/chain/regen/errors.js.map +1 -1
  251. package/lib/chain/regen/interface.js +4 -2
  252. package/lib/chain/regen/interface.js.map +1 -1
  253. package/lib/chain/regen/queued.d.ts.map +1 -1
  254. package/lib/chain/regen/queued.js +4 -1
  255. package/lib/chain/regen/queued.js.map +1 -1
  256. package/lib/chain/regen/regen.d.ts.map +1 -1
  257. package/lib/chain/regen/regen.js +6 -2
  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 +36 -15
  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.map +1 -1
  291. package/lib/chain/stateCache/datastore/db.js.map +1 -1
  292. package/lib/chain/stateCache/datastore/file.d.ts.map +1 -1
  293. package/lib/chain/stateCache/datastore/file.js.map +1 -1
  294. package/lib/chain/stateCache/fifoBlockStateCache.d.ts.map +1 -1
  295. package/lib/chain/stateCache/fifoBlockStateCache.js.map +1 -1
  296. package/lib/chain/stateCache/mapMetrics.d.ts.map +1 -1
  297. package/lib/chain/stateCache/mapMetrics.js.map +1 -1
  298. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts +1 -41
  299. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  300. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  301. package/lib/chain/stateCache/types.js +2 -1
  302. package/lib/chain/stateCache/types.js.map +1 -1
  303. package/lib/chain/validation/aggregateAndProof.js +1 -1
  304. package/lib/chain/validation/aggregateAndProof.js.map +1 -1
  305. package/lib/chain/validation/attestation.d.ts.map +1 -1
  306. package/lib/chain/validation/attestation.js +7 -4
  307. package/lib/chain/validation/attestation.js.map +1 -1
  308. package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
  309. package/lib/chain/validation/attesterSlashing.js +9 -2
  310. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  311. package/lib/chain/validation/blobSidecar.js +2 -2
  312. package/lib/chain/validation/blobSidecar.js.map +1 -1
  313. package/lib/chain/validation/block.d.ts.map +1 -1
  314. package/lib/chain/validation/block.js +6 -3
  315. package/lib/chain/validation/block.js.map +1 -1
  316. package/lib/chain/validation/blsToExecutionChange.js.map +1 -1
  317. package/lib/chain/validation/dataColumnSidecar.d.ts +2 -2
  318. package/lib/chain/validation/dataColumnSidecar.d.ts.map +1 -1
  319. package/lib/chain/validation/dataColumnSidecar.js +1 -1
  320. package/lib/chain/validation/dataColumnSidecar.js.map +1 -1
  321. package/lib/chain/validation/executionPayloadBid.js +1 -2
  322. package/lib/chain/validation/executionPayloadBid.js.map +1 -1
  323. package/lib/chain/validation/executionPayloadEnvelope.js +4 -4
  324. package/lib/chain/validation/executionPayloadEnvelope.js.map +1 -1
  325. package/lib/chain/validation/lightClientFinalityUpdate.js.map +1 -1
  326. package/lib/chain/validation/lightClientOptimisticUpdate.js.map +1 -1
  327. package/lib/chain/validation/payloadAttestationMessage.js +9 -3
  328. package/lib/chain/validation/payloadAttestationMessage.js.map +1 -1
  329. package/lib/chain/validation/proposerSlashing.js +1 -1
  330. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  331. package/lib/chain/validation/signatureSets/aggregateAndProof.js.map +1 -1
  332. package/lib/chain/validation/signatureSets/contributionAndProof.js.map +1 -1
  333. package/lib/chain/validation/signatureSets/selectionProof.js.map +1 -1
  334. package/lib/chain/validation/signatureSets/syncCommittee.js.map +1 -1
  335. package/lib/chain/validation/signatureSets/syncCommitteeContribution.js.map +1 -1
  336. package/lib/chain/validation/signatureSets/syncCommitteeSelectionProof.js.map +1 -1
  337. package/lib/chain/validation/syncCommittee.js.map +1 -1
  338. package/lib/chain/validation/syncCommitteeContributionAndProof.js +1 -1
  339. package/lib/chain/validation/syncCommitteeContributionAndProof.js.map +1 -1
  340. package/lib/chain/validation/voluntaryExit.js.map +1 -1
  341. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  342. package/lib/chain/validatorMonitor.js +2 -1
  343. package/lib/chain/validatorMonitor.js.map +1 -1
  344. package/lib/constants/network.js +4 -2
  345. package/lib/constants/network.js.map +1 -1
  346. package/lib/db/beacon.d.ts +3 -1
  347. package/lib/db/beacon.d.ts.map +1 -1
  348. package/lib/db/beacon.js +5 -1
  349. package/lib/db/beacon.js.map +1 -1
  350. package/lib/db/buckets.d.ts +24 -22
  351. package/lib/db/buckets.d.ts.map +1 -1
  352. package/lib/db/buckets.js +4 -1
  353. package/lib/db/buckets.js.map +1 -1
  354. package/lib/db/index.d.ts +1 -0
  355. package/lib/db/index.d.ts.map +1 -1
  356. package/lib/db/index.js +1 -0
  357. package/lib/db/index.js.map +1 -1
  358. package/lib/db/interface.d.ts +3 -1
  359. package/lib/db/interface.d.ts.map +1 -1
  360. package/lib/db/repositories/attesterSlashing.d.ts.map +1 -1
  361. package/lib/db/repositories/attesterSlashing.js.map +1 -1
  362. package/lib/db/repositories/backfilledRanges.d.ts.map +1 -1
  363. package/lib/db/repositories/backfilledRanges.js.map +1 -1
  364. package/lib/db/repositories/blobSidecars.d.ts.map +1 -1
  365. package/lib/db/repositories/blobSidecars.js.map +1 -1
  366. package/lib/db/repositories/blobSidecarsArchive.d.ts.map +1 -1
  367. package/lib/db/repositories/blobSidecarsArchive.js.map +1 -1
  368. package/lib/db/repositories/block.d.ts.map +1 -1
  369. package/lib/db/repositories/block.js.map +1 -1
  370. package/lib/db/repositories/blockArchive.d.ts.map +1 -1
  371. package/lib/db/repositories/blockArchive.js +1 -2
  372. package/lib/db/repositories/blockArchive.js.map +1 -1
  373. package/lib/db/repositories/blockArchiveIndex.d.ts +2 -2
  374. package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
  375. package/lib/db/repositories/blockArchiveIndex.js.map +1 -1
  376. package/lib/db/repositories/blsToExecutionChange.d.ts.map +1 -1
  377. package/lib/db/repositories/blsToExecutionChange.js.map +1 -1
  378. package/lib/db/repositories/checkpointState.d.ts.map +1 -1
  379. package/lib/db/repositories/checkpointState.js.map +1 -1
  380. package/lib/db/repositories/dataColumnSidecar.d.ts +5 -3
  381. package/lib/db/repositories/dataColumnSidecar.d.ts.map +1 -1
  382. package/lib/db/repositories/dataColumnSidecar.js +14 -1
  383. package/lib/db/repositories/dataColumnSidecar.js.map +1 -1
  384. package/lib/db/repositories/dataColumnSidecarArchive.d.ts +5 -3
  385. package/lib/db/repositories/dataColumnSidecarArchive.d.ts.map +1 -1
  386. package/lib/db/repositories/dataColumnSidecarArchive.js +14 -1
  387. package/lib/db/repositories/dataColumnSidecarArchive.js.map +1 -1
  388. package/lib/db/repositories/executionPayloadEnvelope.d.ts +19 -0
  389. package/lib/db/repositories/executionPayloadEnvelope.d.ts.map +1 -0
  390. package/lib/db/repositories/executionPayloadEnvelope.js +22 -0
  391. package/lib/db/repositories/executionPayloadEnvelope.js.map +1 -0
  392. package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts +18 -0
  393. package/lib/db/repositories/executionPayloadEnvelopeArchive.d.ts.map +1 -0
  394. package/lib/db/repositories/executionPayloadEnvelopeArchive.js +28 -0
  395. package/lib/db/repositories/executionPayloadEnvelopeArchive.js.map +1 -0
  396. package/lib/db/repositories/index.d.ts +2 -0
  397. package/lib/db/repositories/index.d.ts.map +1 -1
  398. package/lib/db/repositories/index.js +2 -0
  399. package/lib/db/repositories/index.js.map +1 -1
  400. package/lib/db/repositories/lightclientBestUpdate.d.ts.map +1 -1
  401. package/lib/db/repositories/lightclientBestUpdate.js.map +1 -1
  402. package/lib/db/repositories/lightclientCheckpointHeader.d.ts.map +1 -1
  403. package/lib/db/repositories/lightclientCheckpointHeader.js.map +1 -1
  404. package/lib/db/repositories/lightclientSyncCommittee.d.ts.map +1 -1
  405. package/lib/db/repositories/lightclientSyncCommittee.js.map +1 -1
  406. package/lib/db/repositories/lightclientSyncCommitteeWitness.d.ts.map +1 -1
  407. package/lib/db/repositories/lightclientSyncCommitteeWitness.js.map +1 -1
  408. package/lib/db/repositories/proposerSlashing.d.ts.map +1 -1
  409. package/lib/db/repositories/proposerSlashing.js.map +1 -1
  410. package/lib/db/repositories/stateArchive.d.ts.map +1 -1
  411. package/lib/db/repositories/stateArchive.js.map +1 -1
  412. package/lib/db/repositories/stateArchiveIndex.js.map +1 -1
  413. package/lib/db/repositories/voluntaryExit.d.ts.map +1 -1
  414. package/lib/db/repositories/voluntaryExit.js.map +1 -1
  415. package/lib/execution/builder/cache.d.ts.map +1 -1
  416. package/lib/execution/builder/cache.js.map +1 -1
  417. package/lib/execution/builder/http.d.ts.map +1 -1
  418. package/lib/execution/builder/http.js +2 -1
  419. package/lib/execution/builder/http.js.map +1 -1
  420. package/lib/execution/builder/index.js.map +1 -1
  421. package/lib/execution/builder/utils.js.map +1 -1
  422. package/lib/execution/engine/disabled.d.ts.map +1 -1
  423. package/lib/execution/engine/disabled.js.map +1 -1
  424. package/lib/execution/engine/http.d.ts +1 -0
  425. package/lib/execution/engine/http.d.ts.map +1 -1
  426. package/lib/execution/engine/http.js +3 -0
  427. package/lib/execution/engine/http.js.map +1 -1
  428. package/lib/execution/engine/index.js.map +1 -1
  429. package/lib/execution/engine/interface.js +4 -2
  430. package/lib/execution/engine/interface.js.map +1 -1
  431. package/lib/execution/engine/jsonRpcHttpClient.d.ts +10 -15
  432. package/lib/execution/engine/jsonRpcHttpClient.d.ts.map +1 -1
  433. package/lib/execution/engine/jsonRpcHttpClient.js +2 -1
  434. package/lib/execution/engine/jsonRpcHttpClient.js.map +1 -1
  435. package/lib/execution/engine/jwt.js.map +1 -1
  436. package/lib/execution/engine/mock.d.ts.map +1 -1
  437. package/lib/execution/engine/mock.js.map +1 -1
  438. package/lib/execution/engine/payloadIdCache.d.ts.map +1 -1
  439. package/lib/execution/engine/payloadIdCache.js.map +1 -1
  440. package/lib/execution/engine/types.js.map +1 -1
  441. package/lib/execution/engine/utils.d.ts +1 -1
  442. package/lib/execution/engine/utils.d.ts.map +1 -1
  443. package/lib/execution/engine/utils.js.map +1 -1
  444. package/lib/metrics/metrics/beacon.d.ts +1 -0
  445. package/lib/metrics/metrics/beacon.d.ts.map +1 -1
  446. package/lib/metrics/metrics/beacon.js +5 -0
  447. package/lib/metrics/metrics/beacon.js.map +1 -1
  448. package/lib/metrics/metrics/lodestar.d.ts +10 -1
  449. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  450. package/lib/metrics/metrics/lodestar.js +18 -0
  451. package/lib/metrics/metrics/lodestar.js.map +1 -1
  452. package/lib/metrics/metrics.js.map +1 -1
  453. package/lib/metrics/nodeJsMetrics.js.map +1 -1
  454. package/lib/metrics/server/http.d.ts +1 -1
  455. package/lib/metrics/server/http.d.ts.map +1 -1
  456. package/lib/metrics/server/http.js.map +1 -1
  457. package/lib/metrics/utils/avgMinMax.d.ts.map +1 -1
  458. package/lib/metrics/utils/avgMinMax.js.map +1 -1
  459. package/lib/metrics/utils/gauge.d.ts.map +1 -1
  460. package/lib/metrics/utils/gauge.js.map +1 -1
  461. package/lib/metrics/utils/registryMetricCreator.d.ts.map +1 -1
  462. package/lib/metrics/utils/registryMetricCreator.js.map +1 -1
  463. package/lib/monitoring/clientStats.js.map +1 -1
  464. package/lib/monitoring/properties.d.ts.map +1 -1
  465. package/lib/monitoring/properties.js.map +1 -1
  466. package/lib/monitoring/service.d.ts +2 -2
  467. package/lib/monitoring/service.d.ts.map +1 -1
  468. package/lib/monitoring/service.js +3 -2
  469. package/lib/monitoring/service.js.map +1 -1
  470. package/lib/monitoring/system.d.ts.map +1 -1
  471. package/lib/monitoring/system.js.map +1 -1
  472. package/lib/monitoring/types.js +4 -2
  473. package/lib/monitoring/types.js.map +1 -1
  474. package/lib/network/core/events.d.ts +1 -3
  475. package/lib/network/core/events.d.ts.map +1 -1
  476. package/lib/network/core/events.js +4 -2
  477. package/lib/network/core/events.js.map +1 -1
  478. package/lib/network/core/metrics.d.ts +6 -7
  479. package/lib/network/core/metrics.d.ts.map +1 -1
  480. package/lib/network/core/metrics.js.map +1 -1
  481. package/lib/network/core/networkCore.d.ts +4 -4
  482. package/lib/network/core/networkCore.d.ts.map +1 -1
  483. package/lib/network/core/networkCore.js.map +1 -1
  484. package/lib/network/core/networkCoreWorker.js.map +1 -1
  485. package/lib/network/core/networkCoreWorkerHandler.d.ts +3 -3
  486. package/lib/network/core/networkCoreWorkerHandler.d.ts.map +1 -1
  487. package/lib/network/core/networkCoreWorkerHandler.js.map +1 -1
  488. package/lib/network/core/types.d.ts +2 -2
  489. package/lib/network/core/types.d.ts.map +1 -1
  490. package/lib/network/discv5/index.d.ts +1 -3
  491. package/lib/network/discv5/index.d.ts.map +1 -1
  492. package/lib/network/discv5/index.js.map +1 -1
  493. package/lib/network/discv5/utils.js +2 -1
  494. package/lib/network/discv5/utils.js.map +1 -1
  495. package/lib/network/discv5/worker.js.map +1 -1
  496. package/lib/network/events.d.ts +3 -4
  497. package/lib/network/events.d.ts.map +1 -1
  498. package/lib/network/events.js +4 -2
  499. package/lib/network/events.js.map +1 -1
  500. package/lib/network/forks.js.map +1 -1
  501. package/lib/network/gossip/encoding.d.ts +3 -3
  502. package/lib/network/gossip/encoding.d.ts.map +1 -1
  503. package/lib/network/gossip/encoding.js.map +1 -1
  504. package/lib/network/gossip/errors.d.ts.map +1 -1
  505. package/lib/network/gossip/errors.js.map +1 -1
  506. package/lib/network/gossip/gossipsub.d.ts +13 -4
  507. package/lib/network/gossip/gossipsub.d.ts.map +1 -1
  508. package/lib/network/gossip/gossipsub.js +47 -20
  509. package/lib/network/gossip/gossipsub.js.map +1 -1
  510. package/lib/network/gossip/interface.d.ts +6 -6
  511. package/lib/network/gossip/interface.d.ts.map +1 -1
  512. package/lib/network/gossip/interface.js +4 -2
  513. package/lib/network/gossip/interface.js.map +1 -1
  514. package/lib/network/gossip/metrics.d.ts +12 -14
  515. package/lib/network/gossip/metrics.d.ts.map +1 -1
  516. package/lib/network/gossip/metrics.js.map +1 -1
  517. package/lib/network/gossip/scoringParameters.d.ts +2 -2
  518. package/lib/network/gossip/scoringParameters.d.ts.map +1 -1
  519. package/lib/network/gossip/scoringParameters.js +1 -1
  520. package/lib/network/gossip/scoringParameters.js.map +1 -1
  521. package/lib/network/gossip/topic.d.ts +3166 -3169
  522. package/lib/network/gossip/topic.d.ts.map +1 -1
  523. package/lib/network/gossip/topic.js +2 -2
  524. package/lib/network/gossip/topic.js.map +1 -1
  525. package/lib/network/interface.d.ts +6 -5
  526. package/lib/network/interface.d.ts.map +1 -1
  527. package/lib/network/libp2p/error.js +2 -1
  528. package/lib/network/libp2p/error.js.map +1 -1
  529. package/lib/network/libp2p/index.d.ts +1 -1
  530. package/lib/network/libp2p/index.d.ts.map +1 -1
  531. package/lib/network/libp2p/index.js +7 -2
  532. package/lib/network/libp2p/index.js.map +1 -1
  533. package/lib/network/metadata.d.ts.map +1 -1
  534. package/lib/network/metadata.js +4 -2
  535. package/lib/network/metadata.js.map +1 -1
  536. package/lib/network/network.d.ts +6 -5
  537. package/lib/network/network.d.ts.map +1 -1
  538. package/lib/network/network.js +11 -2
  539. package/lib/network/network.js.map +1 -1
  540. package/lib/network/options.d.ts.map +1 -1
  541. package/lib/network/options.js +3 -0
  542. package/lib/network/options.js.map +1 -1
  543. package/lib/network/peers/client.js +2 -1
  544. package/lib/network/peers/client.js.map +1 -1
  545. package/lib/network/peers/datastore.d.ts +7 -8
  546. package/lib/network/peers/datastore.d.ts.map +1 -1
  547. package/lib/network/peers/datastore.js +10 -10
  548. package/lib/network/peers/datastore.js.map +1 -1
  549. package/lib/network/peers/discover.d.ts +0 -7
  550. package/lib/network/peers/discover.d.ts.map +1 -1
  551. package/lib/network/peers/discover.js +4 -2
  552. package/lib/network/peers/discover.js.map +1 -1
  553. package/lib/network/peers/peerManager.d.ts +3 -1
  554. package/lib/network/peers/peerManager.d.ts.map +1 -1
  555. package/lib/network/peers/peerManager.js +103 -53
  556. package/lib/network/peers/peerManager.js.map +1 -1
  557. package/lib/network/peers/peersData.d.ts.map +1 -1
  558. package/lib/network/peers/peersData.js +2 -1
  559. package/lib/network/peers/peersData.js.map +1 -1
  560. package/lib/network/peers/score/interface.js +4 -2
  561. package/lib/network/peers/score/interface.js.map +1 -1
  562. package/lib/network/peers/score/score.d.ts.map +1 -1
  563. package/lib/network/peers/score/score.js.map +1 -1
  564. package/lib/network/peers/score/store.d.ts.map +1 -1
  565. package/lib/network/peers/score/store.js.map +1 -1
  566. package/lib/network/peers/score/utils.js.map +1 -1
  567. package/lib/network/peers/utils/assertPeerRelevance.js +2 -1
  568. package/lib/network/peers/utils/assertPeerRelevance.js.map +1 -1
  569. package/lib/network/peers/utils/enrSubnetsDeserialize.js.map +1 -1
  570. package/lib/network/peers/utils/getConnectedPeerIds.js.map +1 -1
  571. package/lib/network/peers/utils/prioritizePeers.d.ts +3 -3
  572. package/lib/network/peers/utils/prioritizePeers.d.ts.map +1 -1
  573. package/lib/network/peers/utils/prioritizePeers.js +2 -1
  574. package/lib/network/peers/utils/prioritizePeers.js.map +1 -1
  575. package/lib/network/peers/utils/subnetMap.d.ts.map +1 -1
  576. package/lib/network/peers/utils/subnetMap.js.map +1 -1
  577. package/lib/network/processor/aggregatorTracker.d.ts.map +1 -1
  578. package/lib/network/processor/aggregatorTracker.js.map +1 -1
  579. package/lib/network/processor/extractSlotRootFns.js.map +1 -1
  580. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  581. package/lib/network/processor/gossipHandlers.js +9 -2
  582. package/lib/network/processor/gossipHandlers.js.map +1 -1
  583. package/lib/network/processor/gossipQueues/index.js.map +1 -1
  584. package/lib/network/processor/gossipQueues/indexed.d.ts.map +1 -1
  585. package/lib/network/processor/gossipQueues/indexed.js.map +1 -1
  586. package/lib/network/processor/gossipQueues/linear.d.ts.map +1 -1
  587. package/lib/network/processor/gossipQueues/linear.js.map +1 -1
  588. package/lib/network/processor/gossipQueues/types.js +4 -2
  589. package/lib/network/processor/gossipQueues/types.js.map +1 -1
  590. package/lib/network/processor/gossipValidatorFn.js +1 -1
  591. package/lib/network/processor/gossipValidatorFn.js.map +1 -1
  592. package/lib/network/processor/index.d.ts.map +1 -1
  593. package/lib/network/processor/index.js +4 -2
  594. package/lib/network/processor/index.js.map +1 -1
  595. package/lib/network/processor/types.d.ts +1 -1
  596. package/lib/network/processor/types.d.ts.map +1 -1
  597. package/lib/network/reqresp/ReqRespBeaconNode.d.ts.map +1 -1
  598. package/lib/network/reqresp/ReqRespBeaconNode.js.map +1 -1
  599. package/lib/network/reqresp/handlers/beaconBlocksByRange.d.ts.map +1 -1
  600. package/lib/network/reqresp/handlers/beaconBlocksByRange.js +3 -2
  601. package/lib/network/reqresp/handlers/beaconBlocksByRange.js.map +1 -1
  602. package/lib/network/reqresp/handlers/beaconBlocksByRoot.js.map +1 -1
  603. package/lib/network/reqresp/handlers/blobSidecarsByRange.d.ts.map +1 -1
  604. package/lib/network/reqresp/handlers/blobSidecarsByRange.js +3 -2
  605. package/lib/network/reqresp/handlers/blobSidecarsByRange.js.map +1 -1
  606. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js +1 -1
  607. package/lib/network/reqresp/handlers/blobSidecarsByRoot.js.map +1 -1
  608. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.d.ts.map +1 -1
  609. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js +3 -2
  610. package/lib/network/reqresp/handlers/dataColumnSidecarsByRange.js.map +1 -1
  611. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js +1 -1
  612. package/lib/network/reqresp/handlers/dataColumnSidecarsByRoot.js.map +1 -1
  613. package/lib/network/reqresp/handlers/index.js.map +1 -1
  614. package/lib/network/reqresp/handlers/lightClientBootstrap.js.map +1 -1
  615. package/lib/network/reqresp/handlers/lightClientFinalityUpdate.js.map +1 -1
  616. package/lib/network/reqresp/handlers/lightClientOptimisticUpdate.js.map +1 -1
  617. package/lib/network/reqresp/handlers/lightClientUpdatesByRange.js.map +1 -1
  618. package/lib/network/reqresp/interface.js +2 -1
  619. package/lib/network/reqresp/interface.js.map +1 -1
  620. package/lib/network/reqresp/protocols.d.ts.map +1 -1
  621. package/lib/network/reqresp/protocols.js.map +1 -1
  622. package/lib/network/reqresp/rateLimit.js.map +1 -1
  623. package/lib/network/reqresp/score.d.ts.map +1 -1
  624. package/lib/network/reqresp/score.js +0 -1
  625. package/lib/network/reqresp/score.js.map +1 -1
  626. package/lib/network/reqresp/types.js +4 -2
  627. package/lib/network/reqresp/types.js.map +1 -1
  628. package/lib/network/reqresp/utils/collect.d.ts +1 -1
  629. package/lib/network/reqresp/utils/collect.js.map +1 -1
  630. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.d.ts +1 -1
  631. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.js +2 -1
  632. package/lib/network/reqresp/utils/collectSequentialBlocksInRange.js.map +1 -1
  633. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts +1 -1
  634. package/lib/network/reqresp/utils/dataColumnResponseValidation.d.ts.map +1 -1
  635. package/lib/network/reqresp/utils/dataColumnResponseValidation.js.map +1 -1
  636. package/lib/network/statusCache.d.ts.map +1 -1
  637. package/lib/network/statusCache.js.map +1 -1
  638. package/lib/network/subnets/attnetsService.d.ts.map +1 -1
  639. package/lib/network/subnets/attnetsService.js +2 -1
  640. package/lib/network/subnets/attnetsService.js.map +1 -1
  641. package/lib/network/subnets/interface.js.map +1 -1
  642. package/lib/network/subnets/syncnetsService.d.ts.map +1 -1
  643. package/lib/network/subnets/syncnetsService.js.map +1 -1
  644. package/lib/network/subnets/util.js.map +1 -1
  645. package/lib/network/util.js +2 -2
  646. package/lib/network/util.js.map +1 -1
  647. package/lib/node/nodejs.d.ts +4 -6
  648. package/lib/node/nodejs.d.ts.map +1 -1
  649. package/lib/node/nodejs.js +8 -5
  650. package/lib/node/nodejs.js.map +1 -1
  651. package/lib/node/notifier.js.map +1 -1
  652. package/lib/node/utils/interop/deposits.js.map +1 -1
  653. package/lib/node/utils/interop/state.d.ts +1 -1
  654. package/lib/node/utils/interop/state.d.ts.map +1 -1
  655. package/lib/node/utils/interop/state.js.map +1 -1
  656. package/lib/node/utils/lightclient.js.map +1 -1
  657. package/lib/node/utils/state.js.map +1 -1
  658. package/lib/sync/backfill/backfill.d.ts +1 -10
  659. package/lib/sync/backfill/backfill.d.ts.map +1 -1
  660. package/lib/sync/backfill/backfill.js +6 -3
  661. package/lib/sync/backfill/backfill.js.map +1 -1
  662. package/lib/sync/backfill/errors.js +2 -1
  663. package/lib/sync/backfill/errors.js.map +1 -1
  664. package/lib/sync/backfill/verify.js.map +1 -1
  665. package/lib/sync/interface.js +2 -1
  666. package/lib/sync/interface.js.map +1 -1
  667. package/lib/sync/range/batch.d.ts.map +1 -1
  668. package/lib/sync/range/batch.js +4 -2
  669. package/lib/sync/range/batch.js.map +1 -1
  670. package/lib/sync/range/chain.d.ts +0 -10
  671. package/lib/sync/range/chain.d.ts.map +1 -1
  672. package/lib/sync/range/chain.js +2 -1
  673. package/lib/sync/range/chain.js.map +1 -1
  674. package/lib/sync/range/range.d.ts +1 -3
  675. package/lib/sync/range/range.d.ts.map +1 -1
  676. package/lib/sync/range/range.js +4 -2
  677. package/lib/sync/range/range.js.map +1 -1
  678. package/lib/sync/range/utils/batches.js.map +1 -1
  679. package/lib/sync/range/utils/chainTarget.js.map +1 -1
  680. package/lib/sync/range/utils/hashBlocks.js.map +1 -1
  681. package/lib/sync/range/utils/peerBalancer.d.ts.map +1 -1
  682. package/lib/sync/range/utils/peerBalancer.js.map +1 -1
  683. package/lib/sync/range/utils/updateChains.js.map +1 -1
  684. package/lib/sync/sync.d.ts.map +1 -1
  685. package/lib/sync/sync.js.map +1 -1
  686. package/lib/sync/types.js +4 -2
  687. package/lib/sync/types.js.map +1 -1
  688. package/lib/sync/unknownBlock.d.ts +0 -14
  689. package/lib/sync/unknownBlock.d.ts.map +1 -1
  690. package/lib/sync/unknownBlock.js.map +1 -1
  691. package/lib/sync/utils/downloadByRange.d.ts +4 -4
  692. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  693. package/lib/sync/utils/downloadByRange.js +2 -1
  694. package/lib/sync/utils/downloadByRange.js.map +1 -1
  695. package/lib/sync/utils/downloadByRoot.d.ts +8 -8
  696. package/lib/sync/utils/downloadByRoot.d.ts.map +1 -1
  697. package/lib/sync/utils/downloadByRoot.js +2 -1
  698. package/lib/sync/utils/downloadByRoot.js.map +1 -1
  699. package/lib/sync/utils/pendingBlocksTree.js.map +1 -1
  700. package/lib/sync/utils/remoteSyncType.d.ts +1 -1
  701. package/lib/sync/utils/remoteSyncType.d.ts.map +1 -1
  702. package/lib/sync/utils/remoteSyncType.js +4 -2
  703. package/lib/sync/utils/remoteSyncType.js.map +1 -1
  704. package/lib/util/address.js.map +1 -1
  705. package/lib/util/array.d.ts.map +1 -1
  706. package/lib/util/array.js.map +1 -1
  707. package/lib/util/asyncIterableToEvents.d.ts.map +1 -1
  708. package/lib/util/asyncIterableToEvents.js +2 -1
  709. package/lib/util/asyncIterableToEvents.js.map +1 -1
  710. package/lib/util/binarySearch.d.ts.map +1 -1
  711. package/lib/util/binarySearch.js.map +1 -1
  712. package/lib/util/bitArray.js +2 -1
  713. package/lib/util/bitArray.js.map +1 -1
  714. package/lib/util/blobs.d.ts +2 -2
  715. package/lib/util/blobs.d.ts.map +1 -1
  716. package/lib/util/blobs.js.map +1 -1
  717. package/lib/util/bufferPool.d.ts.map +1 -1
  718. package/lib/util/bufferPool.js +2 -1
  719. package/lib/util/bufferPool.js.map +1 -1
  720. package/lib/util/chunkify.js.map +1 -1
  721. package/lib/util/clock.d.ts +6 -0
  722. package/lib/util/clock.d.ts.map +1 -1
  723. package/lib/util/clock.js +11 -4
  724. package/lib/util/clock.js.map +1 -1
  725. package/lib/util/dataColumns.d.ts +11 -3
  726. package/lib/util/dataColumns.d.ts.map +1 -1
  727. package/lib/util/dataColumns.js +31 -2
  728. package/lib/util/dataColumns.js.map +1 -1
  729. package/lib/util/dependentRoot.js.map +1 -1
  730. package/lib/util/enum.js.map +1 -1
  731. package/lib/util/error.js.map +1 -1
  732. package/lib/util/eventLoop.js.map +1 -1
  733. package/lib/util/execution.js +2 -1
  734. package/lib/util/execution.js.map +1 -1
  735. package/lib/util/file.js.map +1 -1
  736. package/lib/util/forkChoice.js.map +1 -1
  737. package/lib/util/forkName.js.map +1 -1
  738. package/lib/util/graffiti.js.map +1 -1
  739. package/lib/util/hex.js.map +1 -1
  740. package/lib/util/ip.js.map +1 -1
  741. package/lib/util/itTrigger.d.ts.map +1 -1
  742. package/lib/util/itTrigger.js.map +1 -1
  743. package/lib/util/map.d.ts.map +1 -1
  744. package/lib/util/map.js.map +1 -1
  745. package/lib/util/metadata.js.map +1 -1
  746. package/lib/util/multifork.d.ts +8 -0
  747. package/lib/util/multifork.d.ts.map +1 -1
  748. package/lib/util/multifork.js +37 -0
  749. package/lib/util/multifork.js.map +1 -1
  750. package/lib/util/numpy.js.map +1 -1
  751. package/lib/util/peerId.js.map +1 -1
  752. package/lib/util/profile.js +2 -1
  753. package/lib/util/profile.js.map +1 -1
  754. package/lib/util/promises.js.map +1 -1
  755. package/lib/util/queue/errors.js +2 -1
  756. package/lib/util/queue/errors.js.map +1 -1
  757. package/lib/util/queue/fnQueue.d.ts.map +1 -1
  758. package/lib/util/queue/fnQueue.js.map +1 -1
  759. package/lib/util/queue/itemQueue.d.ts.map +1 -1
  760. package/lib/util/queue/itemQueue.js.map +1 -1
  761. package/lib/util/queue/options.js +2 -1
  762. package/lib/util/queue/options.js.map +1 -1
  763. package/lib/util/serializedCache.d.ts +4 -4
  764. package/lib/util/serializedCache.d.ts.map +1 -1
  765. package/lib/util/serializedCache.js +6 -4
  766. package/lib/util/serializedCache.js.map +1 -1
  767. package/lib/util/set.d.ts.map +1 -1
  768. package/lib/util/set.js.map +1 -1
  769. package/lib/util/shuffle.js.map +1 -1
  770. package/lib/util/sortBy.js.map +1 -1
  771. package/lib/util/sszBytes.js.map +1 -1
  772. package/lib/util/time.js.map +1 -1
  773. package/lib/util/timeSeries.d.ts.map +1 -1
  774. package/lib/util/timeSeries.js.map +1 -1
  775. package/lib/util/types.d.ts.map +1 -1
  776. package/lib/util/workerEvents.d.ts +1 -1
  777. package/lib/util/workerEvents.d.ts.map +1 -1
  778. package/lib/util/workerEvents.js.map +1 -1
  779. package/lib/util/wrapError.js.map +1 -1
  780. package/package.json +41 -44
  781. package/src/api/impl/beacon/blocks/index.ts +147 -3
  782. package/src/api/impl/beacon/state/index.ts +8 -8
  783. package/src/api/impl/beacon/state/utils.ts +15 -29
  784. package/src/api/impl/debug/index.ts +9 -5
  785. package/src/api/impl/node/utils.ts +3 -3
  786. package/src/api/impl/validator/index.ts +153 -17
  787. package/src/chain/archiveStore/archiveStore.ts +15 -5
  788. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +10 -11
  789. package/src/chain/archiveStore/historicalState/worker.ts +3 -3
  790. package/src/chain/archiveStore/utils/archiveBlocks.ts +4 -5
  791. package/src/chain/archiveStore/utils/archivePayloads.ts +15 -0
  792. package/src/chain/archiveStore/utils/updateBackfillRange.ts +1 -1
  793. package/src/chain/blocks/blockInput/blockInput.ts +103 -3
  794. package/src/chain/blocks/blockInput/types.ts +18 -0
  795. package/src/chain/blocks/importBlock.ts +35 -4
  796. package/src/chain/blocks/index.ts +2 -1
  797. package/src/chain/blocks/verifyBlocksDataAvailability.ts +3 -0
  798. package/src/chain/blocks/verifyBlocksExecutionPayloads.ts +9 -2
  799. package/src/chain/blocks/verifyBlocksSanityChecks.ts +7 -2
  800. package/src/chain/blocks/writeBlockInputToDb.ts +105 -104
  801. package/src/chain/bls/multithread/index.ts +7 -7
  802. package/src/chain/bls/multithread/jobItem.ts +3 -3
  803. package/src/chain/bls/singleThread.ts +5 -5
  804. package/src/chain/bls/utils.ts +8 -5
  805. package/src/chain/chain.ts +82 -45
  806. package/src/chain/emitter.ts +5 -5
  807. package/src/chain/errors/executionPayloadBid.ts +1 -1
  808. package/src/chain/errors/executionPayloadEnvelope.ts +6 -2
  809. package/src/chain/errors/payloadAttestation.ts +1 -1
  810. package/src/chain/forkChoice/index.ts +39 -21
  811. package/src/chain/interface.ts +4 -11
  812. package/src/chain/opPools/aggregatedAttestationPool.ts +1 -1
  813. package/src/chain/options.ts +1 -0
  814. package/src/chain/prepareNextSlot.ts +5 -5
  815. package/src/chain/produceBlock/computeNewStateRoot.ts +36 -3
  816. package/src/chain/produceBlock/produceBlockBody.ts +162 -13
  817. package/src/chain/regen/queued.ts +7 -2
  818. package/src/chain/regen/regen.ts +9 -3
  819. package/src/chain/seenCache/seenGossipBlockInput.ts +54 -17
  820. package/src/chain/validation/aggregateAndProof.ts +1 -1
  821. package/src/chain/validation/attestation.ts +7 -4
  822. package/src/chain/validation/attesterSlashing.ts +10 -1
  823. package/src/chain/validation/blobSidecar.ts +2 -2
  824. package/src/chain/validation/block.ts +9 -4
  825. package/src/chain/validation/dataColumnSidecar.ts +3 -6
  826. package/src/chain/validation/executionPayloadBid.ts +1 -2
  827. package/src/chain/validation/executionPayloadEnvelope.ts +4 -4
  828. package/src/chain/validation/payloadAttestationMessage.ts +10 -3
  829. package/src/chain/validation/proposerSlashing.ts +1 -1
  830. package/src/chain/validation/syncCommitteeContributionAndProof.ts +1 -1
  831. package/src/db/beacon.ts +8 -0
  832. package/src/db/buckets.ts +3 -0
  833. package/src/db/index.ts +1 -0
  834. package/src/db/interface.ts +5 -0
  835. package/src/db/repositories/blockArchive.ts +1 -2
  836. package/src/db/repositories/dataColumnSidecar.ts +18 -3
  837. package/src/db/repositories/dataColumnSidecarArchive.ts +18 -3
  838. package/src/db/repositories/executionPayloadEnvelope.ts +26 -0
  839. package/src/db/repositories/executionPayloadEnvelopeArchive.ts +32 -0
  840. package/src/db/repositories/index.ts +2 -0
  841. package/src/execution/engine/http.ts +3 -0
  842. package/src/metrics/metrics/beacon.ts +5 -0
  843. package/src/metrics/metrics/lodestar.ts +18 -0
  844. package/src/monitoring/service.ts +3 -2
  845. package/src/network/core/networkCore.ts +3 -3
  846. package/src/network/core/networkCoreWorkerHandler.ts +3 -3
  847. package/src/network/core/types.ts +2 -2
  848. package/src/network/events.ts +2 -1
  849. package/src/network/gossip/encoding.ts +3 -3
  850. package/src/network/gossip/gossipsub.ts +86 -25
  851. package/src/network/gossip/interface.ts +6 -6
  852. package/src/network/gossip/scoringParameters.ts +4 -4
  853. package/src/network/gossip/topic.ts +2 -1
  854. package/src/network/interface.ts +7 -4
  855. package/src/network/libp2p/index.ts +8 -3
  856. package/src/network/network.ts +26 -7
  857. package/src/network/options.ts +3 -0
  858. package/src/network/peers/datastore.ts +13 -10
  859. package/src/network/peers/peerManager.ts +118 -54
  860. package/src/network/peers/utils/prioritizePeers.ts +3 -3
  861. package/src/network/processor/gossipHandlers.ts +19 -4
  862. package/src/network/processor/gossipValidatorFn.ts +2 -2
  863. package/src/network/processor/types.ts +1 -1
  864. package/src/network/reqresp/ReqRespBeaconNode.ts +1 -1
  865. package/src/network/reqresp/handlers/beaconBlocksByRange.ts +4 -3
  866. package/src/network/reqresp/handlers/blobSidecarsByRange.ts +3 -2
  867. package/src/network/reqresp/handlers/blobSidecarsByRoot.ts +1 -1
  868. package/src/network/reqresp/handlers/dataColumnSidecarsByRange.ts +4 -3
  869. package/src/network/reqresp/handlers/dataColumnSidecarsByRoot.ts +2 -2
  870. package/src/network/reqresp/score.ts +0 -1
  871. package/src/network/reqresp/utils/collect.ts +1 -1
  872. package/src/network/reqresp/utils/collectSequentialBlocksInRange.ts +1 -1
  873. package/src/network/util.ts +2 -2
  874. package/src/node/nodejs.ts +8 -9
  875. package/src/sync/utils/downloadByRoot.ts +1 -1
  876. package/src/sync/utils/remoteSyncType.ts +1 -1
  877. package/src/util/blobs.ts +3 -3
  878. package/src/util/clock.ts +9 -4
  879. package/src/util/dataColumns.ts +37 -1
  880. package/src/util/multifork.ts +45 -0
  881. package/src/util/serializedCache.ts +7 -5
  882. package/src/util/workerEvents.ts +1 -1
@@ -4,9 +4,11 @@ import {
4
4
  ForkChoice,
5
5
  ForkChoiceStore,
6
6
  JustifiedBalancesGetter,
7
+ PayloadStatus,
7
8
  ProtoArray,
8
9
  ProtoBlock,
9
10
  ForkChoiceOpts as RawForkChoiceOpts,
11
+ getCheckpointPayloadStatus,
10
12
  } from "@lodestar/fork-choice";
11
13
  import {ZERO_HASH_HEX} from "@lodestar/params";
12
14
  import {
@@ -104,6 +106,14 @@ export function initializeForkChoiceFromFinalizedState(
104
106
  // production code use ForkChoice constructor directly
105
107
  const forkchoiceConstructor = opts.forkchoiceConstructor ?? ForkChoice;
106
108
 
109
+ const isForkPostGloas = (state as CachedBeaconStateGloas).latestBlockHash !== undefined;
110
+
111
+ // Determine justified checkpoint payload status
112
+ const justifiedPayloadStatus = getCheckpointPayloadStatus(state, justifiedCheckpoint.epoch);
113
+
114
+ // Determine finalized checkpoint payload status
115
+ const finalizedPayloadStatus = getCheckpointPayloadStatus(state, finalizedCheckpoint.epoch);
116
+
107
117
  return new forkchoiceConstructor(
108
118
  config,
109
119
 
@@ -113,6 +123,8 @@ export function initializeForkChoiceFromFinalizedState(
113
123
  finalizedCheckpoint,
114
124
  justifiedBalances,
115
125
  justifiedBalancesGetter,
126
+ justifiedPayloadStatus,
127
+ finalizedPayloadStatus,
116
128
  {
117
129
  onJustified: (cp) => emitter.emit(ChainEvent.forkChoiceJustified, cp),
118
130
  onFinalized: (cp) => emitter.emit(ChainEvent.forkChoiceFinalized, cp),
@@ -145,15 +157,12 @@ export function initializeForkChoiceFromFinalizedState(
145
157
  : {executionPayloadBlockHash: null, executionStatus: ExecutionStatus.PreMerge}),
146
158
 
147
159
  dataAvailabilityStatus: DataAvailabilityStatus.PreData,
148
- ...(computeEpochAtSlot(blockHeader.slot) < state.config.GLOAS_FORK_EPOCH
149
- ? {
150
- builderIndex: undefined,
151
- blockHashHex: undefined,
152
- }
153
- : {
154
- builderIndex: (state as CachedBeaconStateGloas).latestExecutionPayloadBid.builderIndex,
155
- blockHashHex: toRootHex((state as CachedBeaconStateGloas).latestExecutionPayloadBid.blockHash),
156
- }),
160
+ payloadStatus: isForkPostGloas ? PayloadStatus.PENDING : PayloadStatus.FULL, // TODO GLOAS: Post-gloas how do we know if the checkpoint payload is FULL or EMPTY?
161
+ builderIndex: isForkPostGloas ? (state as CachedBeaconStateGloas).latestExecutionPayloadBid.builderIndex : null,
162
+ blockHashFromBid: isForkPostGloas
163
+ ? toRootHex((state as CachedBeaconStateGloas).latestExecutionPayloadBid.blockHash)
164
+ : null,
165
+ parentBlockHash: isForkPostGloas ? toRootHex((state as CachedBeaconStateGloas).latestBlockHash) : null,
157
166
  },
158
167
  currentSlot
159
168
  ),
@@ -196,12 +205,22 @@ export function initializeForkChoiceFromUnfinalizedState(
196
205
 
197
206
  // this is not the justified state, but there is no other ways to get justified balances
198
207
  const justifiedBalances = getEffectiveBalanceIncrementsZeroInactive(unfinalizedState);
208
+
209
+ const isForkPostGloas = (unfinalizedState as CachedBeaconStateGloas).latestBlockHash !== undefined;
210
+
211
+ // For unfinalized state, use getCheckpointPayloadStatus to determine the correct status.
212
+ // It checks state.execution_payload_availability to determine EMPTY vs FULL.
213
+ const justifiedPayloadStatus = getCheckpointPayloadStatus(unfinalizedState, justifiedCheckpoint.epoch);
214
+ const finalizedPayloadStatus = getCheckpointPayloadStatus(unfinalizedState, finalizedCheckpoint.epoch);
215
+
199
216
  const store = new ForkChoiceStore(
200
217
  currentSlot,
201
218
  justifiedCheckpoint,
202
219
  finalizedCheckpoint,
203
220
  justifiedBalances,
204
221
  justifiedBalancesGetter,
222
+ justifiedPayloadStatus,
223
+ finalizedPayloadStatus,
205
224
  {
206
225
  onJustified: (cp) => emitter.emit(ChainEvent.forkChoiceJustified, cp),
207
226
  onFinalized: (cp) => emitter.emit(ChainEvent.forkChoiceFinalized, cp),
@@ -235,15 +254,14 @@ export function initializeForkChoiceFromUnfinalizedState(
235
254
  : {executionPayloadBlockHash: null, executionStatus: ExecutionStatus.PreMerge}),
236
255
 
237
256
  dataAvailabilityStatus: DataAvailabilityStatus.PreData,
238
- ...(computeEpochAtSlot(blockHeader.slot) < unfinalizedState.config.GLOAS_FORK_EPOCH
239
- ? {
240
- builderIndex: undefined,
241
- blockHashHex: undefined,
242
- }
243
- : {
244
- builderIndex: (unfinalizedState as CachedBeaconStateGloas).latestExecutionPayloadBid.builderIndex,
245
- blockHashHex: toRootHex((unfinalizedState as CachedBeaconStateGloas).latestExecutionPayloadBid.blockHash),
246
- }),
257
+ payloadStatus: isForkPostGloas ? PayloadStatus.PENDING : PayloadStatus.FULL, // TODO GLOAS: Post-gloas how do we know if the checkpoint payload is FULL or EMPTY?
258
+ builderIndex: isForkPostGloas
259
+ ? (unfinalizedState as CachedBeaconStateGloas).latestExecutionPayloadBid.builderIndex
260
+ : null,
261
+ blockHashFromBid: isForkPostGloas
262
+ ? toRootHex((unfinalizedState as CachedBeaconStateGloas).latestExecutionPayloadBid.blockHash)
263
+ : null,
264
+ parentBlockHash: isForkPostGloas ? toRootHex((unfinalizedState as CachedBeaconStateGloas).latestBlockHash) : null,
247
265
  };
248
266
 
249
267
  const parentSlot = blockHeader.slot - 1;
@@ -285,9 +303,9 @@ export function initializeForkChoiceFromUnfinalizedState(
285
303
  };
286
304
 
287
305
  const protoArray = ProtoArray.initialize(finalizedBlock, currentSlot);
288
- protoArray.onBlock(justifiedBlock, currentSlot);
289
- protoArray.onBlock(parentBlock, currentSlot);
290
- protoArray.onBlock(headBlock, currentSlot);
306
+ protoArray.onBlock(justifiedBlock, currentSlot, null);
307
+ protoArray.onBlock(parentBlock, currentSlot, null);
308
+ protoArray.onBlock(headBlock, currentSlot, null);
291
309
 
292
310
  logger?.verbose("Initialized protoArray successfully", {...logCtx, length: protoArray.length()});
293
311
 
@@ -1,16 +1,11 @@
1
- import {PubkeyIndexMap} from "@chainsafe/pubkey-index-map";
2
1
  import {CompositeTypeAny, TreeView, Type} from "@chainsafe/ssz";
3
2
  import {BeaconConfig} from "@lodestar/config";
4
3
  import {CheckpointWithHex, IForkChoice, ProtoBlock} from "@lodestar/fork-choice";
5
- import {
6
- BeaconStateAllForks,
7
- CachedBeaconStateAllForks,
8
- EpochShuffling,
9
- Index2PubkeyCache,
10
- } from "@lodestar/state-transition";
4
+ import {BeaconStateAllForks, CachedBeaconStateAllForks, EpochShuffling, PubkeyCache} from "@lodestar/state-transition";
11
5
  import {
12
6
  BeaconBlock,
13
7
  BlindedBeaconBlock,
8
+ DataColumnSidecars,
14
9
  Epoch,
15
10
  Root,
16
11
  RootHex,
@@ -23,7 +18,6 @@ import {
23
18
  altair,
24
19
  capella,
25
20
  deneb,
26
- fulu,
27
21
  phase0,
28
22
  rewards,
29
23
  } from "@lodestar/types";
@@ -117,8 +111,7 @@ export interface IBeaconChain {
117
111
  readonly regen: IStateRegenerator;
118
112
  readonly lightClientServer?: LightClientServer;
119
113
  readonly reprocessController: ReprocessController;
120
- readonly pubkey2index: PubkeyIndexMap;
121
- readonly index2pubkey: Index2PubkeyCache;
114
+ readonly pubkeyCache: PubkeyCache;
122
115
  readonly archiveStore: IArchiveStore;
123
116
 
124
117
  // Ops pool
@@ -224,7 +217,7 @@ export interface IBeaconChain {
224
217
  ): Promise<{block: SignedBeaconBlock; executionOptimistic: boolean; finalized: boolean} | null>;
225
218
  getBlobSidecars(blockSlot: Slot, blockRootHex: string): Promise<deneb.BlobSidecars | null>;
226
219
  getSerializedBlobSidecars(blockSlot: Slot, blockRootHex: string): Promise<Uint8Array | null>;
227
- getDataColumnSidecars(blockSlot: Slot, blockRootHex: string): Promise<fulu.DataColumnSidecars>;
220
+ getDataColumnSidecars(blockSlot: Slot, blockRootHex: string): Promise<DataColumnSidecars>;
228
221
  getSerializedDataColumnSidecars(
229
222
  blockSlot: Slot,
230
223
  blockRootHex: string,
@@ -864,7 +864,7 @@ function isValidShuffling(
864
864
  // attestation's shuffling is the same as the current state's.
865
865
  // To account for skipped slots, find the first block at *or before* the pivot slot.
866
866
  const beaconBlockRootHex = blockRootHex;
867
- const beaconBlock = forkChoice.getBlockHex(beaconBlockRootHex);
867
+ const beaconBlock = forkChoice.getBlockHexDefaultStatus(beaconBlockRootHex);
868
868
  if (!beaconBlock) {
869
869
  return InvalidAttestationData.BlockNotInForkChoice;
870
870
  }
@@ -27,6 +27,7 @@ export type IChainOptions = BlockProcessOpts &
27
27
  blsVerifyAllMainThread?: boolean;
28
28
  blsVerifyAllMultiThread?: boolean;
29
29
  blacklistedBlocks?: string[];
30
+ // TODO GLOAS: add similar option for execution payload envelopes?
30
31
  persistProducedBlocks?: boolean;
31
32
  persistInvalidSszObjects?: boolean;
32
33
  persistInvalidSszObjectsDir?: string;
@@ -1,14 +1,14 @@
1
1
  import {routes} from "@lodestar/api";
2
2
  import {ChainForkConfig} from "@lodestar/config";
3
3
  import {getSafeExecutionBlockHash} from "@lodestar/fork-choice";
4
- import {ForkPostBellatrix, ForkSeq, SLOTS_PER_EPOCH} from "@lodestar/params";
4
+ import {ForkPostBellatrix, ForkSeq, SLOTS_PER_EPOCH, isForkPostBellatrix} from "@lodestar/params";
5
5
  import {
6
6
  CachedBeaconStateAllForks,
7
7
  CachedBeaconStateExecutions,
8
+ CachedBeaconStateGloas,
8
9
  StateHashTreeRootSource,
9
10
  computeEpochAtSlot,
10
11
  computeTimeAtSlot,
11
- isExecutionStateType,
12
12
  } from "@lodestar/state-transition";
13
13
  import {Slot} from "@lodestar/types";
14
14
  import {Logger, fromHex, isErrorAborted, sleep} from "@lodestar/utils";
@@ -120,10 +120,10 @@ export class PrepareNextSlotScheduler {
120
120
  RegenCaller.precomputeEpoch
121
121
  );
122
122
 
123
- if (isExecutionStateType(prepareState)) {
123
+ if (isForkPostBellatrix(fork)) {
124
124
  const proposerIndex = prepareState.epochCtx.getBeaconProposer(prepareSlot);
125
125
  const feeRecipient = this.chain.beaconProposerCache.get(proposerIndex);
126
- let updatedPrepareState = prepareState;
126
+ let updatedPrepareState = prepareState as CachedBeaconStateExecutions | CachedBeaconStateGloas;
127
127
  let updatedHeadRoot = headRoot;
128
128
 
129
129
  if (feeRecipient) {
@@ -146,7 +146,7 @@ export class PrepareNextSlotScheduler {
146
146
  // only transfer cache if epoch transition because that's the state we will use to stateTransition() the 1st block of epoch
147
147
  {dontTransferCache: !isEpochTransition},
148
148
  RegenCaller.predictProposerHead
149
- )) as CachedBeaconStateExecutions;
149
+ )) as CachedBeaconStateExecutions | CachedBeaconStateGloas;
150
150
  updatedHeadRoot = proposerHeadRoot;
151
151
  }
152
152
 
@@ -1,11 +1,14 @@
1
1
  import {
2
2
  CachedBeaconStateAllForks,
3
+ CachedBeaconStateGloas,
3
4
  DataAvailabilityStatus,
4
5
  ExecutionPayloadStatus,
6
+ G2_POINT_AT_INFINITY,
5
7
  StateHashTreeRootSource,
6
8
  stateTransition,
7
9
  } from "@lodestar/state-transition";
8
- import {BeaconBlock, BlindedBeaconBlock, Gwei, Root} from "@lodestar/types";
10
+ import {processExecutionPayloadEnvelope} from "@lodestar/state-transition/block";
11
+ import {BeaconBlock, BlindedBeaconBlock, Gwei, Root, gloas} from "@lodestar/types";
9
12
  import {ZERO_HASH} from "../../constants/index.js";
10
13
  import {Metrics} from "../../metrics/index.js";
11
14
 
@@ -18,7 +21,7 @@ export function computeNewStateRoot(
18
21
  metrics: Metrics | null,
19
22
  state: CachedBeaconStateAllForks,
20
23
  block: BeaconBlock | BlindedBeaconBlock
21
- ): {newStateRoot: Root; proposerReward: Gwei} {
24
+ ): {newStateRoot: Root; proposerReward: Gwei; postState: CachedBeaconStateAllForks} {
22
25
  // Set signature to zero to re-use stateTransition() function which requires the SignedBeaconBlock type
23
26
  const blockEmptySig = {message: block, signature: ZERO_HASH};
24
27
 
@@ -51,5 +54,35 @@ export function computeNewStateRoot(
51
54
  const newStateRoot = postState.hashTreeRoot();
52
55
  hashTreeRootTimer?.();
53
56
 
54
- return {newStateRoot, proposerReward};
57
+ return {newStateRoot, proposerReward, postState};
58
+ }
59
+
60
+ /**
61
+ * Compute the state root after processing an execution payload envelope.
62
+ * Similar to `computeNewStateRoot` but for payload envelope processing.
63
+ *
64
+ */
65
+ export function computeEnvelopeStateRoot(
66
+ metrics: Metrics | null,
67
+ postBlockState: CachedBeaconStateGloas,
68
+ envelope: gloas.ExecutionPayloadEnvelope
69
+ ): Root {
70
+ const signedEnvelope: gloas.SignedExecutionPayloadEnvelope = {
71
+ message: envelope,
72
+ signature: G2_POINT_AT_INFINITY,
73
+ };
74
+
75
+ const processEnvelopeTimer = metrics?.blockPayload.executionPayloadEnvelopeProcessingTime.startTimer();
76
+ const postEnvelopeState = processExecutionPayloadEnvelope(postBlockState, signedEnvelope, false, {
77
+ dontTransferCache: true,
78
+ });
79
+ processEnvelopeTimer?.();
80
+
81
+ const hashTreeRootTimer = metrics?.stateHashTreeRootTime.startTimer({
82
+ source: StateHashTreeRootSource.computeEnvelopeStateRoot,
83
+ });
84
+ const stateRoot = postEnvelopeState.hashTreeRoot();
85
+ hashTreeRootTimer?.();
86
+
87
+ return stateRoot;
55
88
  }
@@ -1,10 +1,13 @@
1
1
  import {ChainForkConfig} from "@lodestar/config";
2
- import {ProtoBlock, getSafeExecutionBlockHash} from "@lodestar/fork-choice";
2
+ import {IForkChoice, ProtoBlock, getSafeExecutionBlockHash} from "@lodestar/fork-choice";
3
3
  import {
4
+ BUILDER_INDEX_SELF_BUILD,
4
5
  ForkName,
5
6
  ForkPostBellatrix,
7
+ ForkPostCapella,
6
8
  ForkPostDeneb,
7
9
  ForkPostFulu,
10
+ ForkPostGloas,
8
11
  ForkPreGloas,
9
12
  ForkSeq,
10
13
  isForkPostAltair,
@@ -16,6 +19,8 @@ import {
16
19
  CachedBeaconStateBellatrix,
17
20
  CachedBeaconStateCapella,
18
21
  CachedBeaconStateExecutions,
22
+ CachedBeaconStateGloas,
23
+ G2_POINT_AT_INFINITY,
19
24
  computeTimeAtSlot,
20
25
  getExpectedWithdrawals,
21
26
  getRandaoMix,
@@ -42,6 +47,7 @@ import {
42
47
  deneb,
43
48
  electra,
44
49
  fulu,
50
+ gloas,
45
51
  } from "@lodestar/types";
46
52
  import {Logger, fromHex, sleep, toHex, toPubkeyHex, toRootHex} from "@lodestar/utils";
47
53
  import {ZERO_HASH_HEX} from "../../constants/index.js";
@@ -99,6 +105,20 @@ export type AssembledBodyType<T extends BlockType> = T extends BlockType.Full
99
105
  : BlindedBeaconBlockBody;
100
106
  export type AssembledBlockType<T extends BlockType> = T extends BlockType.Full ? BeaconBlock : BlindedBeaconBlock;
101
107
 
108
+ export type ProduceFullGloas = {
109
+ type: BlockType.Full;
110
+ fork: ForkPostGloas;
111
+ executionPayload: ExecutionPayload<ForkPostGloas>;
112
+ executionRequests: electra.ExecutionRequests;
113
+ blobsBundle: BlobsBundle<ForkPostGloas>;
114
+ cells: fulu.Cell[][];
115
+ /**
116
+ * Cached envelope state root computed during block production.
117
+ * This is the state root after running `processExecutionPayloadEnvelope` on the
118
+ * post-block state, and later used to construct the `ExecutionPayloadEnvelope`.
119
+ */
120
+ envelopeStateRoot: Root;
121
+ };
102
122
  export type ProduceFullFulu = {
103
123
  type: BlockType.Full;
104
124
  fork: ForkPostFulu;
@@ -131,6 +151,7 @@ export type ProduceBlinded = {
131
151
 
132
152
  /** The result of local block production, everything that's not the block itself */
133
153
  export type ProduceResult =
154
+ | ProduceFullGloas
134
155
  | ProduceFullFulu
135
156
  | ProduceFullDeneb
136
157
  | ProduceFullBellatrix
@@ -180,12 +201,112 @@ export async function produceBlockBody<T extends BlockType>(
180
201
  this.logger.verbose("Producing beacon block body", logMeta);
181
202
 
182
203
  if (isForkPostGloas(fork)) {
183
- // TODO GLOAS: Set body.signedExecutionPayloadBid and body.payloadAttestation
204
+ // TODO GLOAS: support non self-building here, the block type differentiation between
205
+ // full and blinded no longer makes sense in gloas, it might be a good idea to move
206
+ // this into a completely separate function and have pre/post gloas more separated
207
+ const gloasState = currentState as CachedBeaconStateGloas;
208
+ const safeBlockHash = getSafeExecutionBlockHash(this.forkChoice);
209
+ const finalizedBlockHash = this.forkChoice.getFinalizedBlock().executionPayloadBlockHash ?? ZERO_HASH_HEX;
210
+ const feeRecipient = requestedFeeRecipient ?? this.beaconProposerCache.getOrDefault(proposerIndex);
211
+
212
+ const endExecutionPayload = this.metrics?.executionBlockProductionTimeSteps.startTimer();
213
+
214
+ this.logger.verbose("Preparing execution payload from engine", {
215
+ slot: blockSlot,
216
+ parentBlockRoot: toRootHex(parentBlockRoot),
217
+ feeRecipient,
218
+ });
219
+
220
+ // Get execution payload from EL
221
+ const prepareRes = await prepareExecutionPayload(
222
+ this,
223
+ this.logger,
224
+ fork,
225
+ parentBlockRoot,
226
+ safeBlockHash,
227
+ finalizedBlockHash ?? ZERO_HASH_HEX,
228
+ gloasState,
229
+ feeRecipient
230
+ );
231
+
232
+ const {prepType, payloadId} = prepareRes;
233
+ Object.assign(logMeta, {executionPayloadPrepType: prepType});
234
+
235
+ if (prepType !== PayloadPreparationType.Cached) {
236
+ await sleep(PAYLOAD_GENERATION_TIME_MS);
237
+ }
238
+
239
+ this.logger.verbose("Fetching execution payload from engine", {slot: blockSlot, payloadId});
240
+ const payloadRes = await this.executionEngine.getPayload(fork, payloadId);
241
+
242
+ endExecutionPayload?.({step: BlockProductionStep.executionPayload});
243
+
244
+ const {executionPayload, blobsBundle, executionRequests} = payloadRes;
245
+ executionPayloadValue = payloadRes.executionPayloadValue;
246
+ shouldOverrideBuilder = payloadRes.shouldOverrideBuilder;
247
+
248
+ if (blobsBundle === undefined) {
249
+ throw Error(`Missing blobsBundle response from getPayload at fork=${fork}`);
250
+ }
251
+ if (executionRequests === undefined) {
252
+ throw Error(`Missing executionRequests response from getPayload at fork=${fork}`);
253
+ }
254
+
255
+ const cells = blobsBundle.blobs.map((blob) => kzg.computeCells(blob));
256
+ if (this.opts.sanityCheckExecutionEngineBlobs) {
257
+ await validateCellsAndKzgCommitments(blobsBundle.commitments, blobsBundle.proofs, cells);
258
+ }
259
+
260
+ // Create self-build execution payload bid
261
+ const bid: gloas.ExecutionPayloadBid = {
262
+ parentBlockHash: gloasState.latestBlockHash,
263
+ parentBlockRoot: parentBlockRoot,
264
+ blockHash: executionPayload.blockHash,
265
+ prevRandao: getRandaoMix(gloasState, gloasState.epochCtx.epoch),
266
+ feeRecipient: executionPayload.feeRecipient,
267
+ gasLimit: BigInt(executionPayload.gasLimit),
268
+ builderIndex: BUILDER_INDEX_SELF_BUILD,
269
+ slot: blockSlot,
270
+ value: 0,
271
+ executionPayment: 0,
272
+ blobKzgCommitments: blobsBundle.commitments,
273
+ };
274
+ const signedBid: gloas.SignedExecutionPayloadBid = {
275
+ message: bid,
276
+ signature: G2_POINT_AT_INFINITY,
277
+ };
278
+
184
279
  const commonBlockBody = await commonBlockBodyPromise;
185
- blockBody = Object.assign({}, commonBlockBody) as AssembledBodyType<T>;
186
- executionPayloadValue = BigInt(0);
280
+ const gloasBody = Object.assign({}, commonBlockBody) as gloas.BeaconBlockBody;
281
+ gloasBody.signedExecutionPayloadBid = signedBid;
282
+ // TODO GLOAS: Get payload attestations from pool for previous slot
283
+ gloasBody.payloadAttestations = [];
284
+ blockBody = gloasBody as AssembledBodyType<T>;
285
+
286
+ // Store execution payload data required to construct execution payload envelope later
287
+ const gloasResult = produceResult as ProduceFullGloas;
288
+ gloasResult.executionPayload = executionPayload as ExecutionPayload<ForkPostGloas>;
289
+ gloasResult.executionRequests = executionRequests;
290
+ gloasResult.blobsBundle = blobsBundle;
291
+ gloasResult.cells = cells;
292
+
293
+ const fetchedTime = Date.now() / 1000 - computeTimeAtSlot(this.config, blockSlot, this.genesisTime);
294
+ this.metrics?.blockPayload.payloadFetchedTime.observe({prepType}, fetchedTime);
295
+ this.logger.verbose("Produced block with self-build bid", {
296
+ slot: blockSlot,
297
+ executionPayloadValue,
298
+ prepType,
299
+ payloadId,
300
+ fetchedTime,
301
+ executionBlockHash: toRootHex(executionPayload.blockHash),
302
+ blobs: blobsBundle.commitments.length,
303
+ });
187
304
 
188
- // We don't deal with blinded blocks, execution engine, blobs and execution requests post-gloas
305
+ Object.assign(logMeta, {
306
+ transactions: executionPayload.transactions.length,
307
+ blobs: blobsBundle.commitments.length,
308
+ shouldOverrideBuilder,
309
+ });
189
310
  } else if (isForkPostBellatrix(fork)) {
190
311
  const safeBlockHash = getSafeExecutionBlockHash(this.forkChoice);
191
312
  const finalizedBlockHash = this.forkChoice.getFinalizedBlock().executionPayloadBlockHash ?? ZERO_HASH_HEX;
@@ -447,8 +568,14 @@ export async function produceBlockBody<T extends BlockType>(
447
568
  });
448
569
  }
449
570
 
450
- if (ForkSeq[fork] >= ForkSeq.capella) {
451
- const {blsToExecutionChanges, executionPayload} = blockBody as capella.BeaconBlockBody;
571
+ if (ForkSeq[fork] >= ForkSeq.gloas) {
572
+ const {blsToExecutionChanges, payloadAttestations} = blockBody as BeaconBlockBody<ForkPostGloas>;
573
+ Object.assign(logMeta, {
574
+ blsToExecutionChanges: blsToExecutionChanges.length,
575
+ payloadAttestations: payloadAttestations.length,
576
+ });
577
+ } else if (ForkSeq[fork] >= ForkSeq.capella) {
578
+ const {blsToExecutionChanges, executionPayload} = blockBody as BeaconBlockBody<ForkPostCapella & ForkPreGloas>;
452
579
  Object.assign(logMeta, {
453
580
  blsToExecutionChanges: blsToExecutionChanges.length,
454
581
  });
@@ -480,10 +607,12 @@ export async function prepareExecutionPayload(
480
607
  parentBlockRoot: Root,
481
608
  safeBlockHash: RootHex,
482
609
  finalizedBlockHash: RootHex,
483
- state: CachedBeaconStateExecutions,
610
+ state: CachedBeaconStateExecutions | CachedBeaconStateGloas,
484
611
  suggestedFeeRecipient: string
485
612
  ): Promise<{prepType: PayloadPreparationType; payloadId: PayloadId}> {
486
- const parentHash = state.latestExecutionPayloadHeader.blockHash;
613
+ const parentHash = isForkPostGloas(fork)
614
+ ? (state as CachedBeaconStateGloas).latestBlockHash
615
+ : (state as CachedBeaconStateExecutions).latestExecutionPayloadHeader.blockHash;
487
616
  const timestamp = computeTimeAtSlot(chain.config, state.slot, state.genesisTime);
488
617
  const prevRandao = getRandaoMix(state, state.epochCtx.epoch);
489
618
 
@@ -568,25 +697,45 @@ export function getPayloadAttributesForSSE(
568
697
  fork: ForkPostBellatrix,
569
698
  chain: {
570
699
  config: ChainForkConfig;
700
+ forkChoice: IForkChoice;
571
701
  },
572
702
  {
573
703
  prepareState,
574
704
  prepareSlot,
575
705
  parentBlockRoot,
576
706
  feeRecipient,
577
- }: {prepareState: CachedBeaconStateExecutions; prepareSlot: Slot; parentBlockRoot: Root; feeRecipient: string}
707
+ }: {
708
+ prepareState: CachedBeaconStateExecutions | CachedBeaconStateGloas;
709
+ prepareSlot: Slot;
710
+ parentBlockRoot: Root;
711
+ feeRecipient: string;
712
+ }
578
713
  ): SSEPayloadAttributes {
579
- const parentHash = prepareState.latestExecutionPayloadHeader.blockHash;
714
+ const parentHash = isForkPostGloas(fork)
715
+ ? (prepareState as CachedBeaconStateGloas).latestBlockHash
716
+ : (prepareState as CachedBeaconStateExecutions).latestExecutionPayloadHeader.blockHash;
580
717
  const payloadAttributes = preparePayloadAttributes(fork, chain, {
581
718
  prepareState,
582
719
  prepareSlot,
583
720
  parentBlockRoot,
584
721
  feeRecipient,
585
722
  });
723
+
724
+ let parentBlockNumber: number;
725
+ if (isForkPostGloas(fork)) {
726
+ const parentBlock = chain.forkChoice.getBlockHexAndBlockHash(toRootHex(parentBlockRoot), toRootHex(parentHash));
727
+ if (parentBlock?.executionPayloadBlockHash == null) {
728
+ throw Error(`Parent block not found in fork choice root=${toRootHex(parentBlockRoot)}`);
729
+ }
730
+ parentBlockNumber = parentBlock.executionPayloadNumber;
731
+ } else {
732
+ parentBlockNumber = (prepareState as CachedBeaconStateExecutions).latestExecutionPayloadHeader.blockNumber;
733
+ }
734
+
586
735
  const ssePayloadAttributes: SSEPayloadAttributes = {
587
736
  proposerIndex: prepareState.epochCtx.getBeaconProposer(prepareSlot),
588
737
  proposalSlot: prepareSlot,
589
- parentBlockNumber: prepareState.latestExecutionPayloadHeader.blockNumber,
738
+ parentBlockNumber,
590
739
  parentBlockRoot,
591
740
  parentBlockHash: parentHash,
592
741
  payloadAttributes,
@@ -605,7 +754,7 @@ function preparePayloadAttributes(
605
754
  parentBlockRoot,
606
755
  feeRecipient,
607
756
  }: {
608
- prepareState: CachedBeaconStateExecutions;
757
+ prepareState: CachedBeaconStateExecutions | CachedBeaconStateGloas;
609
758
  prepareSlot: Slot;
610
759
  parentBlockRoot: Root;
611
760
  feeRecipient: string;
@@ -1,7 +1,7 @@
1
1
  import {routes} from "@lodestar/api";
2
2
  import {IForkChoice, ProtoBlock} from "@lodestar/fork-choice";
3
3
  import {CachedBeaconStateAllForks, computeEpochAtSlot} from "@lodestar/state-transition";
4
- import {BeaconBlock, Epoch, RootHex, Slot, phase0} from "@lodestar/types";
4
+ import {BeaconBlock, Epoch, RootHex, Slot, isGloasBeaconBlock, phase0} from "@lodestar/types";
5
5
  import {Logger, toRootHex} from "@lodestar/utils";
6
6
  import {Metrics} from "../../metrics/index.js";
7
7
  import {JobItemQueue} from "../../util/queue/index.js";
@@ -88,7 +88,12 @@ export class QueuedStateRegenerator implements IStateRegenerator {
88
88
  */
89
89
  getPreStateSync(block: BeaconBlock): CachedBeaconStateAllForks | null {
90
90
  const parentRoot = toRootHex(block.parentRoot);
91
- const parentBlock = this.forkChoice.getBlockHex(parentRoot);
91
+ const parentBlock = isGloasBeaconBlock(block)
92
+ ? this.forkChoice.getBlockHexAndBlockHash(
93
+ parentRoot,
94
+ toRootHex(block.body.signedExecutionPayloadBid.message.parentBlockHash)
95
+ )
96
+ : this.forkChoice.getBlockHexDefaultStatus(parentRoot);
92
97
  if (!parentBlock) {
93
98
  throw new RegenError({
94
99
  code: RegenErrorCode.BLOCK_NOT_IN_FORKCHOICE,
@@ -11,7 +11,7 @@ import {
11
11
  processSlots,
12
12
  stateTransition,
13
13
  } from "@lodestar/state-transition";
14
- import {BeaconBlock, RootHex, SignedBeaconBlock, Slot} from "@lodestar/types";
14
+ import {BeaconBlock, RootHex, SignedBeaconBlock, Slot, isGloasBeaconBlock} from "@lodestar/types";
15
15
  import {Logger, fromHex, toRootHex} from "@lodestar/utils";
16
16
  import {IBeaconDb} from "../../db/index.js";
17
17
  import {Metrics} from "../../metrics/index.js";
@@ -58,7 +58,13 @@ export class StateRegenerator implements IStateRegeneratorInternal {
58
58
  opts: StateRegenerationOpts,
59
59
  regenCaller: RegenCaller
60
60
  ): Promise<CachedBeaconStateAllForks> {
61
- const parentBlock = this.modules.forkChoice.getBlock(block.parentRoot);
61
+ const parentRoot = toRootHex(block.parentRoot);
62
+ const parentBlock = isGloasBeaconBlock(block)
63
+ ? this.modules.forkChoice.getBlockHexAndBlockHash(
64
+ parentRoot,
65
+ toRootHex(block.body.signedExecutionPayloadBid.message.parentBlockHash)
66
+ )
67
+ : this.modules.forkChoice.getBlockHexDefaultStatus(parentRoot);
62
68
  if (!parentBlock) {
63
69
  throw new RegenError({
64
70
  code: RegenErrorCode.BLOCK_NOT_IN_FORKCHOICE,
@@ -152,7 +158,7 @@ export class StateRegenerator implements IStateRegeneratorInternal {
152
158
 
153
159
  const getSeedStateTimer = this.modules.metrics?.regenGetState.getSeedState.startTimer({caller});
154
160
  // iterateAncestorBlocks only returns ancestor blocks, not the block itself
155
- for (const b of this.modules.forkChoice.iterateAncestorBlocks(block.blockRoot)) {
161
+ for (const b of this.modules.forkChoice.iterateAncestorBlocks(block.blockRoot, block.payloadStatus)) {
156
162
  state = this.modules.blockStateCache.get(b.stateRoot);
157
163
  if (state) {
158
164
  break;