@lodestar/beacon-node 1.50.0-dev.033e6b7138 → 1.50.0-dev.03c05fa09a

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 (411) hide show
  1. package/lib/api/impl/beacon/blocks/index.d.ts.map +1 -1
  2. package/lib/api/impl/beacon/blocks/index.js +13 -3
  3. package/lib/api/impl/beacon/blocks/index.js.map +1 -1
  4. package/lib/api/impl/beacon/index.d.ts.map +1 -1
  5. package/lib/api/impl/beacon/index.js +13 -0
  6. package/lib/api/impl/beacon/index.js.map +1 -1
  7. package/lib/api/impl/beacon/pool/index.js +4 -4
  8. package/lib/api/impl/beacon/pool/index.js.map +1 -1
  9. package/lib/api/impl/beacon/state/index.d.ts.map +1 -1
  10. package/lib/api/impl/beacon/state/index.js +28 -6
  11. package/lib/api/impl/beacon/state/index.js.map +1 -1
  12. package/lib/api/impl/debug/index.d.ts.map +1 -1
  13. package/lib/api/impl/debug/index.js +26 -18
  14. package/lib/api/impl/debug/index.js.map +1 -1
  15. package/lib/api/impl/validator/index.d.ts +1 -0
  16. package/lib/api/impl/validator/index.d.ts.map +1 -1
  17. package/lib/api/impl/validator/index.js +80 -18
  18. package/lib/api/impl/validator/index.js.map +1 -1
  19. package/lib/chain/ColumnReconstructionTracker.d.ts +0 -2
  20. package/lib/chain/ColumnReconstructionTracker.d.ts.map +1 -1
  21. package/lib/chain/ColumnReconstructionTracker.js +4 -5
  22. package/lib/chain/ColumnReconstructionTracker.js.map +1 -1
  23. package/lib/chain/archiveStore/archiveStore.d.ts +6 -0
  24. package/lib/chain/archiveStore/archiveStore.d.ts.map +1 -1
  25. package/lib/chain/archiveStore/archiveStore.js +18 -24
  26. package/lib/chain/archiveStore/archiveStore.js.map +1 -1
  27. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts +2 -2
  28. package/lib/chain/archiveStore/historicalState/getHistoricalState.d.ts.map +1 -1
  29. package/lib/chain/archiveStore/historicalState/getHistoricalState.js +5 -7
  30. package/lib/chain/archiveStore/historicalState/getHistoricalState.js.map +1 -1
  31. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js +1 -1
  32. package/lib/chain/archiveStore/historicalState/historicalStateRegen.js.map +1 -1
  33. package/lib/chain/archiveStore/historicalState/types.d.ts +2 -2
  34. package/lib/chain/archiveStore/historicalState/types.d.ts.map +1 -1
  35. package/lib/chain/archiveStore/historicalState/worker.js +1 -1
  36. package/lib/chain/archiveStore/historicalState/worker.js.map +1 -1
  37. package/lib/chain/archiveStore/interface.d.ts +1 -1
  38. package/lib/chain/archiveStore/interface.d.ts.map +1 -1
  39. package/lib/chain/archiveStore/utils/pruneHistory.d.ts +4 -1
  40. package/lib/chain/archiveStore/utils/pruneHistory.d.ts.map +1 -1
  41. package/lib/chain/archiveStore/utils/pruneHistory.js +5 -3
  42. package/lib/chain/archiveStore/utils/pruneHistory.js.map +1 -1
  43. package/lib/chain/beaconProposerCache.d.ts +6 -0
  44. package/lib/chain/beaconProposerCache.d.ts.map +1 -1
  45. package/lib/chain/beaconProposerCache.js +16 -0
  46. package/lib/chain/beaconProposerCache.js.map +1 -1
  47. package/lib/chain/blocks/blockInput/blockInput.d.ts +1 -1
  48. package/lib/chain/blocks/blockInput/blockInput.d.ts.map +1 -1
  49. package/lib/chain/blocks/blockInput/blockInput.js.map +1 -1
  50. package/lib/chain/blocks/importBlock.d.ts.map +1 -1
  51. package/lib/chain/blocks/importBlock.js +25 -12
  52. package/lib/chain/blocks/importBlock.js.map +1 -1
  53. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts +2 -1
  54. package/lib/chain/blocks/payloadEnvelopeInput/types.d.ts.map +1 -1
  55. package/lib/chain/blocks/verifyBlock.d.ts.map +1 -1
  56. package/lib/chain/blocks/verifyBlock.js +7 -7
  57. package/lib/chain/blocks/verifyBlock.js.map +1 -1
  58. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts +2 -1
  59. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.d.ts.map +1 -1
  60. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js +5 -4
  61. package/lib/chain/blocks/verifyBlocksStateTransitionOnly.js.map +1 -1
  62. package/lib/chain/chain.d.ts +10 -5
  63. package/lib/chain/chain.d.ts.map +1 -1
  64. package/lib/chain/chain.js +108 -38
  65. package/lib/chain/chain.js.map +1 -1
  66. package/lib/chain/emitter.d.ts +7 -1
  67. package/lib/chain/emitter.d.ts.map +1 -1
  68. package/lib/chain/emitter.js +5 -0
  69. package/lib/chain/emitter.js.map +1 -1
  70. package/lib/chain/errors/envelopeReconstructionError.d.ts +5 -0
  71. package/lib/chain/errors/envelopeReconstructionError.d.ts.map +1 -1
  72. package/lib/chain/errors/envelopeReconstructionError.js +2 -0
  73. package/lib/chain/errors/envelopeReconstructionError.js.map +1 -1
  74. package/lib/chain/errors/gossipValidation.d.ts +3 -1
  75. package/lib/chain/errors/gossipValidation.d.ts.map +1 -1
  76. package/lib/chain/errors/gossipValidation.js +2 -0
  77. package/lib/chain/errors/gossipValidation.js.map +1 -1
  78. package/lib/chain/forkChoice/index.d.ts.map +1 -1
  79. package/lib/chain/forkChoice/index.js +2 -0
  80. package/lib/chain/forkChoice/index.js.map +1 -1
  81. package/lib/chain/initState.d.ts +2 -9
  82. package/lib/chain/initState.d.ts.map +1 -1
  83. package/lib/chain/initState.js +5 -38
  84. package/lib/chain/initState.js.map +1 -1
  85. package/lib/chain/interface.d.ts +6 -3
  86. package/lib/chain/interface.d.ts.map +1 -1
  87. package/lib/chain/opPools/aggregatedAttestationPool.d.ts +4 -2
  88. package/lib/chain/opPools/aggregatedAttestationPool.d.ts.map +1 -1
  89. package/lib/chain/opPools/aggregatedAttestationPool.js +30 -8
  90. package/lib/chain/opPools/aggregatedAttestationPool.js.map +1 -1
  91. package/lib/chain/opPools/opPool.d.ts +5 -4
  92. package/lib/chain/opPools/opPool.d.ts.map +1 -1
  93. package/lib/chain/opPools/opPool.js +60 -38
  94. package/lib/chain/opPools/opPool.js.map +1 -1
  95. package/lib/chain/opPools/proposerPreferencesPool.d.ts +8 -4
  96. package/lib/chain/opPools/proposerPreferencesPool.d.ts.map +1 -1
  97. package/lib/chain/opPools/proposerPreferencesPool.js +27 -12
  98. package/lib/chain/opPools/proposerPreferencesPool.js.map +1 -1
  99. package/lib/chain/opPools/utils.d.ts +15 -1
  100. package/lib/chain/opPools/utils.d.ts.map +1 -1
  101. package/lib/chain/opPools/utils.js +33 -1
  102. package/lib/chain/opPools/utils.js.map +1 -1
  103. package/lib/chain/options.d.ts +2 -1
  104. package/lib/chain/options.d.ts.map +1 -1
  105. package/lib/chain/options.js +1 -1
  106. package/lib/chain/options.js.map +1 -1
  107. package/lib/chain/prepareNextSlot.d.ts.map +1 -1
  108. package/lib/chain/prepareNextSlot.js +20 -8
  109. package/lib/chain/prepareNextSlot.js.map +1 -1
  110. package/lib/chain/produceBlock/computeNewStateRoot.d.ts.map +1 -1
  111. package/lib/chain/produceBlock/computeNewStateRoot.js +1 -1
  112. package/lib/chain/produceBlock/computeNewStateRoot.js.map +1 -1
  113. package/lib/chain/produceBlock/produceBlockBody.d.ts +11 -1
  114. package/lib/chain/produceBlock/produceBlockBody.d.ts.map +1 -1
  115. package/lib/chain/produceBlock/produceBlockBody.js +54 -36
  116. package/lib/chain/produceBlock/produceBlockBody.js.map +1 -1
  117. package/lib/chain/regen/regen.d.ts +2 -0
  118. package/lib/chain/regen/regen.d.ts.map +1 -1
  119. package/lib/chain/regen/regen.js +10 -4
  120. package/lib/chain/regen/regen.js.map +1 -1
  121. package/lib/chain/reprocess.d.ts +2 -1
  122. package/lib/chain/reprocess.d.ts.map +1 -1
  123. package/lib/chain/reprocess.js +2 -1
  124. package/lib/chain/reprocess.js.map +1 -1
  125. package/lib/chain/seenCache/seenGossipBlockInput.d.ts +7 -0
  126. package/lib/chain/seenCache/seenGossipBlockInput.d.ts.map +1 -1
  127. package/lib/chain/seenCache/seenGossipBlockInput.js +22 -1
  128. package/lib/chain/seenCache/seenGossipBlockInput.js.map +1 -1
  129. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts +9 -2
  130. package/lib/chain/seenCache/seenPayloadEnvelopeInput.d.ts.map +1 -1
  131. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js +23 -13
  132. package/lib/chain/seenCache/seenPayloadEnvelopeInput.js.map +1 -1
  133. package/lib/chain/shufflingCache.d.ts +18 -8
  134. package/lib/chain/shufflingCache.d.ts.map +1 -1
  135. package/lib/chain/shufflingCache.js +72 -18
  136. package/lib/chain/shufflingCache.js.map +1 -1
  137. package/lib/chain/stateCache/persistentCheckpointsCache.d.ts.map +1 -1
  138. package/lib/chain/stateCache/persistentCheckpointsCache.js +1 -1
  139. package/lib/chain/stateCache/persistentCheckpointsCache.js.map +1 -1
  140. package/lib/chain/validation/attesterSlashing.d.ts +4 -4
  141. package/lib/chain/validation/attesterSlashing.d.ts.map +1 -1
  142. package/lib/chain/validation/attesterSlashing.js +3 -0
  143. package/lib/chain/validation/attesterSlashing.js.map +1 -1
  144. package/lib/chain/validation/proposerSlashing.d.ts +3 -3
  145. package/lib/chain/validation/proposerSlashing.d.ts.map +1 -1
  146. package/lib/chain/validation/proposerSlashing.js +3 -0
  147. package/lib/chain/validation/proposerSlashing.js.map +1 -1
  148. package/lib/chain/validatorMonitor.d.ts +5 -1
  149. package/lib/chain/validatorMonitor.d.ts.map +1 -1
  150. package/lib/chain/validatorMonitor.js +70 -58
  151. package/lib/chain/validatorMonitor.js.map +1 -1
  152. package/lib/constants/constants.d.ts +1 -0
  153. package/lib/constants/constants.d.ts.map +1 -1
  154. package/lib/constants/constants.js +1 -0
  155. package/lib/constants/constants.js.map +1 -1
  156. package/lib/db/beacon.d.ts +4 -1
  157. package/lib/db/beacon.d.ts.map +1 -1
  158. package/lib/db/beacon.js +8 -1
  159. package/lib/db/beacon.js.map +1 -1
  160. package/lib/db/buckets.d.ts +3 -1
  161. package/lib/db/buckets.d.ts.map +1 -1
  162. package/lib/db/buckets.js +2 -0
  163. package/lib/db/buckets.js.map +1 -1
  164. package/lib/db/interface.d.ts +4 -1
  165. package/lib/db/interface.d.ts.map +1 -1
  166. package/lib/db/repositories/blockArchive.js +2 -2
  167. package/lib/db/repositories/blockArchive.js.map +1 -1
  168. package/lib/db/repositories/blockArchiveIndex.d.ts +3 -3
  169. package/lib/db/repositories/blockArchiveIndex.d.ts.map +1 -1
  170. package/lib/db/repositories/blockArchiveIndex.js +1 -2
  171. package/lib/db/repositories/blockArchiveIndex.js.map +1 -1
  172. package/lib/db/repositories/earliestAvailableSlot.d.ts +11 -0
  173. package/lib/db/repositories/earliestAvailableSlot.d.ts.map +1 -0
  174. package/lib/db/repositories/earliestAvailableSlot.js +19 -0
  175. package/lib/db/repositories/earliestAvailableSlot.js.map +1 -0
  176. package/lib/db/repositories/index.d.ts +1 -0
  177. package/lib/db/repositories/index.d.ts.map +1 -1
  178. package/lib/db/repositories/index.js +1 -0
  179. package/lib/db/repositories/index.js.map +1 -1
  180. package/lib/db/repositories/proposerPreferences.d.ts +14 -0
  181. package/lib/db/repositories/proposerPreferences.d.ts.map +1 -0
  182. package/lib/db/repositories/proposerPreferences.js +21 -0
  183. package/lib/db/repositories/proposerPreferences.js.map +1 -0
  184. package/lib/db/repositories/proposerSlashing.d.ts +1 -0
  185. package/lib/db/repositories/proposerSlashing.d.ts.map +1 -1
  186. package/lib/db/repositories/proposerSlashing.js +5 -1
  187. package/lib/db/repositories/proposerSlashing.js.map +1 -1
  188. package/lib/execution/engine/blobVersionedHashes.d.ts +9 -0
  189. package/lib/execution/engine/blobVersionedHashes.d.ts.map +1 -0
  190. package/lib/execution/engine/blobVersionedHashes.js +74 -0
  191. package/lib/execution/engine/blobVersionedHashes.js.map +1 -0
  192. package/lib/execution/engine/disabled.d.ts +0 -2
  193. package/lib/execution/engine/disabled.d.ts.map +1 -1
  194. package/lib/execution/engine/disabled.js +0 -6
  195. package/lib/execution/engine/disabled.js.map +1 -1
  196. package/lib/execution/engine/http.d.ts +46 -16
  197. package/lib/execution/engine/http.d.ts.map +1 -1
  198. package/lib/execution/engine/http.js +236 -213
  199. package/lib/execution/engine/http.js.map +1 -1
  200. package/lib/execution/engine/index.d.ts +3 -2
  201. package/lib/execution/engine/index.d.ts.map +1 -1
  202. package/lib/execution/engine/index.js +33 -8
  203. package/lib/execution/engine/index.js.map +1 -1
  204. package/lib/execution/engine/interface.d.ts +2 -4
  205. package/lib/execution/engine/interface.d.ts.map +1 -1
  206. package/lib/execution/engine/jsonRpcTransport.d.ts +25 -0
  207. package/lib/execution/engine/jsonRpcTransport.d.ts.map +1 -0
  208. package/lib/execution/engine/jsonRpcTransport.js +158 -0
  209. package/lib/execution/engine/jsonRpcTransport.js.map +1 -0
  210. package/lib/execution/engine/mock.d.ts +0 -2
  211. package/lib/execution/engine/mock.d.ts.map +1 -1
  212. package/lib/execution/engine/mock.js +0 -8
  213. package/lib/execution/engine/mock.js.map +1 -1
  214. package/lib/execution/engine/restHttpClient.d.ts +71 -0
  215. package/lib/execution/engine/restHttpClient.d.ts.map +1 -0
  216. package/lib/execution/engine/restHttpClient.js +201 -0
  217. package/lib/execution/engine/restHttpClient.js.map +1 -0
  218. package/lib/execution/engine/restTransport.d.ts +46 -0
  219. package/lib/execution/engine/restTransport.d.ts.map +1 -0
  220. package/lib/execution/engine/restTransport.js +399 -0
  221. package/lib/execution/engine/restTransport.js.map +1 -0
  222. package/lib/execution/engine/sszTypes.d.ts +1261 -0
  223. package/lib/execution/engine/sszTypes.d.ts.map +1 -0
  224. package/lib/execution/engine/sszTypes.js +216 -0
  225. package/lib/execution/engine/sszTypes.js.map +1 -0
  226. package/lib/execution/engine/transport.d.ts +39 -0
  227. package/lib/execution/engine/transport.d.ts.map +1 -0
  228. package/lib/execution/engine/transport.js +2 -0
  229. package/lib/execution/engine/transport.js.map +1 -0
  230. package/lib/execution/engine/types.d.ts +2 -8
  231. package/lib/execution/engine/types.d.ts.map +1 -1
  232. package/lib/execution/engine/types.js +31 -63
  233. package/lib/execution/engine/types.js.map +1 -1
  234. package/lib/execution/engine/utils.d.ts.map +1 -1
  235. package/lib/execution/engine/utils.js +9 -2
  236. package/lib/execution/engine/utils.js.map +1 -1
  237. package/lib/index.d.ts +1 -1
  238. package/lib/index.d.ts.map +1 -1
  239. package/lib/index.js +1 -1
  240. package/lib/index.js.map +1 -1
  241. package/lib/metrics/metrics/lodestar.d.ts +10 -0
  242. package/lib/metrics/metrics/lodestar.d.ts.map +1 -1
  243. package/lib/metrics/metrics/lodestar.js +22 -0
  244. package/lib/metrics/metrics/lodestar.js.map +1 -1
  245. package/lib/metrics/metrics.d.ts +7 -3
  246. package/lib/metrics/metrics.d.ts.map +1 -1
  247. package/lib/metrics/metrics.js +4 -4
  248. package/lib/metrics/metrics.js.map +1 -1
  249. package/lib/network/core/events.d.ts +5 -1
  250. package/lib/network/core/events.d.ts.map +1 -1
  251. package/lib/network/core/events.js +8 -0
  252. package/lib/network/core/events.js.map +1 -1
  253. package/lib/network/gossip/topic.d.ts +0 -14
  254. package/lib/network/gossip/topic.d.ts.map +1 -1
  255. package/lib/network/processor/gossipHandlers.d.ts.map +1 -1
  256. package/lib/network/processor/gossipHandlers.js +67 -68
  257. package/lib/network/processor/gossipHandlers.js.map +1 -1
  258. package/lib/network/processor/gossipValidatorFn.d.ts +7 -3
  259. package/lib/network/processor/gossipValidatorFn.d.ts.map +1 -1
  260. package/lib/network/processor/gossipValidatorFn.js +7 -3
  261. package/lib/network/processor/gossipValidatorFn.js.map +1 -1
  262. package/lib/network/processor/index.d.ts +9 -0
  263. package/lib/network/processor/index.d.ts.map +1 -1
  264. package/lib/network/processor/index.js +80 -13
  265. package/lib/network/processor/index.js.map +1 -1
  266. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js +1 -1
  267. package/lib/network/reqresp/handlers/executionPayloadEnvelopesByRoot.js.map +1 -1
  268. package/lib/network/reqresp/rateLimit.js +2 -2
  269. package/lib/network/reqresp/rateLimit.js.map +1 -1
  270. package/lib/network/subnets/attnetsService.d.ts.map +1 -1
  271. package/lib/network/subnets/attnetsService.js +3 -1
  272. package/lib/network/subnets/attnetsService.js.map +1 -1
  273. package/lib/node/nodejs.d.ts +3 -1
  274. package/lib/node/nodejs.d.ts.map +1 -1
  275. package/lib/node/nodejs.js +27 -4
  276. package/lib/node/nodejs.js.map +1 -1
  277. package/lib/node/notifier.d.ts.map +1 -1
  278. package/lib/node/notifier.js +12 -13
  279. package/lib/node/notifier.js.map +1 -1
  280. package/lib/node/options.d.ts +3 -2
  281. package/lib/node/options.d.ts.map +1 -1
  282. package/lib/node/options.js +2 -2
  283. package/lib/node/options.js.map +1 -1
  284. package/lib/sync/range/batch.d.ts +11 -5
  285. package/lib/sync/range/batch.d.ts.map +1 -1
  286. package/lib/sync/range/batch.js +21 -17
  287. package/lib/sync/range/batch.js.map +1 -1
  288. package/lib/sync/range/chain.d.ts +4 -4
  289. package/lib/sync/range/chain.d.ts.map +1 -1
  290. package/lib/sync/range/chain.js +12 -6
  291. package/lib/sync/range/chain.js.map +1 -1
  292. package/lib/sync/range/range.d.ts.map +1 -1
  293. package/lib/sync/range/range.js +75 -29
  294. package/lib/sync/range/range.js.map +1 -1
  295. package/lib/sync/unknownBlock.d.ts +14 -7
  296. package/lib/sync/unknownBlock.d.ts.map +1 -1
  297. package/lib/sync/unknownBlock.js +135 -68
  298. package/lib/sync/unknownBlock.js.map +1 -1
  299. package/lib/sync/utils/downloadByRange.d.ts +38 -14
  300. package/lib/sync/utils/downloadByRange.d.ts.map +1 -1
  301. package/lib/sync/utils/downloadByRange.js +84 -39
  302. package/lib/sync/utils/downloadByRange.js.map +1 -1
  303. package/lib/util/asyncIterableToEvents.d.ts +10 -2
  304. package/lib/util/asyncIterableToEvents.d.ts.map +1 -1
  305. package/lib/util/asyncIterableToEvents.js +29 -3
  306. package/lib/util/asyncIterableToEvents.js.map +1 -1
  307. package/lib/util/clock.d.ts.map +1 -1
  308. package/lib/util/clock.js +3 -4
  309. package/lib/util/clock.js.map +1 -1
  310. package/lib/util/execution.d.ts +9 -11
  311. package/lib/util/execution.d.ts.map +1 -1
  312. package/lib/util/execution.js +5 -1
  313. package/lib/util/execution.js.map +1 -1
  314. package/lib/util/metadata.d.ts.map +1 -1
  315. package/lib/util/metadata.js +2 -1
  316. package/lib/util/metadata.js.map +1 -1
  317. package/lib/util/sszBytes.d.ts +2 -2
  318. package/lib/util/sszBytes.d.ts.map +1 -1
  319. package/lib/util/sszBytes.js +22 -14
  320. package/lib/util/sszBytes.js.map +1 -1
  321. package/package.json +18 -17
  322. package/src/api/impl/beacon/blocks/index.ts +17 -7
  323. package/src/api/impl/beacon/index.ts +15 -0
  324. package/src/api/impl/beacon/pool/index.ts +4 -4
  325. package/src/api/impl/beacon/state/index.ts +43 -6
  326. package/src/api/impl/debug/index.ts +28 -19
  327. package/src/api/impl/validator/index.ts +102 -21
  328. package/src/chain/ColumnReconstructionTracker.ts +4 -6
  329. package/src/chain/archiveStore/archiveStore.ts +26 -26
  330. package/src/chain/archiveStore/historicalState/getHistoricalState.ts +5 -7
  331. package/src/chain/archiveStore/historicalState/historicalStateRegen.ts +1 -1
  332. package/src/chain/archiveStore/historicalState/types.ts +2 -2
  333. package/src/chain/archiveStore/historicalState/worker.ts +1 -2
  334. package/src/chain/archiveStore/interface.ts +1 -1
  335. package/src/chain/archiveStore/utils/pruneHistory.ts +9 -4
  336. package/src/chain/beaconProposerCache.ts +19 -1
  337. package/src/chain/blocks/blockInput/blockInput.ts +1 -1
  338. package/src/chain/blocks/importBlock.ts +29 -11
  339. package/src/chain/blocks/payloadEnvelopeInput/types.ts +2 -1
  340. package/src/chain/blocks/verifyBlock.ts +8 -6
  341. package/src/chain/blocks/verifyBlocksStateTransitionOnly.ts +6 -3
  342. package/src/chain/chain.ts +138 -40
  343. package/src/chain/emitter.ts +7 -1
  344. package/src/chain/errors/envelopeReconstructionError.ts +3 -0
  345. package/src/chain/errors/gossipValidation.ts +2 -0
  346. package/src/chain/forkChoice/index.ts +2 -0
  347. package/src/chain/initState.ts +8 -60
  348. package/src/chain/interface.ts +7 -3
  349. package/src/chain/opPools/aggregatedAttestationPool.ts +34 -10
  350. package/src/chain/opPools/opPool.ts +89 -46
  351. package/src/chain/opPools/proposerPreferencesPool.ts +34 -11
  352. package/src/chain/opPools/utils.ts +62 -3
  353. package/src/chain/options.ts +3 -3
  354. package/src/chain/prepareNextSlot.ts +28 -9
  355. package/src/chain/produceBlock/computeNewStateRoot.ts +10 -3
  356. package/src/chain/produceBlock/produceBlockBody.ts +86 -40
  357. package/src/chain/regen/regen.ts +12 -4
  358. package/src/chain/reprocess.ts +2 -1
  359. package/src/chain/seenCache/seenGossipBlockInput.ts +25 -1
  360. package/src/chain/seenCache/seenPayloadEnvelopeInput.ts +31 -13
  361. package/src/chain/shufflingCache.ts +84 -22
  362. package/src/chain/stateCache/persistentCheckpointsCache.ts +4 -1
  363. package/src/chain/validation/attesterSlashing.ts +7 -4
  364. package/src/chain/validation/proposerSlashing.ts +7 -4
  365. package/src/chain/validatorMonitor.ts +82 -61
  366. package/src/constants/constants.ts +1 -0
  367. package/src/db/beacon.ts +8 -0
  368. package/src/db/buckets.ts +2 -0
  369. package/src/db/interface.ts +4 -0
  370. package/src/db/repositories/blockArchive.ts +2 -2
  371. package/src/db/repositories/blockArchiveIndex.ts +2 -3
  372. package/src/db/repositories/earliestAvailableSlot.ts +19 -0
  373. package/src/db/repositories/index.ts +1 -0
  374. package/src/db/repositories/proposerPreferences.ts +23 -0
  375. package/src/db/repositories/proposerSlashing.ts +6 -1
  376. package/src/execution/engine/blobVersionedHashes.ts +72 -0
  377. package/src/execution/engine/disabled.ts +0 -8
  378. package/src/execution/engine/http.ts +304 -300
  379. package/src/execution/engine/index.ts +41 -7
  380. package/src/execution/engine/interface.ts +2 -6
  381. package/src/execution/engine/jsonRpcTransport.ts +247 -0
  382. package/src/execution/engine/mock.ts +1 -19
  383. package/src/execution/engine/restHttpClient.ts +269 -0
  384. package/src/execution/engine/restTransport.ts +544 -0
  385. package/src/execution/engine/sszTypes.ts +354 -0
  386. package/src/execution/engine/transport.ts +61 -0
  387. package/src/execution/engine/types.ts +42 -90
  388. package/src/execution/engine/utils.ts +12 -2
  389. package/src/index.ts +1 -1
  390. package/src/metrics/metrics/lodestar.ts +23 -0
  391. package/src/metrics/metrics.ts +21 -6
  392. package/src/network/core/events.ts +16 -1
  393. package/src/network/processor/gossipHandlers.ts +98 -81
  394. package/src/network/processor/gossipValidatorFn.ts +13 -3
  395. package/src/network/processor/index.ts +92 -13
  396. package/src/network/reqresp/handlers/executionPayloadEnvelopesByRoot.ts +1 -1
  397. package/src/network/reqresp/rateLimit.ts +2 -2
  398. package/src/network/subnets/attnetsService.ts +8 -3
  399. package/src/node/nodejs.ts +35 -3
  400. package/src/node/notifier.ts +14 -13
  401. package/src/node/options.ts +10 -1
  402. package/src/sync/range/batch.ts +25 -19
  403. package/src/sync/range/chain.ts +15 -8
  404. package/src/sync/range/range.ts +76 -30
  405. package/src/sync/unknownBlock.ts +159 -73
  406. package/src/sync/utils/downloadByRange.ts +123 -58
  407. package/src/util/asyncIterableToEvents.ts +44 -5
  408. package/src/util/clock.ts +3 -4
  409. package/src/util/execution.ts +16 -8
  410. package/src/util/metadata.ts +2 -1
  411. package/src/util/sszBytes.ts +25 -12
@@ -1 +1 @@
1
- {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain/chain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chain.d.ts","sourceRoot":"","sources":["../../src/chain/chain.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,KAAK,WAAW,EAAC,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,iBAAiB,EAGjB,WAAW,EAEX,UAAU,EAEX,MAAM,uBAAuB,CAAC;AAU/B,OAAO,EAEL,cAAc,EACd,gBAAgB,EAQjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,WAAW,EACX,kBAAkB,EAElB,iBAAiB,EACjB,KAAK,EACL,IAAI,EACJ,OAAO,EACP,iBAAiB,EACjB,IAAI,EACJ,MAAM,EACN,SAAS,EACT,cAAc,EACd,GAAG,EACH,KAAK,EACL,KAAK,EAEL,MAAM,EACN,OAAO,EAGR,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,MAAM,EAAsE,MAAM,iBAAiB,CAAC;AAC5G,OAAO,EAAC,uBAAuB,EAAC,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAGzC,OAAO,EAAC,gBAAgB,EAAE,oBAAoB,EAAC,MAAM,mCAAmC,CAAC;AAEzF,OAAO,EAAC,iBAAiB,EAAE,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAC,OAAO,EAAC,MAAM,qBAAqB,CAAC;AAE5C,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAoB,MAAM,EAAC,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAC,aAAa,EAAkC,MAAM,wBAAwB,CAAC;AAEtF,OAAO,EAAC,qBAAqB,EAAsD,MAAM,sBAAsB,CAAC;AAGhH,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAC,uBAAuB,EAAC,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAC,WAAW,EAAyC,MAAM,8BAA8B,CAAC;AACjG,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAC,wBAAwB,EAAC,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAC,iBAAiB,EAAE,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAGzE,OAAO,EAAoD,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAC,2BAA2B,EAAC,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAa,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAC,gBAAgB,EAAuB,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAC,eAAe,EAAkB,YAAY,EAAE,uBAAuB,EAAE,YAAY,EAAC,MAAM,gBAAgB,CAAC;AACpH,OAAO,EAAC,iBAAiB,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,yBAAyB,EACzB,eAAe,EACf,yBAAyB,EACzB,uBAAuB,EACvB,MAAM,EACN,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAG3C,OAAO,EAAC,kBAAkB,EAAE,SAAS,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAC,eAAe,EAA2C,MAAM,oCAAoC,CAAC;AAC7G,OAAO,EAAC,sBAAsB,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAC,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,0BAA0B,EAAC,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAC,oBAAoB,EAAC,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAC,kBAAkB,EAAC,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAC,cAAc,EAAC,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAC,cAAc,EAA+B,MAAM,qBAAqB,CAAC;AAQjF,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AA0BvD,qBAAa,WAAY,YAAW,YAAY;IAC9C,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;IAChC,QAAQ,CAAC,qBAAqB,EAAE,IAAI,CAAC;IACrC,QAAQ,CAAC,eAAe,EAAE,gBAAgB,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IACtD,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAE5C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,QAAQ,CAAC,0BAA0B,EAAE,IAAI,CAAC;IAE1C,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAClD,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;IACnE,QAAQ,CAAC,gCAAgC,EAAE,YAAY,CAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC,CAAC;IAGtF,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;IAC9D,QAAQ,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;IAC5D,QAAQ,CAAC,4BAA4B,+BAAC;IACtC,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAC1D,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IACxD,QAAQ,CAAC,uBAAuB,0BAAiC;IACjE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;IAG9D,QAAQ,CAAC,aAAa,gBAAuB;IAC7C,QAAQ,CAAC,eAAe,kBAAyB;IACjD,QAAQ,CAAC,oBAAoB,uBAA8B;IAC3D,QAAQ,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;IAChE,QAAQ,CAAC,wBAAwB,2BAAkC;IACnE,QAAQ,CAAC,kBAAkB,qBAA4B;IACvD,sEAAsE;IACtE,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAA6B;IACvE,QAAQ,CAAC,yBAAyB,4BAAmC;IACrE,QAAQ,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;IAC5D,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IACpD,QAAQ,CAAC,mBAAmB,EAAE,cAAc,CAAC;IAC7C,QAAQ,CAAC,6BAA6B,EAAE,wBAAwB,CAAC;IAEjE,QAAQ,CAAC,kBAAkB,qBAA4B;IAGvD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAElC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAClD,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;IAC1D,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,6BAAqC;IAElE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;IAEtD,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAE1C,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,2BAA2B,EAAE,2BAA2B,CAAC;IAElE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAE7B,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAClD,SAAS,CAAC,QAAQ,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;IACtE,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACjC,OAAO,CAAC,gBAAgB,CAAC,CAAiB;IAE1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAmB;IACrD,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,uBAAuB,CAA0B;IACzD,OAAO,CAAC,sBAAsB,CAAO;IAErC,IAAI,qBAAqB,IAAI,IAAI,CAEhC;IAED,IAAI,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAKnC;IAED,YACE,IAAI,EAAE,aAAa,EACnB,EACE,UAAU,EACV,MAAM,EACN,WAAW,EACX,EAAE,EACF,MAAM,EACN,OAAO,EACP,aAAa,EACb,MAAM,EACN,uBAAuB,EACvB,KAAK,EACL,OAAO,EACP,gBAAgB,EAChB,WAAW,EACX,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,EAAE;QACD,UAAU,EAAE,UAAU,CAAC;QACvB,MAAM,EAAE,YAAY,CAAC;QACrB,WAAW,EAAE,WAAW,CAAC;QACzB,EAAE,EAAE,SAAS,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,uBAAuB,EAAE,uBAAuB,CAAC;QACjD,4CAA4C;QAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;QACxB,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;QAC1C,WAAW,EAAE,gBAAgB,CAAC;QAC9B,sBAAsB,EAAE,OAAO,CAAC;QAChC,qBAAqB,EAAE,IAAI,CAAC;QAC5B,eAAe,EAAE,gBAAgB,CAAC;QAClC,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;QACrC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;KAC7C,EA4PF;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAG1B;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAW3B;IAED,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAMrC;IAED,mBAAmB,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAE/C;IAED,kBAAkB,IAAI,OAAO,CAE5B;IAED,0BAA0B,IAAI,OAAO,CAEpC;IAED,oBAAoB,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAmBjE;IAED,mFAAmF;IAC7E,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAIlC;IAED,uFAAuF;IACjF,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAInC;IAED,YAAY,IAAI,gBAAgB,CAQ/B;IAEK,0BAA0B,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAEpF;IAEK,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAY3F;IAEK,cAAc,CAClB,IAAI,EAAE,IAAI,EACV,IAAI,CAAC,EAAE,YAAY,GAClB,OAAO,CAAC;QAAC,KAAK,EAAE,gBAAgB,CAAC;QAAC,mBAAmB,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAC,GAAG,IAAI,CAAC,CAmC7F;IAEK,wBAAwB,CAC5B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;QAAC,KAAK,EAAE,UAAU,CAAC;QAAC,mBAAmB,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAC,GAAG,IAAI,CAAC,CAMvF;IAEK,mBAAmB,CACvB,SAAS,EAAE,OAAO,EAClB,IAAI,CAAC,EAAE,YAAY,GAClB,OAAO,CAAC;QAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAAC;QAAC,mBAAmB,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAC,GAAG,IAAI,CAAC,CAkE1G;IAEK,2BAA2B,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAc5F;IAED,oBAAoB,CAClB,UAAU,EAAE,iBAAiB,GAC5B;QAAC,KAAK,EAAE,gBAAgB,CAAC;QAAC,mBAAmB,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAC,GAAG,IAAI,CAiBpF;IAEK,2BAA2B,CAC/B,UAAU,EAAE,iBAAiB,GAC5B,OAAO,CAAC;QAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAAC;QAAC,mBAAmB,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAC,GAAG,IAAI,CAAC,CAc1G;IAEK,uBAAuB,CAC3B,IAAI,EAAE,IAAI,GACT,OAAO,CAAC;QAAC,KAAK,EAAE,iBAAiB,CAAC;QAAC,mBAAmB,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAC,GAAG,IAAI,CAAC,CAyB9F;IAEK,cAAc,CAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;QAAC,KAAK,EAAE,iBAAiB,CAAC;QAAC,mBAAmB,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAC,GAAG,IAAI,CAAC,CAoB9F;IAEK,wBAAwB,CAC5B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;QAAC,KAAK,EAAE,UAAU,CAAC;QAAC,mBAAmB,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAC,GAAG,IAAI,CAAC,CAqCnG;IAEK,eAAe,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAgB/F;IAEK,yBAAyB,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAoBjG;IAEK,qCAAqC,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAG7G;IAED;;;;;OAKG;IACG,sCAAsC,CAC1C,QAAQ,EAAE;QAAC,SAAS,EAAE,IAAI,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAC,EAAE,EACpD,MAAM,GAAE,qBAA+B,GACtC,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAqDhC;IAEK,2BAA2B,CAC/B,SAAS,EAAE,IAAI,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,KAAK,CAAC,8BAA8B,GAAG,IAAI,CAAC,CAoBtD;IAEK,0BAA0B,CAC9B,eAAe,EAAE,IAAI,EACrB,kBAAkB,EAAE,OAAO,GAC1B,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAsBlC;IAEK,qBAAqB,CAAC,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA8B/F;IAEK,+BAA+B,CACnC,SAAS,EAAE,IAAI,EACf,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC,CAiErC;IAEK,sBAAsB,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAavF;IAED,YAAY,CAAC,eAAe,EAAE,eAAe,GAAG;QAAC,sBAAsB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;KAAC,GAAG,OAAO,CAAC;QAC3G,KAAK,EAAE,WAAW,CAAC;QACnB,qBAAqB,EAAE,GAAG,CAAC;QAC3B,mBAAmB,EAAE,GAAG,CAAC;QACzB,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,CAAC,CAED;IAED,mBAAmB,CAAC,eAAe,EAAE,eAAe,GAAG;QAAC,sBAAsB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;KAAC,GAAG,OAAO,CAAC;QAClH,KAAK,EAAE,kBAAkB,CAAC;QAC1B,qBAAqB,EAAE,GAAG,CAAC;QAC3B,mBAAmB,EAAE,GAAG,CAAC;KAC1B,CAAC,CAED;IAEK,mBAAmB,CAAC,CAAC,SAAS,SAAS,EAC3C,SAAS,EAAE,CAAC,EACZ,EACE,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,uBAAuB,EACvB,sBAAsB,EACtB,WAAW,EACX,UAAU,GACX,EAAE,eAAe,GAAG;QAAC,sBAAsB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;KAAC,GACtE,OAAO,CAAC;QACT,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC7B,qBAAqB,EAAE,GAAG,CAAC;QAC3B,mBAAmB,EAAE,GAAG,CAAC;QACzB,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,CAAC,CAoED;IAEK,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5E;IAEK,mBAAmB,CACvB,MAAM,EAAE,WAAW,EAAE,EACrB,gBAAgB,EAAE,GAAG,CAAC,IAAI,EAAE,oBAAoB,CAAC,GAAG,IAAI,EACxD,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAE9B;IAEK,uBAAuB,CAAC,YAAY,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzG;IAED,2BAA2B,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,cAAc,GAAG,IAAI,CAIhF;IAED,oHAAoH;YACtG,uBAAuB;IAuDrC,SAAS,IAAI,MAAM,CAkBlB;IAED,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CAe5D;IAED;;;OAGG;IACH,OAAO,CAAC,cAAc;IAgDtB,mBAAmB,IAAI,UAAU,CAchC;IAED,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CAuBtC;IAED;;;;OAIG;IACH,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAExD;IAED,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,kBAAkB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAc1E;IAED,+BAA+B,CAAC,QAAQ,EAAE,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAc9E;IAED;;;OAGG;IACG,uBAAuB,CAC3B,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,IAAI,CAAC,CAyBf;IAED,sBAAsB,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAU/F;IAED,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAItG;IAED;;;;;OAKG;IACG,oCAAoC,CACxC,QAAQ,EAAE,KAAK,EACf,sBAAsB,EAAE,OAAO,EAC/B,YAAY,EAAE,UAAU,EACxB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,cAAc,CAAC,CAoDzB;IAED;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAgC/B;;;;;;OAMG;IACH,OAAO,CAAC,yCAAyC;YA6CnC,gBAAgB;IAkB9B,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,WAAW;IAyCnB,OAAO,CAAC,YAAY;IAWpB,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAG1C;IAED,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,YAAY;YAON,qBAAqB;IA4C7B,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,uBAAuB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAchG;IAEK,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAa9F;YAEa,kCAAkC;IAwDhD,mBAAmB,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAuBzC;IAEK,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAY5F;IAEK,sBAAsB,CAC1B,KAAK,EAAE,KAAK,EACZ,YAAY,CAAC,EAAE,CAAC,cAAc,GAAG,MAAM,CAAC,EAAE,GACzC,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC;QAAC,mBAAmB,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAC,CAAC,CAqBnG;IAEK,uBAAuB,CAC3B,KAAK,EAAE,WAAW,GAAG,kBAAkB,EACvC,YAAY,CAAC,EAAE,CAAC,cAAc,GAAG,MAAM,CAAC,EAAE,GACzC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAavC;CACF"}
@@ -5,7 +5,7 @@ import { EFFECTIVE_BALANCE_INCREMENT, GENESIS_SLOT, SLOTS_PER_EPOCH, isForkPostG
5
5
  import { computeEndSlotAtEpoch, computeEpochAtSlot, computeStartSlotAtEpoch, getEffectiveBalancesFromStateBytes, isStatePostAltair, isStatePostElectra, isStatePostGloas, } from "@lodestar/state-transition";
6
6
  import { isBlindedBeaconBlock, ssz, sszTypesFor, } from "@lodestar/types";
7
7
  import { fromHex, gweiToWei, isErrorAborted, pruneSetToMax, sleep, toRootHex } from "@lodestar/utils";
8
- import { GENESIS_EPOCH, ZERO_HASH } from "../constants/index.js";
8
+ import { GENESIS_EPOCH, HALF_SLOT_BPS, ZERO_HASH } from "../constants/index.js";
9
9
  import { BLOB_SIDECARS_IN_WRAPPER_INDEX } from "../db/repositories/blobSidecars.js";
10
10
  import { decodeArchivedEnvelope } from "../db/repositories/index.js";
11
11
  import { BuilderApiClient } from "../execution/builder/apiClient.js";
@@ -50,7 +50,7 @@ import { SeenAggregatedAttestations } from "./seenCache/seenAggregateAndProof.js
50
50
  import { SeenAttestationDatas } from "./seenCache/seenAttestationData.js";
51
51
  import { SeenBlockAttesters } from "./seenCache/seenBlockAttesters.js";
52
52
  import { SeenBlockInput } from "./seenCache/seenGossipBlockInput.js";
53
- import { ShufflingCache } from "./shufflingCache.js";
53
+ import { ShufflingCache, ShufflingPromiseCancelReason } from "./shufflingCache.js";
54
54
  import { DbCPStateDatastore, checkpointToDatastoreKey } from "./stateCache/datastore/db.js";
55
55
  import { FileCPStateDatastore } from "./stateCache/datastore/file.js";
56
56
  import { FIFOBlockStateCache } from "./stateCache/fifoBlockStateCache.js";
@@ -147,6 +147,7 @@ export class BeaconChain {
147
147
  blockProcessor;
148
148
  payloadEnvelopeProcessor;
149
149
  db;
150
+ genesisStateRoot;
150
151
  // this is only available if nHistoricalStates is enabled
151
152
  cpStateDatastore;
152
153
  abortController = new AbortController();
@@ -161,7 +162,7 @@ export class BeaconChain {
161
162
  this.emitter.emit(ChainEvent.updateStatus);
162
163
  }
163
164
  }
164
- constructor(opts, { privateKey, config, pubkeyCache, db, dbName, dataDir, dataColumnDir, logger, processShutdownCallback, clock, metrics, validatorMonitor, anchorState, isAnchorStateFinalized, executionEngine, executionBuilder, builderApiClientOpts, }) {
165
+ constructor(opts, { privateKey, config, pubkeyCache, db, dbName, dataDir, dataColumnDir, logger, processShutdownCallback, clock, metrics, validatorMonitor, anchorState, isAnchorStateFinalized, earliestAvailableSlot, executionEngine, executionBuilder, builderApiClientOpts, }) {
165
166
  this.opts = opts;
166
167
  this.config = config;
167
168
  this.db = db;
@@ -184,7 +185,7 @@ export class BeaconChain {
184
185
  clock = new Clock({ config, genesisTime: this.genesisTime, signal });
185
186
  this.blacklistedBlocks = new Map((opts.blacklistedBlocks ?? []).map((hex) => [hex, null]));
186
187
  this.attestationPool = new AttestationPool(config, clock, this.opts?.preaggregateSlotDistance, metrics);
187
- this.aggregatedAttestationPool = new AggregatedAttestationPool(this.config, metrics);
188
+ this.aggregatedAttestationPool = new AggregatedAttestationPool(this.config, metrics, logger);
188
189
  this.syncCommitteeMessagePool = new SyncCommitteeMessagePool(config, clock, this.opts?.preaggregateSlotDistance);
189
190
  this.syncContributionAndProofPool = new SyncContributionAndProofPool(config, clock, metrics, logger);
190
191
  this.executionPayloadBidPool = new ExecutionPayloadBidPool();
@@ -217,7 +218,7 @@ export class BeaconChain {
217
218
  metrics,
218
219
  logger,
219
220
  });
220
- this._earliestAvailableSlot = anchorState.slot;
221
+ this._earliestAvailableSlot = earliestAvailableSlot;
221
222
  this.shufflingCache = new ShufflingCache(metrics, logger, this.opts, [
222
223
  {
223
224
  shuffling: anchorState.getPreviousShuffling(),
@@ -265,6 +266,7 @@ export class BeaconChain {
265
266
  blockStateCache,
266
267
  checkpointStateCache,
267
268
  seenBlockInputCache: this.seenBlockInputCache,
269
+ serializedCache: this.serializedCache,
268
270
  db,
269
271
  metrics,
270
272
  validatorMonitor,
@@ -369,7 +371,9 @@ export class BeaconChain {
369
371
  this.abortController.abort();
370
372
  }
371
373
  seenBlock(blockRoot) {
372
- return this.seenBlockInputCache.hasBlock(blockRoot) || this.forkChoice.hasBlockHexUnsafe(blockRoot);
374
+ return (this.seenBlockInputCache.hasBlock(blockRoot) ||
375
+ this.seenBlockInputCache.isValidatingBlock(blockRoot) ||
376
+ this.forkChoice.hasBlockHexUnsafe(blockRoot));
373
377
  }
374
378
  seenPayloadEnvelope(blockRoot) {
375
379
  return this.seenPayloadEnvelopeInputCache.hasPayload(blockRoot) || this.forkChoice.hasPayloadHexUnsafe(blockRoot);
@@ -401,12 +405,14 @@ export class BeaconChain {
401
405
  /** Populate in-memory caches with persisted data. Call at least once on startup */
402
406
  async loadFromDisk() {
403
407
  await this.regen.init();
404
- await this.opPool.fromPersisted(this.db);
408
+ await this.opPool.fromPersisted(this.db, this.getHeadState(), this.bls, this.clock.currentSlot);
409
+ await this.proposerPreferencesPool.fromPersisted(this.db, this.clock.currentSlot);
405
410
  }
406
411
  /** Persist in-memory data to the DB. Call at least once before stopping the process */
407
412
  async persistToDisk() {
408
413
  await this.archiveStore.persistToDisk();
409
414
  await this.opPool.toPersisted(this.db);
415
+ await this.proposerPreferencesPool.toPersisted(this.db);
410
416
  }
411
417
  getHeadState() {
412
418
  // head state should always exist
@@ -470,6 +476,33 @@ export class BeaconChain {
470
476
  return this.archiveStore.getHistoricalStateBySlot(slot);
471
477
  }
472
478
  async getStateByStateRoot(stateRoot, opts) {
479
+ const finalizedBlock = this.forkChoice.getFinalizedBlock();
480
+ const finalizedCheckpoint = this.forkChoice.getFinalizedCheckpoint();
481
+ // Checkpoint state only equals the block post-state if the block is at the epoch start slot
482
+ if (finalizedBlock.stateRoot === stateRoot &&
483
+ finalizedBlock.slot === computeStartSlotAtEpoch(finalizedCheckpoint.epoch)) {
484
+ const state = this.regen.getCheckpointStateSync({
485
+ epoch: finalizedCheckpoint.epoch,
486
+ rootHex: finalizedCheckpoint.rootHex,
487
+ });
488
+ if (state) {
489
+ return {
490
+ state,
491
+ executionOptimistic: isOptimisticBlock(finalizedBlock),
492
+ finalized: finalizedCheckpoint.epoch !== GENESIS_EPOCH,
493
+ };
494
+ }
495
+ }
496
+ if (this.genesisStateRoot === undefined) {
497
+ const genesisBlock = await this.db.blockArchive.get(GENESIS_SLOT);
498
+ this.genesisStateRoot = genesisBlock ? toRootHex(genesisBlock.message.stateRoot) : null;
499
+ }
500
+ if (this.genesisStateRoot === stateRoot) {
501
+ const state = await this.db.stateArchive.getBinary(GENESIS_SLOT);
502
+ if (state) {
503
+ return { state, executionOptimistic: false, finalized: finalizedCheckpoint.epoch !== GENESIS_EPOCH };
504
+ }
505
+ }
473
506
  if (opts?.allowRegen) {
474
507
  const state = await this.regen.getState(stateRoot, RegenCaller.restApi);
475
508
  const block = this.forkChoice.getBlockDefaultStatus(ssz.phase0.BeaconBlockHeader.hashTreeRoot(state.latestBlockHeader));
@@ -667,10 +700,11 @@ export class BeaconChain {
667
700
  }
668
701
  /**
669
702
  * Batch variant: archived header envelopes are rebuilt 32 per EL round-trip. Aligned with `requests`.
670
- * A body root mismatch is a local inconsistency: `"throw"` surfaces it, `"omit"` logs it and
671
- * returns null for that entry, for peer-facing paths where the spec allows omission.
703
+ * An archived envelope that cannot be rebuilt (EL-unavailable body or body root mismatch) is not the
704
+ * same as an unknown one: `"throw"` surfaces it, `"omit"` returns null for that entry, for
705
+ * peer-facing paths where the spec allows omission.
672
706
  */
673
- async getSerializedExecutionPayloadEnvelopes(requests, onMismatch = "throw") {
707
+ async getSerializedExecutionPayloadEnvelopes(requests, onMiss = "throw") {
674
708
  const out = new Array(requests.length).fill(null);
675
709
  const headerEnvelopes = [];
676
710
  const headerEnvelopeIdxs = [];
@@ -703,11 +737,11 @@ export class BeaconChain {
703
737
  for (let j = 0; j < rebuilt.length; j++) {
704
738
  const result = rebuilt[j];
705
739
  if (isRebuildMiss(result)) {
706
- if (result.reason === "mismatch") {
707
- if (onMismatch === "throw")
708
- throw result.error;
709
- this.logger.debug("Archived envelope failed body root check against EL bodies", { slot: result.slot }, result.error);
710
- }
740
+ if (onMiss === "throw")
741
+ throw result.error;
742
+ this.logger.debug(result.reason === "mismatch"
743
+ ? "Archived envelope failed body root check against EL bodies"
744
+ : "EL cannot serve bodies for archived envelope, omitting", { slot: result.slot }, result.error);
711
745
  continue;
712
746
  }
713
747
  out[headerEnvelopeIdxs[j]] = ssz.gloas.SignedExecutionPayloadEnvelope.serialize(result);
@@ -733,11 +767,8 @@ export class BeaconChain {
733
767
  const [result] = await reconstructExecutionPayloadEnvelopes(this.executionEngine, this.metrics, [
734
768
  archived.headerEnvelope,
735
769
  ]);
736
- if (isRebuildMiss(result)) {
737
- if (result.reason === "mismatch")
738
- throw result.error;
739
- return null;
740
- }
770
+ if (isRebuildMiss(result))
771
+ throw result.error;
741
772
  return result;
742
773
  }
743
774
  async getParentExecutionRequests(parentBlockSlot, parentBlockRootHex) {
@@ -960,13 +991,13 @@ export class BeaconChain {
960
991
  },
961
992
  };
962
993
  try {
963
- await validateApiProposerSlashing(this, proposerSlashing);
994
+ const verifiedDomain = await validateApiProposerSlashing(this, proposerSlashing);
995
+ this.opPool.insertProposerSlashing(proposerSlashing, verifiedDomain);
964
996
  }
965
997
  catch (e) {
966
998
  this.logger.debug("Produced proposer slashing is not valid", { slot: blockSlot, proposerIndex }, e);
967
999
  return;
968
1000
  }
969
- this.opPool.insertProposerSlashing(proposerSlashing);
970
1001
  this.emitter.emit(routes.events.EventType.proposerSlashing, proposerSlashing);
971
1002
  this.emitter.emit(ChainEvent.publishProposerSlashing, proposerSlashing);
972
1003
  this.metrics?.opPool.proposerSlashingsProduced.inc();
@@ -1120,6 +1151,12 @@ export class BeaconChain {
1120
1151
  void this.persistSszObject("BeaconBlock", sszType.serialize(data), toRootHex(sszType.hashTreeRoot(data)), suffix);
1121
1152
  }
1122
1153
  }
1154
+ persistExecutionPayloadEnvelope(envelope) {
1155
+ const blockRoot = toRootHex(envelope.beaconBlockRoot);
1156
+ void this.persistSszObject("ExecutionPayloadEnvelope", ssz.gloas.ExecutionPayloadEnvelope.serialize(envelope), blockRoot, "produced_execution_payload_envelope").catch((e) => {
1157
+ this.logger.error("Error persisting produced execution payload envelope", { slot: envelope.payload.slotNumber, blockRoot }, e);
1158
+ });
1159
+ }
1123
1160
  /**
1124
1161
  * Invalid state root error is critical and it causes the node to stale most of the time so we want to always
1125
1162
  * persist preState, postState and block for further investigation.
@@ -1159,22 +1196,41 @@ export class BeaconChain {
1159
1196
  this.shufflingCache.insertPromise(attEpoch, shufflingDependentRoot);
1160
1197
  const blockEpoch = computeEpochAtSlot(attHeadBlock.slot);
1161
1198
  let state;
1162
- if (blockEpoch < attEpoch - 1) {
1163
- // thanks to one epoch look ahead, we don't need to dial up to attEpoch
1164
- const targetSlot = computeStartSlotAtEpoch(attEpoch - 1);
1165
- this.metrics?.gossipAttestation.useHeadBlockStateDialedToTargetEpoch.inc({ caller: regenCaller });
1166
- state = await this.regen.getBlockSlotState(attHeadBlock, targetSlot, { dontTransferCache: true }, regenCaller);
1199
+ try {
1200
+ if (blockEpoch < attEpoch - 1) {
1201
+ // thanks to one epoch look ahead, we don't need to dial up to attEpoch
1202
+ const targetSlot = computeStartSlotAtEpoch(attEpoch - 1);
1203
+ this.metrics?.gossipAttestation.useHeadBlockStateDialedToTargetEpoch.inc({ caller: regenCaller });
1204
+ state = await this.regen.getBlockSlotState(attHeadBlock, targetSlot, { dontTransferCache: true }, regenCaller);
1205
+ }
1206
+ else if (blockEpoch > attEpoch) {
1207
+ // should not happen, handled inside attestation verification code
1208
+ throw Error(`Block epoch ${blockEpoch} is after attestation epoch ${attEpoch}`);
1209
+ }
1210
+ else {
1211
+ // should use either current or next shuffling of head state
1212
+ // it's not likely to hit this since these shufflings are cached already
1213
+ // so handle just in case
1214
+ this.metrics?.gossipAttestation.useHeadBlockState.inc({ caller: regenCaller });
1215
+ state = await this.regen.getState(attHeadBlock.stateRoot, regenCaller);
1216
+ }
1167
1217
  }
1168
- else if (blockEpoch > attEpoch) {
1169
- // should not happen, handled inside attestation verification code
1170
- throw Error(`Block epoch ${blockEpoch} is after attestation epoch ${attEpoch}`);
1218
+ catch (e) {
1219
+ this.shufflingCache.cancelPromise(attEpoch, shufflingDependentRoot, ShufflingPromiseCancelReason.regenError);
1220
+ throw e;
1171
1221
  }
1172
- else {
1173
- // should use either current or next shuffling of head state
1174
- // it's not likely to hit this since these shufflings are cached already
1175
- // so handle just in case
1176
- this.metrics?.gossipAttestation.useHeadBlockState.inc({ caller: regenCaller });
1177
- state = await this.regen.getState(attHeadBlock.stateRoot, regenCaller);
1222
+ const stateDecisionRoot = state.getShufflingDecisionRoot(attEpoch);
1223
+ if (stateDecisionRoot !== shufflingDependentRoot) {
1224
+ // the promise would never be resolved by the state's shuffling
1225
+ this.shufflingCache.cancelPromise(attEpoch, shufflingDependentRoot, ShufflingPromiseCancelReason.decisionRootMismatch);
1226
+ this.logger.debug("Shuffling decision root mismatch on attestation regen", {
1227
+ slot: attHeadBlock.slot,
1228
+ root: attHeadBlock.blockRoot,
1229
+ epoch: attEpoch,
1230
+ shufflingDependentRoot,
1231
+ stateDecisionRoot,
1232
+ });
1233
+ throw Error(`Shuffling decision root mismatch epoch=${attEpoch} slot=${attHeadBlock.slot} root=${attHeadBlock.blockRoot} expected=${shufflingDependentRoot} actual=${stateDecisionRoot}`);
1178
1234
  }
1179
1235
  // resolve the promise to unblock other calls of the same epoch and dependent root
1180
1236
  this.shufflingCache.processState(state);
@@ -1264,7 +1320,7 @@ export class BeaconChain {
1264
1320
  // as of Feb 17 2022 there are a lot of duplicate files stored with different date suffixes
1265
1321
  // remove date suffixes in file name, and check duplicate to avoid redundant persistence
1266
1322
  await writeIfNotExist(filepath, bytes);
1267
- this.logger.debug("Persisted invalid ssz object", { id: logStr, filepath });
1323
+ this.logger.debug("Persisted SSZ object", { id: logStr, filepath });
1268
1324
  }
1269
1325
  onScrapeMetrics(metrics) {
1270
1326
  // aggregatedAttestationPool tracks metrics on its own
@@ -1315,7 +1371,8 @@ export class BeaconChain {
1315
1371
  const metrics = this.metrics;
1316
1372
  if (metrics && (slot + 1) % SLOTS_PER_EPOCH === 0) {
1317
1373
  // On the last slot of the epoch
1318
- sleep(this.config.SLOT_DURATION_MS / 2)
1374
+ const fork = this.config.getForkName(slot);
1375
+ sleep(this.config.getSlotComponentDurationMs(fork, HALF_SLOT_BPS))
1319
1376
  .then(() => this.validatorMonitor?.onceEveryEndOfEpoch(this.getHeadState()))
1320
1377
  .catch((e) => {
1321
1378
  if (!isErrorAborted(e))
@@ -1396,6 +1453,19 @@ export class BeaconChain {
1396
1453
  await this.updateValidatorsCustodyRequirement(finalizedCheckpoint);
1397
1454
  }
1398
1455
  }
1456
+ async updateAttachedValidators(epoch, validatorIndices) {
1457
+ let hasNewValidators = false;
1458
+ for (const validatorIndex of validatorIndices) {
1459
+ if (this.beaconProposerCache.track(epoch, validatorIndex)) {
1460
+ hasNewValidators = true;
1461
+ }
1462
+ }
1463
+ // Only update validator custody if we discovered new validators
1464
+ if (hasNewValidators) {
1465
+ const finalizedCheckpoint = this.forkChoice.getFinalizedCheckpoint();
1466
+ await this.updateValidatorsCustodyRequirement(finalizedCheckpoint);
1467
+ }
1468
+ }
1399
1469
  async updateValidatorsCustodyRequirement(finalizedCheckpoint) {
1400
1470
  if (this.custodyConfig.targetCustodyGroupCount === this.config.NUMBER_OF_CUSTODY_GROUPS) {
1401
1471
  // Custody requirements can only be increased, we can disable dynamic custody updates